Question
· Oct 18, 2018

General BPL Behaviour

Hello All!

I have a query regarding general behaviour of a business process in Ensemble. 

I have a BPL which has a call block out to an operation (Adapter class EnsLib.SOAP.OutboundAdapter).  The call to this operation is synchronous (i.e. the Asynchronous box is not ticked), with a long time out value. and the pool size of the process is set to 1 in the management portal.

 

What I am seeing is that when messages are being processed, a second message is being processed by the BPL before the first message that entered the BPL has had a response back from the call to the operation.  I was not expecting this behaviour and am wandering how I can ensure that the BPL does not start processing the next message until the first message has received a response back from the call block? (and then processed that response accordingly).

 

EXAMPLE:

Message 1:        

 

Message 2:

 

Message 2 is being processed in the BPL and makes a call out [2] before message 1 has been fully processed by the BPL?

Discussion (9)1
Log in or sign up to continue

Thanks Julian,

I have posed the traces of both messages below.  The process makes several calls to the operation.  As you ca see by the timings in the trace window, Message 2 is in the process making calls during the time that Message 1 is still in the process?  Could the BPL be starting to process Message 2 inbetween processing Message 1? (whilst waiting for Call Responses for Message 1?)

Message 1:

Message 2:

Thank you Giba!

Yes I have now gone back and changed the call from the Business Service to act synchronously and this has rectified the issue!  The simplest way to do this was to set the Ack Mode to 'application' so that a new message was not received on the Service until the process had sent back an application Ack for the previous message (which it does at the end of the process).

Many thanks for all of your help solving this!