[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Uncoordinated senders using sequential Message Ids [Was: Detailedproposal to allow Batching of Acks and RM faults using ResponseReply pattern.]
Tom Rutt <tom@coastin.com> wrote at Fri, 20 Feb 2004 22:44:23 -0500: > Sunil Kunisetty wrote: > >Tom Rutt wrote: ... > >>NOTE: In cases where the underlying transport connection is not > >>available to return an Acknolwedgement or RM fault, a Receiving RMP MAY > >>include that Acknowledgement or RM fault with the response to a future > >>reliable message request with the same GroupID. > >>“ > > > > -1. > > > > As I mentioned in one of the con. call, 2 different nodes can share the > > same groupId and be part of the same group. In such case, there is no > > guarantee that subsequent "acks" will go back to the original and destined > > Sender. > > > This is a difficult scenario to swallow. How could they coordinate the > sequential use of sequnce numberin if they are > not in close coordination for the group? Sunil's is a reasonable scenario. Consider a servlet for which the servlet container can instantiate multiple instances to handle a heavy request load. To make it a bit more concrete, consider a servlet in the Coffee Break Server shown at http://java.sun.com/webservices/docs/1.3/tutorial/doc/CB2.html#wp107729 that uses WS-Reliability when communicating with the Coffee Distributor Web Service. If, under heavy load, there are multiple instances of a servlet, they all still look like one servlet from outside the servlet container, and they all each behave as if they were the only instance of the servlet. Only the servlet container knows how many instances there are at any one time. Each servlet instance would use the same Group Id on its sent reliable messages and would use successive sequence numbers for successive messages without overlap or gaps in the sequence, but would not necessarily know what to do with an acknowledgment for any other message. This is especially true if the servlet blocks on a Request/Response operation. That instance of the servlet isn't going to do anything, including respond to another instance receiving its Acknowledgment, until it gets its response. Consider also the implementation scenario that Sunil has used before of an RMP implemented as a message handler in a handler chain. Getting a pool of message handlers to create MessageHeader elements with the same Group Id and successive sequence numbers is easy enough, but getting one message handler to communicate Acknowledgments to another doesn't fit the message handler lifecycle. Regards, Tony Graham ------------------------------------------------------------------------ Web Products, Technologies and Standards Phone: +353 1 8199708 Sun Microsystems x(70)19708 East Point Business Park, Dublin 3, Ireland
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]