ode-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jayant Vaish (JIRA)" <j...@apache.org>
Subject [jira] [Created] (ODE-1010) MEX response is sent with delay
Date Sat, 07 Dec 2013 18:37:35 GMT
Jayant Vaish created ODE-1010:

             Summary: MEX response is sent with delay
                 Key: ODE-1010
                 URL: https://issues.apache.org/jira/browse/ODE-1010
             Project: ODE
          Issue Type: Bug
          Components: BPEL Runtime
            Reporter: Jayant Vaish

In all the message exchanges where the response is send this issue comes which can be explained
by following scenarios.

Scenario 1: Synchronous messages exchange via wsdl call.
When process is invoked and reply is send in "response" activity after that one forEach loop
is their.Process is invoked by INVOKE_INTERNAL job and with the same job with REPLY, response
is set and moves to forEach without sending the response, which is expected as response will
be send after the transaction is committed (following code illustrates).

_engine._contexts.scheduler.registerSynchronizer(new Scheduler.Synchronizer() {
            public void afterCompletion(boolean success) {
                __log.debug("Received myrole mex response callback");
                if( success ) {
                    ResponseCallback callback = _waitingCallbacks.remove(cid);
                    if (callback != null) callback.responseReceived();
                } else {
                    __log.warn("Transaction is rolled back on sending back the response.");
            public void beforeCompletion() {

So, the response is send after the forEach (there can be other scenarios as well other than
forEach) which delays the response.

Scenario 2: Synchronous messages exchange via template call.
Instead of invoking process with wsdl call (as done in scenario 1) we do by template call
(receive-reply two-way invocation) then also same issue comes as described in scenario 1.

Scenario 3: Asynchronously sending response via template approach. 
Response is send by INVOKE_INTERNAL job and that job is not committed until forEach is executed.

This message was sent by Atlassian JIRA

View raw message