Hi Sathwik, Thanks for quick reply.
The façade process is request-response. When it receives a request, it invokes the target process. Each target process replies as soon as it receives a request (before starting its work) - so there is no blocking in the target process for the façade process. As soon as the façade receives the reply from the target process it replies back to the client - no extra processing in the façade process. >> client side raises the exception since it has not recived the response >> within the stiputaled time. This is obvious. However I am looking for the reasons for this. As I mentioned this happens rarely - not always and also randomly for any target process - not for any specific target process. Hope I am clear. Regards, Jitendra -----Original Message----- From: Sathwik B P [mailto:[email protected]] Sent: Tuesday, March 18, 2014 2:28 PM To: [email protected] Subject: Re: SocketTimeoutException in ODE Hi Jitendra, Is your facade process exposed as request-response or one-way mep? In case of request-response mep and if the facade process is a time consuming process, then you are bound to see read time out exceptions. Process execution within ODE is asyncronous, and hence the process continues to completion. But your transport channel on the client side raises the exception since it has not recived the response within the stiputaled time. regards, sathwik On Tue, Mar 18, 2014 at 1:27 AM, Kharche, Jitendra < [email protected]> wrote: > Hi, > > I am using ODE 1.3.6 on Tomcat 7.0.47 with 11 processes deployed into it. > On top of these I have a process that acts as a façade so that clients > have a single interface to call. The interface of the façade process > is a consolidation of interfaces provided by all processes. This > façade process then invokes the actual process. > > Each process is a long running using explicit correlation. > Each process has 2 receive activities - first receive starts the > process and second receive after receiving a completion reply from the > application adapter. > There is a scheduler to execute processes in scheduled manner. The > scheduler invokes the façade process which then invokes the target process. > > Randomly (once in 2-3 days for any random process), I get > SocketTimeoutException in client (the scheduler) as follows during > invocation of the process. > Sometimes it is also observed that, even though the client got the > exception the process started and completed successfully. > > What could be the cause? > > Thanks in advance. > > Exception in client: > > > javax.xml.ws.WebServiceException: Could not send Message. > > at > org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:145 > ) > > at com.sun.proxy.$Proxy104.startEmpSync3D(Unknown > Source) > > at > com.geo.ml.scheduler.jobs.EmpSync3DJob.executeProcess(EmpSync3DJob.jav > a:115) > > at > com.geo.ml.scheduler.jobs.EmpSync3DJob.execute(EmpSync3DJob.java:49) > > at > org.quartz.core.JobRunShell.run(JobRunShell.java:213) > > at > org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.ja > va:557) > > Caused by: java.net.SocketTimeoutException: SocketTimeoutException > invoking [Façade Process URL]: Read timed out > > at > sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) > > at > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructo > rAccessorImpl.java:57) > > at > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingCo > nstructorAccessorImpl.java:45) > > at > java.lang.reflect.Constructor.newInstance(Constructor.java:526) > > at > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapExcep > tion(HTTPConduit.java:1467) > > at > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HT > TPConduit.java:1452) > > at > org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56 > ) > > at > org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:659) > > at > org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndin > gInterceptor.handleMessage(MessageSenderInterceptor.java:62) > > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercepto > rChain.java:262) > > at > org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:530) > > at > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:463) > > at > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:366) > > at > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:319) > > at > org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96) > > at > org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134 > ) > > ... 5 more > > Caused by: java.net.SocketTimeoutException: Read timed out > > at java.net.SocketInputStream.socketRead0(Native > Method) > > at > java.net.SocketInputStream.read(SocketInputStream.java:152) > > at > java.net.SocketInputStream.read(SocketInputStream.java:122) > > at > sun.security.ssl.InputRecord.readFully(InputRecord.java:442) > > at > sun.security.ssl.InputRecord.read(InputRecord.java:480) > > at > sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:927) > > at > sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:884) > > at > sun.security.ssl.AppInputStream.read(AppInputStream.java:102) > > at > java.io.BufferedInputStream.fill(BufferedInputStream.java:235) > > at > java.io.BufferedInputStream.read1(BufferedInputStream.java:275) > > at > java.io.BufferedInputStream.read(BufferedInputStream.java:334) > > at > sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:687) > > at > sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:633) > > at > sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConn > ection.java:1323) > > at > java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:468) > > at > sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(Http > sURLConnectionImpl.java:338) > > at > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleRe > sponseInternal(HTTPConduit.java:1604) > > at > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleRe > sponse(HTTPConduit.java:1530) > > at > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HT > TPConduit.java:1438) > > ... 15 more > > > Regards, > Jitendra > >
