activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Marco Crivellaro (JIRA)" <jira+amq...@apache.org>
Subject [jira] Created: (AMQNET-154) Closing a consumer does not unblock receive call
Date Mon, 30 Mar 2009 08:57:42 GMT
Closing a consumer does not unblock receive call
------------------------------------------------

                 Key: AMQNET-154
                 URL: https://issues.apache.org/activemq/browse/AMQNET-154
             Project: ActiveMQ .Net
          Issue Type: Bug
          Components: ActiveMQ Client
    Affects Versions: 1.1
         Environment: windows xp profesional
            Reporter: Marco Crivellaro
            Assignee: Jim Gomes


calling the close method of a cosumer while this has a pending receive call blocked does not
unblock returning null.

sample code (C#)

using System;
using Apache.NMS;
using Apache.NMS.ActiveMQ;
using System.Threading;

namespace simpleConsumer
{
    class Program
    {

        private static bool _exit = false;
        private static IMessageConsumer _consumer;
       

        static void Main(string[] args)
        {            
            Apache.NMS.ActiveMQ.ConnectionFactory connectionFactory = new ConnectionFactory("tcp://172.18.141.102:61616");
            Apache.NMS.IConnection connection = connectionFactory.CreateConnection();
            connection.Start();
            Apache.NMS.ISession session = connection.CreateSession();
            Apache.NMS.ActiveMQ.Commands.ActiveMQTopic inputTopic = new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic("test.topic");
            _consumer = session.CreateConsumer(inputTopic, "2>1");
            Thread _receiveThread = new Thread(_receiveLoop);
            _receiveThread.Start();
            while (!_exit)
            {
                String command = Console.ReadLine();
                if (command == "exit")
                {
                    _exit = true;
                }
            }
            _consumer.Close();
            _receiveThread.Join();
        }

        private static void _receiveLoop()
        {
            while (!_exit)
            {
                Apache.NMS.ActiveMQ.Commands.ActiveMQTextMessage message = (Apache.NMS.ActiveMQ.Commands.ActiveMQTextMessage)_consumer.Receive();
                Console.WriteLine(message.Content.ToString() +  " [looping...]");
            }
        }
    }
}

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


Mime
View raw message