1 Reply Latest reply on May 17, 2010 8:40 AM by Andy Taylor

    make sure the RA is stopped before HornetQ server

    Jeff Mesnil Master

      while working on the CTS with EAP 5.1 and HornetQ, I encounter the issue https://jira.jboss.org/browse/HORNETQ-339


      When the AS is stopped, HornetQ server is stopped first

      => the RA connections will detect that the server is down and will try to reconnect indefinitely (as they're using in-vm)

      => the server will be blocked by this infinite loop and will never shutdown


      We need to make sure to stop the resource adapter *before* stopping HornetQ server.

      Starting from the fix provided by Maurice (http://community.jboss.org/message/534116), I have added a HornetQRAService POJO.

      This class has a single stop() method which stops the resource adapter (using the injected mbean server to access the RA through JMX).


      In AS6 hornetq-jboss-beans.xml, I added a bean declaration:


         <bean name="HornetQRAService" class="org.hornetq.ra.HornetQRAService">
                  <inject bean="MBeanServer"/>


      This will make sure that HornetQRAService.stop() will be called before HornetQServer.stop() to preserve the correct shutdown sequence.


      It's a bit of a hack but I've not found a cleaner/simpler way to order HornetQ server and RA shutdown sequence.