INVOKE_CHECK jobs are not cleaned up
------------------------------------

                 Key: ODE-817
                 URL: https://issues.apache.org/jira/browse/ODE-817
             Project: ODE
          Issue Type: Bug
          Components: BPEL Runtime
    Affects Versions: 2.0-beta2
         Environment: Path: .
URL: http://svn.apache.org/repos/asf/ode/trunk
Repository Root: http://svn.apache.org/repos/asf
Repository UUID: 13f79535-47bb-0310-9956-ffa450edef68
Revision: 927259
Node Kind: directory
Schedule: normal
Last Changed Author: vanto
Last Changed Rev: 915457
Last Changed Date: 2010-02-24 01:57:37 +0800 (Wed, 24 Feb 2010)

            Reporter: Terry Mueller


After running the system for a while, we now have 1000's of entries in the 
ode_job table with type = 'INVOKE_CHECK'.

The handler of these events doesn't appear to invoke jobCompleted(). The 
following patch appears to work. Note that the null check is also required for 
longer timeouts.


Index: engine/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java
===================================================================
--- engine/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java 
(revision 927259)
+++ engine/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java 
(working copy)
@@ -555,11 +555,12 @@
                 if (__log.isDebugEnabled()) __log.debug("handleWorkEvent: 
InvokeCheck event for mexid " + j.getMexId());
 
                 PartnerRoleMessageExchange mex = (PartnerRoleMessageExchange) 
getMessageExchange(j.getMexId());
-                if (mex.getStatus() == MessageExchange.Status.ASYNC || 
mex.getStatus() == MessageExchange.Status.ACK) {
+                if (mex != null && (mex.getStatus() == 
MessageExchange.Status.ASYNC || mex.getStatus() == MessageExchange.Status.ACK)) 
{
                     String msg = "No response received for invoke (mexId=" + 
j.getMexId() + "), forcing it into a failed state.";
                     if (__log.isDebugEnabled()) __log.debug(msg);
                     
mex.replyWithFailure(MessageExchange.FailureType.COMMUNICATION_ERROR, msg, 
null);
                 }
+                process._contexts.scheduler.jobCompleted(jobInfo.jobName);
                 return;
             }


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to