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

 


Help: OASIS Mailing Lists Help | MarkMail Help

ws-tx message

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


Subject: Re: [ws-tx] Issue 007 - WS-C: Make Register/RegisterResponse retriable


Doug, I thought that was still an ongoing discussion in the TC? If it 
was resolved, then maybe we should be looking at a similar solution here 
then?

Mark.


Doug Davis wrote:

>
> Mark - double check the RX specs - they _don't_ say anything about 
> messageID.
> And this was done on purpose.  WSA owns that field and applying any 
> semantics beyond
> what WSA says is a bad idea. That's why RX defined their own way to 
> uniquely identify
> a message that didn't include WSA msgID.
> thanks,
> -Doug
>
> Mark Little <mark.little@jboss.com> wrote on 12/13/2005 08:34:14 AM:
>
> >
> >
> > Doug Davis wrote:
> >
> > >
> > > Mark - Couple of comments...
> > >
> > > Mark Little <mark.little@arjuna.com> wrote on 12/13/2005 05:04:36 AM:
> > >
> > > > Doug, I think we can state whatever we like about wsa:MessageID
> > > > semantics in the case of timeouts and retries. We did that in the
> > > > interoperability scenario documents.
> > >
> > > I believe it would be up to WSA to define wsa:MessageID's semantics
> > > not WSTX.
> >
> > WSA is deliberately trying to be as general as possible, so although
> > discussions about the use of wsa:messageID have come up during the
> > working group, very little normative text appears in the current
> > specification.
> >
> > However, that doesn't prevent referencing specifications from imposing
> > their own rules. So, for example, WS-RX is taking the same approach as
> > mentioned here: retries MUST have the same wsa:messageID. That doesn't
> > prevent us from doing likewise.
> >
> > >  The interop[1] did not say anything about messageID aside from
> > > when it needed to be there, per WSA rules.  Nothing about what it
> > > looked like on retries.  Nor do the Tx specs.
> > >
> > > [1] http://wsi.alphaworks.ibm.com:8080/interop/index.html
> >
> > OK.
> >
> > >
> > > > The only issue with wsa:MessageID being used in this case is that,
> > > > without requiring persistent structures, it isn't going to work 
> in the
> > > > case of crash failures. So if we assume that the scenario 
> outlined in
> > > > the original issue (registration response message is lost 
> because the
> > > > receiver has crashed, subsequently comes back and can't 
> re-register) is
> > > > valid, using wsa:MessageID won't help.
> > > >
> > > > So we have at least two classifications of failure scenario:
> > > >
> > > > transient failures: wsa:MessageID would work and I believe it's the
> > > > right mechanism to use.
> > > >
> > > > crash failures: wsa:MessageID won't work unless we mandate that
> > > > implementations persist their message structures, which isn't a good
> > > > idea IMO. Adding a unique participant identification to the
> > > registration
> > > > message, as Peter suggests in a different issue, would solve 
> this, but
> > > > there are other solutions too. The advantage of Peter's option 
> is that
> > > > it may be needed to resolve another issue.
> > > >
> > > > In general, all of our messages are going to have to cope with
> > > transient
> > > > failures. So I'd prefer to use wsa:MessageID across the board 
> for that.
> > >
> > > It all depends on who initiated the retry.  If its a transport level
> > > thing,
> > > then sure.  But if its some layer on top of WSA (like Tx might be
> > > implemented
> > > by some) then you can't count on that kind of control.
> >
> > You can if we define it within the specification. IMO it makes more
> > sense to tolerate volatile failures, such as message loss, in this way
> > simply because we can tackle it once to cover all relevant messages. 
> Now
> > of course it may not help us in all interactions unless we mandate
> > wsa:messageID, but that's a separate issue.
> >
> > Mark.
> >
> > >
> > > > For crash failures, at least in this case, I'd like to suggest we
> > > take a
> > > > look at what we did in WS-CAF with the WS-Coordination Framework
> > > > specification. There's a recoverParticipant operation that 
> essentially
> > > > lets you replace one registered EPR with another EPR and returns the
> > > > protocol-specific EPR that you'd get from register. I think if we're
> > > > going to tolerate crash failures, and by that I mean try to prevent
> > > them
> > > > from aborting/cancelling inflight transactions unnecessarily, we 
> need
> > > > such a mechanism in general. Of course that could be the scope of a
> > > > different issue, but I'd rather not solve the crash failure case
> > > here in
> > > > an ad hoc manner if we agree that it's something we need to 
> solve more
> > > > generally.
> > > >
> > > > Mark.
> > > >
> > > >
> > > > Doug Davis wrote:
> > > >
> > > > >
> > > > > One thing that concerns me about using the wsa:MessagID is the
> > > assumption
> > > > > that you'll use the same messageID on each retry.  Can the Tx 
> spec
> > > really
> > > > > require this?  Other specs (like WSA) which are 
> infrastructural can
> > > > > probably make
> > > > > this kind of requirement (if they need to), but I always 
> viewed Tx as
> > > > > sitting on top
> > > > > of these infrastructural layers and not so much as being part of
> > > them.
> > > > >  Implementations
> > > > > will vary on this view but I wouldn't think Tx would want to 
> mandate
> > > > > this kind of choice.
> > > > > thanks,
> > > > > -Doug
> > > > >
> > > > >
> > > > >
> > > > > *Kevin Conner <Kevin.Conner@jboss.com>*
> > > > >
> > > > > 12/12/2005 06:29 PM
> > > > >
> > > > >    
> > > > > To
> > > > >    Christopher B Ferris/Waltham/IBM@IBMUS
> > > > > cc
> > > > >    Mark Little <mark.little@arjuna.com>, 
> ws-tx@lists.oasis-open.org
> > > > > Subject
> > > > >    Re: [ws-tx] Issue 007 - WS-C: Make Register/RegisterResponse
> > > retriable
> > > > >
> > > > >
> > > > >
> > > > >    
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > Christopher B Ferris wrote:
> > > > > > I'm not sure that using ws-a messageId is the easiest... it
> > > means that
> > > > > > impls need to remember messageId
> > > > > > which can get onerous.
> > > > >
> > > > > Something extra will have to be remembered in any case.  The 
> advantage
> > > > > of the messageId is that it already has comparison rules which 
> an EPR
> > > > > does not.  That is not to say that they can't be compared (see 
> below).
> > > > >
> > > > > > The WS-A WG avoided the issue of EPR equivalence mostly 
> because of
> > > > > issues
> > > > > > related to use of
> > > > > > EPRs to identify something. IMO, in that spirit, EPR comparison
> > > becomes
> > > > > > one of comparing the
> > > > > > <Address> element which comes down to URI equivalence issues 
> which
> > > > > can go
> > > > > > in a number of
> > > > > > directions... the namespace URI approach (straight string
> > > > > comparison) or
> > > > > > the approach which normalizes the URI
> > > > > > first before comparing.
> > > > >
> > > > > The identity associated with an EPR is more than just the address
> > > > > element though, a comparison will tell you that it uses the same
> > > > > endpoint but not that the EPRs are identical.  For example, we 
> add an
> > > > > instance identifier element which is used by the endpoint to 
> identify
> > > > > the respective instance and multiplex accordingly.
> > > > >
> > > > > As far as the current register message is concerned there are 
> three
> > > > > identifying elements.
> > > > >  - The From (or ReplyTo) EPR
> > > > >  - The ParticipantProtocolService EPR
> > > > >  - The messageID
> > > > >
> > > > > The From (or ReplyTo) EPR is unlikely to be unique enough to 
> identify
> > > > > the participant but, even if it was, this would require 
> storing more
> > > > > than a message id.  It would also require rules for EPR 
> comparison.
> > > > >
> > > > > The ParticipantProtocolService EPR will uniquely identify the
> > > > > participant but, once again, requires rules for EPR comparison.
> > > > >
> > > > > The message ID should uniquely identify the message exchange but
> > > within
> > > > > what context?
> > > > >
> > > > > The August 2005 WS-Addressing spec does not define a means of
> > > comparing
> > > > > EPRs but it does not prevent it.  We have the option to define EPR
> > > > > structure and/or rules for comparison within WS-C.
> > > > >
> > > > > The spec also states that the message ID should be 'an absolute
> > > URI that
> > > > > uniquely identifies the message'.  What it doesn't state is the
> > > context
> > > > > within which this holds true, whether this is intended to be 
> global or
> > > > > within the context of the sender.
> > > > >
> > > > > After all this there appear to be three choices
> > > > >  - use the message ID as the identifier and require it to be
> > > > >    globally unique (comparison rules already exist).
> > > > >  - define a structure for the EPRs to make them globally unique
> > > > >    and rules to make them comparable.
> > > > >  - Change the request so that it includes a unique identifier
> > > associated
> > > > >    with the EPR.
> > > > >
> > > > > My initial opinion was that the message ID already does the 
> job so why
> > > > > do we need another mechanism?  We could easily use this to handle
> > > > > retransmission issues.
> > > > >
> > > > > Having clarified my thoughts while writing this response I now 
> believe
> > > > > that the second or third choice would be preferable.  The only
> > > question
> > > > > now would be whether the EPR should remain totally opaque (the 
> last
> > > > > choice) or whether we should have a mechanism to associate an EPR
> > > with a
> > > > > participant (the second choice).
> > > > >
> > > > >                 Kev
> > > > >
> >



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