I agree with Sanjiva that it is a bit confusing to add an out mediator for a fire and forget scenario. To my feeling the SOAP Fault response message that is logged when I add an out mediator should not be dependent on the out mediator, at least for a fire and forget scenario. Asankha, what's your opinion on this?
Tijs > > van: Sanjiva Weerawarana <[EMAIL PROTECTED]> > datum: 2006/11/27 Mon AM 04:00:55 MET > aan: [email protected] > onderwerp: RE: Fire and forget MEP > > It seems to me Synapse should always log an error if something goes > wrong. The default message execution should do that even with no > mediators present. > > Sanjiva. > > On Sun, 2006-11-26 at 19:36 +0100, Tijs Rademakers wrote: > > Hi Asankha, > > > > > > > > I think you are right about your comments on the error handling. > > > > My misconception was based on an example where I did not use an out > > mediator in my Synapse flow, only an in mediator. > > > > In this case no error message is logged anywhere. When I added the out > > mediator I could see the fault message. > > > > > > > > Thanks, > > > > > > > > Tijs > > > > > > > > -----Oorspronkelijk bericht----- > > Van: Asankha C. Perera [mailto:[EMAIL PROTECTED] > > Verzonden: zondag 26 november 2006 11:33 > > Aan: [email protected] > > Onderwerp: Re: Fire and forget MEP > > > > > > > > Hi Tijs > > > > > > > > > > Thanks for your very fast reply and fix! > > > > > > You are welcome! > > > > > > > > The fire and forget MEP now works. > > I have one comment at this moment. Because of the action value error of the > > previous version I think the error handling of the fire and forget MEP does > > not work correctly. When an error occurs in the web service (for example > > the exception that the action mapping can not be found), I think this error > > should be logged within Synapse. Now I could only retrieve the error in a > > request/response MEP. In the fire and forget MEP the error just is not > > logged anywhere. > > > > > > The ServiceClient.fireAndForget() API on your client side will not > > return you an error as the message is successfully delivered to > > Synapse. (See > > http://ws.apache.org/axis2/1_1/api/org/apache/axis2/client/ServiceClient.html#fireAndForget(org.apache.axiom.om.OMElement > > > > - i.e. it will only return you errors such as host not found...) > > > > However, if Synapse receives an error message from a back-end server > > (such as the Axis2 instance with example #1) you can log this message > > (i.e. the SOAP fault) at Synapse using the Log mediator. Although > > Synapse will try to send this back to the client, the client will not > > accept/process this reply. Hence I think that the current operation is > > correct from both the Synapse point of view and the fireAndForget() > > API call.... > > > > I tried example #1 with the 'ant placeorder' client but without > > deploying the SimpleStockQuoteService on the Axis2 instance.. Here is > > the trace > > > > Synapse received the request from the client > > [HttpConnection-8080-1] DEBUG SynapseMessageReceiver - Synapse > > received a new message... > > [HttpConnection-8080-1] DEBUG SynapseMessageReceiver - Received > > To: /StockQuote > > [HttpConnection-8080-1] DEBUG SynapseMessageReceiver - SOAPAction: > > urn:placeOrder > > [HttpConnection-8080-1] DEBUG SynapseMessageReceiver - Body : > > <?xml version='1.0' > > encoding='utf-8'?><soapenv:Envelope..<m0:symbol>IBM</m0:symbol></m0:order></m0:placeOrder></soapenv:Body></soapenv:Envelope> > > [HttpConnection-8080-1] DEBUG SynapseMediator - Synapse main > > mediator :: mediate() > > .... > > [HttpConnection-8080-1] DEBUG SendMediator - Sending To: > > http://localhost:9000/axis2/services/SimpleStockQuoteService > > [HttpConnection-8080-1] DEBUG SendMediator - SOAPAction: > > urn:placeOrder > > [HttpConnection-8080-1] DEBUG SendMediator - Body : > > <?xml version='1.0' > > encoding='utf-8'?><soapenv:Envelope...<m0:symbol>IBM</m0:symbol></m0:order></m0:placeOrder></soapenv:Body></soapenv:Envelope> > > and sent it to the specified endpoint > > [HttpConnection-8080-1] DEBUG Axis2FlexibleMEPClient - sending [add = > > false] [sec = false] [ rm = false] [ to Address: > > http://localhost:9000/axis2/services/SimpleStockQuoteService] > > It receives a SOAP fault from the Axis2 server that the service cannot > > be found > > [HttpConnection-8080-1] DEBUG SynapseMediator - Synapse main > > mediator :: mediate() > > .... > > Its trying to send this back to the client now... > > [HttpConnection-8080-1] DEBUG SendMediator - Sending To: null > > [HttpConnection-8080-1] DEBUG SendMediator - SOAPAction: > > urn:placeOrder > > [HttpConnection-8080-1] DEBUG SendMediator - Body : > > <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope > > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header > > /><soapenv:Body><soapenv:Fault><faultcode>soapenv:Client</faultcode><faultstring>Service > > not found operation terminated > > !!</faultstring><detail><Exception>org.apache.axis2.AxisFault: Service not > > found operation > > terminated....</Exception></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope> > > > > If you execute the client call to Synapse through TCPMon you will > > notice that a HTTP 200 message with the error was sent back to the > > client by Synapse, but was ignored at the client end - as expected. > > > > thanks > > asankha > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] For > > additional commands, e-mail: [EMAIL PROTECTED] > -- > Sanjiva Weerawarana, Ph.D. > Founder & Director; Lanka Software Foundation; http://www.opensource.lk/ > Founder, Chairman & CEO; WSO2, Inc.; http://www.wso2.com/ > Director; Open Source Initiative; http://www.opensource.org/ > Member; Apache Software Foundation; http://www.apache.org/ > Visiting Lecturer; University of Moratuwa; http://www.cse.mrt.ac.lk/ > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
