3 Replies Latest reply on Oct 12, 2007 9:36 AM by Adrian Brock

    MDB and long time tasks

    J-C jc Apprentice

      I have a MDB that listen on a queue. MDB is in charge to perform a time consuming tasks. It invokes another EJB session.

      I have two problems:
      - MDB is transaction required. My task exceed the default timeout. How can I configure by XML the timeout for the MDB ? I have try to add some stuff in jboss.xml, nut it looks to be ignored.

      - Task is long, so MDB does not commit quick enough and the message is redelivered. I'd like to acknowledge the message at the beginning of my MDB as soon as I know that I will be able to process the message. I try message.acknowledge(). it looks to be ignored. Message is acknowlege only when onMessage method returns. Is it possible to programmatically acknowledge a message before MDB return ?

      I have tried to move to a bean managed transaction. I start my own transaction and set the timeout on a UserTransaction. That's not a good solution because timeout is hardcoded in the bean. And I still have the redeliver problem.

      Help will be appreciate