The 'dispatcher thread' is the session thread used to deliver messages from receiver onMessage callbacks, 1 thread per session as mandated by JMS. When a session is delivering to onMessage, that blocks certain other operations on the session/connection from completing since a delivery is in progress, as mandated by JMS. This is accomplished with a lock.
You are essentially blocking these delivery threads upon both additional locks in your application and to extent upon each other, in a circle'ish sequence, by having dispatcher thread acquire a lock inside your application, then performing operations with the thread upon different connection/session that require that other sessions delivery lock, which you can't get because the other session is also trying to do a similar thing at the same time, but is unable to get the lock in your application as the first session has it, resulting in each waiting on the other to finish, which they then obviously can't. That is not an issue in JmsSession but in your general use of the client. As I have said a couple of times, we did identify one thing in 0.45.0 back in May where the session thread would continue to hold this delivery lock while the thread was firing the connection exception listener during certain types of delivery failure. We improved that so it stopped holding the lock here in early June. Thus upgrading your client would resolve the specific issue you reported in May. That may or may not be the very same issue you are reporting now since you are still using the older client, or it may actually be two onMessage calls performing the similar thread dance, which there is nothing the client can do about. Separately, we identified an issue in proton-j, which can lead to the very style of delivery failure from your original report (though you also identified your particular usage of Service Bus tooling resulted in that behaviour, so it may also be unrelated). The proton-j 0.33.8 release fixing that is now available, and we will do a Qpid JMS 0.55.0 release using it soon (though you can manually update to use 0.33.8 with the existing 0.54.0 release already if so desired). Robbie On Tue, 17 Nov 2020 at 16:41, akabhishek1 <mailbox.abhishek.ku...@gmail.com> wrote: > > Hey Robbie, > > Thanks a lot for quick reply. > > We are using JmsSession for below purposes > 1. Creating JMS messages > 2. Creating producers for sending message > 3. Creating consumers for receiving message > > Thread name "delivery dispatcher" suggests that there is an issue in > consumer JmsSession. Could you please confirm this ? > > If you think there could be an issue in other processor like JmsMessage > creation or publishing then please let me know. So I can try to find > blocking thread. > > Regards, > Abhishek Kumar > > > > > -- > Sent from: http://qpid.2158936.n2.nabble.com/Apache-Qpid-users-f2158936.html > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org > For additional commands, e-mail: users-h...@qpid.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org For additional commands, e-mail: users-h...@qpid.apache.org