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.
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
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.
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.