9 Replies Latest reply on Jun 15, 2012 2:02 PM by Andy Taylor

    How do I limit a jms queue's visibility to only nodes in a cluster?

    Robert Greene Newbie

      How do I limit a JMS queue's visibility to only nodes in a cluster?

       

      Our application is deployed and installed by the customer; the names of the clusters (partitions) are defined by the customer.

       

      Given n clusters with different names and queue's with the same name, how do I prevent HornetQ discovery and joining of the JMS queues defined in each cluster?

       

      I don't want to have to name the queue's uniquely in each cluster, (But I want the queues to be shared by each node in a unique cluster). I don’t want to have to perform network configuration to prevent multi-cast etc, because that would require extensive network configuration by the customer.

       

      I don't want to have to use selectors. I don’t want any JMS communication between the clusters at all.

       

      I don't want to have to statically identity the nodes in the cluster.

       

      What I really want is the HornetQ discovery process to limit itself to the set of cluster names. (In my case one cluster name, the cluster that each node is a part of)

       

       

      Is this difficult? I have looked for something like this in the HornetQ documentation and considered something like the following:

       

         <cluster-connections>

            <cluster-connection name="my-cluster">

               <address>jms.queue.${jboss.partition.name}</address>    

               <connector-ref>netty</connector-ref>

                <discovery-group-ref discovery-group-name="dg-group1"/>

            </cluster-connection>

         </cluster-connections>

       

      And naming the queue's dynamically.

       

      This seems very crude, and client applications will have to connect and aquire the cluster name before connecting to the queue's.

       

       

      Is this the best I can do?