You need to send the message with a send mediator after removing the To header with a header mediator in the fault sequence to send the fault back to client.
Thanks, Ruwan On Fri, May 15, 2009 at 2:33 AM, Murali Krishnan <[email protected]> wrote: > Thanks for the tip, Ruwan. > After including a log mediator with "full" level, I don't see this error > anymore. But, the fault response doesn't come back to the client as well. > Eventually, the client reports a "read timed out" socket exception... > Any idea why this may be happening? > Thanks again > Murali > > > > > > > ________________________________ > From: Ruwan Linton <[email protected]> > To: [email protected] > Sent: Tuesday, May 12, 2009 3:11:15 PM > Subject: Re: Synapse endpoint timeout > > You could get rid of this issue, if you put a log mediator with full log > level before sending the message out, so the log mediator will build the > message for logging. > > Thanks, > Ruwan > > On Tue, May 12, 2009 at 9:24 PM, indika kumara <[email protected] > >wrote: > > > Hi Murali > > > > What is the synapse version you are using. This is happened when try > > to use stream that has already been consumed. This is happened if the > > message has not been built. > > > > Please refer [1] > > > > [1] http://www.mail-archive.com/[email protected]/msg00564.html > > > > > > Thanks > > Indika > > > > On Tue, May 12, 2009 at 9:16 PM, Murali Krishnan <[email protected]> > wrote: > > > Thanks for the reply, indika. I think I made a small progress by > removing > > the 'To' header in the fault sequence, but am encountering a different > > exception now somewhere within axiom... Any clues why this may be > happening? > > Thanks. > > > > > > 2009-05-12 11:39:54,298 [10.128.81.1-mcmgunasek-6400] [Timer-0] ERROR > > HttpCoreNIOSender IO Error sending response messag > > > e > > > org.apache.axis2.AxisFault: problem accessing the parser. Parser > already > > accessed! > > > at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430) > > > at > > > org.apache.axis2.transport.http.SOAPMessageFormatter.writeTo(SOAPMessageFormatter.java:83) > > > at > > > org.apache.synapse.transport.nhttp.HttpCoreNIOSender.sendAsyncResponse(HttpCoreNIOSender.java:417) > > > at > > > org.apache.synapse.transport.nhttp.HttpCoreNIOSender.invoke(HttpCoreNIOSender.java:264) > > > at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:448) > > > at > > org.apache.synapse.core.axis2.Axis2Sender.sendBack(Axis2Sender.java:138) > > > at > > > org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:219) > > > at > > > org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:154) > > > at > > > org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:58) > > > at > > > org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:125) > > > at > > > org.apache.synapse.mediators.MediatorFaultHandler.onFault(MediatorFaultHandler.java:79) > > > at > > org.apache.synapse.FaultHandler.handleFault(FaultHandler.java:53) > > > at > > > org.apache.synapse.endpoints.DefaultEndpoint.onFault(DefaultEndpoint.java:192) > > > at > > > org.apache.synapse.endpoints.AddressEndpoint.onFault(AddressEndpoint.java:203) > > > at > > org.apache.synapse.FaultHandler.handleFault(FaultHandler.java:53) > > > at > > > org.apache.synapse.core.axis2.TimeoutHandler.processCallbacks(TimeoutHandler.java:123) > > > at > > org.apache.synapse.core.axis2.TimeoutHandler.run(TimeoutHandler.java:78) > > > at java.util.TimerThread.mainLoop(Timer.java:512) > > > at java.util.TimerThread.run(Timer.java:462) > > > Caused by: javax.xml.stream.XMLStreamException: problem accessing the > > parser. Parser already accessed! > > > at > > org.apache.axiom.om.impl.llom.OMStAXWrapper.next(OMStAXWrapper.java:960) > > > at > > > org.apache.axiom.om.impl.serialize.StreamingOMSerializer.serializeNode(StreamingOMSerializer.java:100) > > > at > > > org.apache.axiom.om.impl.serialize.StreamingOMSerializer.serialize(StreamingOMSerializer.java:68) > > > at > > > org.apache.axiom.om.impl.serialize.StreamingOMSerializer.serialize(StreamingOMSerializer.java:57) > > > at > > > org.apache.axiom.om.impl.util.OMSerializerUtil.serializeByPullStream(OMSerializerUtil.java:548) > > > at > > > org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.internalSerialize(SOAPEnvelopeImpl.java:232) > > > at > > > org.apache.axiom.om.impl.llom.OMElementImpl.internalSerializeAndConsume(OMElementImpl.java:947) > > > at > > > org.apache.axiom.om.impl.llom.OMNodeImpl.serializeAndConsume(OMNodeImpl.java:471) > > > at > > > org.apache.axis2.transport.http.SOAPMessageFormatter.writeTo(SOAPMessageFormatter.java:79) > > > ... 17 more > > > 2009-05-12 11:39:54,313 [10.128.81.1-mcmgunasek-6400] [Timer-0] ERROR > > Axis2Sender Unexpected error sending message back > > > org.apache.axis2.AxisFault: IO Error sending response message > > > at > > > org.apache.synapse.transport.nhttp.HttpCoreNIOSender.handleException(HttpCoreNIOSender.java:550) > > > at > > > org.apache.synapse.transport.nhttp.HttpCoreNIOSender.sendAsyncResponse(HttpCoreNIOSender.java:421) > > > at > > > org.apache.synapse.transport.nhttp.HttpCoreNIOSender.invoke(HttpCoreNIOSender.java:264) > > > at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:448) > > > at > > org.apache.synapse.core.axis2.Axis2Sender.sendBack(Axis2Sender.java:138) > > > at > > > org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:219) > > > at > > > org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:154) > > > at > > > org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:58) > > > at > > > org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:125) > > > at > > > org.apache.synapse.mediators.MediatorFaultHandler.onFault(MediatorFaultHandler.java:79) > > > at > > org.apache.synapse.FaultHandler.handleFault(FaultHandler.java:53) > > > at > > > org.apache.synapse.endpoints.DefaultEndpoint.onFault(DefaultEndpoint.java:192) > > > at > > > org.apache.synapse.endpoints.AddressEndpoint.onFault(AddressEndpoint.java:203) > > > at > > org.apache.synapse.FaultHandler.handleFault(FaultHandler.java:53) > > > at > > > org.apache.synapse.core.axis2.TimeoutHandler.processCallbacks(TimeoutHandler.java:123) > > > at > > org.apache.synapse.core.axis2.TimeoutHandler.run(TimeoutHandler.java:78) > > > at java.util.TimerThread.mainLoop(Timer.java:512) > > > at java.util.TimerThread.run(Timer.java:462) > > > Caused by: org.apache.axis2.AxisFault: problem accessing the parser. > > Parser already accessed! > > > at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430) > > > at > > > org.apache.axis2.transport.http.SOAPMessageFormatter.writeTo(SOAPMessageFormatter.java:83) > > > at > > > org.apache.synapse.transport.nhttp.HttpCoreNIOSender.sendAsyncResponse(HttpCoreNIOSender.java:417) > > > ... 16 more > > > Caused by: javax.xml.stream.XMLStreamException: problem accessing the > > parser. Parser already accessed! > > > at > > org.apache.axiom.om.impl.llom.OMStAXWrapper.next(OMStAXWrapper.java:960) > > > at > > > org.apache.axiom.om.impl.serialize.StreamingOMSerializer.serializeNode(StreamingOMSerializer.java:100) > > > at > > > org.apache.axiom.om.impl.serialize.StreamingOMSerializer.serialize(StreamingOMSerializer.java:68) > > > at > > > org.apache.axiom.om.impl.serialize.StreamingOMSerializer.serialize(StreamingOMSerializer.java:57) > > > at > > > org.apache.axiom.om.impl.util.OMSerializerUtil.serializeByPullStream(OMSerializerUtil.java:548) > > > at > > > org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.internalSerialize(SOAPEnvelopeImpl.java:232) > > > at > > > org.apache.axiom.om.impl.llom.OMElementImpl.internalSerializeAndConsume(OMElementImpl.java:947) > > > at > > > org.apache.axiom.om.impl.llom.OMNodeImpl.serializeAndConsume(OMNodeImpl.java:471) > > > at > > > org.apache.axis2.transport.http.SOAPMessageFormatter.writeTo(SOAPMessageFormatter.java:79) > > > ... 17 more > > > 2009-05-12 11:39:59,756 [10.128.81.1-mcmgunasek-6400] > > [HttpClientWorker-1] WARN SynapseCallbackReceiver Synapse receive > > > d a response for the request with message Id : > > urn:uuid:45D49B9CD7B413D90D45484550376096-651399307 But a callback is not > > > registered (anymore) to process this response > > > > > > > > > > > > > > > > > > > > > ________________________________ > > > From: indika kumara <[email protected]> > > > To: [email protected] > > > Sent: Tuesday, May 12, 2009 1:02:33 AM > > > Subject: Re: Synapse endpoint timeout > > > > > > Hi > > > > > > Error you have got is related with malformed endpoint URL.You can see > > > the timeout handler has done timeout processing. > > > > > > BTW, before sending error back to client, remove existing βtoβ header. > > > In your fault sequence, add β<header name="To" action="remove"/>β > > > before send mediator. > > > > > > Thanks > > > Indika > > > > > > On Tue, May 12, 2009 at 1:10 AM, Murali Krishnan <[email protected]> > > wrote: > > >> Hi, > > >> I'm trying out the <timeout> element functionality available for the > > various endpoints in Synapse and am having some difficulty getting it to > > work. Basically I have a synapse proxy service with definition as shown > > below and am forwarding the request to the SimpleStockQuoteService which > > responds after 20 secs (using thread.sleep), but since the endpoint > timeout > > value is set to 3secs, it should timeout sooner and return a fault ...but > > I'm getting an error. > > >> Is there an example of how to get this working? > > >> Thanks > > >> Murali > > >> > > >> ---- proxy defn -------- > > >> > > >> <proxy name="DelayedStockQuoteProxy"> > > >> <target> > > >> <endpoint> > > >> > > >> <timeout> > > >> <duration>3</duration> > > >> <action>fault</action> > > >> </timeout> > > >> </address> > > >> </endpoint> > > >> <outSequence> > > >> <send/> > > >> </outSequence> > > >> <faultSequence> > > >> <log> > > >> <property name="fault" value="executing fault > > sequence!"/> > > >> </log> > > >> <property name="RESPONSE" value="true" /> > > >> <send/> > > >> </faultSequence> > > >> </target> > > >> <publishWSDL > > uri="file:repository/conf/sample/resources/proxy/sample_proxy_1.wsdl"/> > > >> </proxy> > > >> </definitions> > > >> > > >> --------- synapse output ------------- > > >> > > >> 2009-05-11 15:30:45,820 [10.128.81.1-mcmgunasek-6400] [Timer-0] ERROR > > HttpCoreNIOSender Malformed destination EPR : /soa > > >> p/DelayedStockQuoteProxy.DelayedStockQuoteProxyHttpSoap11Endpoint > > >> java.net.MalformedURLException: no protocol: > > /soap/DelayedStockQuoteProxy.DelayedStockQuoteProxyHttpSoap11Endpoint > > >> at java.net.URL.<init>(URL.java:567) > > >> at java.net.URL.<init>(URL.java:464) > > >> at java.net.URL.<init>(URL.java:413) > > >> at > > > org.apache.synapse.transport.nhttp.HttpCoreNIOSender.sendAsyncRequest(HttpCoreNIOSender.java:317) > > >> at > > > org.apache.synapse.transport.nhttp.HttpCoreNIOSender.invoke(HttpCoreNIOSender.java:256) > > >> at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:448) > > >> at > > org.apache.synapse.core.axis2.Axis2Sender.sendBack(Axis2Sender.java:138) > > >> at > > > org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:219) > > >> at > > > org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:154) > > >> at > > > org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:58) > > >> at > > > org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:125) > > >> at > > > org.apache.synapse.mediators.MediatorFaultHandler.onFault(MediatorFaultHandler.java:79) > > >> at > > org.apache.synapse.FaultHandler.handleFault(FaultHandler.java:53) > > >> at > > > org.apache.synapse.endpoints.DefaultEndpoint.onFault(DefaultEndpoint.java:192) > > >> at > > > org.apache.synapse.endpoints.AddressEndpoint.onFault(AddressEndpoint.java:203) > > >> at > > org.apache.synapse.FaultHandler.handleFault(FaultHandler.java:53) > > >> at > > > org.apache.synapse.core.axis2.TimeoutHandler.processCallbacks(TimeoutHandler.java:123) > > >> at > > org.apache.synapse.core.axis2.TimeoutHandler.run(TimeoutHandler.java:78) > > >> at java.util.TimerThread.mainLoop(Timer.java:512) > > >> at java.util.TimerThread.run(Timer.java:462) > > >> 2009-05-11 15:30:45,820 [10.128.81.1-mcmgunasek-6400] [Timer-0] ERROR > > Axis2Sender Unexpected error sending message back > > >> org.apache.axis2.AxisFault: Malformed destination EPR : > > /soap/DelayedStockQuoteProxy.DelayedStockQuoteProxyHttpSoap11End > > >> point > > >> at > > > org.apache.synapse.transport.nhttp.HttpCoreNIOSender.handleException(HttpCoreNIOSender.java:550) > > >> at > > > org.apache.synapse.transport.nhttp.HttpCoreNIOSender.sendAsyncRequest(HttpCoreNIOSender.java:349) > > >> at > > > org.apache.synapse.transport.nhttp.HttpCoreNIOSender.invoke(HttpCoreNIOSender.java:256) > > >> at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:448) > > >> at > > org.apache.synapse.core.axis2.Axis2Sender.sendBack(Axis2Sender.java:138) > > >> at > > > org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:219) > > >> at > > > org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:154) > > >> at > > > org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:58) > > >> at > > > org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:125) > > >> at > > > org.apache.synapse.mediators.MediatorFaultHandler.onFault(MediatorFaultHandler.java:79) > > >> at > > org.apache.synapse.FaultHandler.handleFault(FaultHandler.java:53) > > >> at > > > org.apache.synapse.endpoints.DefaultEndpoint.onFault(DefaultEndpoint.java:192) > > >> at > > > org.apache.synapse.endpoints.AddressEndpoint.onFault(AddressEndpoint.java:203) > > >> at > > org.apache.synapse.FaultHandler.handleFault(FaultHandler.java:53) > > >> at > > > org.apache.synapse.core.axis2.TimeoutHandler.processCallbacks(TimeoutHandler.java:123) > > >> at > > org.apache.synapse.core.axis2.TimeoutHandler.run(TimeoutHandler.java:78) > > >> at java.util.TimerThread.mainLoop(Timer.java:512) > > >> at java.util.TimerThread.run(Timer.java:462) > > >> Caused by: java.net.MalformedURLException: no protocol: > > /soap/DelayedStockQuoteProxy.DelayedStockQuoteProxyHttpSoap11End > > >> point > > >> at java.net.URL.<init>(URL.java:567) > > >> at java.net.URL.<init>(URL.java:464) > > >> at java.net.URL.<init>(URL.java:413) > > >> at > > > org.apache.synapse.transport.nhttp.HttpCoreNIOSender.sendAsyncRequest(HttpCoreNIOSender.java:317) > > >> ... 16 more > > >> > > >> > > >> > > >> > > > > > > > > > > > > > > > > > > -- > Ruwan Linton > Senior Software Engineer & Product Manager; WSO2 ESB; http://wso2.org/esb > WSO2 <http://wso2.org/esb%0AWSO2> Inc.; http://wso2.org > email: [email protected]; cell: +94 77 341 3097 > blog: http://ruwansblog.blogspot.com > > > > > -- Ruwan Linton Senior Software Engineer & Product Manager; WSO2 ESB; http://wso2.org/esb WSO2 Inc.; http://wso2.org email: [email protected]; cell: +94 77 341 3097 blog: http://ruwansblog.blogspot.com
