[jboss-cvs] JBoss Messaging SVN: r8272 - in branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851: docs/examples/ordering-group and 11 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Apr 18 17:56:58 EDT 2011
Author: jbertram
Date: 2011-04-18 17:56:57 -0400 (Mon, 18 Apr 2011)
New Revision: 8272
Modified:
branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/
branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/docs/examples/ordering-group/
branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/docs/userguide/en/modules/configuration.xml
branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/integration/AS5/etc/xmdesc/ConnectionFactory-xmbean.xml
branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/integration/EAP4/etc/xmdesc/ConnectionFactory-xmbean.xml
branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/client/container/ClientConsumer.java
branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/client/container/ConsumerAspect.java
branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/client/container/StateCreationAspect.java
branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/client/delegate/ClientConnectionDelegate.java
branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/client/delegate/ClientConnectionFactoryDelegate.java
branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/client/state/ConnectionState.java
branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/client/state/ConsumerState.java
branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/client/state/SessionState.java
branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/server/ConnectionFactoryManager.java
branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/server/connectionfactory/ConnectionFactory.java
branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/server/connectionfactory/ConnectionFactoryJNDIMapper.java
branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/server/endpoint/ServerConsumerEndpoint.java
branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/tests/src/org/jboss/test/messaging/jms/ConnectionFactoryTest.java
branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/tests/src/org/jboss/test/messaging/jms/TopicTest.java
branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/tests/src/org/jboss/test/messaging/jms/bridge/BridgeMBeanExtraTest.java
Log:
JBPAPP-6354
Property changes on: branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851
___________________________________________________________________
Added: svn:mergeinfo
+ /branches/Branch_1_4:8010,8013,8238
Property changes on: branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/docs/examples/ordering-group
___________________________________________________________________
Deleted: svn:mergeinfo
-
Modified: branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/docs/userguide/en/modules/configuration.xml
===================================================================
--- branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/docs/userguide/en/modules/configuration.xml 2011-04-18 21:32:43 UTC (rev 8271)
+++ branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/docs/userguide/en/modules/configuration.xml 2011-04-18 21:56:57 UTC (rev 8272)
@@ -2307,6 +2307,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_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/integration/AS5/etc/xmdesc/ConnectionFactory-xmbean.xml
===================================================================
--- branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/integration/AS5/etc/xmdesc/ConnectionFactory-xmbean.xml 2011-04-18 21:32:43 UTC (rev 8271)
+++ branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/integration/AS5/etc/xmdesc/ConnectionFactory-xmbean.xml 2011-04-18 21:56:57 UTC (rev 8272)
@@ -129,6 +129,18 @@
<name>DisableRemotingChecks</name>
<type>boolean</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 -->
@@ -152,4 +164,4 @@
<name>destroy</name>
</operation>
-</mbean>
\ No newline at end of file
+</mbean>
Modified: branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/integration/EAP4/etc/xmdesc/ConnectionFactory-xmbean.xml
===================================================================
--- branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/integration/EAP4/etc/xmdesc/ConnectionFactory-xmbean.xml 2011-04-18 21:32:43 UTC (rev 8271)
+++ branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/integration/EAP4/etc/xmdesc/ConnectionFactory-xmbean.xml 2011-04-18 21:56:57 UTC (rev 8272)
@@ -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_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/client/container/ClientConsumer.java
===================================================================
--- branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/client/container/ClientConsumer.java 2011-04-18 21:32:43 UTC (rev 8271)
+++ branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/client/container/ClientConsumer.java 2011-04-18 21:56:57 UTC (rev 8272)
@@ -289,6 +289,8 @@
private int consumeCount;
private boolean firstTime = true;
private volatile Thread onMessageThread;
+ private long maxRetryChangeRate;
+ private long retryChangeRateInterval;
public int getBufferSize()
{
@@ -302,7 +304,9 @@
String queueName,
int bufferSize, Executor sessionExecutor,
int maxDeliveries, boolean shouldAck,
- long redeliveryDelay)
+ long redeliveryDelay,
+ long maxRetryChangeRate,
+ long retryChangeRateInterval)
{
if (bufferSize < 1)
{
@@ -322,6 +326,8 @@
this.maxDeliveries = maxDeliveries;
this.shouldAck = shouldAck;
this.redeliveryDelay = redeliveryDelay;
+ this.maxRetryChangeRate = maxRetryChangeRate;
+ this.retryChangeRateInterval = retryChangeRateInterval;
}
// Public ---------------------------------------------------------------------------------------
@@ -745,7 +751,7 @@
}
}
- private void sendChangeRateMessage(float newRate)
+ public void sendChangeRateMessage(float newRate)
{
try
{
@@ -755,10 +761,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_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/client/container/ConsumerAspect.java
===================================================================
--- branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/client/container/ConsumerAspect.java 2011-04-18 21:32:43 UTC (rev 8271)
+++ branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/client/container/ConsumerAspect.java 2011-04-18 21:56:57 UTC (rev 8272)
@@ -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_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/client/container/StateCreationAspect.java
===================================================================
--- branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/client/container/StateCreationAspect.java 2011-04-18 21:32:43 UTC (rev 8271)
+++ branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/client/container/StateCreationAspect.java 2011-04-18 21:56:57 UTC (rev 8272)
@@ -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_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/client/delegate/ClientConnectionDelegate.java
===================================================================
--- branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/client/delegate/ClientConnectionDelegate.java 2011-04-18 21:32:43 UTC (rev 8271)
+++ branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/client/delegate/ClientConnectionDelegate.java 2011-04-18 21:56:57 UTC (rev 8272)
@@ -85,6 +85,10 @@
private boolean enableOrderingGroup;
private String defaultOrderingGroupName;
+
+ private long maxRetryChangeRate;
+
+ private long retryChangeRateInterval;
// Static ---------------------------------------------------------------------------------------
@@ -363,8 +367,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_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/client/delegate/ClientConnectionFactoryDelegate.java
===================================================================
--- branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/client/delegate/ClientConnectionFactoryDelegate.java 2011-04-18 21:32:43 UTC (rev 8271)
+++ branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/client/delegate/ClientConnectionFactoryDelegate.java 2011-04-18 21:56:57 UTC (rev 8272)
@@ -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_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/client/state/ConnectionState.java
===================================================================
--- branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/client/state/ConnectionState.java 2011-04-18 21:32:43 UTC (rev 8271)
+++ branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/client/state/ConnectionState.java 2011-04-18 21:56:57 UTC (rev 8272)
@@ -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 -------------------------------------------------------------
@@ -325,6 +334,16 @@
return defaultOrderingGroupName;
}
+ public long getMaxRetryChangeRate()
+ {
+ return maxRetryChangeRate;
+ }
+
+ public long getRetryChangeRateInterval()
+ {
+ return retryChangeRateInterval;
+ }
+
// Package protected ----------------------------------------------------------------------------
// Protected ------------------------------------------------------------------------------------
Modified: branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/client/state/ConsumerState.java
===================================================================
--- branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/client/state/ConsumerState.java 2011-04-18 21:32:43 UTC (rev 8271)
+++ branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/client/state/ConsumerState.java 2011-04-18 21:56:57 UTC (rev 8272)
@@ -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_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/client/state/SessionState.java
===================================================================
--- branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/client/state/SessionState.java 2011-04-18 21:32:43 UTC (rev 8271)
+++ branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/client/state/SessionState.java 2011-04-18 21:56:57 UTC (rev 8272)
@@ -567,5 +567,15 @@
}
}
+ public long getMaxRetryChangeRate()
+ {
+ return parent.getMaxRetryChangeRate();
+ }
+
+ public long getRetryChangeRateInterval()
+ {
+ return parent.getRetryChangeRateInterval();
+ }
+
}
Modified: branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/server/ConnectionFactoryManager.java
===================================================================
--- branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/server/ConnectionFactoryManager.java 2011-04-18 21:32:43 UTC (rev 8271)
+++ branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/server/ConnectionFactoryManager.java 2011-04-18 21:56:57 UTC (rev 8272)
@@ -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_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/server/connectionfactory/ConnectionFactory.java
===================================================================
--- branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/server/connectionfactory/ConnectionFactory.java 2011-04-18 21:32:43 UTC (rev 8271)
+++ branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/server/connectionfactory/ConnectionFactory.java 2011-04-18 21:56:57 UTC (rev 8272)
@@ -88,6 +88,10 @@
private boolean enableOrderingGroup;
private String defaultOrderingGroupName;
+
+ private long maxRetryChangeRate = 0;
+
+ private long retryChangeRateInterval = 5000;
// Constructors ---------------------------------------------------------------------------------
@@ -211,7 +215,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();
@@ -489,6 +494,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_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/server/connectionfactory/ConnectionFactoryJNDIMapper.java
===================================================================
--- branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/server/connectionfactory/ConnectionFactoryJNDIMapper.java 2011-04-18 21:32:43 UTC (rev 8271)
+++ branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/server/connectionfactory/ConnectionFactoryJNDIMapper.java 2011-04-18 21:56:57 UTC (rev 8272)
@@ -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_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/server/endpoint/ServerConsumerEndpoint.java
===================================================================
--- branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/server/endpoint/ServerConsumerEndpoint.java 2011-04-18 21:32:43 UTC (rev 8271)
+++ branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/src/main/org/jboss/jms/server/endpoint/ServerConsumerEndpoint.java 2011-04-18 21:56:57 UTC (rev 8272)
@@ -35,6 +35,7 @@
import org.jboss.jms.server.selector.Selector;
import org.jboss.jms.wireformat.Dispatcher;
import org.jboss.logging.Logger;
+import org.jboss.messaging.core.contract.Binding;
import org.jboss.messaging.core.contract.Delivery;
import org.jboss.messaging.core.contract.DeliveryObserver;
import org.jboss.messaging.core.contract.Message;
@@ -539,8 +540,13 @@
ServerPeer sp = sessionEndpoint.getConnectionEndpoint().getServerPeer();
- Queue queue = postOffice.getBindingForQueueName(queueName).queue;
+ Binding binding = postOffice.getBindingForQueueName(queueName);
+ //https://jira.jboss.org/jira/browse/JBMESSAGING-1801
+ if (binding == null) return;
+
+ Queue queue = binding.queue;
+
ManagedDestination mDest = sp.getDestinationManager().getDestination(destination.getName(), false);
if (!queue.isRecoverable())
Modified: branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/tests/src/org/jboss/test/messaging/jms/ConnectionFactoryTest.java
===================================================================
--- branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/tests/src/org/jboss/test/messaging/jms/ConnectionFactoryTest.java 2011-04-18 21:32:43 UTC (rev 8271)
+++ branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/tests/src/org/jboss/test/messaging/jms/ConnectionFactoryTest.java 2011-04-18 21:56:57 UTC (rev 8272)
@@ -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;
@@ -856,6 +859,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 -----------------------------------------------------
Modified: branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/tests/src/org/jboss/test/messaging/jms/TopicTest.java
===================================================================
--- branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/tests/src/org/jboss/test/messaging/jms/TopicTest.java 2011-04-18 21:32:43 UTC (rev 8271)
+++ branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/tests/src/org/jboss/test/messaging/jms/TopicTest.java 2011-04-18 21:56:57 UTC (rev 8272)
@@ -21,6 +21,8 @@
*/
package org.jboss.test.messaging.jms;
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
import java.io.Serializable;
import javax.jms.Connection;
@@ -34,6 +36,8 @@
import javax.jms.TextMessage;
import javax.jms.Topic;
+import org.jboss.test.messaging.tools.ServerManagement;
+
/**
* @author <a href="mailto:ovidiu at feodorov.com">Ovidiu Feodorov</a>
* @version <tt>$Revision$</tt>
@@ -158,6 +162,43 @@
}
}
+ //https://jira.jboss.org/jira/browse/JBMESSAGING-1801
+ //Note: This test need manual examination in the console log!
+ //reason: The NullPointerException occurs at consumer.close().
+ //At the server side stack trace will be printed out but
+ //at the client side the interceptor just swallows the exception!
+ //so there is no exception occurring at client side, making
+ //this test appear to be passed.
+ public void testTopicNonDurableSubShutdown() throws Exception
+ {
+ Connection conn = null;
+
+ try
+ {
+ ServerManagement.deployTopic("Topic2010Apr22");
+ Topic theTopic = (Topic)ic.lookup("/topic/Topic2010Apr22");
+ conn = cf.createConnection();
+
+ Session s = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ MessageConsumer consumer = s.createConsumer(theTopic);
+
+ ServerManagement.undeployTopic("Topic2010Apr22");
+
+ ByteArrayOutputStream bstream = new ByteArrayOutputStream();
+
+ System.setErr(new PrintStream(bstream));
+
+ consumer.close();
+ }
+ finally
+ {
+ if (conn != null)
+ {
+ conn.close();
+ }
+ }
+ }
+
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
Property changes on: branches/Branch_JBossMessaging_1_4_0_SP3_CP08.patch01_JBMESSAGING-1801_JBMESSAGING-1805_JBMESSAGING-1851/tests/src/org/jboss/test/messaging/jms/bridge/BridgeMBeanExtraTest.java
___________________________________________________________________
Deleted: svn:mergeinfo
-
More information about the jboss-cvs-commits
mailing list