2 Replies Latest reply on Aug 4, 2008 3:22 PM by sajankn

    All messages are not consumed in Clustered environment.

    sajankn

      In clustered environment, not all the messages are consumed by the durable subscriber, even thought the messages are persisted in database. The messages are consumed only after one or more restarts of the consumer.

      Environment:
      JBoss : 4.2.2.GA
      JBM : 1.4.0.SP3
      Java : 1.5.0_13
      OS : Mac OSX Server 10.5.2
      DB : Oracle 10g

      Setup:
      JBoss/JBM Servers - 2 Nos. S1 & S2.

      Publisher - 5 Nos. P1, P2, P3, P4 & P5.
      All the publishers are the instance of the same class. All are publishing on testTopic. Each Publisher publishes about 1000 Messages.

      Subscriber - 2 Nos. Sub1, Sub2.
      Durable Subscribers, subscribing to testTopic.

      Persistence - Oracle DB.

      Steps:
      1. Start the subscribers (S1 & S2).
      2. Start the Publishers (They publish total 5000 messages. 1000 msg x 5 publishers)
      3. Wait till the publishers publishes all the messages.
      4. Give enough time for both subscribers to consume the messages.
      5. Check the Subscribers. Not all the messages are consumed by the Subscribers. The messages not consumed by the subscribers are persisted in the database.
      6. Restart the subscribers. The messages are consumed by the subscribers. (Some time more than 1 restart is required for the subscribers before they consume the messages. Some times the restart of the JBoss AS will also result in the consuming of the messages by the subscriber.).

      Observation:
      The subscribers seem to miss out the entire messages from one or more publishers. If one message of a publisher is consumed by the subscriber, all other messages will be consumed.

      This scenario is repeatable.

      Is there a way of how I could make the subscribers consume all the messages of all the publishers without the restart of the subscribers / servers.