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]
