Advanced Java programming.
To avoid message queue, start consumer before producer.
To process messages, use ConnectionConsumer with ServerSessionPool.
Close all resources explicitly like connections, sessions, objects etc.
Non-transactional as well as transactional sessions should be used for non-transactional & transactional messages.
Destination parameters shall be tuned.
For messages to be received asynchronously, MessageListener shall be implemented.