[hornetq-commits] JBoss hornetq SVN: r8911 - trunk/src/main/org/hornetq/ra/inflow.
do-not-reply at jboss.org
do-not-reply at jboss.org
Thu Mar 4 06:20:13 EST 2010
Author: clebert.suconic at jboss.com
Date: 2010-03-04 06:20:12 -0500 (Thu, 04 Mar 2010)
New Revision: 8911
Modified:
trunk/src/main/org/hornetq/ra/inflow/HornetQActivation.java
trunk/src/main/org/hornetq/ra/inflow/HornetQMessageHandler.java
Log:
Making multiple sessions on the resource adapter to share a same core-queue on topic subscriptions
Modified: trunk/src/main/org/hornetq/ra/inflow/HornetQActivation.java
===================================================================
--- trunk/src/main/org/hornetq/ra/inflow/HornetQActivation.java 2010-03-04 11:10:29 UTC (rev 8910)
+++ trunk/src/main/org/hornetq/ra/inflow/HornetQActivation.java 2010-03-04 11:20:12 UTC (rev 8911)
@@ -94,6 +94,9 @@
private boolean isDeliveryTransacted;
private HornetQDestination destination;
+
+ /** The name of the temporary subscription name that all the sessions will share */
+ private SimpleString topicTemporaryQueue;
private final List<HornetQMessageHandler> handlers = new ArrayList<HornetQMessageHandler>();
@@ -216,6 +219,8 @@
return isTopic;
}
+
+
/**
* Start the activation
*
@@ -230,8 +235,24 @@
deliveryActive.set(true);
ra.getWorkManager().scheduleWork(new SetupActivation());
}
+
+ /**
+ * @return the topicTemporaryQueue
+ */
+ public SimpleString getTopicTemporaryQueue()
+ {
+ return topicTemporaryQueue;
+ }
/**
+ * @param topicTemporaryQueue the topicTemporaryQueue to set
+ */
+ public void setTopicTemporaryQueue(SimpleString topicTemporaryQueue)
+ {
+ this.topicTemporaryQueue = topicTemporaryQueue;
+ }
+
+ /**
* Stop the activation
*/
public void stop()
Modified: trunk/src/main/org/hornetq/ra/inflow/HornetQMessageHandler.java
===================================================================
--- trunk/src/main/org/hornetq/ra/inflow/HornetQMessageHandler.java 2010-03-04 11:10:29 UTC (rev 8910)
+++ trunk/src/main/org/hornetq/ra/inflow/HornetQMessageHandler.java 2010-03-04 11:20:12 UTC (rev 8911)
@@ -146,8 +146,16 @@
SimpleString queueName;
if (activation.isTopic())
{
- queueName = new SimpleString(UUID.randomUUID().toString());
- session.createQueue(activation.getAddress(), queueName, selectorString, false);
+ if (activation.getTopicTemporaryQueue() == null)
+ {
+ queueName = new SimpleString(UUID.randomUUID().toString());
+ session.createQueue(activation.getAddress(), queueName, selectorString, false);
+ activation.setTopicTemporaryQueue(queueName);
+ }
+ else
+ {
+ queueName = activation.getTopicTemporaryQueue();
+ }
}
else
{
More information about the hornetq-commits
mailing list