[jboss-cvs] JBoss Messaging SVN: r8238 - in branches/Branch_1_4: integration/AS5/etc/xmdesc and 8 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Sat Mar 19 02:20:14 EDT 2011
Author: gaohoward
Date: 2011-03-19 02:20:12 -0400 (Sat, 19 Mar 2011)
New Revision: 8238
Modified:
branches/Branch_1_4/docs/userguide/en/modules/configuration.xml
branches/Branch_1_4/integration/AS5/etc/xmdesc/ConnectionFactory-xmbean.xml
branches/Branch_1_4/integration/EAP4/etc/xmdesc/ConnectionFactory-xmbean.xml
branches/Branch_1_4/integration/EAP5/etc/xmdesc/ConnectionFactory-xmbean.xml
branches/Branch_1_4/src/main/org/jboss/jms/client/container/ClientConsumer.java
branches/Branch_1_4/src/main/org/jboss/jms/client/container/ConsumerAspect.java
branches/Branch_1_4/src/main/org/jboss/jms/client/container/StateCreationAspect.java
branches/Branch_1_4/src/main/org/jboss/jms/client/delegate/ClientConnectionDelegate.java
branches/Branch_1_4/src/main/org/jboss/jms/client/delegate/ClientConnectionFactoryDelegate.java
branches/Branch_1_4/src/main/org/jboss/jms/client/state/ConnectionState.java
branches/Branch_1_4/src/main/org/jboss/jms/client/state/ConsumerState.java
branches/Branch_1_4/src/main/org/jboss/jms/client/state/SessionState.java
branches/Branch_1_4/src/main/org/jboss/jms/server/ConnectionFactoryManager.java
branches/Branch_1_4/src/main/org/jboss/jms/server/connectionfactory/ConnectionFactory.java
branches/Branch_1_4/src/main/org/jboss/jms/server/connectionfactory/ConnectionFactoryJNDIMapper.java
branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms/ConnectionFactoryTest.java
Log:
JBMESSAGING-1851
Modified: branches/Branch_1_4/docs/userguide/en/modules/configuration.xml
===================================================================
--- branches/Branch_1_4/docs/userguide/en/modules/configuration.xml 2011-03-15 03:45:18 UTC (rev 8237)
+++ branches/Branch_1_4/docs/userguide/en/modules/configuration.xml 2011-03-19 06:20:12 UTC (rev 8238)
@@ -2520,6 +2520,29 @@
<para>This attribute takes effect only if the EnableOrderingGroup attribute is true.</para>
</section>
+ <section id="conf.connectionfactory.attributes.maxretrychangerate">
+ <title>MaxRetryChangeRate</title>
+
+ <para>Maximum attempts to retry sending change rate message for a consumer. Default is zero (no retry).</para>
+
+ <para>This attribute is useful when there is some random network disturbance between a client and the JBM server. A JMS client
+ can inform the JMS server to deliver more messages to it when there is no more messages in the client buffer, by sending a changeRate message
+ to the server. If the changeRate message failed to reach the server due to a temporary network disturbance, the server won't start delivering messages
+ to the client and the client receives no more messages even the messages at the server keep building up. With this parameter, the client can retry sending
+ of the changeRate messages in case of failure so this issue can be greatly alleviated .</para>
+
+ <para>The valid values for this attribute are zero (default, no retry), -1 (retry forever), and any positive long type number. It is used together with
+ attribute RetryChangeRateInterval.</para>
+ </section>
+
+ <section id="conf.connectionfactory.attributes.retrychangerateinterval">
+ <title>RetryChangeRateInterval</title>
+
+ <para>Interval (milliseconds) between two attempts of retrying to send change rate message. Default is 5000.</para>
+
+ <para>This attribute takes effect only if the MaxRetryChangeRate attribute is not zero.</para>
+ </section>
+
<!-- End conf.connectionfactory.attributes -->
</section>
Modified: branches/Branch_1_4/integration/AS5/etc/xmdesc/ConnectionFactory-xmbean.xml
===================================================================
--- branches/Branch_1_4/integration/AS5/etc/xmdesc/ConnectionFactory-xmbean.xml 2011-03-15 03:45:18 UTC (rev 8237)
+++ branches/Branch_1_4/integration/AS5/etc/xmdesc/ConnectionFactory-xmbean.xml 2011-03-19 06:20:12 UTC (rev 8238)
@@ -147,6 +147,18 @@
<name>DefaultOrderingGroupName</name>
<type>java.lang.String</type>
</attribute>
+
+ <attribute access="read-write" getMethod="getMaxRetryChangeRate" setMethod="setMaxRetryChangeRate">
+ <description>Maximum attempts to retry sending change rate message for a consumer. Default is zero (no retry).</description>
+ <name>MaxRetryChangeRate</name>
+ <type>long</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getRetryChangeRateInterval" setMethod="setRetryChangeRateInterval">
+ <description>Interval (milliseconds) between two attempts of retrying to send change rate message. Default is 5000.</description>
+ <name>RetryChangeRateInterval</name>
+ <type>long</type>
+ </attribute>
<!-- Managed operations -->
@@ -170,4 +182,4 @@
<name>destroy</name>
</operation>
-</mbean>
\ No newline at end of file
+</mbean>
Modified: branches/Branch_1_4/integration/EAP4/etc/xmdesc/ConnectionFactory-xmbean.xml
===================================================================
--- branches/Branch_1_4/integration/EAP4/etc/xmdesc/ConnectionFactory-xmbean.xml 2011-03-15 03:45:18 UTC (rev 8237)
+++ branches/Branch_1_4/integration/EAP4/etc/xmdesc/ConnectionFactory-xmbean.xml 2011-03-19 06:20:12 UTC (rev 8238)
@@ -147,6 +147,18 @@
<name>DefaultOrderingGroupName</name>
<type>java.lang.String</type>
</attribute>
+
+ <attribute access="read-write" getMethod="getMaxRetryChangeRate" setMethod="setMaxRetryChangeRate">
+ <description>Maximum attempts to retry sending change rate message for a consumer. Default is zero (no retry).</description>
+ <name>MaxRetryChangeRate</name>
+ <type>long</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getRetryChangeRateInterval" setMethod="setRetryChangeRateInterval">
+ <description>Interval (milliseconds) between two attempts of retrying to send change rate message. Default is 5000.</description>
+ <name>RetryChangeRateInterval</name>
+ <type>long</type>
+ </attribute>
<!-- Managed operations -->
Modified: branches/Branch_1_4/integration/EAP5/etc/xmdesc/ConnectionFactory-xmbean.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/xmdesc/ConnectionFactory-xmbean.xml 2011-03-15 03:45:18 UTC (rev 8237)
+++ branches/Branch_1_4/integration/EAP5/etc/xmdesc/ConnectionFactory-xmbean.xml 2011-03-19 06:20:12 UTC (rev 8238)
@@ -147,6 +147,18 @@
<name>DefaultOrderingGroupName</name>
<type>java.lang.String</type>
</attribute>
+
+ <attribute access="read-write" getMethod="getMaxRetryChangeRate" setMethod="setMaxRetryChangeRate">
+ <description>Maximum attempts to retry sending change rate message for a consumer. Default is zero (no retry).</description>
+ <name>MaxRetryChangeRate</name>
+ <type>long</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getRetryChangeRateInterval" setMethod="setRetryChangeRateInterval">
+ <description>Interval (milliseconds) between two attempts of retrying to send change rate message. Default is 5000.</description>
+ <name>RetryChangeRateInterval</name>
+ <type>long</type>
+ </attribute>
<!-- Managed operations -->
@@ -170,4 +182,4 @@
<name>destroy</name>
</operation>
-</mbean>
\ No newline at end of file
+</mbean>
Modified: branches/Branch_1_4/src/main/org/jboss/jms/client/container/ClientConsumer.java
===================================================================
--- branches/Branch_1_4/src/main/org/jboss/jms/client/container/ClientConsumer.java 2011-03-15 03:45:18 UTC (rev 8237)
+++ branches/Branch_1_4/src/main/org/jboss/jms/client/container/ClientConsumer.java 2011-03-19 06:20:12 UTC (rev 8238)
@@ -296,6 +296,8 @@
private boolean firstTime = true;
private volatile Thread onMessageThread;
private ExecutorService pool = Executors.newFixedThreadPool(1);
+ private long maxRetryChangeRate;
+ private long retryChangeRateInterval;
public int getBufferSize()
{
@@ -309,7 +311,9 @@
String queueName,
int bufferSize, Executor sessionExecutor,
int maxDeliveries, boolean shouldAck,
- long redeliveryDelay)
+ long redeliveryDelay,
+ long maxRetryChangeRate,
+ long retryChangeRateInterval)
{
if (bufferSize < 1)
{
@@ -329,6 +333,8 @@
this.maxDeliveries = maxDeliveries;
this.shouldAck = shouldAck;
this.redeliveryDelay = redeliveryDelay;
+ this.maxRetryChangeRate = maxRetryChangeRate;
+ this.retryChangeRateInterval = retryChangeRateInterval;
}
// Public ---------------------------------------------------------------------------------------
@@ -807,7 +813,7 @@
}
}
- private void sendChangeRateMessage(float newRate)
+ public void sendChangeRateMessage(float newRate)
{
try
{
@@ -817,10 +823,52 @@
}
catch (JMSException e)
{
- log.error("Failed to send changeRate message", e);
+ if (maxRetryChangeRate == 0)
+ {
+ log.error("Failed to send changeRate message", e);
+ }
+ else
+ {
+ log.warn("Failed to send changeRate message, will retry with maxRetryChangeRate " + maxRetryChangeRate
+ + ", retryChangeRateInterval " + retryChangeRateInterval + ", newRate " + newRate);
+ retrySendChangeRateMessage(newRate);
+ }
}
}
+ private void retrySendChangeRateMessage(float newRate)
+ {
+ int numRetry = 0;
+ while (true)
+ {
+ try
+ {
+ numRetry++;
+ if (trace) { log.trace("Retrying sending changeRate, numRetry " + numRetry); }
+
+ consumerDelegate.changeRate(newRate);
+ log.info("Successfully sent changeRate. Retry number: " + numRetry);
+ break;
+ }
+ catch (JMSException ee)
+ {
+ if ((maxRetryChangeRate > 0) && (numRetry >= maxRetryChangeRate))
+ {
+ log.warn("Failed to send changeRate message after retry number " + numRetry, ee);
+ break;
+ }
+ try
+ {
+ Thread.sleep(retryChangeRateInterval);
+ }
+ catch (InterruptedException ex)
+ {
+ //ignore
+ }
+ }
+ }
+ }
+
private void waitForOnMessageToComplete()
{
// Wait for any onMessage() executions to complete
Modified: branches/Branch_1_4/src/main/org/jboss/jms/client/container/ConsumerAspect.java
===================================================================
--- branches/Branch_1_4/src/main/org/jboss/jms/client/container/ConsumerAspect.java 2011-03-15 03:45:18 UTC (rev 8237)
+++ branches/Branch_1_4/src/main/org/jboss/jms/client/container/ConsumerAspect.java 2011-03-19 06:20:12 UTC (rev 8238)
@@ -113,7 +113,8 @@
new ClientConsumer(isCC, sessionState.getAcknowledgeMode(),
sessionDelegate, consumerDelegate, consumerID, queueName,
prefetchSize, executor, maxDeliveries, consumerState.isShouldAck(),
- redeliveryDelay);
+ redeliveryDelay, consumerState.getMaxRetryChangeRate(),
+ consumerState.getRetryChangeRateInterval());
sessionState.addCallbackHandler(messageHandler);
@@ -126,7 +127,8 @@
{
//Now we have finished creating the client consumer, we can tell the SCD
//we are ready
- consumerDelegate.changeRate(1);
+ //consumerDelegate.changeRate(1);
+ messageHandler.sendChangeRateMessage(1);
}
return consumerDelegate;
Modified: branches/Branch_1_4/src/main/org/jboss/jms/client/container/StateCreationAspect.java
===================================================================
--- branches/Branch_1_4/src/main/org/jboss/jms/client/container/StateCreationAspect.java 2011-03-15 03:45:18 UTC (rev 8237)
+++ branches/Branch_1_4/src/main/org/jboss/jms/client/container/StateCreationAspect.java 2011-03-19 06:20:12 UTC (rev 8238)
@@ -99,7 +99,8 @@
ConnectionState connectionState =
new ConnectionState(serverID, connectionDelegate,
remotingConnection, versionToUse,
- connectionDelegate.isEnableOrderingGroup(), connectionDelegate.getDefaultOrderingGroupName());
+ connectionDelegate.isEnableOrderingGroup(), connectionDelegate.getDefaultOrderingGroupName(),
+ connectionDelegate.getMaxRetryChangeRate(), connectionDelegate.getRetryChangeRateInterval());
remotingConnection.getConnectionListener().setConnectionState(connectionState);
remotingConnection.getConnectionListener().start();
Modified: branches/Branch_1_4/src/main/org/jboss/jms/client/delegate/ClientConnectionDelegate.java
===================================================================
--- branches/Branch_1_4/src/main/org/jboss/jms/client/delegate/ClientConnectionDelegate.java 2011-03-15 03:45:18 UTC (rev 8237)
+++ branches/Branch_1_4/src/main/org/jboss/jms/client/delegate/ClientConnectionDelegate.java 2011-03-19 06:20:12 UTC (rev 8238)
@@ -86,6 +86,10 @@
private boolean enableOrderingGroup;
private String defaultOrderingGroupName;
+
+ private long maxRetryChangeRate;
+
+ private long retryChangeRateInterval;
// Static ---------------------------------------------------------------------------------------
@@ -373,8 +377,29 @@
return defaultOrderingGroupName;
}
+ public long getRetryChangeRateInterval()
+ {
+ return retryChangeRateInterval;
+ }
+
+ public long getMaxRetryChangeRate()
+ {
+ return maxRetryChangeRate;
+ }
+
+ public void setMaxRetryChangeRate(long maxRetryChangeRate)
+ {
+ this.maxRetryChangeRate = maxRetryChangeRate;
+ }
+
+ public void setRetryChangeRateInterval(long retryChangeRateInterval)
+ {
+ this.retryChangeRateInterval = retryChangeRateInterval;
+ }
+
// Package Private ------------------------------------------------------------------------------
+
// Private --------------------------------------------------------------------------------------
// Inner Classes --------------------------------------------------------------------------------
Modified: branches/Branch_1_4/src/main/org/jboss/jms/client/delegate/ClientConnectionFactoryDelegate.java
===================================================================
--- branches/Branch_1_4/src/main/org/jboss/jms/client/delegate/ClientConnectionFactoryDelegate.java 2011-03-15 03:45:18 UTC (rev 8237)
+++ branches/Branch_1_4/src/main/org/jboss/jms/client/delegate/ClientConnectionFactoryDelegate.java 2011-03-19 06:20:12 UTC (rev 8238)
@@ -84,6 +84,10 @@
private String defaultOrderingGroupName;
+ private long maxRetryChangeRate;
+
+ private long retryChangeRateInterval;
+
// Static ---------------------------------------------------------------------------------------
/*
@@ -114,7 +118,8 @@
public ClientConnectionFactoryDelegate(String uniqueName, String objectID, int serverID, String serverLocatorURI,
Version serverVersion, boolean clientPing, boolean strictTck,
- boolean sendAcksAsync, boolean enableOrderingGroup, String defaultOrderingGroupName)
+ boolean sendAcksAsync, boolean enableOrderingGroup, String defaultOrderingGroupName,
+ long maxRetryChangeRate, long retryChangeRateInterval)
{
super(objectID);
@@ -127,6 +132,8 @@
this.sendAcksAsync = sendAcksAsync;
this.setEnableOrderingGroup(enableOrderingGroup);
this.setDefaultOrderingGroupName(defaultOrderingGroupName);
+ this.maxRetryChangeRate = maxRetryChangeRate;
+ this.retryChangeRateInterval = retryChangeRateInterval;
}
public ClientConnectionFactoryDelegate()
@@ -209,6 +216,10 @@
connectionDelegate.setEnableOrderingGroup(this.enableOrderingGroup);
connectionDelegate.setDefaultOrderingGroup(this.defaultOrderingGroupName);
+
+ connectionDelegate.setMaxRetryChangeRate(this.maxRetryChangeRate);
+
+ connectionDelegate.setRetryChangeRateInterval(this.retryChangeRateInterval);
}
else
{
Modified: branches/Branch_1_4/src/main/org/jboss/jms/client/state/ConnectionState.java
===================================================================
--- branches/Branch_1_4/src/main/org/jboss/jms/client/state/ConnectionState.java 2011-03-15 03:45:18 UTC (rev 8237)
+++ branches/Branch_1_4/src/main/org/jboss/jms/client/state/ConnectionState.java 2011-03-19 06:20:12 UTC (rev 8238)
@@ -91,12 +91,17 @@
private boolean enableOrderingGroup;
private String defaultOrderingGroupName;
+
+ private long maxRetryChangeRate;
+
+ private long retryChangeRateInterval;
// Constructors ---------------------------------------------------------------------------------
public ConnectionState(int serverID, ConnectionDelegate delegate,
JMSRemotingConnection remotingConnection,
- Version versionToUse, boolean enableOrderingGroup, String defaultOrderingGroupName)
+ Version versionToUse, boolean enableOrderingGroup, String defaultOrderingGroupName,
+ long maxRetryChangeRate, long retryChangeRateInterval)
throws Exception
{
super(null, (DelegateSupport)delegate);
@@ -118,6 +123,10 @@
this.setEnableOrderingGroup(enableOrderingGroup);
this.setDefaultOrderingGroupName(defaultOrderingGroupName);
+
+ this.maxRetryChangeRate = maxRetryChangeRate;
+
+ this.retryChangeRateInterval = retryChangeRateInterval;
}
// HierarchicalState implementation -------------------------------------------------------------
@@ -306,6 +315,16 @@
return defaultOrderingGroupName;
}
+ public long getMaxRetryChangeRate()
+ {
+ return maxRetryChangeRate;
+ }
+
+ public long getRetryChangeRateInterval()
+ {
+ return retryChangeRateInterval;
+ }
+
// Package protected ----------------------------------------------------------------------------
// Protected ------------------------------------------------------------------------------------
Modified: branches/Branch_1_4/src/main/org/jboss/jms/client/state/ConsumerState.java
===================================================================
--- branches/Branch_1_4/src/main/org/jboss/jms/client/state/ConsumerState.java 2011-03-15 03:45:18 UTC (rev 8237)
+++ branches/Branch_1_4/src/main/org/jboss/jms/client/state/ConsumerState.java 2011-03-19 06:20:12 UTC (rev 8238)
@@ -66,6 +66,9 @@
private SessionState parent;
private ConsumerDelegate delegate;
+ private long maxRetryChangeRate;
+ private long retryChangeRateInterval;
+
// Constructors ---------------------------------------------------------------------------------
public ConsumerState(SessionState parent, ConsumerDelegate delegate, JBossDestination dest,
@@ -83,6 +86,8 @@
this.subscriptionName=subscriptionName;
this.maxDeliveries = maxDeliveries;
this.redeliveryDelay = redeliveryDelay;
+ this.maxRetryChangeRate = parent.getMaxRetryChangeRate();
+ this.retryChangeRateInterval = parent.getRetryChangeRateInterval();
//We don't store deliveries if this a non durable subscriber
@@ -221,6 +226,16 @@
return redeliveryDelay;
}
+ public long getMaxRetryChangeRate()
+ {
+ return maxRetryChangeRate;
+ }
+
+ public long getRetryChangeRateInterval()
+ {
+ return this.retryChangeRateInterval;
+ }
+
// Package protected ----------------------------------------------------------------------------
// Protected ------------------------------------------------------------------------------------
Modified: branches/Branch_1_4/src/main/org/jboss/jms/client/state/SessionState.java
===================================================================
--- branches/Branch_1_4/src/main/org/jboss/jms/client/state/SessionState.java 2011-03-15 03:45:18 UTC (rev 8237)
+++ branches/Branch_1_4/src/main/org/jboss/jms/client/state/SessionState.java 2011-03-19 06:20:12 UTC (rev 8238)
@@ -570,5 +570,15 @@
}
}
+ public long getMaxRetryChangeRate()
+ {
+ return parent.getMaxRetryChangeRate();
+ }
+
+ public long getRetryChangeRateInterval()
+ {
+ return parent.getRetryChangeRateInterval();
+ }
+
}
Modified: branches/Branch_1_4/src/main/org/jboss/jms/server/ConnectionFactoryManager.java
===================================================================
--- branches/Branch_1_4/src/main/org/jboss/jms/server/ConnectionFactoryManager.java 2011-03-15 03:45:18 UTC (rev 8237)
+++ branches/Branch_1_4/src/main/org/jboss/jms/server/ConnectionFactoryManager.java 2011-03-19 06:20:12 UTC (rev 8238)
@@ -53,7 +53,9 @@
boolean strictTck,
boolean sendAcksAsync,
boolean enableOrderingGroup,
- String defaultOrderingGroupName) throws Exception;
+ String defaultOrderingGroupName,
+ long maxRetryChangeRate,
+ long retryChangeRateInterval) throws Exception;
void unregisterConnectionFactory(String uniqueName, boolean supportsFailover, boolean supportsLoadBalancing) throws Exception;
}
Modified: branches/Branch_1_4/src/main/org/jboss/jms/server/connectionfactory/ConnectionFactory.java
===================================================================
--- branches/Branch_1_4/src/main/org/jboss/jms/server/connectionfactory/ConnectionFactory.java 2011-03-15 03:45:18 UTC (rev 8237)
+++ branches/Branch_1_4/src/main/org/jboss/jms/server/connectionfactory/ConnectionFactory.java 2011-03-19 06:20:12 UTC (rev 8238)
@@ -88,6 +88,10 @@
private boolean enableOrderingGroup;
private String defaultOrderingGroupName;
+
+ private long maxRetryChangeRate = 0;
+
+ private long retryChangeRateInterval = 5000;
// Constructors ---------------------------------------------------------------------------------
@@ -208,7 +212,8 @@
locatorURI, enablePing, prefetchSize, slowConsumers,
defaultTempQueueFullSize, defaultTempQueuePageSize,
defaultTempQueueDownCacheSize, dupsOKBatchSize, supportsFailover, supportsLoadBalancing,
- loadBalancingFactory, strictTck, sendAcksAsync, enableOrderingGroup, defaultOrderingGroupName);
+ loadBalancingFactory, strictTck, sendAcksAsync, enableOrderingGroup, defaultOrderingGroupName,
+ maxRetryChangeRate, retryChangeRateInterval);
String info = "Connector " + locator.getProtocol() + "://" +
locator.getHost() + ":" + locator.getPort();
@@ -488,6 +493,27 @@
{
return defaultOrderingGroupName;
}
+
+ public long getMaxRetryChangeRate()
+ {
+ return maxRetryChangeRate;
+ }
+
+ public void setMaxRetryChangeRate(long maxRetryChangeRate)
+ {
+ this.maxRetryChangeRate = maxRetryChangeRate;
+ }
+
+ public long getRetryChangeRateInterval()
+ {
+ return retryChangeRateInterval;
+ }
+
+ public void setRetryChangeRateInterval(long retryChangeRateInterval)
+ {
+ this.retryChangeRateInterval = retryChangeRateInterval;
+ }
+
// JMX managed operations -----------------------------------------------------------------------
// Public ---------------------------------------------------------------------------------------
Modified: branches/Branch_1_4/src/main/org/jboss/jms/server/connectionfactory/ConnectionFactoryJNDIMapper.java
===================================================================
--- branches/Branch_1_4/src/main/org/jboss/jms/server/connectionfactory/ConnectionFactoryJNDIMapper.java 2011-03-15 03:45:18 UTC (rev 8237)
+++ branches/Branch_1_4/src/main/org/jboss/jms/server/connectionfactory/ConnectionFactoryJNDIMapper.java 2011-03-19 06:20:12 UTC (rev 8238)
@@ -131,7 +131,9 @@
boolean strictTck,
boolean sendAcksAsync,
boolean enableOrderingGroup,
- String defaultOrderingGroupName)
+ String defaultOrderingGroupName,
+ long maxRetryChangeRate,
+ long retryChangeRateInterval)
throws Exception
{
log.debug(this + " registering connection factory '" + uniqueName + "', bindings: " + jndiBindings);
@@ -186,7 +188,8 @@
ClientConnectionFactoryDelegate localDelegate =
new ClientConnectionFactoryDelegate(uniqueName, id, serverPeer.getServerPeerID(),
locatorURI, version, clientPing, useStrict,
- sendAcksAsync, enableOrderingGroup, defaultOrderingGroupName);
+ sendAcksAsync, enableOrderingGroup, defaultOrderingGroupName,
+ maxRetryChangeRate, retryChangeRateInterval);
log.debug(this + " created local delegate " + localDelegate);
Modified: branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms/ConnectionFactoryTest.java
===================================================================
--- branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms/ConnectionFactoryTest.java 2011-03-15 03:45:18 UTC (rev 8237)
+++ branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms/ConnectionFactoryTest.java 2011-03-19 06:20:12 UTC (rev 8238)
@@ -37,9 +37,12 @@
import javax.jms.TopicConnectionFactory;
import javax.management.ObjectName;
+import org.jboss.jms.client.JBossConnection;
import org.jboss.jms.client.JBossConnectionFactory;
import org.jboss.jms.client.JBossMessageProducer;
+import org.jboss.jms.client.delegate.ClientConnectionDelegate;
import org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate;
+import org.jboss.jms.client.state.ConnectionState;
import org.jboss.jms.message.JBossMessage;
import org.jboss.test.messaging.tools.ServerManagement;
import org.jboss.test.messaging.tools.container.ServiceContainer;
@@ -854,6 +857,118 @@
}
}
+ //https://issues.jboss.org/browse/JBMESSAGING-1851
+ public void testChangeRateConfigSettings() throws Exception
+ {
+ Connection c = null;
+
+ try
+ {
+ String mbeanConfig = "<mbean code=\"org.jboss.jms.server.connectionfactory.ConnectionFactory\"\n" + " name=\"jboss.messaging.connectionfactory:service=TestChangeRateConfigSettingsFactory\"\n"
+ + " xmbean-dd=\"xmdesc/ConnectionFactory-xmbean.xml\">\n"
+ + " <depends optional-attribute-name=\"ServerPeer\">jboss.messaging:service=ServerPeer</depends>\n"
+ + " <depends optional-attribute-name=\"Connector\">jboss.messaging:service=Connector,transport=bisocket</depends>\n"
+ + " <attribute name=\"JNDIBindings\">\n"
+ + " <bindings>\n"
+ + " <binding>/TestChangeRateConfigSettingsFactory</binding>\n"
+ + " </bindings>\n"
+ + " </attribute>\n"
+ + " <attribute name=\"MaxRetryChangeRate\">10</attribute>\n"
+ + " <attribute name=\"RetryChangeRateInterval\">2345</attribute>\n"
+ + " </mbean>";
+
+ ObjectName on = ServerManagement.deploy(mbeanConfig);
+ ServerManagement.invoke(on, "create", new Object[0], new String[0]);
+ ServerManagement.invoke(on, "start", new Object[0], new String[0]);
+
+ ConnectionFactory cf = (ConnectionFactory)ic.lookup("/TestChangeRateConfigSettingsFactory");
+ c = cf.createConnection();
+
+ ClientConnectionDelegate del1 = (ClientConnectionDelegate)((JBossConnection)c).getDelegate();
+
+ ConnectionState state1 = (ConnectionState)del1.getState();
+
+ long maxRetry = state1.getMaxRetryChangeRate();
+
+ assertEquals(10, maxRetry);
+
+ long retryInterval = state1.getRetryChangeRateInterval();
+
+ assertEquals(2345, retryInterval);
+ }
+ finally
+ {
+ try
+ {
+ if (c != null)
+ {
+ log.info("Closing connection");
+ c.close();
+ log.info("Closed connection");
+ }
+ }
+ catch (Exception e)
+ {
+ log.warn(e.toString(), e);
+ }
+ }
+ }
+
+ //https://issues.jboss.org/browse/JBMESSAGING-1851
+ public void testChangeRateConfigDefaults() throws Exception
+ {
+ Connection c = null;
+
+ try
+ {
+ String mbeanConfig = "<mbean code=\"org.jboss.jms.server.connectionfactory.ConnectionFactory\"\n" + " name=\"jboss.messaging.connectionfactory:service=TestChangeRateConfigDefaultsFactory\"\n"
+ + " xmbean-dd=\"xmdesc/ConnectionFactory-xmbean.xml\">\n"
+ + " <depends optional-attribute-name=\"ServerPeer\">jboss.messaging:service=ServerPeer</depends>\n"
+ + " <depends optional-attribute-name=\"Connector\">jboss.messaging:service=Connector,transport=bisocket</depends>\n"
+ + " <attribute name=\"JNDIBindings\">\n"
+ + " <bindings>\n"
+ + " <binding>/TestChangeRateConfigDefaultsFactory</binding>\n"
+ + " </bindings>\n"
+ + " </attribute>\n"
+ + " </mbean>";
+
+ ObjectName on = ServerManagement.deploy(mbeanConfig);
+ ServerManagement.invoke(on, "create", new Object[0], new String[0]);
+ ServerManagement.invoke(on, "start", new Object[0], new String[0]);
+
+ ConnectionFactory cf = (ConnectionFactory)ic.lookup("/TestChangeRateConfigDefaultsFactory");
+ c = cf.createConnection();
+
+ ClientConnectionDelegate del1 = (ClientConnectionDelegate)((JBossConnection)c).getDelegate();
+
+ ConnectionState state1 = (ConnectionState)del1.getState();
+
+ long maxRetry = state1.getMaxRetryChangeRate();
+
+ assertEquals(0, maxRetry);
+
+ long retryInterval = state1.getRetryChangeRateInterval();
+
+ assertEquals(5000, retryInterval);
+ }
+ finally
+ {
+ try
+ {
+ if (c != null)
+ {
+ log.info("Closing connection");
+ c.close();
+ log.info("Closed connection");
+ }
+ }
+ catch (Exception e)
+ {
+ log.warn(e.toString(), e);
+ }
+ }
+ }
+
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
More information about the jboss-cvs-commits
mailing list