4 Replies Latest reply on May 31, 2015 10:28 AM by ardenl_liu

    MDB Problem: MDB endpoint in use (about Hornetq)

    ardenl_liu

      Hi all,

           I met a MDB problem as the following, and I didn't use anything of the transaction, in fact, the logic was very sample.  perhaps it was different from the other discussion(MDB endpoint in use) ;

      but the exception is as same as the following content, can you give me any suggestion ? 

      Background:

      1. used hornetq and jboss 5.

      2. MDB was single instance(maxSession is 1)

      3.used (HashMap and ArrayList), not thread-safe classes


      java.lang.IllegalStateException: This message endpoint + HistoricMessageBean is already in use by another thread Thread[Thread-74 (group:HornetQ-client-global-threads-1505282694),5,HornetQ-client-global-threads-1505282694]

          at org.jboss.ejb3.mdb.inflow.MessageInflowLocalProxy.invoke(MessageInflowLocalProxy.java:117)

          at $Proxy1064.beforeDelivery(Unknown Source)

          at org.hornetq.ra.inflow.HornetQMessageHandler.onMessage(HornetQMessageHandler.java:215)

          at org.hornetq.core.client.impl.ClientConsumerImpl.callOnMessage(ClientConsumerImpl.java:767)

          at org.hornetq.core.client.impl.ClientConsumerImpl.access$100(ClientConsumerImpl.java:45)

          at org.hornetq.core.client.impl.ClientConsumerImpl$Runner.run(ClientConsumerImpl.java:885)

          at org.hornetq.utils.OrderedExecutorFactory$OrderedExecutor$1.run(OrderedExecutorFactory.java:96)

          at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

          at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

          at java.lang.Thread.run(Unknown Source)

       

      Thanks.

        • 1. Re: MDB Problem: MDB endpoint in use (about Hornetq)
          jbertram

          My guess is that this is most likely a bug in your application, but I wouldn't rule out a bug in JBoss AS itself or HornetQ.  In any case, JBoss AS 5 is very old at this point and no longer even supported by current releases of HornetQ.  I recommend you upgrade to the latest stable release of Wildfly which will also include a recent release of HornetQ.  If you can reproduce the exception there let me know.

          1 of 1 people found this helpful
          • 2. Re: MDB Problem: MDB endpoint in use (about Hornetq)
            ardenl_liu

            Thank you.

            We have used Jboss AS 5 for about 7 years. It's a great problem to update it.

             

            The version of HornetQ is 2.00.00.

            • 3. Re: MDB Problem: MDB endpoint in use (about Hornetq)
              jbertram

              Community support (i.e. what you get for free on a forum or mailing list like this) is all about the latest and greatest.  Just about anybody from the community who helps you is going to have a job whose primary role is something other than providing free support.  Since resources are limited it's unlikely anybody is going to devote much effort into investigating issues in old releases that have probably already been fixed.  If you can reproduce the issue on a current release then that confirms there is a real issue which means you're more likely to get some help.

               

              If you're stuck on old versions for whatever reason you're simply not likely to get any help.  However, if you did the work to make your problem easily reproducible then you'd be more likely to get help.

               

              At this point I recommend you upgrade to the latest stable release of Wildfly, and the next time you start a project think about your upgrade path.  If you think you're going to get stuck on a particular version and you still want support then consider purchasing support from Red Hat.

              • 4. Re: MDB Problem: MDB endpoint in use (about Hornetq)
                ardenl_liu

                Hi Justin,

                     Thank you for your suggestion, we should start the new project with the latest version.  in addition, we will think about a strategy to resolve the current problem.  replacing the MDB with the new solution.