You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by se...@apache.org on 2009/04/30 23:36:05 UTC

svn commit: r770456 - in /ode/branches/APACHE_ODE_1.X: bpel-dao/src/main/java/org/apache/ode/bpel/dao/ bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/ dao-hibernate/src/main/java/org/apache/...

Author: seanahn
Date: Thu Apr 30 21:36:05 2009
New Revision: 770456

URL: http://svn.apache.org/viewvc?rev=770456&view=rev
Log:
sometimes mex is deleted too early

Modified:
    ode/branches/APACHE_ODE_1.X/bpel-dao/src/main/java/org/apache/ode/bpel/dao/MessageExchangeDAO.java
    ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
    ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/MessageExchangeDAOImpl.java
    ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/MessageExchangeDaoImpl.java
    ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MessageExchangeDAOImpl.java

Modified: ode/branches/APACHE_ODE_1.X/bpel-dao/src/main/java/org/apache/ode/bpel/dao/MessageExchangeDAO.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-dao/src/main/java/org/apache/ode/bpel/dao/MessageExchangeDAO.java?rev=770456&r1=770455&r2=770456&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-dao/src/main/java/org/apache/ode/bpel/dao/MessageExchangeDAO.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-dao/src/main/java/org/apache/ode/bpel/dao/MessageExchangeDAO.java Thu Apr 30 21:36:05 2009
@@ -246,4 +246,8 @@
 
     void release(boolean doClean);
 
+    /**
+     * Deletes messages that arrived before the route is setup
+     */
+    void releasePremieMessages();
 }

Modified: ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java?rev=770456&r1=770455&r2=770456&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java Thu Apr 30 21:36:05 2009
@@ -1386,6 +1386,10 @@
         if (mexdao != null) {
             __log.debug("MatcherEvent handling: found matching message in DB (i.e. message arrived before <receive>)");
 
+            if( MessageExchangePattern.REQUEST_RESPONSE.toString().equals(mexdao.getPattern())) {
+                __log.warn("A message arrived before a receive is ready for a request/response pattern. This may be processed to success. However, you should consider revising your process since this may cause performance degradataion");
+            }
+            
             Set<String> groupIds = new HashSet<String>();
             for (MessageRouteDAO mroute : mroutes) {
 	            // We have a match, so we can get rid of the routing entries.
@@ -1408,7 +1412,7 @@
 
             // Do not release yet if the process is suspended, the mex will be used again
             if (_dao.getState() != ProcessState.STATE_SUSPENDED)
-                mexdao.release(true);
+            	mexdao.releasePremieMessages();
         } else {
             __log.debug("MatcherEvent handling: nothing to do, no matching message in DB");
 

Modified: ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/MessageExchangeDAOImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/MessageExchangeDAOImpl.java?rev=770456&r1=770455&r2=770456&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/MessageExchangeDAOImpl.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/MessageExchangeDAOImpl.java Thu Apr 30 21:36:05 2009
@@ -293,6 +293,10 @@
         BpelDAOConnectionImpl.removeMessageExchange(getMessageExchangeId());
     }
 
+    public void releasePremieMessages() {
+    	// do nothing; early messages are deleted during CorrelatorDaoImpl().dequeueMessage()
+    }
+    
     public String toString() {
         return "mem.mex(direction=" + direction + " id=" + messageExchangeId + ")";
     }

Modified: ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/MessageExchangeDaoImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/MessageExchangeDaoImpl.java?rev=770456&r1=770455&r2=770456&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/MessageExchangeDaoImpl.java (original)
+++ ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/MessageExchangeDaoImpl.java Thu Apr 30 21:36:05 2009
@@ -357,6 +357,11 @@
 		}
 	}
 
+	public void releasePremieMessages() {
+  		getSession().getNamedQuery(HLargeData.DELETE_MESSAGE_LDATA_BY_MEX).setParameter("mex", _hself).executeUpdate();
+		getSession().getNamedQuery(HCorrelatorMessage.DELETE_CORMESSAGES_BY_MEX).setParameter("mex", _hself).executeUpdate();
+	}
+
 	public void incrementSubscriberCount() {
 		_hself.incrementSubscriberCount();
 	}

Modified: ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MessageExchangeDAOImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MessageExchangeDAOImpl.java?rev=770456&r1=770455&r2=770456&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MessageExchangeDAOImpl.java (original)
+++ ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MessageExchangeDAOImpl.java Thu Apr 30 21:36:05 2009
@@ -343,7 +343,11 @@
 		}
 	}
 
-	public void deleteMessages() {
+    public void releasePremieMessages() {
+    	// do nothing; early messages are deleted during CorrelatorDaoImpl().dequeueMessage()
+    }
+
+    public void deleteMessages() {
 		if( __log.isDebugEnabled() ) __log.debug("Deleting message on MEX release.");
 		
 		getEM().remove(this); // This deletes MexProperty, REQUEST MessageDAO, RESPONSE MessageDAO
@@ -372,5 +376,4 @@
     public void release() {
         // no-op for now, could be used to do some cleanup
     }
-
 }