1 Reply Latest reply on Sep 23, 2005 9:42 AM by schrouf

    more detail on problem on MDB processing big message in the

    jchen0516

      We found a problem on JMS. I am not sure if it is my configuration problem. I wrote a simple MDB. At client side, when I put a small size ObjectMessage into the queue, MDB works fine. Only one MDB pickups and processes the message for one time. The processing time is less than 1 minute.

      However, when I put a big size ObjectMessage (~MB) into the queue and MDB needs to process a little longer for a message (processing time is 4 minutes), I found there are serveral MDB which sequentially pick up the same message from the queue and process it. I wonder if I should set something for message persistence to solve this problem. Also, I check localDB.log, I saw it consistently write message to the queue by jboss (not client for sure) and delete message from the queue, like this:

      INSERT INTO JMS_MESSAGES VALUES(4,'QUEUE.myQueue',NULL,'A','aced0....
      ...
      COMMIT
      DELETE FROM JMS_MESSAGES WHERE MESSAGEID=4 AND DESTINATION='QUEUE.myQueue'
      INSERT INTO JMS_MESSAGES VALUES(4,'QUEUE.myQueue',NULL,'A','aced0....
      ...
      COMMIT
      DELETE FROM JMS_MESSAGES WHERE MESSAGEID=4 AND DESTINATION='QUEUE.myQueue'
      INSERT INTO JMS_MESSAGES VALUES(4,'QUEUE.myQueue',NULL,'A','aced0....
      ...
      COMMIT
      DELETE FROM JMS_MESSAGES WHERE MESSAGEID=4 AND DESTINATION='QUEUE.myQueue'

      ....

      However, I couldnot find "DELETE FROM JMS_TRANSACTIONS ..". When the message is small job, I can see "DELETE FROM JMS_TRANSACTIONS..." after "DELETE FROM JMS_MESSAGES WHERE ..".

      Any idea? If I use transacted queuesession, could that help?

        • 1. Re: more detail on problem on MDB processing big message in
          schrouf

          Normally message processing within MDB's is 'wrapped' into a container managed transaction. Maybe larger messages are just getting reprocessed again and again due to a transaction timeout ? So increasing the default transaction timeout value (default 5 min I guess) of the Jboss transaction manager might be a solution for your problem.

          regards
          ulf