1.

How Does A Async Request Run In The Backend?

Answer»

The sequences of EVENTS involved in the delivery of invoke messages is as follows: 

  • The client posts the message to the delivery service. 
  • The delivery service saves the invocation message to the dlv_message table. The initial state of the message is 0 (undelivered). 
  • The delivery service schedules a dispatcher message to process the invocation message asynchronously. 
  • The dispatcher message is delivered to the dispatcher through the afterCompletion() call. Therefore, the message is not delivered if the JTA transaction fails. 
  • The dispatcher sends the JMS message to the queue. PLACES a very SHORT JMS message in the in-memory queue (jms/collaxa/BPELWorkerQueue) in OC4J JMS. The small JMS message triggers the Worker Bean in the downstream step. 
  • This message is then picked up by a Worker Bean MDB, which requests the dispatcher for work to execute. If the number of Worker Bean MDBs currently processing activities for the domain is sufficient, the dispatcher module may decide not to request another MDB. 
  • MDB fetches the invocation message from the dispatcher. 
  • MDB passes the invocation message to Oracle BPEL Server, which updates the invocation message state to 1 (delivered), creates the instance, and executes the activities in the flow until a breakpoint activity is reached.

The sequences of events involved in the delivery of invoke messages is as follows: 



Discussion

No Comment Found