2 Replies Latest reply on Sep 1, 2009 10:44 AM by damian.sinczak

    JBoss messaging performance.

    damian.sinczak

      I have problem with JBoss Messaging performance. I have queue that is persistent and supports transactions. Whole operation looks like this:

      1. In servlet I receive e.g. 1,5 GB of data
      2. I parse this data (there are numbers there)
      3. For every number in data I creating message and sending it on queue (there is some about 1 million of messages)
      4. After everything is parsed and all messages are send I commit transaction (and from now messages are committed so they can be consumed by message driven beans)

      Problem occurs when I'm putting messages on queue and later during commit (I have to have persistent and transactional messages). Everything is Ok when I put 500 000 and JBoss is not using whole RAM problem occurs when there is more messages and maximum amount of ram is taken. Is there any possibility to configure message producer (or anything else) so he doesn't gather messages in memory but save them in database (postgres 8.1). Of course I need it to be transactional so I can roll back send messages when I want to.

        • 1. Re: JBoss messaging performance.
          gaohoward

          I think 1 million messages in one transaction is too big.

          Maybe you can make your messages more compact to save memory. For example you can pack every 1000 numbers into one message, so you reduce the message number to about 1000 messages per transaction.

          • 2. Re: JBoss messaging performance.
            damian.sinczak

            The problem is that whole system is designed in the way that MDB that consumes messages from queue can operate only operate on one number from message. Because logic in MDB have a lot to do and also is transactional i can't put many numbers in one message. I have a walkaround solution but I'am searching for something that could help me to go without it.