Friday, July 16, 2010

Calling webservice through loadbalancer with Oracle Soasuite 10gR3

We have all our services configured in some form of a cluster, like the SoaSuite (10.1.3.4), Filenet, Siebel etc.

When a new BPEL process was deployed and being used moe and more, we saw SOAP errors occurring and the BPEL process would timeout. The BPEL process instance was calling an external webservice through the Oracle ESB.

This is the error:

Exception on JaxRpc invoke: HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: Premature EOF encountered

The solution was to add an option to the start parameters of the containers running SOA.

-DHTTPClient.disableKeepAlives=true

I've seen other SOAPExceptions in my search that all relate to this issue.

On Oracle support its documented as a problem concerning the http_client.jar (article id 803186.1).

As we do not see this problem in non-clustered environments, it looks like the combination of a loadbalancer and http_client using keepalive is not working well. From the viewpoint of a loadbalancer it is strange to persistent connections as it cannot do the work its supposed to do.

2 comments:

  1. Anonymous3:50 AM

    I've been surfing online more than 3 hours today, yet I never found any interesting article like yours. It is pretty worth enough for me. In my view, if all web owners and bloggers made good content as you did, the net will be a lot more useful than ever before.
    My blog post - binary options Strategy

    ReplyDelete
  2. Anonymous11:59 PM

    Thanks a lot for sharing this with all folks you actually recognise
    what you're talking about! Bookmarked. Kindly also seek advice from my web site =). We could have a link trade agreement between us
    my page > free money for real

    ReplyDelete