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
     }
-
 }


Reply via email to