Author: gatfora
Date: Mon Jan 8 03:54:21 2007
New Revision: 494037
URL: http://svn.apache.org/viewvc?view=rev&rev=494037
Log:
Move the highestOut properties to the RMSBean
Modified:
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/storage/beans/RMSBean.java
webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/workers/ForceInboundDispatchTest.java
Modified:
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
URL:
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java?view=diff&rev=494037&r1=494036&r2=494037
==============================================================================
---
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
(original)
+++
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
Mon Jan 8 03:54:21 2007
@@ -305,11 +305,6 @@
// in the sequence.
String LAST_IN_MSG_ID = "LastInMessageId";
- // A pair pf properties to keep track of the highest
transmitted message
- // for an outbound sequence.
- String HIGHEST_OUT_MSG_NUMBER = "HighestOutMsgNumber";
- String HIGHEST_OUT_RELATES_TO = "HighestOutRelatesTo";
-
String SECURITY_TOKEN = "SecurityToken";
String SOAP_VERSION = "SOAPVersion";
Modified:
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
URL:
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java?view=diff&rev=494037&r1=494036&r2=494037
==============================================================================
---
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
(original)
+++
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
Mon Jan 8 03:54:21 2007
@@ -241,17 +241,6 @@
if (!dummyMessage)
setNextMsgNo(configContext, sequencePropertyKey,
messageNumber, storageManager);
- // set this as the response highest message.
- SequencePropertyBean responseHighestMsgBean = new
SequencePropertyBean(sequencePropertyKey,
-
Sandesha2Constants.SequenceProperties.HIGHEST_OUT_MSG_NUMBER, new
Long(messageNumber).toString());
- seqPropMgr.insert(responseHighestMsgBean);
- RelatesTo relatesTo = msgContext.getRelatesTo();
- if(relatesTo != null) {
- SequencePropertyBean responseRelatesToBean = new
SequencePropertyBean(sequencePropertyKey,
-
Sandesha2Constants.SequenceProperties.HIGHEST_OUT_RELATES_TO,
relatesTo.getValue());
- seqPropMgr.insert(responseRelatesToBean);
- }
-
boolean sendCreateSequence = false;
String outSequenceID =
SandeshaUtil.getSequenceIDFromInternalSequenceID(internalSequenceId,
storageManager);
@@ -413,7 +402,7 @@
}
}
- if (rmsBean == null && lastMessage) {
+ if (rmsBean == null) {
RMSBean findBean = new RMSBean();
findBean.setInternalSequenceID(internalSequenceId);
rmsBean =
storageManager.getRMSBeanMgr().findUnique(findBean);
@@ -425,7 +414,17 @@
storageManager.getRMSBeanMgr().update(rmsBean);
}
+ // set this as the response highest message.
+ rmsBean.setHighestOutMessageNumber(messageNumber);
+
+ RelatesTo relatesTo = msgContext.getRelatesTo();
+ if(relatesTo != null) {
+ rmsBean.setHighestOutRelatesTo(relatesTo.getValue());
+ }
+ // Update the rmsBean
+ storageManager.getRMSBeanMgr().update(rmsBean);
+
SOAPEnvelope env = rmMsgCtx.getSOAPEnvelope();
if (env == null) {
SOAPEnvelope envelope =
SOAPAbstractFactory.getSOAPFactory(SandeshaUtil.getSOAPVersion(env))
Modified:
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java
URL:
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java?view=diff&rev=494037&r1=494036&r2=494037
==============================================================================
---
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java
(original)
+++
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java
Mon Jan 8 03:54:21 2007
@@ -194,20 +194,20 @@
// If an outbound message has already gone out
with that relatesTo, then we can terminate
// right away.
- String highestOutRelatesTo =
SandeshaUtil.getSequenceProperty(responseSideSequencePropertyKey,
-
Sandesha2Constants.SequenceProperties.HIGHEST_OUT_RELATES_TO, storageManager);
- if(highestOutRelatesTo != null &&
highestOutRelatesTo.equals(inMsgId)) {
- String highOutMessageNumberString =
SandeshaUtil.getSequenceProperty(responseSideSequencePropertyKey,
-
Sandesha2Constants.SequenceProperties.HIGHEST_OUT_MSG_NUMBER, storageManager);
- highestOutMsgNo =
Long.parseLong(highOutMessageNumberString);
- addResponseSideTerminate = true;
-
- // It is possible that the message has
gone out, but not been acked yet. In that case
- // we can store the
HIGHEST_OUT_MSG_NUMBER as the LAST_OUT_MESSAGE_NO, so that when the
- // ack arrives we will terminate the
sequence
- RMSBean rmsBean =
SandeshaUtil.getRMSBeanFromInternalSequenceId(storageManager,
responseSideInternalSequenceId);
-
rmsBean.setLastOutMessage(highestOutMsgNo);
-
storageManager.getRMSBeanMgr().update(rmsBean);
+ RMSBean rmsBean =
SandeshaUtil.getRMSBeanFromInternalSequenceId(storageManager,
responseSideInternalSequenceId);
+
+ if(rmsBean != null) {
+ String highestOutRelatesTo =
rmsBean.getHighestOutRelatesTo();
+ if (highestOutRelatesTo != null &&
highestOutRelatesTo.equals(inMsgId)) {
+ highestOutMsgNo =
rmsBean.getHighestOutMessageNumber();
+ addResponseSideTerminate = true;
+
+ // It is possible that the
message has gone out, but not been acked yet. In that case
+ // we can store the
HIGHEST_OUT_MSG_NUMBER as the LAST_OUT_MESSAGE_NO, so that when the
+ // ack arrives we will
terminate the sequence
+
rmsBean.setLastOutMessage(highestOutMsgNo);
+
storageManager.getRMSBeanMgr().update(rmsBean);
+ }
}
}
Modified:
webservices/sandesha/trunk/java/src/org/apache/sandesha2/storage/beans/RMSBean.java
URL:
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/storage/beans/RMSBean.java?view=diff&rev=494037&r1=494036&r2=494037
==============================================================================
---
webservices/sandesha/trunk/java/src/org/apache/sandesha2/storage/beans/RMSBean.java
(original)
+++
webservices/sandesha/trunk/java/src/org/apache/sandesha2/storage/beans/RMSBean.java
Mon Jan 8 03:54:21 2007
@@ -83,7 +83,19 @@
* The last Out message number
*/
private long lastOutMessage = 0;
-
+
+ /**
+ * The Highest out message number
+ * Keeps track of the highest transmitted message
+ */
+ private long highestOutMessageNumber = 0;
+
+ /**
+ * The highest out message relates to message id
+ * Keeps track of the highest transmitted message
+ */
+ private String highestOutRelatesTo = null;
+
public RMSBean() {
}
@@ -164,6 +176,25 @@
this.lastOutMessage = lastOutMessage;
}
+ public long getHighestOutMessageNumber() {
+ return highestOutMessageNumber;
+ }
+
+
+ public void setHighestOutMessageNumber(long highestOutMessageNumber) {
+ this.highestOutMessageNumber = highestOutMessageNumber;
+ }
+
+
+ public String getHighestOutRelatesTo() {
+ return highestOutRelatesTo;
+ }
+
+
+ public void setHighestOutRelatesTo(String highestOutRelatesTo) {
+ this.highestOutRelatesTo = highestOutRelatesTo;
+ }
+
public String toString() {
StringBuffer result = new StringBuffer();
result.append(this.getClass().getName());
@@ -175,8 +206,9 @@
result.append("\nReference Msg Key: ");
result.append(referenceMessageStoreKey);
result.append("\nPolling : ");
result.append(pollingMode);
result.append("\nLastOutMessageNumber: ");
result.append(lastOutMessage);
+ result.append("\nHighestOutMessage: ");
result.append(highestOutMessageNumber);
+ result.append("\nHighestOutRelatesTo:
");result.append(highestOutRelatesTo);
return result.toString();
}
-
}
Modified:
webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/workers/ForceInboundDispatchTest.java
URL:
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/workers/ForceInboundDispatchTest.java?view=diff&rev=494037&r1=494036&r2=494037
==============================================================================
---
webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/workers/ForceInboundDispatchTest.java
(original)
+++
webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/workers/ForceInboundDispatchTest.java
Mon Jan 8 03:54:21 2007
@@ -17,8 +17,8 @@
import org.apache.sandesha2.client.SequenceReport;
import org.apache.sandesha2.storage.StorageManager;
import org.apache.sandesha2.storage.Transaction;
-import org.apache.sandesha2.storage.beanmanagers.SequencePropertyBeanMgr;
import org.apache.sandesha2.storage.beans.RMDBean;
+import org.apache.sandesha2.storage.beans.RMSBean;
import org.apache.sandesha2.storage.beans.SequencePropertyBean;
import org.apache.sandesha2.util.RangeString;
import org.apache.sandesha2.util.SandeshaUtil;
@@ -178,18 +178,16 @@
ConfigurationContext context =
serviceClient.getServiceContext().getConfigurationContext();
StorageManager storageManager =
SandeshaUtil.getSandeshaStorageManager(context, context.getAxisConfiguration());
- // Get the sequence property bean manager
- SequencePropertyBeanMgr beanMgr =
storageManager.getSequencePropertyBeanMgr();
-
// Get a transaction for the property finding
Transaction transaction = storageManager.getTransaction();
// Get the highest out message property
- SequencePropertyBean bean = beanMgr.retrieve(internalSequenceId,
Sandesha2Constants.SequenceProperties.HIGHEST_OUT_MSG_NUMBER);
+ RMSBean rmsBean =
SandeshaUtil.getRMSBeanFromInternalSequenceId(storageManager,
internalSequenceId);
transaction.commit();
- Long highestOutMsgKey = Long.valueOf(bean.getValue());
+ long highestOutMsgNum = rmsBean.getHighestOutMessageNumber();
+ Long highestOutMsgKey = new Long(highestOutMsgNum);
long timeNow = System.currentTimeMillis();
long timeToComplete = timeNow + waitTime;
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]