1 Reply Latest reply: Dec 18, 2012 4:48 PM by ArifIqbal RSS

    UOO   and Replicated Distributed Topic

    ArifIqbal
      Hi,

      Can you please confirm the expected behaviour when Unit of order is used along with Replicated distributed topic

      1. As i understand, with Unit of order, a uniform distributed topic puts all messages with same UOO to one and same topic destination member . However, since, it is a replicated distributed topic, even though the message is put initially in one topic destination member, that member will eventually forward the message to all members of distributed topic . Is this understanding correct ? or is it that the message forwarding in RDT will not happen if UOO is set ?

      2. If in 1) above, message eventually get replicated to all destination members, then is ordered processing supported when using UOO in replicated distributed topic ? i.e If there is a message driven bean subscribing to topic , how does weblogic ensure the ordered processnig between multiple instances of the same mdb across different nodes of a cluster ?

      3. If i use Message driven bean with property topicMessagesDistributionMode="one-copy-per-application", Then , as i understand, messages will be delivered to only one mdb instance across the cluster. In this case, will weblogic ensure the ordered processnig of messages with same UOO across multiple instances of the same mdb across different nodes of a cluster ? e.g.
      3.1 Suppose i have messages A, B, C, D with same unit of order published to my replicated UDD topic
      3.2 A and B gets picked by mdb in node1
      3.3 C and D get picked up by mdb in a different machine node2
      3.4 Will weblogic JMS ensure that messages C and D will get processed only after A and B are processed ? (Basically, does weblogic JMS ensures this paradigm across different nodes in cluster ) ?

      4 If 3 is true, will weblogic always deliever all messages with a given UOO to the same mdb instance to ensure ordered processing .. Or is that messages get processed by any one mdb instance across the nodes and weblogic somehow maintains the order ?

      Please advise.

      Regards,
      Arif
        • 1. Re: UOO   and Replicated Distributed Topic
          ArifIqbal
          Got the following answer from Tom
          -----------------------------------------------------

          If you are able to always use MDBs for the topic consumers, then you probably should very seriously consider using a partitioned topic instead of a replicated topic. Partitioned topics are generally much more efficient, but MDBs are usually needed in combination to make the fully partitioned nature of the topic as transparent as possible...

          More in-line.

          >
          1. As i understand, with Unit of order, a uniform distributed topic puts
          all messages with same UOO to one and same topic destination member .
          However, since, it is a replicated distributed topic, even though the
          message is put initially in one topic destination member, that member
          will eventually forward the message to all members of distributed topic
          . Is this understanding correct ?
          Yes.
          or is it that the message forwarding
          in RDT will not happen if UOO is set ?
          No. The forwarding still occurs.
          2. If in 1) above, message eventually get replicated to all destination
          members, then is ordered processing supported when using UOO in
          replicated distributed topic ?
          Yes. The ordering is with respect to the subscription.
          i.e If there is a message driven bean
          subscribing to topic , how does weblogic ensure the ordered processnig
          between multiple instances of the same mdb across different nodes of a
          cluster ?
          In RDT, a particular UOO's messages always follow the same route through the system:
          - To the main RDT member that "owns" the UOO.
          - Then forwarded to each remaining RDT.
          - And placed in each member's corresponding subscriptions (in order).
          - Then consumed in order via the MDB(s) consuming from the subscription(s).

          >
          3. If i use Message driven bean with property
          topicMessagesDistributionMode="one-copy-per-application", Then , as i
          understand, messages will be delivered to only one mdb instance across
          the cluster. In this case, will weblogic ensure the ordered processing
          of messages with same UOO across multiple instances of the same mdb
          across different nodes of a cluster ?
          Yes. Note that the one-copy-per-app mode results in a huge
          amount of wasted overhead with RDTs,
          as all messages are still forwarded internally, and
          this forwarding is quite expensive, but all forwarded messages are
          implicitly filtered out by the MDB subscriptions.
          e.g.
          3.1 Suppose i have messages A, B, C, D with same unit of order
          published to my replicated UDD topic
          3.2 A and B gets picked by mdb in node1
          3.3 C and D get picked up by mdb in a different machine node2
          3.4 Will weblogic JMS ensure that messages C and D will get processed
          only after A and B are processed ? (Basically, does weblogic JMS ensures
          this paradigm across different nodes in cluster ) ?
          Yes.

          >
          4 If 3) above is true, will weblogic always deliver all messages with a
          given UOO to the same mdb instance to ensure ordered processing .. Or is
          that messages get processed by any one mdb instance across the nodes and
          weblogic somehow maintains the order ?
          Ordering is always maintained, but whether different messages
          in the same order end up on different nodes
          depends on a variety of factors.

          >
          Please advise.

          Regards,
          Arif