activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christian Gross (JIRA)" <>
Subject [jira] Commented: (AMQNET-132) Deadlock with acknowledgement
Date Thu, 15 Jan 2009 12:56:59 GMT


Christian Gross commented on AMQNET-132:

I recently ran into this similar read bug again, and it was consistent in that multiple clients
of mine using the same software had the same issue. I think I might have found out a further
piece of information that can be useful in figuring out where the problem is.

Previously in my code I would allocate multiple connections to the MQ server, and create multiple
sessions. With some changes I decided to change tack and have only one connection (limiting
configuration ability), and only one session. At that point my clients had their code work
without problems.

So that got me to thinking, what if this deadlock bug is due a static data member that cannot
cope with multiple connections and multiple sessions?

I was thinking about this since it probably is not that common that you create multiple connections
and multiple sessions.

> Deadlock with acknowledgement
> -----------------------------
>                 Key: AMQNET-132
>                 URL:
>             Project: ActiveMQ .Net
>          Issue Type: Bug
>          Components: ActiveMQ Client
>         Environment: Windows Quadcore machine, running Visual Studio 2008, and .NET 2.0
>            Reporter: Christian Gross
>            Assignee: Jim Gomes
> When I send and receive very large number of text based messages the code doing the receiving
will lock up. This behavior occurs when you use async or the IMessageConsumer.Read method.

> The problem is that when the Receive method is called it calls the CheckClosed. In the
method CheckClosed there is a lock(this) statement, and it is waiting for the lock to be released.
The problem is that the method Dispatch that also uses the same lock is deadlocked on something.
In specific the following line is the deadlock:
> ackSession.Connection.OneWay(ack);
> If I switch the session settings from AutoAcknowledge to ClientAcknowledge then I can
retrieve all of the messages without any deadlocks occurring.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message