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 mc...@apache.org on 2007/11/28 15:48:30 UTC
svn commit: r599016 - in
/webservices/sandesha/trunk/java/modules/core/src/main:
java/org/apache/sandesha2/client/ java/org/apache/sandesha2/i18n/
java/org/apache/sandesha2/msgprocessors/ java/org/apache/sandesha2/util/
java/org/apache/sandesha2/worker...
Author: mckierna
Date: Wed Nov 28 06:48:29 2007
New Revision: 599016
URL: http://svn.apache.org/viewvc?rev=599016&view=rev
Log:
Allow sequences to be auto-restarted after being torn down
Modified:
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/client/SandeshaClientConstants.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/i18n/SandeshaMessageKeys.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/TerminateSeqResponseMsgProcessor.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/SandeshaUtil.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/TerminateManager.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/SenderWorker.java
webservices/sandesha/trunk/java/modules/core/src/main/resources/org/apache/sandesha2/i18n/resource.properties
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/client/SandeshaClientConstants.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/client/SandeshaClientConstants.java?rev=599016&r1=599015&r2=599016&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/client/SandeshaClientConstants.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/client/SandeshaClientConstants.java Wed Nov 28 06:48:29 2007
@@ -37,4 +37,5 @@
public static final String USE_REPLY_TO_AS_ACKS_TO = "UseReplyToAsAcksTo";
public static final String OFFERED_ENDPOINT = "OfferedEndpoint";
public static final String AVOID_AUTO_TERMINATION = "AviodAutoTermination";
+ public static String AUTO_START_NEW_SEQUENCE = "AutoStartNewSequence";
}
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/i18n/SandeshaMessageKeys.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/i18n/SandeshaMessageKeys.java?rev=599016&r1=599015&r2=599016&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/i18n/SandeshaMessageKeys.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/i18n/SandeshaMessageKeys.java Wed Nov 28 06:48:29 2007
@@ -76,6 +76,7 @@
public static final String propertyInvalidValue="propertyInvalidValue";
public static final String invalidRange="invalidRange";
public static final String workAlreadyAssigned="workAlreadyAssigned";
+ public static final String reallocationFailed="reallocationFailed";
public static final String rmNamespaceNotMatchSequence="rmNamespaceNotMatchSequence";
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=599016&r1=599015&r2=599016&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 Wed Nov 28 06:48:29 2007
@@ -87,6 +87,46 @@
return false;
}
+ private String getSequenceID(RMMsgContext rmMsgCtx, boolean serverSide, boolean forceNewSequence)throws SandeshaException{
+ MessageContext msgContext = rmMsgCtx.getMessageContext();
+ ConfigurationContext configContext = msgContext.getConfigurationContext();
+
+ String internalSequenceId = null;
+ if (serverSide) {
+ if (inboundSequence == null || "".equals(inboundSequence)) {
+ String message = SandeshaMessageHelper.getMessage(SandeshaMessageKeys.incomingSequenceNotValidID, inboundSequence);
+ log.debug(message);
+ throw new SandeshaException(message);
+ }
+
+ internalSequenceId = SandeshaUtil.getOutgoingSideInternalSequenceID(inboundSequence);
+ } else {
+ // set the internal sequence id for the client side.
+ EndpointReference toEPR = msgContext.getTo();
+ if (toEPR == null || toEPR.getAddress() == null || "".equals(toEPR.getAddress())) {
+ String message = SandeshaMessageHelper.getMessage(SandeshaMessageKeys.toEPRNotValid, null);
+ log.debug(message);
+ throw new SandeshaException(message);
+ }
+
+ String to = toEPR.getAddress();
+ String sequenceKey = null;
+ if(forceNewSequence){
+ sequenceKey = SandeshaUtil.getUUID();
+ msgContext.setProperty(SandeshaClientConstants.SEQUENCE_KEY, sequenceKey);
+ }
+ else{
+ sequenceKey = (String) msgContext.getProperty(SandeshaClientConstants.SEQUENCE_KEY);
+ if (sequenceKey == null)
+ sequenceKey = (String)configContext.getAxisConfiguration().getParameterValue(SandeshaClientConstants.SEQUENCE_KEY);
+ }
+
+
+ internalSequenceId = SandeshaUtil.getInternalSequenceID(to, sequenceKey);
+ }
+ return internalSequenceId;
+ }
+
public boolean processOutMessage(RMMsgContext rmMsgCtx, Transaction tran) throws AxisFault {
if (log.isDebugEnabled())
log.debug("Enter: ApplicationMsgProcessor::processOutMessage");
@@ -119,9 +159,6 @@
if (msgContext.getMessageID() == null)
msgContext.setMessageID(SandeshaUtil.getUUID());
- // find internal sequence id
- String internalSequenceId = null;
-
String storageKey = SandeshaUtil.getUUID(); // the key which will be
// used to store this
// message.
@@ -132,32 +169,10 @@
* side - a derivation of the sequenceId of the incoming sequence client
* side - a derivation of wsaTo & SeequenceKey
*/
-
+ String internalSequenceId = getSequenceID(rmMsgCtx, serverSide, false); //get a sequenceID, possibly pre-existing
+
boolean lastMessage = false;
- if (serverSide) {
- if (inboundSequence == null || "".equals(inboundSequence)) {
- String message = SandeshaMessageHelper.getMessage(SandeshaMessageKeys.incomingSequenceNotValidID, inboundSequence);
- log.debug(message);
- throw new SandeshaException(message);
- }
-
- internalSequenceId = SandeshaUtil.getOutgoingSideInternalSequenceID(inboundSequence);
- } else {
- // set the internal sequence id for the client side.
- EndpointReference toEPR = msgContext.getTo();
- if (toEPR == null || toEPR.getAddress() == null || "".equals(toEPR.getAddress())) {
- String message = SandeshaMessageHelper.getMessage(SandeshaMessageKeys.toEPRNotValid, null);
- log.debug(message);
- throw new SandeshaException(message);
- }
-
- String to = toEPR.getAddress();
- String sequenceKey = (String) msgContext.getProperty(SandeshaClientConstants.SEQUENCE_KEY);
- if (sequenceKey == null)
- sequenceKey = (String)configContext.getAxisConfiguration().getParameterValue(SandeshaClientConstants.SEQUENCE_KEY);
-
- internalSequenceId = SandeshaUtil.getInternalSequenceID(to, sequenceKey);
-
+ if(!serverSide){
String lastAppMessage = (String) msgContext.getProperty(SandeshaClientConstants.LAST_MESSAGE);
if (lastAppMessage != null && "true".equals(lastAppMessage))
lastMessage = true;
@@ -195,18 +210,21 @@
RMSBean rmsBean = SandeshaUtil.getRMSBeanFromInternalSequenceId(storageManager, internalSequenceId);
//see if the sequence is closed
- if(rmsBean != null && rmsBean.isSequenceClosedClient()){
- throw new SandeshaException(SandeshaMessageHelper.getMessage(SandeshaMessageKeys.cannotSendMsgAsSequenceClosed, internalSequenceId));
- }
-
- //see if the sequence is terminated
- if(rmsBean != null && rmsBean.isTerminateAdded()) {
- throw new SandeshaException(SandeshaMessageHelper.getMessage(SandeshaMessageKeys.cannotSendMsgAsSequenceTerminated, internalSequenceId));
- }
-
- //see if the sequence is timed out
- if(rmsBean != null && rmsBean.isTimedOut()){
- throw new SandeshaException(SandeshaMessageHelper.getMessage(SandeshaMessageKeys.cannotSendMsgAsSequenceTimedout, internalSequenceId));
+ if(rmsBean != null &&
+ (rmsBean.isSequenceClosedClient() || rmsBean.isTerminateAdded() || rmsBean.isTimedOut())){
+ if(SandeshaUtil.isAutoStartNewSequence(msgContext)){
+ internalSequenceId = getSequenceID(rmMsgCtx, serverSide, true); //require a new sequence
+ rmMsgCtx.setProperty(Sandesha2Constants.MessageContextProperties.INTERNAL_SEQUENCE_ID,internalSequenceId);
+ }
+ else if(rmsBean.isSequenceClosedClient()){
+ throw new SandeshaException(SandeshaMessageHelper.getMessage(SandeshaMessageKeys.cannotSendMsgAsSequenceClosed, internalSequenceId));
+ }
+ else if(rmsBean.isTerminateAdded()){
+ throw new SandeshaException(SandeshaMessageHelper.getMessage(SandeshaMessageKeys.cannotSendMsgAsSequenceTerminated, internalSequenceId));
+ }
+ else if(rmsBean.isTimedOut()){
+ throw new SandeshaException(SandeshaMessageHelper.getMessage(SandeshaMessageKeys.cannotSendMsgAsSequenceTimedout, internalSequenceId));
+ }
}
// If the call application is a 2-way MEP, and uses a anonymous replyTo, and the
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/TerminateSeqResponseMsgProcessor.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/TerminateSeqResponseMsgProcessor.java?rev=599016&r1=599015&r2=599016&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/TerminateSeqResponseMsgProcessor.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/TerminateSeqResponseMsgProcessor.java Wed Nov 28 06:48:29 2007
@@ -74,7 +74,7 @@
}
}
- TerminateManager.terminateSendingSide (rmsBean, storageManager);
+ TerminateManager.terminateSendingSide (rmsBean, storageManager, false);
// Stop this message travelling further through the Axis runtime
terminateResRMMsg.pause();
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java?rev=599016&r1=599015&r2=599016&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java Wed Nov 28 06:48:29 2007
@@ -794,7 +794,7 @@
// Cleanup sending side.
if (log.isDebugEnabled())
log.debug("Terminating sending sequence " + rmsBean);
- TerminateManager.terminateSendingSide(rmsBean, storageManager);
+ TerminateManager.terminateSendingSide(rmsBean, storageManager, false);
if (log.isDebugEnabled())
log.debug("Exit: FaultManager::processCreateSequenceRefusedFault");
@@ -820,16 +820,16 @@
// Find the rmsBean
RMSBean rmsBean = SandeshaUtil.getRMSBeanFromSequenceId(storageManager, sequenceID);
if (rmsBean != null) {
-
- // Notify the clients of a failure
- notifyClientsOfFault(rmsBean.getInternalSequenceID(), storageManager, configCtx, fault);
-
+
rmMsgCtx.pause();
// Cleanup sending side.
if (log.isDebugEnabled())
log.debug("Terminating sending sequence " + rmsBean);
- TerminateManager.terminateSendingSide(rmsBean, storageManager);
+ if(!TerminateManager.terminateSendingSide(rmsBean, storageManager, true)){
+ // We did not reallocate so we notify the clients of a failure
+ notifyClientsOfFault(rmsBean.getInternalSequenceID(), storageManager, configCtx, fault);
+ }
// Update the last activated time.
rmsBean.setLastActivatedTime(System.currentTimeMillis());
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/SandeshaUtil.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/SandeshaUtil.java?rev=599016&r1=599015&r2=599016&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/SandeshaUtil.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/SandeshaUtil.java Wed Nov 28 06:48:29 2007
@@ -24,6 +24,7 @@
import java.lang.reflect.Constructor;
import java.util.ArrayList;
import java.util.Iterator;
+import java.util.List;
import java.util.Map;
import javax.xml.namespace.QName;
@@ -41,6 +42,7 @@
import org.apache.axis2.addressing.AddressingConstants;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
+import org.apache.axis2.client.ServiceClient;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.context.OperationContext;
@@ -1062,6 +1064,40 @@
return targetEnv;
}
+
+ public static void reallocateMessagesToNewSequence(StorageManager storageManager, RMSBean oldRMSBean, List msgsToSend)throws AxisFault{
+ if (log.isDebugEnabled())
+ log.debug("Enter: SandeshaUtil::reallocateMessagesToNewSequence");
+
+ ConfigurationContext ctx = storageManager.getContext();
+ ServiceClient client = new ServiceClient(ctx, null);
+
+ //populate the client options
+ Options options = client.getOptions();
+ options.setTo(oldRMSBean.getToEndpointReference());
+ options.setReplyTo(oldRMSBean.getReplyToEndpointReference());
+
+ //internal sequence ID is different
+ String internalSequenceID = oldRMSBean.getInternalSequenceID();
+ //we also need to obtain the sequenceKey from the internalSequenceID.
+ String sequenceKey =
+ SandeshaUtil.getSequenceKeyFromInternalSequenceID(internalSequenceID, oldRMSBean.getToEndpointReference().getAddress());
+ options.setProperty(SandeshaClientConstants.SEQUENCE_KEY, sequenceKey);
+ options.setProperty(Sandesha2Constants.MessageContextProperties.INTERNAL_SEQUENCE_ID, internalSequenceID);
+ options.setProperty(SandeshaClientConstants.RM_SPEC_VERSION, oldRMSBean.getRMVersion());
+ options.setProperty(AddressingConstants.DISABLE_ADDRESSING_FOR_OUT_MESSAGES, Boolean.FALSE);
+
+ //send the msgs
+ Iterator it = msgsToSend.iterator();
+ while(it.hasNext()){
+ MessageContext msgCtx = (MessageContext)it.next();
+ client.getOptions().setAction(msgCtx.getWSAAction());
+ client.fireAndForget(msgCtx.getEnvelope().getBody().cloneOMElement().getFirstElement());
+ }
+
+ if (log.isDebugEnabled())
+ log.debug("Exit: SandeshaUtil::reallocateMessagesToNewSequence");
+ }
/**
* Remove the MustUnderstand header blocks.
@@ -1117,6 +1153,32 @@
return newEPR;
}
+
+ public static boolean isAutoStartNewSequence(MessageContext mc){
+ if(log.isDebugEnabled()) log.debug("Entry: SandeshaUtil::isAutoStartNewSequence");
+ boolean result = false;
+
+ //look at the msg ctx first
+ String auto = (String) mc.getProperty(SandeshaClientConstants.AUTO_START_NEW_SEQUENCE);
+ if ("true".equals(auto)) {
+ if (log.isDebugEnabled()) log.debug("Autostart message context");
+ result = true;
+ }
+
+ if(!result) {
+ //look at the operation
+ if (mc.getAxisOperation() != null) {
+ Parameter autoParam = mc.getAxisOperation().getParameter(SandeshaClientConstants.AUTO_START_NEW_SEQUENCE);
+ if (null != autoParam && "true".equals(autoParam.getValue())) {
+ if (log.isDebugEnabled()) log.debug("autostart operation");
+ result = true;
+ }
+ }
+ }
+
+ if(log.isDebugEnabled()) log.debug("Exit: SandeshaUtil::isAutoStartNewSequence, " + result);
+ return result;
+ }
public static boolean isMessageUnreliable(MessageContext mc) {
if(log.isDebugEnabled()) log.debug("Entry: SandeshaUtil::isMessageUnreliable");
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/TerminateManager.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/TerminateManager.java?rev=599016&r1=599015&r2=599016&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/TerminateManager.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/TerminateManager.java Wed Nov 28 06:48:29 2007
@@ -22,11 +22,14 @@
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
+import java.util.LinkedList;
import java.util.List;
import org.apache.axis2.AxisFault;
import org.apache.axis2.Constants;
import org.apache.axis2.addressing.EndpointReference;
+import org.apache.axis2.client.Options;
+import org.apache.axis2.client.ServiceClient;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.MessageContext;
import org.apache.commons.logging.Log;
@@ -34,6 +37,8 @@
import org.apache.sandesha2.RMMsgContext;
import org.apache.sandesha2.Sandesha2Constants;
import org.apache.sandesha2.SandeshaException;
+import org.apache.sandesha2.client.SandeshaClient;
+import org.apache.sandesha2.client.SandeshaClientConstants;
import org.apache.sandesha2.i18n.SandeshaMessageHelper;
import org.apache.sandesha2.i18n.SandeshaMessageKeys;
import org.apache.sandesha2.storage.SandeshaStorageException;
@@ -46,6 +51,8 @@
import org.apache.sandesha2.storage.beans.RMDBean;
import org.apache.sandesha2.storage.beans.SenderBean;
+import com.ibm.xslt4j.bcel.generic.RETURN;
+
/**
* Contains logic to remove all the storad data of a sequence. Methods of this
* are called by sending side and the receiving side when appropriate
@@ -225,16 +232,18 @@
* @param configContext
* @param sequenceID
* @throws SandeshaException
+ *
+ * @return true if the reallocation happened sucessfully
*/
- public static void terminateSendingSide(RMSBean rmsBean,
- StorageManager storageManager) throws SandeshaException {
+ public static boolean terminateSendingSide(RMSBean rmsBean,
+ StorageManager storageManager, boolean reallocate) throws SandeshaException {
// Indicate that the sequence is terminated
rmsBean.setTerminated(true);
rmsBean.setTerminateAdded(true);
storageManager.getRMSBeanMgr().update(rmsBean);
- cleanSendingSideData (rmsBean.getInternalSequenceID(), storageManager, rmsBean);
+ return cleanSendingSideData (rmsBean.getInternalSequenceID(), storageManager, rmsBean, reallocate);
}
public static void timeOutSendingSideSequence(String internalSequenceId,
@@ -245,26 +254,72 @@
rmsBean.setLastActivatedTime(System.currentTimeMillis());
storageManager.getRMSBeanMgr().update(rmsBean);
- cleanSendingSideData(internalSequenceId, storageManager, rmsBean);
+ cleanSendingSideData(internalSequenceId, storageManager, rmsBean, false);
}
- private static void cleanSendingSideData(String internalSequenceId, StorageManager storageManager, RMSBean rmsBean) throws SandeshaException {
+ private static boolean cleanSendingSideData(String internalSequenceId, StorageManager storageManager,
+ RMSBean rmsBean, boolean reallocateIfPossible) throws SandeshaException {
+ if(log.isDebugEnabled())
+ log.debug("Enter: TerminateManager::cleanSendingSideData " + internalSequenceId + ", " + reallocateIfPossible);
+
+ boolean reallocatedOK = false;
SenderBeanMgr retransmitterBeanMgr = storageManager.getSenderBeanMgr();
// removing retransmitterMgr entries and corresponding message contexts.
Collection collection = retransmitterBeanMgr.find(internalSequenceId);
Iterator iterator = collection.iterator();
+ List msgsToReallocate = null;
+ if(reallocateIfPossible){
+ msgsToReallocate = new LinkedList();
+ }
+ Range[] ranges = rmsBean.getClientCompletedMessages().getRanges();
+ long lastAckedMsg = -1;
+
+ if(ranges.length==1){
+ //a single contiguous acked range
+ lastAckedMsg = ranges[0].upperValue;
+ }
+ else{
+ //cannot reallocate as there are gaps
+ reallocateIfPossible=false;
+ if(log.isDebugEnabled())
+ log.debug("cannot reallocate sequence as there are gaps");
+ }
+
while (iterator.hasNext()) {
SenderBean retransmitterBean = (SenderBean) iterator.next();
if(retransmitterBean.getMessageType()!=Sandesha2Constants.MessageTypes.TERMINATE_SEQ || rmsBean.isTerminated()){
//remove all but terminate sequence messages
- retransmitterBeanMgr.delete(retransmitterBean.getMessageID());
-
String messageStoreKey = retransmitterBean.getMessageContextRefKey();
+ if(reallocateIfPossible
+ && retransmitterBean.getMessageType()!=Sandesha2Constants.MessageTypes.APPLICATION
+ && retransmitterBean.getMessageNumber()==lastAckedMsg+1){
+
+ //try to reallocate application msgs
+ msgsToReallocate.add(storageManager.retrieveMessageContext(messageStoreKey, storageManager.getContext()));
+ lastAckedMsg++;
+ }
+ retransmitterBeanMgr.delete(retransmitterBean.getMessageID());
storageManager.removeMessageContext(messageStoreKey);
}
}
+
+ if(reallocateIfPossible && msgsToReallocate.size()>0){
+ try{
+ SandeshaUtil.reallocateMessagesToNewSequence(storageManager, rmsBean, msgsToReallocate);
+ reallocatedOK = true;
+ }
+ catch(Exception e){
+ //want that the reallocation failed
+ if(log.isDebugEnabled())
+ log.warn(SandeshaMessageHelper.getMessage(SandeshaMessageKeys.reallocationFailed, rmsBean.getSequenceID(), e.toString()));
+ }
+ }
+
+ if(log.isDebugEnabled())
+ log.debug("Exit: TerminateManager::cleanSendingSideData " + reallocatedOK);
+ return reallocatedOK;
}
public static void addTerminateSequenceMessage(RMMsgContext referenceMessage, String internalSequenceID, String outSequenceId, StorageManager storageManager) throws AxisFault {
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/SenderWorker.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/SenderWorker.java?rev=599016&r1=599015&r2=599016&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/SenderWorker.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/SenderWorker.java Wed Nov 28 06:48:29 2007
@@ -387,7 +387,7 @@
String sequenceID = terminateSequence.getIdentifier().getIdentifier();
RMSBean rmsBean = SandeshaUtil.getRMSBeanFromSequenceId(storageManager, sequenceID);
- TerminateManager.terminateSendingSide(rmsBean, storageManager);
+ TerminateManager.terminateSendingSide(rmsBean, storageManager, false);
if(transaction != null && transaction.isActive()) transaction.commit();
transaction = null;
Modified: webservices/sandesha/trunk/java/modules/core/src/main/resources/org/apache/sandesha2/i18n/resource.properties
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/resources/org/apache/sandesha2/i18n/resource.properties?rev=599016&r1=599015&r2=599016&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/resources/org/apache/sandesha2/i18n/resource.properties (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/resources/org/apache/sandesha2/i18n/resource.properties Wed Nov 28 06:48:29 2007
@@ -62,6 +62,7 @@
msgContextNotSet=Sandesha2 Internal Error: ''MessageContext'' is null.
transportOutNotPresent=Sandesha2 Internal Error: original transport sender is not present.
workAlreadyAssigned=Work ''{0}'' is already assigned to a different Worker. Will try the next one.
+reallocationFailed=The sequence ''{0}'' could not be reallocated due to the error ''{1}''.
couldNotFindOperation=Could not find operation for message type {0} and spec level {1}.
cannotChooseAcksTo=Could not find an appropriate acksTo for the reply sequence, given inbound sequence {0} and bean info {1}.
cannotChooseSpecLevel=Could not find an appropriate specification level for the reply sequence, given inbound sequence {0} and bean info {1}.
---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org