I'm using ActiveMQ version 4.0.1
AFinnell wrote:
>
> Notice that count is 0 when the consumer is created again, once another
> message is sent, all of a sudden two messages are received.
>
> This NUnit verifies what I said, not what should happen.
>
> ------
>
> using System;
> using System.Collections.Generic;
> using System.Text;
>
> using NUnit.Framework;
> using NUnit.Extensions;
> using ActiveMQ;
> using NMS;
> using ActiveMQ.Commands;
> using System.Threading;
>
> namespace ActiveMQDurableTest
> {
> [TestFixture]
> public class DurableTest
> {
> private static string TOPIC = "TestTopic";
>
> private static String URI = "tcp://localhost:61616";
>
> private static String CLIENT_ID = "DurableClientId";
>
> private static String CONSUMER_ID = "ConsumerId";
>
> private static ConnectionFactory FACTORY = new
> ConnectionFactory(new Uri(URI));
>
> private int count = 0;
>
> public void RegisterDurableConsumer()
> {
> using (IConnection connection = FACTORY.CreateConnection())
> {
> connection.ClientId = CLIENT_ID;
> connection.Start();
>
> using (ISession session =
> connection.CreateSession(AcknowledgementMode.DupsOkAcknowledge))
> {
> ITopic topic = session.GetTopic(TOPIC);
> IMessageConsumer consumer =
> session.CreateDurableConsumer(topic, CONSUMER_ID, "2 > 1", false);
> consumer.Dispose();
> }
>
> connection.Stop();
> }
> }
>
> public void SendPersistentMessage()
> {
> using (IConnection connection = FACTORY.CreateConnection())
> {
> connection.Start();
> using (ISession session =
> connection.CreateSession(AcknowledgementMode.DupsOkAcknowledge))
> {
> ITopic topic = session.GetTopic(TOPIC);
> ActiveMQTextMessage message = new
> ActiveMQTextMessage("Hello");
> message.NMSPersistent = true;
> message.Persistent = true;
>
> IMessageProducer producer = session.CreateProducer();
> producer.Send(topic, message);
> producer.Dispose();
> }
> connection.Stop();
> }
> }
>
> [Test]
> public void TestMe()
> {
> count = 0;
>
> RegisterDurableConsumer();
> SendPersistentMessage();
>
> using (IConnection connection = FACTORY.CreateConnection())
> {
> connection.ClientId = CLIENT_ID;
> connection.Start();
>
> using (ISession session =
> connection.CreateSession(AcknowledgementMode.DupsOkAcknowledge))
> {
> ITopic topic = session.GetTopic(TOPIC);
> IMessageConsumer consumer =
> session.CreateDurableConsumer(topic, CONSUMER_ID, "2 > 1", false);
> consumer.Listener += new
> MessageListener(consumer_Listener);
>
> /// Don't know how else to give the system enough
> time.
> ///
> Thread.Sleep(5000);
>
> Assert.AreEqual(0, count);
>
> Console.WriteLine("Count = " + count);
>
> SendPersistentMessage();
>
> Thread.Sleep(5000);
>
> Assert.AreEqual(2, count);
>
> Console.WriteLine("Count = " + count);
>
> consumer.Dispose();
> }
>
> connection.Stop();
> }
> }
>
> /// <summary>
> ///
> /// </summary>
> /// <param name="message"></param>
> private void consumer_Listener(IMessage message)
> {
> ++count;
> }
> }
> }
>
>
> James.Strachan wrote:
>>
>> Which version of ActiveMQ are you using BTW?
>> Any chance you could refactor your test code into an NUnit test case?
>>
>> On 8/16/06, AFinnell <[EMAIL PROTECTED]> wrote:
>>>
>>> I'm using the NMS client for C# and it appears that the durable messages
>>> need
>>> something to prime the pump.
>>>
>>> Steps to reproduce:
>>>
>>> Note: I am using the Listener handler on the IMessageConsumer object for
>>> an
>>> asynch response.
>>>
>>> 1. Sign on with durable topic subscription
>>> 2. Disconnect client
>>> 3. Send a persistent message
>>> 4. Sign back on to durable topic subscription
>>> (At this point the message is not sent to the client)
>>> 5. Send a new message to the client
>>> 6. Both messages are now received.
>>>
>>> I can post my code as needed. Is the problem I'm having apparent to
>>> anyone?
>>>
>>> Andrew
>>> --
>>> View this message in context:
>>> http://www.nabble.com/Durable-topic-subscription-needs-pump-primed.-tf2117517.html#a5839659
>>> Sent from the ActiveMQ - User forum at Nabble.com.
>>>
>>>
>>
>>
>> --
>>
>> James
>> -------
>> http://radio.weblogs.com/0112098/
>>
>>
>
>
--
View this message in context:
http://www.nabble.com/Durable-topic-subscription-needs-pump-primed.-tf2117517.html#a5852879
Sent from the ActiveMQ - User forum at Nabble.com.