[
https://issues.apache.org/activemq/browse/AMQNET-136?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jim Gomes resolved AMQNET-136.
------------------------------
Resolution: Cannot Reproduce
A related fix was put in for [AMQNET-132]. Would you please re-test with the
latest code to see if this solves your problem. Also, a running sample of code
that can reproduce the problem (if it still exists) would be very helpful in
resolving this issue.
> DEADLOCK while closing the consumer
> ------------------------------------
>
> Key: AMQNET-136
> URL: https://issues.apache.org/activemq/browse/AMQNET-136
> Project: ActiveMQ .Net
> Issue Type: Bug
> Components: ActiveMQ Client
> Affects Versions: 1.1
> Environment: windows XP machine. Using .net 3.5 and VS 2008
> Reporter: satya
> Assignee: Jim Gomes
> Fix For: 1.1
>
>
> DEADLOCK SCENARIO:
> the deadlock occurs on close method of IMessageConsumer.
> Here is the scenario...
> Lets say we have the class below. The producer is calling the MessgeConsumers
> callback method.
> In this case its onMessage() method. Now lets assume there are 30K messages
> to be received in the call back. When we are on the 10th message and the user
> closes the trace Window the CloseWindow() method is called and the
> application stalls at the message consumers close method.
> Hope I am clear enough.
> Class TraceWindow
> {
> private IMessageConsumer consumerTrace = null;
> TraceWindow(Apache.NMS.IMessageConsumer iMessageConsumer)
> {
> this.consumerTrace = iMessageConsumer;
> if (consumerTrace != null)
> {
> this.consumerTrace.Listener += new
> MessageListener(OnMessage);
> }
> }
> public void OnMessage(Apache.NMS.IMessage bMsg)
> {
> //inserts in WPF ObservableCollection
> handleMessageDelegate Updater = new
> handleMessageDelegate(handleMessage);
>
> this.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Input,
>
> Updater, obj);
> }
> public void handleMessage(Object item)
> {
> lock (collectionTrace)
> {
> {
> collectionTrace.Add(item);
>
> LogManager.GetLogger("AlgoSystemCommunicatorLogger").Info(item);
> }
> }
> }
> public void CloseWindow()
> {
> consumerTrace.Close(); //////////////////////SYSTEM STALLS ON THIS CALL
> }
> }//end of class
> A WORK AROUND THAT I HAVE found is as follows:
> Before closing the consumer created on an ITemporaryTopic I call the
> DeleteDestination(IDestination destination) method to delete the temporary
> topic.
> I then call the close method on the consumer and it works. If however I dont
> call the deleteDestination method above
> there is a deadlock and the system stall. Just to add I have around 30000+
> messages coming over the callback method for the consumer.
> Not sure if the number of messages causes this.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.