[mule-user] Service Timeout

309 views
Skip to first unread message

suneet Shah

unread,
Feb 16, 2011, 12:06:51 PM2/16/11
to us...@mule.codehaus.org
Hello,

I have a service which is invoked using the mule client. The service operation is long running - 45sec or more. Depending on the amount of data processed this could be signficantly longer. It seems as though the operation is timing out. Is there away that I can remove the timeout value or is there is a better way to do this?
I have pasted below the relevant configurations and the error that I am getting.

thanks for your help

*Client code to initiate the service:*

MuleContextFactory muleContextFactory = new DefaultMuleContextFactory();

ConfigurationBuilder builder = new SpringXmlConfigurationBuilder("mule-service-client-config.xml");
MuleContextBuilder contextBuilder = new DefaultMuleContextBuilder();
MuleContext context = muleContextFactory.createMuleContext(builder, contextBuilder);
context.start();

Map<String,String> msgPropMap = new HashMap<String,String>();
msgPropMap.put("SERVICE_HOST", serviceHost);
msgPropMap.put("SERVICE_CONTEXT", serviceContext);
MuleClient client = new MuleClient(context);
client.sendAsync("vm://synchronizationMessage", (SynchConfig)config, msgPropMap);

Flow configuration:

<flow name="synchronizationClient">
<vm:inbound-endpoint path="synchronizationMessage" exchange-pattern="one-way" >
</vm:inbound-endpoint>

<outbound-endpoint
address="http://#[header:INBOUND:SERVICE_HOST]/#[header:INBOUND:SERVICE_CONTEXT]IdentitySynchWebService" exchange-pattern="request-response" >
<cxf:jaxws-client serviceClass="org.openiam.idm.srvc.synch.ws.IdentitySynchWebService" operation="startSynchronization" >
</cxf:jaxws-client>
</outbound-endpoint>
</flow>


<model name="IdentitySynchServiceModel">
<service name="IdentitySynchWebService">
<inbound>
<inbound-endpoint address="${webservice.path}IdentitySynchWebService" exchange-pattern="request-response">
<cxf:jaxws-service />
</inbound-endpoint>
</inbound>
<component>
<spring-object bean="synchServiceWS" />
</component>
</service>
</model>


*Error:*

org.apache.cxf.interceptor.Fault: Could not send message to Mule.
at org.mule.module.cxf.transport.MuleUniversalConduit$2.handleMessage(MuleUniversalConduit.java:191)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:247)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:516)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:322)
at org.mule.module.cxf.CxfOutboundMessageProcessor.doSendWithClient(CxfOutboundMessageProcessor.java:234)
at org.mule.module.cxf.CxfOutboundMessageProcessor.process(CxfOutboundMessageProcessor.java:127)

....
Caused by: org.mule.api.transport.DispatchException: Failed to route event via endpoint: org.mule.endpoint.DynamicOutboundEndpoint@5c5f3b. Message payload is of type: PostMethod
at org.mule.transport.http.HttpClientMessageDispatcher.execute(HttpClientMessageDispatcher.java:152)
at org.mule.transport.http.HttpClientMessageDispatcher.doSend(HttpClientMessageDispatcher.java:260)
at org.mule.transport.AbstractMessageDispatcher.process(AbstractMessageDispatcher.java:80)
at org.mule.transport.AbstractConnector$DispatcherMessageProcessor.process(AbstractConnector.java:2452)
at org.mule.module.cxf.CxfOutboundMessageProcessor.processNext(CxfOutboundMessageProcessor.java:151)
at org.mule.module.cxf.transport.MuleUniversalConduit.processNext(MuleUniversalConduit.java:346)
at org.mule.module.cxf.transport.MuleUniversalConduit.dispatchMuleMessage(MuleUniversalConduit.java:246)
... 38 more
Caused by: java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)


2011-02-15 23:28:20,279 ERROR [org.mule.exception.DefaultServiceExceptionStrategy]
********************************************************************************
Message : Failed to route event via endpoint: org.mule.endpoint.DynamicOutboundEndpoint@5c5f3b. Message payload is of type: PostMethod
Code : MULE_ERROR-42999
--------------------------------------------------------------------------------
Exception stack is:
1. Read timed out (java.net.SocketTimeoutException)
java.net.SocketInputStream:-2 (null)
2. Failed to route event via endpoint: org.mule.endpoint.DynamicOutboundEndpoint@5c5f3b. Message payload is of type: PostMethod (org.mule.api.transport.DispatchException)
org.mule.transport.http.HttpClientMessageDispatcher:152 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/transport/DispatchException.html)
--------------------------------------------------------------------------------
Root Exception stack trace:
java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
+ 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email


suneet Shah

unread,
Feb 16, 2011, 3:52:44 PM2/16/11
to us...@mule.codehaus.org
I've resolved the timeout issue by adding an outbound-endpoint responseTimeout.
This appears to work fine. But if I run these operation in a loop, I am find that it memory consumption keeps increasing till gets to a little over 1GB. Then the system gets very slow, the timeout comes back and then it runs out of memory

Is there something that I am doing wrong in the way that I am using the mule client or the configuration of my flows? I am using mule 3.1
How can I troubleshoot this.

thanks

Shipra Thakkar

unread,
Aug 5, 2011, 1:06:28 PM8/5/11
to us...@mule.codehaus.org
I'm facing a similar problem. Were you able to identify a solution that doesn't impact the memory?

Thanks!

Reply all
Reply to author
Forward
0 new messages