For durability to make sense, should the app server in which an MDB is deployed to be separated from the JMS Provider (server), so that if the app server shuts down and is restarted later, the MDB can be sent the messages that it had missed while the app server was down?
Share
I would say yes. One option could be deploying HornetQ standalone:
http://docs.jboss.org/hornetq/2.2.5.Final/user-manual/en/html/architecture.html#d0e636
This way you don’t need to deploy a fully featured JBoss server, saving some money by reducing your hosts specs. The memory footprint of HornetQ in standalone mode can be very low.
If splitting jms broker and MDB client is not an option, the way I did it once was developing a cache in the client that keeps unsent messages, so that if the server is down it stores messages until JBoss is up again.