[prev in list] [next in list] [prev in thread] [next in thread] 

List:       axis-dev
Subject:    Re: [jira] Updated: (AXIS2-789) A SOAPFault targeted at a	service	(e.g. using
From:       David Illsley <david.illsley () uk ! ibm ! com>
Date:       2006-06-30 7:51:37
Message-ID: OF65BE4B71.CFE9A498-ON8025719D.002ABEDC-8025719D.002B0956 () uk ! ibm ! com
[Download RAW message or body]

Sanjiva, All,
I'd still like to make this change. Have you been convinced or do we need 
more discussion?
Thanks,
David

P.S. This scenario has just been raised on the user list [1]
[1] http://marc.theaimsgroup.com/?l=axis-user&m=115158272830597&w=2

David Illsley/UK/IBM@IBMGB wrote on 06/01/2006 10:52:23 AM:

> Sanjiva Weerawarana <sanjiva@opensource.lk> wrote on 06/01/2006 01:56:57 

> AM:
> 
> > On Wed, 2006-05-31 at 22:29 +0100, David Illsley wrote:
> > > I'll give it a go...
> > > 
> > > It is possible to use ws-addressing to do more interesting 
> redirections 
> > > than redirection to an async callback address
> > > e.g. 1. use the ReplyTo to invoke a one-way service with the reply 
> > >         2. use a FaultTo to redirect faults to a 'collector' service 

> to 
> > > monitor failures in you application
> > > 
> > > In these cases the services invoked by the reply/fault messages 
> (including 
> > > a RelatesTo) may not be connected in any way to the webservies 
client 
> > > which originally set the MessageID and so stand no chance of 
> recognising 
> > > it.
> > > 
> > > Is that any clearer?
> > 
> > Um no :(.
> 
> That's a shame, this is quite important to me so I'll try and expand a 
> bit.
> 
> > 
> > The use of relates to has nothing to do with async in my mind: its 
just
> > a way to find an old message context and find the related operation
> > context. We don't care (at that time) whether that's used for async
> > correlation or counting potatoes.
> 
> OK, so from my perspective using it to find an old message context is 
> correlation and I think there are any number of valid situations where 
an 
> inbound message has a RelatesTo field but no active MEP in that Axis2 
> instance associated with it.
> 
> > 
> > However, if a relatesTo messageID is not found, that smells like 
rotten
> > fish to me: that means you sent my engine a message saying "hey I'm
> > related to this other message I (or someone else) sent earlier" and I
> > find that that's not the case. IMO that should raise a fault.
> 
> I see it a bit differently and don't agree with 'that's not the case'. 
The 
> message could well be related to the message id, it's just that the 
> message id is not tied to an active MEP in that Axis2 instance.
> 
> The use of WS-Addressing is not limited to WS-Addressing Core section 
3.4 
> [1] and the Request-Response MEP but can be used as desired by stack 
> protocols and applications. If, for example an application or spec 
wishes 
> to use 'correlated one way' messages it is entirely reasonable that the 
> correlation be done using the RelatesTo field (with 
> RelationshipType=reply). From the Axis2 perspective this is 2 one-way 
MEPs 
> thus when the initial outbound message is sent, the OperationContext is 
> marked as complete. When the response (for lack of a better term) 
message 
> arrives there is no OperationContext associated with the RelatesTo and 
the 
> InstanceDispatcher will throw a fault. But in this case the application 
> designer decided to do the correlation using a well known header within 
> the application logic (using RelatesTo which is exposed on the API) and 
> wants the message to be passsed to the endpoint he set as the ReplyTo.
> 
> Reasons for doing this include:
> - correlator stored in database to enable clustering/work-load 
balancing, 
> recovery
> - correlator stored in database for long running flows (reduce memory 
> requirements)
> - supporting one out - many in style messaging, not currently supported 
by 
> the Axis2 MEPS or OperationContext without writing a MEP implementation
> 
> Beyond this there are the examples I've mentioned before where a client 
> sends a message to an InOut service as a one-way and wants the response 
to 
> be received by some other one way service specified by the 
> ReplyTo/FaultTo.
> 
> I do understand why in the simple Request-Response case if an 
unrecogmised 
> RelatesTo is received in the response you want to fault but I think that 

> the fact that it is such as response should be determined before the 
check 
> (e.g. by looking at the Action, ReferenceParameters, or if 
AxisOperation). 
> However, to restrict receipt of messages containing a RelatesTo header 
to 
> the response message of a Request-Response MEP seems extreme and if it 
is 
> the case I can't see how you can set a ReplyTo or FaultTo to anything 
> other than that which would be set by the OutInAxisOperation 
automatically 
> and have the message received by Axis2?
> 
> I know that was more clear, was it any more convincing? ;-)
> 
> David
> 
> [1] http://www.w3.org/TR/2006/REC-ws-addr-core-20060509/#formreplymsg
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-dev-help@ws.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic