You can use svn log to see whats changed in ActiveMQ which typically gives detailed comments on what changed and why. You can also listen to changes in SVN via the SCM mailing list... http://incubator.apache.org/activemq/mailing-lists.html
The fix I made for this issue is here http://svn.apache.org/viewvc?view=rev&revision=432377 On 8/18/06, AFinnell <[EMAIL PROTECTED]> wrote:
Thanks for the quick response and fix. I'm interested in seeing what was changed. James.Strachan wrote: > > I've just applied your test case to SVN along with a fix and a fix for > AMQ-883 and AMQ-865 if you want to try it out. Many thanks to Bryan > Schmidt who popped by on IRC and gave me a fix and suggestions on how > to deal with C# event delegates. > > On 8/17/06, James Strachan <[EMAIL PROTECTED]> wrote: >> 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/ >> > > > -- > > James > ------- > http://radio.weblogs.com/0112098/ > > -- View this message in context: http://www.nabble.com/Durable-topic-subscription-needs-pump-primed.-tf2117517.html#a5875406 Sent from the ActiveMQ - User forum at Nabble.com.
-- James ------- http://radio.weblogs.com/0112098/
