RE: [wsrm] Rel 33: some thoughts and proposal...

From
Furniss, Peter <>
Date
2003-11-19T17:53:48+00:00
ID
Thread
RE: [wsrm] Rel 33: some thoughts and proposal...
Title: Message

I'll 
try and state what was worrying me about this on the call last 
night:

 

Although the concept "make available to the 
application/user" can usefully be used to specify the meaning of a sequence, 
that doesn't imply that it will necessarily happen synchronously to the 
communication. Perhaps best explained by scenario:

 

an RM 
receiver receives incoming work overnight and delivers items when they are asked 
for by the human-driven application during the day. If messages arrive as part 
of a sequence, the software will only offer them to the user in the right order. 
It therefore fulfils the sequence requirement of making them available in order, 
but the time of making available is invariably while the RMP is out of 
communication with the sender.

 

Now 
you can try and get round that by claiming that the storage of the message in 
the queue in circumstances that would permit its later delivery (i.e. all prior 
msgs received) is the point of "making it available to the user", but that is 
distinctly artificial and confusing. If you don't bend the rules like that, then 
the proposed change would mean that *none* of the messages received during any 
connection session (even if they weren't part of sequences) could be ack'ed 
until the next night.

 

But 
the phrase used often last night was that the ack should be sent when the 
receiver can assure the sender that the receiver now has responsibility for the 
message, and the sender is absolved of its responsibility. But that can occur on 
a message-by-message basis and has nothing to do with whether the message is yet 
delivered or deliverable to the user. 

 

Actually, I think the fix to the original problem here 
is to understand Ack correctly at the sender side - it's just a RM ack, and 
means the responsibility has been transferred. There is the possibility of 
another acknowlegement - the message has been delivered, but that's at a higher 
level - and may itself be sent back queued.

 

Peter

------------------------------------------
Peter 
Furniss
Chief Scientist, Choreology Ltd

   Cohesions 1.0 
(TM)
   Business transaction management software for application 
coordination

web: http://www.choreology.com
email:  

phone:  +44 870 739 0066  <-- new, 
from 4 August 2003
mobile: +44 7951 536168 

  

  
-----Original Message-----
From: Jacques Durand 
  [mailto:] 
Sent: 18 November 2003 
  22:10
To: ''
Subject: [wsrm] Rel 
  33: some thoughts and proposal...

  
All: 
Sorry for a late notification, but here is a 
  proposal for Rel 33 where a change in 
the current semantics for Acknowledgements is proposed. 
  
This is in the light of other issues 
  that we are currently  trying to solve these days. 

  
We would appreciate having at least the 
  opportunity to present it to the TC at this meeting, if enough time... 
  
Again, apologies for late notice but 
  that is  a very recent conclusion of ours, 
and we'd like at least to get early feedback if 
  possible. 

  
Jacques 
----------------------------------------------------------------- 
  
We'd like to propose a change in the 
  semantics of sending an Acknowledgment.
Instead 
  of sending the Ack when the message is received, the Ack. would be 
  sent
when the message is made available to the 
  server-side application/user. 
  
After some discussion related 
  to faults/notifications, we believe this would help
significantly to get both Sender/Receiver aligned,
and also 
  reduce the need for additional faults and notifications, always 
  problematic
(e.g. if polling needed). 
The 
  advantages we see with the new proposal are:
- More 
  consistent semantically because the message is made available to
the user 
  once acked, no more when buffered.
- Solves 
  the async. failure notification problems.
- Makes 
  Rel 50, Rel 52, and Rel 57 simpler.
- the 
  main difference is for ordered groups, for pending out-of-order 
  sequence.
- all semantics of RM features (guaranteed 
  delivery, dup elim, ordering) would now be
about 
  conditions of delivery to application. 
  
We have considered cases where 
  Acks of received messages would be delayed
due to 
  out-of-order sequences (not made available to app yet). 
To jot 
  some memories back, this was decision we made at the first F2F
at 
  Redwood Shores and was reverted back later as it may have payload
affect 
  during retries. We believe this is a performance issue and
a 
  trade-off on a functional behavior for a performance one. 
Performance can be handled without problem (see below) 
-------- detail: 
For implementations that are concerned about 
  performance hit, an optimization
they 
  could use is to only retry the lowest un-acked message in a 
  grouped
ordered case, i.e., if msgs. 1,2,3 are sent and 
  Sender hasn't received
acks. for 2 and 3, the Sender should not retry 3 
  until they get an ack. for 2.
For RMP 
  impl. that doesn't worry about retries throttling the Receiver,
they 
  might still send parallel retries. Either approach won't have any 
  effect
on the end user behavior.