3 Replies Latest reply on Sep 18, 2007 7:37 AM by jeremystone

    Problem with clustered topics: NPE and The receiver Consumer

    jeremystone

      We have a two-node clustered JBoss AS (4.2.0GA) installation with JBoss Messaging 1.4.0.CR2. We have a topic (configured as Clustered) and a remote client with subscriptions to that topic using a number of selectors.
      The PostOffice is also configured as Clustered.

      The remote client sometimes receives the first few messages but then an exception (below) is reported on one of the cluster nodes and no more messages are received.

      (Not verified this yet but) it is as if the client receives messages that reside on the cluster node that it is connected to, but as soon as messages get sent to the other node JBoss Messaging fails to pull the messages across to the first node in order to deliver them to the client.

      Initial debugging shows that the NPE is because the msg parameter passed in to accept() has a null connectionId field.

      Any ideas?

      2007-09-06 16:19:16,103 315872 ERROR [org.jboss.messaging.core.impl.RoundRobinDistributor] (IncomingPacketHandler (channel=DefaultPartition-JMS):) The receiver ConsumerEndpoint[an3-i9xle96f-1-b7yge96f-vak8f5-4100a] is broken
      java.lang.NullPointerException
      at org.jboss.jms.server.endpoint.ServerConsumerEndpoint.accept(ServerConsumerEndpoint.java:304)
      at org.jboss.jms.server.endpoint.ServerConsumerEndpoint.handle(ServerConsumerEndpoint.java:254)
      at org.jboss.messaging.core.impl.RoundRobinDistributor.handle(RoundRobinDistributor.java:119)
      at org.jboss.messaging.core.impl.MessagingQueue$DistributorWrapper.handle(MessagingQueue.java:587)
      at org.jboss.messaging.core.impl.ClusterRoundRobinDistributor.handle(ClusterRoundRobinDistributor.java:79)
      at org.jboss.messaging.core.impl.ChannelSupport.deliverInternal(ChannelSupport.java:476)
      at org.jboss.messaging.core.impl.MessagingQueue.deliverInternal(MessagingQueue.java:511)
      at org.jboss.messaging.core.impl.ChannelSupport.handleInternal(ChannelSupport.java:628)
      at org.jboss.messaging.core.impl.ChannelSupport.handle(ChannelSupport.java:144)
      at org.jboss.messaging.core.impl.postoffice.MessagingPostOffice.routeInternal(MessagingPostOffice.java:2122)
      at org.jboss.messaging.core.impl.postoffice.MessagingPostOffice.routeFromCluster(MessagingPostOffice.java:1175)
      at org.jboss.messaging.core.impl.postoffice.MessageRequest.execute(MessageRequest.java:67)
      at org.jboss.messaging.core.impl.postoffice.GroupMember$DataReceiver.receive(GroupMember.java:582)
      at org.jgroups.JChannel.up(JChannel.java:1102)
      at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:382)
      at org.jgroups.stack.ProtocolStack.receiveUpEvent(ProtocolStack.java:398)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:520)
      at org.jgroups.protocols.FRAG2.up(FRAG2.java:197)
      at org.jgroups.stack.Protocol.receiveUpEvent(Protocol.java:470)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:520)
      at org.jgroups.protocols.FC.up(FC.java:422)
      at org.jgroups.stack.Protocol.receiveUpEvent(Protocol.java:470)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:520)
      at org.jgroups.protocols.pbcast.GMS.up(GMS.java:768)
      at org.jgroups.stack.Protocol.receiveUpEvent(Protocol.java:470)
      at org.jgroups.protocols.pbcast.GMS.receiveUpEvent(GMS.java:788)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:520)
      at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:258)
      at org.jgroups.stack.Protocol.receiveUpEvent(Protocol.java:470)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:520)
      at org.jgroups.protocols.UNICAST.up(UNICAST.java:259)
      at org.jgroups.stack.Protocol.receiveUpEvent(Protocol.java:470)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:520)
      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:470)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:520)
      at org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:170)
      at org.jgroups.stack.Protocol.receiveUpEvent(Protocol.java:470)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:520)
      at org.jgroups.protocols.FD.up(FD.java:300)
      at org.jgroups.stack.Protocol.receiveUpEvent(Protocol.java:470)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:520)
      at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:301)
      at org.jgroups.stack.Protocol.receiveUpEvent(Protocol.java:470)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:520)
      at org.jgroups.protocols.MERGE2.up(MERGE2.java:162)
      at org.jgroups.stack.Protocol.receiveUpEvent(Protocol.java:470)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:520)
      at org.jgroups.protocols.Discovery.up(Discovery.java:225)
      at org.jgroups.stack.Protocol.receiveUpEvent(Protocol.java:470)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:520)
      at org.jgroups.protocols.TP.handleIncomingMessage(TP.java:908)
      at org.jgroups.protocols.TP.handleIncomingPacket(TP.java:850)
      at org.jgroups.protocols.TP.access$400(TP.java:45)
      at org.jgroups.protocols.TP$IncomingPacketHandler.run(TP.java:1296)
      at java.lang.Thread.run(Thread.java:595)