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

Reply via email to