OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

ws-rx message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: PR Issue 7: Title: RM Destination lacks a mechanism for cleanlyterminating inbound sequences.


Title: New PR Issue: Title: RM Destination lacks a mechanism for cleanly terminating inbound sequences.

PR Issue 7

 

From: Gilbert Pilz [mailto:Gilbert.Pilz@bea.com]
Sent: Thursday, October 19, 2006 11:24 AM
To: ws-rx@lists.oasis-open.org
Subject: [ws-rx] New PR Issue: Title: RM Destination lacks a mechanism for cleanly terminating inbound sequences.

 

Note: I'm filling this to complete an action item from the WS-I RSP. I view this largely as an interop issue

- gp

------------

Title: RM Destination lacks a mechanism for cleanly terminating inbound sequences.

Description:

Stipulate the following scenario: a client and server communicate using asynchronous, two-way, reliable messaging. During the initial sequence creation the client offers a sequence to the server and this offer is accepted. Some number of requests and responses are exchanged using the requested and offered sequences. At some later time the user of the client application causes that application to exit. It is obvious that the client-side RMS should  clean up the outgoing, client-to-server sequence by sending a wsrm:TerminateSequence message (possibly preceded by a wsrm:CloseSequence message) to the server-side RMS. What is not clear is what steps the client-side RMD should take to clean up the incoming, server-to-client sequence. There are three basic courses of action:

1.) The client-side RMD could do nothing to clean up the incoming sequence. From a distributed systems viewpoint this seems less than optimal as it leaves the server-side RMS with a "dangling sequence". If the server-side RMS ever tried to use this dangling sequence it would engage the entire RMS machinery for messages that would never get through (send, retry, request acks, retry, request acks, etc.).

2.) The client could wait for a length of time sufficient for it to consider the inbound sequence to be "inactive", then exit. There are a couple of problems with this. Firstly the user that caused the client to exit may grow impatient and attempt to terminate the client by other means. Secondly, outside of the optional expiration time, there is no mutually agreed upon inactivity period for a sequence.

3.) The client-side RMD could send a message to the server-side RMS to indicate that the inbound, server-to-client sequence is being cleaned up. Since the direction of the wsrm:TerminateSequence message is specified by WS-ReliableMessaging 1.1 as being from the RMS to the RMD only, this leaves either the wsrm:SequenceTerminated or wsrm:SequenceClosed faults as the only viable messages for the client-side RMD to use. This brings up all the problems attendant with using faults/exceptions to indicate "normal" application behavior. The server-side RMS may construe the appearance of a fault as an indication of some lower-level problem, etc.

Note that, although this issue is discussed in the context of a client application attempting to exit, it is applicable in any situation where the process/VM that "contains" an RMD must exit in a relatively short period of time for whatever reason.

Raised against/Related drafts:

http://docs.oasis-open.org/ws-rx/wsrm/200608/wsrm-1.1-spec-cd-04.pdf

Proposal:

Amend the wording of section 3.6 (Sequence Termination) to indicate that a wsrm:TerminateSequence/wsrm:TerminateSequenceResponse exchange may be initiated by the RMD.



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]