I have a problem with a standard jms configuration on my Jboss 7.1.1.Final server. For standard configuration I mean standalone-full.xml, so there are 20 bean in mdb pool and persistence enabled.
Sometimes we notice that a HornetQ thread blocks during the processing of a single message for a very long long time (latency network problem with an external application) and some other messages block too, even if no threads are processing it.
It seems like server preventively assigned these messages to that thread and they aren't processed until thread is blocked. Is it possible? If so, is there a configuration that can avoid this?
My guess is that the session used by the stalled MDB has buffered some of the messages based on the consumerWindowSize (defaults to 1048576 bytes). You can change the consumerWindowSize on your MDBs to 0 using the activation configuration property of the same name. You can read more about consumer buffering in the HornetQ documentation.