even when the first action of bpel is return true to the calling esb. It still waits until the whole bpel is finished. I had to create an asynchronous bpel process with a synchronous routing rule. Now the esb dequeues the next messages while the bpel is still running. Here is a example of the esb and bpel process.
First we add a jms adapter to the esb project. JDeveloper creates the adapter with a router.

The next step is to create a bpel project and make sure you use the asynchronous option.

In the bpel editor we first initiate the callback client and after that we do our business in my case we wait for a few seconds. We can deploy this bpel project to the soa suite server.
We return to the esb project where we add a soap adapter. This soap adapter is the wsdl url to bpel process. Next we add a routing rule to this bpel web service.

Now we can deploy this esb project to the soa suite server. If we add 10 messages to the queue we see that the esb does not wait now for the bpel process to finish.

Another important factor to consider to improve ESB performance is to use best of the breed XML parser, such as vtd-xml
ReplyDeletehttp://vtd-xml.sourceforge.net