0 Replies Latest reply on Dec 24, 2010 1:04 AM by ganso

    Group message in cluster delivery stops by consumer's reconnection

    ganso

      Hi, I am testing the cluster with HornetQ on JBoss5. (HornetQ2.1.2Final with JBossEAP5.1)

       

       

       

        Grouping message delivery in the cluster stops by closing and reconnecting of the consumer when I do setting of redistribution-delay (more than 0).

       

       

       

       

       

      Procedure that delivery stops

       

       

       

      1. A consumer is connected to each node of the cluster and receives the grouping message.

      2. Close a consumer connected to routed Queue of the grouping message.
        Then a grouping message is received with a consumer connected to the other nodes.

      3. Connect a consumer to routed Queue again.
        Grouping message comes to receive neither consumer.
        The CPU load of the node with routed Queue becomes 100%.

       

       

       

       

       

      When a consumer is connected to routed Queue when grouping message is redistributed to other nodes, Redistributor (QueueImpl.redistributor) of routed Queue stops.
      However, the grouping message gets a consumer (Redistributor) from a group consumer (QueueImpl.groups) and is going to deliver it.
      it is not delivered.(Because Redistributor has stopped, the status of QueueImpl.handle() becomes BUSY. )
      And, delivery is infinitely retried.

       

       

       

       

       

       

       

      - 28.5.1. Clustered Grouping Best Practices
      "Avoid closing consumers or make sure that you always have plenty of consumers, i.e.,if you have 3 nodes have 3 consumers."
      Though it is written to a user guide in this way, I think that there may be it when it is necessary what the consumer closes and to reconnect it.
      Therefore I think that it is a bug that delivery stops ,and I think that the grouping message should not do redistribute fundamentally.

       

       

       

       

       

      Temporarily, I think that "Do not set redistribution(redistribution-delay=-1)" should be written in the user guide "28.5.1. Clustered Grouping Best Practices" .
      And, When grouping message is delivered,I think that it is necessary to change it not to redistribute it.

       

       

       

       
      Thanks.