This discussion is archived
1 Reply Latest reply: Dec 18, 2012 2:48 PM by ArifIqbal RSS

UOO   and Replicated Distributed Topic

ArifIqbal Newbie
Currently Being Moderated
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 Newbie
    Currently Being Moderated
    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

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points