Author: gatfora
Date: Fri Nov 2 06:33:27 2007
New Revision: 591326
URL: http://svn.apache.org/viewvc?rev=591326&view=rev
Log:
Move the location for lookup for hasUserTransaction to before any updates are
made to the storage manager to give the store a chance to setup any
transactional information required.
Modified:
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
Modified:
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
URL:
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java?rev=591326&r1=591325&r2=591326&view=diff
==============================================================================
---
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
(original)
+++
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
Fri Nov 2 06:33:27 2007
@@ -29,7 +29,6 @@
import org.apache.axis2.wsdl.WSDLConstants;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.sandesha2.MessageValidator;
import org.apache.sandesha2.RMMsgContext;
import org.apache.sandesha2.Sandesha2Constants;
import org.apache.sandesha2.SandeshaException;
@@ -244,6 +243,10 @@
String outSequenceID = null;
+ // Work out if there is a user transaction involved before
updating any store state
+ // to give any storage manager interface a chance to setup any
transactional state
+ boolean hasUserTransaction =
storageManager.hasUserTransaction(msgContext);
+
if (rmsBean == null) {
// SENDING THE CREATE SEQUENCE.
synchronized (RMSBeanMgr.class) {
@@ -414,7 +417,7 @@
// processing the response if not an dummy.
if (!dummyMessage)
- processResponseMessage(rmMsgCtx, rmsBean,
internalSequenceId, outSequenceID, messageNumber, storageKey, storageManager,
tran);
+ processResponseMessage(rmMsgCtx, rmsBean,
internalSequenceId, outSequenceID, messageNumber, storageKey, storageManager,
tran, hasUserTransaction);
//Users wont be able to get reliable response msgs in the back
channel in the back channel of a
//reliable message. If he doesn't have a endpoint he should use
polling mechanisms.
@@ -506,7 +509,7 @@
}
private void processResponseMessage(RMMsgContext rmMsg, RMSBean
rmsBean, String internalSequenceId, String outSequenceID, long messageNumber,
- String storageKey, StorageManager storageManager,
Transaction tran) throws AxisFault {
+ String storageKey, StorageManager storageManager,
Transaction tran, boolean hasUserTransaction) throws AxisFault {
if (log.isDebugEnabled())
log.debug("Enter:
ApplicationMsgProcessor::processResponseMessage, " + internalSequenceId + ", "
+ outSequenceID);
@@ -531,7 +534,7 @@
}
boolean sendingNow = false;
- if(outSequenceID != null &&
!storageManager.hasUserTransaction(msg)) {
+ if(outSequenceID != null && !hasUserTransaction) {
sendingNow = true;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]