Search code examples
javatimeoutweblogicsoabpel

Time Out in SOA


I have an app deployed in weblogic server. In that app, I am calling an async webservice through a bpel in a composite. It is getting timed out after 5 minutes. I tried adding the following code during the invoke activity: bpelx:for="'PTM20'" But still timeout is 5 minutes.

Is there anything I need to do other than adding this? Is there any global SOA properties to modify?

I am invoking an aync webservice through a bpel like this:

< invoke name="myprocess"  inputVariable="varx"  operation="method" bpelx:for="'PTM20'" ....>

The exception I am getting is following:

<bpelFault><faultType>0</faultType>
<remoteFault xmlns="http://schemas.oracle.com/bpel/extension">
<part name="summary">
<summary>oracle.fabric.common.FabricInvocationException: Unable to invoke endpoint URI "my_webservice_url" successfully due to: javax.xml.soap.SOAPException: javax.xml.soap.SOAPException: Message send failed: Read timed out</summary></part>
<part name="detail"><detail>Unable to invoke endpoint URI "my_webservice_url" successfully due to: javax.xml.soap.SOAPException: javax.xml.soap.SOAPException: Message send failed: Read timed out</detail></part>
<part name="code"><code>null</code></part>
</remoteFault></bpelFault>

While going through Audit Trail, I can see the time difference between invocation and time out happened is 5 minutes. It did not wait for 20 minutes as expected.

Please help.

Thanks.


Solution

  • There are couple places to consider when configuring SOA/BPEL engine timeouts:

    1. Domain wide global JTA timeout settings
    2. individual BPEL engine EJB timeouts

    Ideally you never want to hit those timeouts because you won't be able to do proper error handling. To avoid that you should set individual timeouts on outgoing references links and make sure they have smaller values than two mentioned above.

    There are many blog posts available on this subject, for starters take a look at this post