You are viewing a plain text version of this content. The canonical link for it is here.
Posted to sandesha-dev@ws.apache.org by ch...@apache.org on 2006/02/15 10:04:24 UTC
svn commit: r377970 -
/webservices/sandesha/trunk/src/org/apache/sandesha2/workers/InOrderInvoker.java
Author: chamikara
Date: Wed Feb 15 01:04:23 2006
New Revision: 377970
URL: http://svn.apache.org/viewcvs?rev=377970&view=rev
Log:
transaction based invocation works was limited to on-only scenario
Modified:
webservices/sandesha/trunk/src/org/apache/sandesha2/workers/InOrderInvoker.java
Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/workers/InOrderInvoker.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/workers/InOrderInvoker.java?rev=377970&r1=377969&r2=377970&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/workers/InOrderInvoker.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/workers/InOrderInvoker.java Wed Feb 15 01:04:23 2006
@@ -23,6 +23,7 @@
import org.apache.axis2.AxisFault;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.description.AxisOperationFactory;
import org.apache.axis2.engine.AxisEngine;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -59,6 +60,8 @@
private ConfigurationContext context = null;
Log log = LogFactory.getLog(getClass());
+
+ int i = 1;
public synchronized void stopInvokerForTheSequence(String sequenceID) {
workingSequences.remove(sequenceID);
@@ -133,7 +136,9 @@
String sequenceId = (String) allSequencesItr.next();
- Transaction sequenceInvocationTransaction = storageManager.getTransaction();
+ //Transaction sequenceInvocationTransaction = storageManager.getTransaction();
+
+ Transaction invocationTransaction = storageManager.getTransaction(); //Transaction based invocation
NextMsgBean nextMsgBean = nextMsgMgr.retrieve(sequenceId);
if (nextMsgBean == null) {
@@ -160,14 +165,14 @@
new InvokerBean(null, nextMsgno, sequenceId))
.iterator();
- sequenceInvocationTransaction.commit();
-
-
- Transaction invocationTransaction = storageManager.getTransaction(); //Transaction based invocation
+ //sequenceInvocationTransaction.commit();
+
while (stMapIt.hasNext()) {
+
+
InvokerBean stMapBean = (InvokerBean) stMapIt
.next();
String key = stMapBean.getMessageContextRefKey();
@@ -187,17 +192,28 @@
//Invoking the message.
// new AxisEngine(msgToInvoke.getConfigurationContext())
// .receive(msgToInvoke);
+
+ //currently Transaction based invocation can be supplied only for the in-only case.
+
+ if (!AxisOperationFactory.MEP_URI_IN_ONLY.equals(msgToInvoke.getAxisOperation().getMessageExchangePattern())) {
+ invocationTransaction.commit();
+ }
+
new AxisEngine (msgToInvoke.getConfigurationContext())
.resume(msgToInvoke);
+ if (!AxisOperationFactory.MEP_URI_IN_ONLY.equals(msgToInvoke.getAxisOperation().getMessageExchangePattern())) {
+ invocationTransaction = storageManager.getTransaction();
+ }
+
log.info("Invoker invoking a '" + SandeshaUtil.getMessageTypeString(rmMsg
.getMessageType()) + "' message.");
- Transaction deleteEntryTransaction = storageManager.getTransaction();
+ //Transaction deleteEntryTransaction = storageManager.getTransaction();
//deleting the message entry.
storageMapMgr.delete(key);
- deleteEntryTransaction.commit();
+ //deleteEntryTransaction.commit();
} catch (AxisFault e) {
throw new SandeshaException(e);
@@ -205,11 +221,11 @@
//Transaction postInvocationTransaction = storageManager.getTransaction();
//undating the next msg to invoke
- nextMsgno++;
- stMapIt = storageMapMgr
- .find(
- new InvokerBean(null, nextMsgno,
- sequenceId)).iterator();
+// nextMsgno++;
+// stMapIt = storageMapMgr
+// .find(
+// new InvokerBean(null, nextMsgno,
+// sequenceId)).iterator();
//terminate (AfterInvocation)
if (rmMsg.getMessageType() == Sandesha2Constants.MessageTypes.APPLICATION) {
@@ -223,6 +239,7 @@
stopInvokerForTheSequence(sequenceId);
//exit from current iteration. (since an entry was removed)
+ invocationTransaction.commit();
break currentIteration;
}
}
@@ -231,13 +248,22 @@
}
//Transaction updateNextMsgTransaction = storageManager.getTransaction();
+ nextMsgno++;
nextMsgBean.setNextMsgNoToProcess(nextMsgno);
nextMsgMgr.update(nextMsgBean);
//updateNextMsgTransaction.commit();
+// i++;
+// if (i==3) {
+// throw new SandeshaException ("test");
+// }
+
invocationTransaction.commit();
+
+
}
+
} catch (SandeshaException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org