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