Return-Path: Delivered-To: apmail-ws-sandesha-dev-archive@www.apache.org Received: (qmail 15105 invoked from network); 18 Apr 2006 06:57:57 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 18 Apr 2006 06:57:56 -0000 Received: (qmail 27444 invoked by uid 500); 18 Apr 2006 06:57:56 -0000 Delivered-To: apmail-ws-sandesha-dev-archive@ws.apache.org Received: (qmail 27202 invoked by uid 500); 18 Apr 2006 06:57:54 -0000 Mailing-List: contact sandesha-dev-help@ws.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list sandesha-dev@ws.apache.org Received: (qmail 27191 invoked by uid 500); 18 Apr 2006 06:57:54 -0000 Delivered-To: apmail-ws-sandesha-cvs@ws.apache.org Received: (qmail 27188 invoked by uid 99); 18 Apr 2006 06:57:54 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 17 Apr 2006 23:57:54 -0700 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [209.237.227.194] (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.29) with SMTP; Mon, 17 Apr 2006 23:57:52 -0700 Received: (qmail 14977 invoked by uid 65534); 18 Apr 2006 06:57:31 -0000 Message-ID: <20060418065731.14974.qmail@minotaur.apache.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r394865 - in /webservices/sandesha/trunk/src/org/apache/sandesha2: client/ handlers/ msgprocessors/ util/ workers/ Date: Tue, 18 Apr 2006 06:57:28 -0000 To: sandesha-cvs@ws.apache.org From: chamikara@apache.org X-Mailer: svnmailer-1.0.8 X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: chamikara Date: Mon Apr 17 23:57:27 2006 New Revision: 394865 URL: http://svn.apache.org/viewcvs?rev=394865&view=rev Log: Addded the SandeshaListner interface. Users can register an object of this to get notified for special events (for e.g. RM faults, sequence time outs). Additional methods to the Sandeshaclient. Corrected the timing out logic. Now a sequence can timeout when the maximum number of retransmissions exceed or depending on the last activated time. In a timeout, a registered SandeshaListner object will be invoked. Added: webservices/sandesha/trunk/src/org/apache/sandesha2/client/SandeshaListener.java Removed: webservices/sandesha/trunk/src/org/apache/sandesha2/client/SandeshaFaultCallback.java Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/client/SandeshaClient.java webservices/sandesha/trunk/src/org/apache/sandesha2/client/SandeshaClientConstants.java webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaOutHandler.java webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqResponseMsgProcessor.java webservices/sandesha/trunk/src/org/apache/sandesha2/util/AcknowledgementManager.java webservices/sandesha/trunk/src/org/apache/sandesha2/util/MessageRetransmissionAdjuster.java webservices/sandesha/trunk/src/org/apache/sandesha2/util/SequenceManager.java webservices/sandesha/trunk/src/org/apache/sandesha2/util/TerminateManager.java webservices/sandesha/trunk/src/org/apache/sandesha2/workers/Sender.java Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/client/SandeshaClient.java URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/client/SandeshaClient.java?rev=394865&r1=394864&r2=394865&view=diff ============================================================================== --- webservices/sandesha/trunk/src/org/apache/sandesha2/client/SandeshaClient.java (original) +++ webservices/sandesha/trunk/src/org/apache/sandesha2/client/SandeshaClient.java Mon Apr 17 23:57:27 2006 @@ -588,7 +588,7 @@ return getOutgoingSequenceReport(internalSequenceID,configurationContext); } - private static SequenceReport getOutgoingSequenceReport (String internalSequenceID,ConfigurationContext configurationContext) throws SandeshaException { + public static SequenceReport getOutgoingSequenceReport (String internalSequenceID,ConfigurationContext configurationContext) throws SandeshaException { SequenceReport sequenceReport = new SequenceReport (); sequenceReport.setSequenceDirection(SequenceReport.SEQUENCE_DIRECTION_OUT); @@ -599,12 +599,16 @@ Transaction reportTransaction = storageManager.getTransaction(); + sequenceReport.setInternalSequenceID(internalSequenceID); + CreateSeqBean createSeqFindBean = new CreateSeqBean (); createSeqFindBean.setInternalSequenceID(internalSequenceID); CreateSeqBean createSeqBean = createSeqMgr.findUnique(createSeqFindBean); + //if data not is available sequence has to be terminated or timedOut. if (createSeqBean==null) { + //check weather this is an terminated sequence. if (isSequenceTerminated(internalSequenceID,seqPropMgr)) { fillTerminatedOutgoingSequenceInfo (sequenceReport,internalSequenceID,seqPropMgr); @@ -617,10 +621,16 @@ return sequenceReport; } + + //sequence must hv been timed out before establiching. No other posibility I can think of. + //this does not get recorded since there is no key (which is normally the sequenceID) to store it. + //(properties with key as the internalSequenceID get deleted in timing out) - String message = "Unrecorder internalSequenceID"; - log.debug(message); - return null; + //so, setting the sequence status to INITIAL + sequenceReport.setSequenceStatus(SequenceReport.SEQUENCE_STATUS_INITIAL); + + //returning the current sequence report. + return sequenceReport; } String outSequenceID = createSeqBean.getSequenceID(); @@ -633,7 +643,6 @@ } sequenceReport.setSequenceStatus(SequenceReport.SEQUENCE_STATUS_ESTABLISHED); - fillOutgoingSequenceInfo(sequenceReport,outSequenceID,seqPropMgr); reportTransaction.commit(); @@ -678,7 +687,6 @@ } String outSequenceID = internalSequenceBean.getSequenceID(); - SequencePropertyBean sequenceTerminatedBean = seqPropMgr.retrieve(outSequenceID,Sandesha2Constants.SequenceProperties.SEQUENCE_TIMED_OUT); if (sequenceTerminatedBean!=null && Sandesha2Constants.VALUE_TRUE.equals(sequenceTerminatedBean.getValue())) { return true; @@ -798,7 +806,7 @@ return sequenceReport; } - private static String getInternalSequenceID (String to, String sequenceKey) { + public static String getInternalSequenceID (String to, String sequenceKey) { return SandeshaUtil.getInternalSequenceID(to,sequenceKey); } Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/client/SandeshaClientConstants.java URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/client/SandeshaClientConstants.java?rev=394865&r1=394864&r2=394865&view=diff ============================================================================== --- webservices/sandesha/trunk/src/org/apache/sandesha2/client/SandeshaClientConstants.java (original) +++ webservices/sandesha/trunk/src/org/apache/sandesha2/client/SandeshaClientConstants.java Mon Apr 17 23:57:27 2006 @@ -25,5 +25,5 @@ public static String MESSAGE_NUMBER = "Sandesha2MessageNumber"; public static String RM_SPEC_VERSION = "Sandesha2RMSpecVersion"; public static String DUMMY_MESSAGE = "Sandesha2DummyMessage"; //If this property is set, even though this message will invoke the RM handlers, this will not be sent as an actual application message - public static String RM_FAULT_CALLBACK = "Sandesha2RMFaultCallback"; + public static String SANDESHA_LISTENER = "Sandesha2Listener"; } Added: webservices/sandesha/trunk/src/org/apache/sandesha2/client/SandeshaListener.java URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/client/SandeshaListener.java?rev=394865&view=auto ============================================================================== --- webservices/sandesha/trunk/src/org/apache/sandesha2/client/SandeshaListener.java (added) +++ webservices/sandesha/trunk/src/org/apache/sandesha2/client/SandeshaListener.java Mon Apr 17 23:57:27 2006 @@ -0,0 +1,43 @@ +/* + * Copyright 1999-2004 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + * + */ + +package org.apache.sandesha2.client; + +import org.apache.axis2.AxisFault; + +/** + * By implementing this interface and registering an object with + * Sandesha2, users will be invoked in some events. + * + * @author Chamikara Jayalath + */ + +public interface SandeshaListener { + + /** + * This sill be invoked when Sandesha2 receive a fault message + * in response to a RM control message that was sent by it. + */ + public void onError(AxisFault fault); + + /** + * This will be invoked when a specific sequence time out. + * The timing out method depends on policies. + */ + public void onTimeOut(SequenceReport report); + +} Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java?rev=394865&r1=394864&r2=394865&view=diff ============================================================================== --- webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java (original) +++ webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java Mon Apr 17 23:57:27 2006 @@ -40,7 +40,7 @@ import org.apache.sandesha2.Sandesha2Constants; import org.apache.sandesha2.SandeshaException; import org.apache.sandesha2.client.SandeshaClientConstants; -import org.apache.sandesha2.client.SandeshaFaultCallback; +import org.apache.sandesha2.client.SandeshaListener; import org.apache.sandesha2.client.SandeshaClient; import org.apache.sandesha2.msgprocessors.ApplicationMsgProcessor; import org.apache.sandesha2.storage.StorageManager; @@ -90,7 +90,7 @@ if (requestMessage!=null) { if(SandeshaUtil.isRetriableOnFaults(requestMessage)){ - SandeshaFaultCallback faultCallback = (SandeshaFaultCallback) operationContext.getProperty(SandeshaClientConstants.RM_FAULT_CALLBACK); + SandeshaListener faultCallback = (SandeshaListener) operationContext.getProperty(SandeshaClientConstants.SANDESHA_LISTENER); if (faultCallback!=null) { Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaOutHandler.java URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaOutHandler.java?rev=394865&r1=394864&r2=394865&view=diff ============================================================================== --- webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaOutHandler.java (original) +++ webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaOutHandler.java Mon Apr 17 23:57:27 2006 @@ -114,10 +114,7 @@ if (dummyMessageString!=null && Sandesha2Constants.VALUE_TRUE.equals(dummyMessageString)) dummyMessage = true; - StorageManager storageManager = SandeshaUtil - .getSandeshaStorageManager(context); - - + StorageManager storageManager = SandeshaUtil.getSandeshaStorageManager(context); MsgProcessor msgProcessor = null; int messageType = rmMsgCtx.getMessageType(); Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java?rev=394865&r1=394864&r2=394865&view=diff ============================================================================== --- webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java (original) +++ webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java Mon Apr 17 23:57:27 2006 @@ -131,10 +131,12 @@ return; } - //updating the last activated time of the sequence. -// Transaction lastUpdatedTimeTransaction = storageManager.getTransaction(); -// SequenceManager.updateLastActivatedTime(outSequenceId,rmMsgCtx.getMessageContext().getConfigurationContext()); -// lastUpdatedTimeTransaction.commit(); + String internalSequenceID = SandeshaUtil.getSequenceProperty(outSequenceId,Sandesha2Constants.SequenceProperties.INTERNAL_SEQUENCE_ID,configCtx); + + //updating the last activated time of the sequence. + Transaction lastUpdatedTimeTransaction = storageManager.getTransaction(); + SequenceManager.updateLastActivatedTime(internalSequenceID,rmMsgCtx.getMessageContext().getConfigurationContext()); + lastUpdatedTimeTransaction.commit(); //Starting transaction Transaction ackTransaction = storageManager.getTransaction(); Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java?rev=394865&r1=394864&r2=394865&view=diff ============================================================================== --- webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java (original) +++ webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java Mon Apr 17 23:57:27 2006 @@ -42,7 +42,7 @@ import org.apache.sandesha2.Sandesha2Constants; import org.apache.sandesha2.SandeshaException; import org.apache.sandesha2.client.SandeshaClientConstants; -import org.apache.sandesha2.client.SandeshaFaultCallback; +import org.apache.sandesha2.client.SandeshaListener; import org.apache.sandesha2.client.SandeshaClient; import org.apache.sandesha2.storage.StorageManager; import org.apache.sandesha2.storage.Transaction; @@ -438,11 +438,11 @@ ConfigurationContext configContext = msgContext .getConfigurationContext(); //setting the Fault callback - SandeshaFaultCallback faultCallback = (SandeshaFaultCallback) msgContext.getOptions().getProperty(SandeshaClientConstants.RM_FAULT_CALLBACK); + SandeshaListener faultCallback = (SandeshaListener) msgContext.getOptions().getProperty(SandeshaClientConstants.SANDESHA_LISTENER); if (faultCallback!=null) { OperationContext operationContext = msgContext.getOperationContext(); if (operationContext!=null) { - operationContext.setProperty(SandeshaClientConstants.RM_FAULT_CALLBACK,faultCallback); + operationContext.setProperty(SandeshaClientConstants.SANDESHA_LISTENER,faultCallback); } } @@ -848,7 +848,7 @@ createSeqEntry.setMessageContextRefKey(key); createSeqEntry.setTimeToSend(System.currentTimeMillis()); createSeqEntry.setMessageID(createSeqRMMessage.getMessageId()); - + createSeqEntry.setInternalSequenceID(internalSequenceId); // this will be set to true in the sender createSeqEntry.setSend(true); Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java?rev=394865&r1=394864&r2=394865&view=diff ============================================================================== --- webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java (original) +++ webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java Mon Apr 17 23:57:27 2006 @@ -32,7 +32,7 @@ import org.apache.sandesha2.Sandesha2Constants; import org.apache.sandesha2.SandeshaException; import org.apache.sandesha2.client.SandeshaClientConstants; -import org.apache.sandesha2.client.SandeshaFaultCallback; +import org.apache.sandesha2.client.SandeshaListener; import org.apache.sandesha2.client.SandeshaClient; import org.apache.sandesha2.storage.StorageManager; import org.apache.sandesha2.storage.Transaction; @@ -230,12 +230,12 @@ MessageContext msgCtx = rmMsgCtx.getMessageContext(); - //adding the RM_FAULT_CALLBACK - SandeshaFaultCallback faultCallback = (SandeshaFaultCallback) msgCtx.getOptions().getProperty(SandeshaClientConstants.RM_FAULT_CALLBACK); + //adding the SANDESHA_LISTENER + SandeshaListener faultCallback = (SandeshaListener) msgCtx.getOptions().getProperty(SandeshaClientConstants.SANDESHA_LISTENER); if (faultCallback!=null) { OperationContext operationContext = msgCtx.getOperationContext(); if (operationContext!=null) { - operationContext.setProperty(SandeshaClientConstants.RM_FAULT_CALLBACK,faultCallback); + operationContext.setProperty(SandeshaClientConstants.SANDESHA_LISTENER,faultCallback); } } } Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqResponseMsgProcessor.java URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqResponseMsgProcessor.java?rev=394865&r1=394864&r2=394865&view=diff ============================================================================== --- webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqResponseMsgProcessor.java (original) +++ webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/CreateSeqResponseMsgProcessor.java Mon Apr 17 23:57:27 2006 @@ -288,9 +288,8 @@ updateAppMessagesTransaction.commit(); Transaction lastUpdatedTimeTransaction = storageManager.getTransaction(); - SequenceManager.updateLastActivatedTime(newOutSequenceId,configCtx); + SequenceManager.updateLastActivatedTime(internalSequenceId,configCtx); lastUpdatedTimeTransaction.commit(); - createSeqResponseRMMsgCtx.getMessageContext().getOperationContext() .setProperty(org.apache.axis2.Constants.RESPONSE_WRITTEN, Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/util/AcknowledgementManager.java URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/util/AcknowledgementManager.java?rev=394865&r1=394864&r2=394865&view=diff ============================================================================== --- webservices/sandesha/trunk/src/org/apache/sandesha2/util/AcknowledgementManager.java (original) +++ webservices/sandesha/trunk/src/org/apache/sandesha2/util/AcknowledgementManager.java Mon Apr 17 23:57:27 2006 @@ -80,7 +80,7 @@ SenderBean findBean = new SenderBean(); String sequnceID = SandeshaUtil.getSequenceIDFromRMMessage (rmMessageContext); - + findBean.setMessageType(Sandesha2Constants.MessageTypes.ACK); findBean.setSend(true); findBean.setReSend(false); Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/util/MessageRetransmissionAdjuster.java URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/util/MessageRetransmissionAdjuster.java?rev=394865&r1=394864&r2=394865&view=diff ============================================================================== --- webservices/sandesha/trunk/src/org/apache/sandesha2/util/MessageRetransmissionAdjuster.java (original) +++ webservices/sandesha/trunk/src/org/apache/sandesha2/util/MessageRetransmissionAdjuster.java Mon Apr 17 23:57:27 2006 @@ -22,8 +22,13 @@ import org.apache.axis2.description.Parameter; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +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.client.SandeshaListener; +import org.apache.sandesha2.client.SequenceReport; import org.apache.sandesha2.policy.RMPolicyBean; import org.apache.sandesha2.storage.StorageManager; import org.apache.sandesha2.storage.beans.SenderBean; @@ -38,7 +43,7 @@ Log log = LogFactory.getLog( getClass()); - public SenderBean adjustRetransmittion( + public boolean adjustRetransmittion( SenderBean retransmitterBean,ConfigurationContext configContext) throws SandeshaException { StorageManager storageManager = SandeshaUtil.getSandeshaStorageManager(configContext); @@ -48,18 +53,36 @@ throw new SandeshaException ("Stored Key not present in the retransmittable message"); MessageContext messageContext = storageManager.retrieveMessageContext(storedKey,configContext); - - + RMMsgContext rmMsgCtx = MsgInitializer.initializeMessage(messageContext); + + String internalSequenceID = retransmitterBean.getInternalSequenceID(); + String sequenceID = retransmitterBean.getSequenceID(); + SandeshaPropertyBean propertyBean = SandeshaUtil.getPropretyBean(messageContext); retransmitterBean.setSentCount(retransmitterBean.getSentCount() + 1); adjustNextRetransmissionTime(retransmitterBean, propertyBean); int maxRetransmissionAttempts = propertyBean.getMaximumRetransmissionCount(); + + boolean timeOutSequence = false; if (maxRetransmissionAttempts>=0 && retransmitterBean.getSentCount() > maxRetransmissionAttempts) + timeOutSequence = true; + + boolean sequenceTimedOut = SequenceManager.hasSequenceTimedOut(internalSequenceID, rmMsgCtx); + if (sequenceTimedOut) + timeOutSequence = true; + + boolean continueSending = true; + if (timeOutSequence) { stopRetransmission(retransmitterBean); - - return retransmitterBean; + + //Only messages of outgoing sequences get retransmitted. So named following method according to that. + finalizeTimedOutSequence (internalSequenceID,sequenceID, messageContext); + continueSending = false; + } + + return continueSending; } /** @@ -108,6 +131,17 @@ } return interval; + } + + private void finalizeTimedOutSequence (String internalSequenceID, String sequenceID ,MessageContext messageContext) throws SandeshaException { + ConfigurationContext configurationContext = messageContext.getConfigurationContext(); + SequenceReport report = SandeshaClient.getOutgoingSequenceReport(internalSequenceID ,configurationContext); + TerminateManager.timeOutSendingSideSequence(configurationContext,internalSequenceID, false); + + SandeshaListener listener = (SandeshaListener) messageContext.getProperty(SandeshaClientConstants.SANDESHA_LISTENER); + if (listener!=null) { + listener.onTimeOut(report); + } } } Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/util/SequenceManager.java URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/util/SequenceManager.java?rev=394865&r1=394864&r2=394865&view=diff ============================================================================== --- webservices/sandesha/trunk/src/org/apache/sandesha2/util/SequenceManager.java (original) +++ webservices/sandesha/trunk/src/org/apache/sandesha2/util/SequenceManager.java Mon Apr 17 23:57:27 2006 @@ -311,6 +311,9 @@ specVerionBean.setValue(specVersion); seqPropMgr.insert(specVerionBean); + //updating the last activated time. + updateLastActivatedTime(internalSequenceId,configurationContext); + SandeshaUtil.startSenderForTheSequence(configurationContext,internalSequenceId); updateClientSideListnerIfNeeded (firstAplicationMsgCtx,anonymousURI); @@ -357,19 +360,19 @@ * @param configContext * @throws SandeshaException */ - public static void updateLastActivatedTime (String sequenceID, ConfigurationContext configContext) throws SandeshaException { + public static void updateLastActivatedTime (String propertyKey, ConfigurationContext configContext) throws SandeshaException { StorageManager storageManager = SandeshaUtil.getSandeshaStorageManager(configContext); //Transaction lastActivatedTransaction = storageManager.getTransaction(); SequencePropertyBeanMgr sequencePropertyBeanMgr = storageManager.getSequencePropretyBeanMgr(); - SequencePropertyBean lastActivatedBean = sequencePropertyBeanMgr.retrieve(sequenceID, Sandesha2Constants.SequenceProperties.LAST_ACTIVATED_TIME); + SequencePropertyBean lastActivatedBean = sequencePropertyBeanMgr.retrieve(propertyKey, Sandesha2Constants.SequenceProperties.LAST_ACTIVATED_TIME); boolean added = false; if (lastActivatedBean==null) { added = true; lastActivatedBean = new SequencePropertyBean (); - lastActivatedBean.setSequenceID(sequenceID); + lastActivatedBean.setSequenceID(propertyKey); lastActivatedBean.setName(Sandesha2Constants.SequenceProperties.LAST_ACTIVATED_TIME); } @@ -385,12 +388,12 @@ } - public static long getLastActivatedTime (String sequenceID, ConfigurationContext configContext) throws SandeshaException { + public static long getLastActivatedTime (String propertyKey, ConfigurationContext configContext) throws SandeshaException { StorageManager storageManager = SandeshaUtil.getSandeshaStorageManager(configContext); SequencePropertyBeanMgr seqPropBeanMgr = storageManager.getSequencePropretyBeanMgr(); - SequencePropertyBean lastActivatedBean = seqPropBeanMgr.retrieve(sequenceID,Sandesha2Constants.SequenceProperties.LAST_ACTIVATED_TIME); + SequencePropertyBean lastActivatedBean = seqPropBeanMgr.retrieve(propertyKey,Sandesha2Constants.SequenceProperties.LAST_ACTIVATED_TIME); long lastActivatedTime = -1; @@ -401,7 +404,7 @@ return lastActivatedTime; } - public static boolean hasSequenceTimedOut (String sequenceID, RMMsgContext rmMsgCtx) throws SandeshaException { + public static boolean hasSequenceTimedOut (String propertyKey, RMMsgContext rmMsgCtx) throws SandeshaException { StorageManager storageManager = SandeshaUtil.getSandeshaStorageManager(rmMsgCtx.getMessageContext().getConfigurationContext()); SequencePropertyBeanMgr seqPropBeanMgr = storageManager.getSequencePropretyBeanMgr(); @@ -422,7 +425,7 @@ //SequencePropertyBean lastActivatedBean = seqPropBeanMgr.retrieve(sequenceID,Sandesha2Constants.SequenceProperties.LAST_ACTIVATED_TIME); //if (lastActivatedBean!=null) { - long lastActivatedTime = getLastActivatedTime(sequenceID,rmMsgCtx.getMessageContext().getConfigurationContext()); + long lastActivatedTime = getLastActivatedTime(propertyKey,rmMsgCtx.getMessageContext().getConfigurationContext()); long timeNow = System.currentTimeMillis(); if (lastActivatedTime>0 && (lastActivatedTime+policyBean.getInactiveTimeoutInterval()