The dispatcher threads exist on a per-session basis rather than
per-consumer. Closing the session should make them go away, but closing a
consumer does not.

The <some-number> in 'Dispatcher-<some-number>-Conn-1' name is the
particular AMQP channel number the session is using on its parent
connection.

Robbie

On 5 November 2014 09:18, Fredrik Bakkevig Haugli <[email protected]>
wrote:

> Hello,
>
>
>
> I am working on a project that uses qpid for communication in an OSGi based
> system. One bundle creates a connection that other bundles can use through
> its OSGi-interface. One problem I have is that whenever a MessageConsumer
> is created in the connection bundle, a dispatcher thread is created for it
> and this thread lingers on even after the consumer is closed. These threads
> show up as 'Dispatcher-<some-number>-Conn-1' in the Netbeans debugging
> inteface.
>
>
> If another bundle for some reason is restarted, it will create new
> MessageConsumers which creates new threads without killing the old ones,
> even if it tries to clean up after itself by closing its consumers first.
> The only way of removing these threads that I have found is to restart the
> connection bundle (which closes and creates a new connection), something
> that might require restarting all other bundles that use it, which is not
> ideal.
>
>
> These threads does not really cause a direct problem as the application
> works fine even though they are running, but having an unbounded number of
> threads does not seem like a good thing in the long run.
>
>
>
> My question is:
>
> Are these dispatcher threads supposed to carry on after the consumer is
> closed, or is there a way to kill them without closing the connection?
>
>
>
> Fredrik Bakkevig Haugli
>

Reply via email to