This is sounding a bit like this issue...
https://issues.apache.org/activemq/browse/AMQ-865
thanks for the test case, have added it to that issue. We'll take a look.
On 8/17/06, AFinnell <[EMAIL PROTECTED]> 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#a5852831
Sent from the ActiveMQ - User forum at Nabble.com.
--
James
-------
http://radio.weblogs.com/0112098/