2 Replies Latest reply on Jan 18, 2007 10:28 AM by wqmsrqx

    Distributed Queue using ClusteredPostOfficeService

    wqmsrqx

      When i run my client on one of the instances in a cluster which posts more than 1000 messages, the instance where i am running the client going fine in processing them and the other instances in the cluster throw me up the stack trace as below:

      Can somebody advise where i am going wrong or where i need to make changes in config files.

      2007-01-15 17:30:49,311 ERROR [org.jboss.messaging.core.plugin.postoffice.cluster.DefaultClusteredPostOffice] Caught Exception in Receiver
      java.lang.IllegalStateException: Received stats from node with id that matches this nodes id. You may have started two or more nodes with the same node id!
      at org.jboss.messaging.core.plugin.postoffice.cluster.DefaultClusteredPostOffice.updateQueueStats(DefaultClusteredPostOffice.java:894)
      at org.jboss.messaging.core.plugin.postoffice.cluster.QueueStatsRequest.execute(QueueStatsRequest.java:61)
      at org.jboss.messaging.core.plugin.postoffice.cluster.DefaultClusteredPostOffice$DataReceiver.receive(DefaultClusteredPostOffice.java:2494)
      at org.jgroups.JChannel.up(JChannel.java:1102)
      at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:377)
      at org.jgroups.stack.ProtocolStack.receiveUpEvent(ProtocolStack.java:393)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:538)
      at org.jgroups.protocols.pbcast.GMS.up(GMS.java:751)
      at org.jgroups.stack.Protocol.receiveUpEvent(Protocol.java:488)
      at org.jgroups.protocols.pbcast.GMS.receiveUpEvent(GMS.java:771)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:538)
      at org.jgroups.protocols.VIEW_SYNC.up(VIEW_SYNC.java:154)
      at org.jgroups.stack.Protocol.receiveUpEvent(Protocol.java:488)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:538)
      at org.jgroups.protocols.FRAG.up(FRAG.java:168)
      at org.jgroups.stack.Protocol.receiveUpEvent(Protocol.java:488)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:538)
      at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:258)
      at org.jgroups.stack.Protocol.receiveUpEvent(Protocol.java:488)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:538)
      at org.jgroups.protocols.UNICAST.up(UNICAST.java:223)
      at org.jgroups.stack.Protocol.receiveUpEvent(Protocol.java:488)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:538)
      at org.jgroups.protocols.pbcast.NAKACK.handleMessage(NAKACK.java:685)
      at org.jgroups.protocols.pbcast.NAKACK.up(NAKACK.java:517)
      at org.jgroups.stack.Protocol.receiveUpEvent(Protocol.java:488)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:538)
      at org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:170)
      at org.jgroups.stack.Protocol.receiveUpEvent(Protocol.java:488)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:538)
      at org.jgroups.protocols.FD.up(FD.java:274)
      at org.jgroups.stack.Protocol.receiveUpEvent(Protocol.java:488)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:538)
      at org.jgroups.protocols.MERGE2.up(MERGE2.java:162)
      at org.jgroups.stack.Protocol.receiveUpEvent(Protocol.java:488)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:538)
      at org.jgroups.protocols.Discovery.up(Discovery.java:225)
      at org.jgroups.stack.Protocol.receiveUpEvent(Protocol.java:488)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:538)
      at org.jgroups.stack.Protocol.up(Protocol.java:565)
      at org.jgroups.stack.Protocol.receiveUpEvent(Protocol.java:488)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:538)
      at org.jgroups.protocols.TP.handleIncomingMessage(TP.java:908)
      at org.jgroups.protocols.TP.handleIncomingPacket(TP.java:850)
      at org.jgroups.protocols.TP.receive(TP.java:780)
      at org.jgroups.protocols.UDP.run(UDP.java:261)
      at java.lang.Thread.run(Thread.java:534)
      2007-01-15 17:30:49,311 ERROR [org.jgroups.protocols.UDP] failed unmarshalling message
      java.lang.IllegalStateException: Received stats from node with id that matches this nodes id. You may have started two or more nodes with the same node id!
      at org.jboss.messaging.core.plugin.postoffice.cluster.DefaultClusteredPostOffice.updateQueueStats(DefaultClusteredPostOffice.java:894)
      at org.jboss.messaging.core.plugin.postoffice.cluster.QueueStatsRequest.execute(QueueStatsRequest.java:61)
      at org.jboss.messaging.core.plugin.postoffice.cluster.DefaultClusteredPostOffice$DataReceiver.receive(DefaultClusteredPostOffice.java:2494)
      at org.jgroups.JChannel.up(JChannel.java:1102)
      at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:377)
      at org.jgroups.stack.ProtocolStack.receiveUpEvent(ProtocolStack.java:393)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:538)
      at org.jgroups.protocols.pbcast.GMS.up(GMS.java:751)
      at org.jgroups.stack.Protocol.receiveUpEvent(Protocol.java:488)
      at org.jgroups.protocols.pbcast.GMS.receiveUpEvent(GMS.java:771)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:538)
      at org.jgroups.protocols.VIEW_SYNC.up(VIEW_SYNC.java:154)
      at org.jgroups.stack.Protocol.receiveUpEvent(Protocol.java:488)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:538)
      at org.jgroups.protocols.FRAG.up(FRAG.java:168)
      at org.jgroups.stack.Protocol.receiveUpEvent(Protocol.java:488)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:538)
      at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:258)
      at org.jgroups.stack.Protocol.receiveUpEvent(Protocol.java:488)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:538)
      at org.jgroups.protocols.UNICAST.up(UNICAST.java:223)
      at org.jgroups.stack.Protocol.receiveUpEvent(Protocol.java:488)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:538)
      at org.jgroups.protocols.pbcast.NAKACK.handleMessage(NAKACK.java:685)
      at org.jgroups.protocols.pbcast.NAKACK.up(NAKACK.java:517)
      at org.jgroups.stack.Protocol.receiveUpEvent(Protocol.java:488)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:538)
      at org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:170)
      at org.jgroups.stack.Protocol.receiveUpEvent(Protocol.java:488)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:538)
      at org.jgroups.protocols.FD.up(FD.java:274)
      at org.jgroups.stack.Protocol.receiveUpEvent(Protocol.java:488)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:538)
      at org.jgroups.protocols.MERGE2.up(MERGE2.java:162)
      at org.jgroups.stack.Protocol.receiveUpEvent(Protocol.java:488)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:538)
      at org.jgroups.protocols.Discovery.up(Discovery.java:225)
      at org.jgroups.stack.Protocol.receiveUpEvent(Protocol.java:488)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:538)
      at org.jgroups.stack.Protocol.up(Protocol.java:565)
      at org.jgroups.stack.Protocol.receiveUpEvent(Protocol.java:488)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:538)
      at org.jgroups.protocols.TP.handleIncomingMessage(TP.java:908)
      at org.jgroups.protocols.TP.handleIncomingPacket(TP.java:850)
      at org.jgroups.protocols.TP.receive(TP.java:780)
      at org.jgroups.protocols.UDP.run(UDP.java:261)
      at java.lang.Thread.run(Thread.java:534)

      My JGroups configuration in cluster-service.xml is configured as below:


      <!--
      The default UDP stack:
      - If you have a multihomed machine, set the UDP protocol's bind_addr attribute to the
      appropriate NIC IP address, e.g bind_addr="192.168.0.2".
      - On Windows machines, because of the media sense feature being broken with multicast
      (even after disabling media sense) set the UDP protocol's loopback attribute to true
      -->

      <UDP mcast_addr="228.1.2.3" mcast_port="45566"
      ip_ttl="8" ip_mcast="true"
      mcast_recv_buf_size="150000" mcast_send_buf_size="800000"
      ucast_recv_buf_size="150000" ucast_send_buf_size="800000"
      loopback="false"/>
      <PING timeout="2000" num_initial_members="3"
      up_thread="true" down_thread="true"/>
      <MERGE2 min_interval="10000" max_interval="20000"/>
      <!-- <FD_SOCK down_thread="true" up_thread="true"/> -->
      <FD shun="true" up_thread="true" down_thread="true"
      timeout="10000" max_tries="5"/>
      <VERIFY_SUSPECT timeout="3000" num_msgs="3"
      up_thread="true" down_thread="true"/>
      <pbcast.NAKACK gc_lag="50" retransmit_timeout="300,600,1200,2400,4800"
      max_xmit_size="8192"
      up_thread="true" down_thread="true"/>
      <UNICAST timeout="300,600,1200,2400,4800" window_size="100" min_threshold="10"
      down_thread="true"/>
      <pbcast.STABLE desired_avg_gossip="20000" max_bytes="400000"
      up_thread="true" down_thread="true"/>
      <FRAG frag_size="8192"
      down_thread="true" up_thread="true"/>
      <pbcast.GMS join_timeout="5000" join_retry_timeout="2000"
      shun="true" print_local_addr="true"/>
      <pbcast.STATE_TRANSFER up_thread="true" down_thread="true"/>


      I am using ClusteredPostOfficeservice and the configuration is defined in mysql-persistance-service.xml


      <mbean code="org.jboss.messaging.core.plugin.ClusteredPostOfficeService"
      name="jboss.messaging:service=PostOffice"
      xmbean-dd="xmdesc/ClusteredPostOffice-xmbean.xml">
      <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer
      jboss.jca:service=DataSourceBinding,name=MySqlDS
      <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager
      Clustered Queue
      MySqlDS
      true


      thanks,
      srikanth

        • 1. Re: Distributed Queue using ClusteredPostOfficeService
          timfox

           


          ava.lang.IllegalStateException: Received stats from node with id that matches this nodes id. You may have started two or more nodes with the same node id!


          Have you made sure that each server has a unique server id? (messaging-service.xml)


          <constructor>
          <!-- ServerPeerID -->
          <arg type="int" value="0"/>
          <!-- DefaultQueueJNDIContext -->
          <arg type="java.lang.String" value="/queue"/>
          <!-- DefaultTopicJNDIContext -->
          <arg type="java.lang.String" value="/topic"/>
          </constructor>


          If you used releas-admin.xml this would have been done automatically for you




          • 2. Re: Distributed Queue using ClusteredPostOfficeService
            wqmsrqx

            Thanks Tim.
            Actually, the nodes running are on different machines. If i run the ant release-build.xml, i can create number of nodes on same machines.
            When I made changes to messaging-service.xml and gave different integer values and it works fine now. I can see the messages getting distributed.

            srikanth.