Wednesday, June 11, 2008

MDB EJB’s inside BPEL Server

There are 2 important message driven beans(MDB) in the BPEL server which takes care of handling the requests. The entries of these ejb’s are located in orion-ejb-jar.xml @ Oracle_Home\j2ee\home\application-deployments\orabpel\ejb_ob_engine.

WorkerBean

Oracle BPEL Server uses an MDB called WorkerBean to perform processing of requests. In the case of one-way invocation(durable process) the request to the server is placed in a queue. Inside Oracle BPEL Server, WorkerBean monitors the queue for invocation requests and then it is dequeued and assigned a new thread for servicing the request

<message-driven-deployment name="WorkerBean">

</message-driven-deployment>

InvokerBean

The invoker bean is used only for nonblocking invoke activities. It depends on the setting of nonBlockingInvoke BPEL Property. This property comes into picture while executing multiple branches of a flowor flowN activity. By default, Oracle BPEL Process Manager executes in a single thread, executing the branches sequentially instead of in parallel. When this property is set to true, BPEL Server spawns a new thread to execute the invocation. InvokerBean is the one which creates new threads to service the request.

<message-driven-deployment name="InvokerBean">

</message-driven-deployment>


The number of threads used by these ejbs has to be taken into account while configuring the number of connections to database. I will write more on these in coming blogs.


No comments: