On Mon, 2009-03-30 at 13:11 -0500, Bryan Murphy wrote: > Hey guys, > > I'm back on our ActiveMQ connection problems (again!). I'm deep > diving into the code, and trying to understand what is going on. Our > message queues get stuck, sometimes it takes a couple days, but > inevitably it happens forcing a restart of the server and all services > that connect to the server. This is starting to become and > administrative burden (not to mention an inconvenience for our users). > > Anyway, I was debugging a trunk build I made this morning, and I > noticed some of my settings were not reflected when I was browsing > around in the watch list. I wrote a unit test, and it verified what I > was seeing in my debugger. > > Here's the unit test. Could somebody point out if I'm doing something > obviously wrong? Every assertion in this unit test fails. Should I > be using the v1.0.0 branch in svn instead of the trunk? > > Thanks, > Bryan
I'd recommend opening a Jira issue and attaching your unit test code there (and granting the ASF license to it of course). We can take a look and see what's going on here. Regards Tim > > [Test] > public void TestActiveMQConfiguration() > { > var connectionString = "tcp://127.0.0.1:61616" > + "?connection.requestTimeout=60000" > + "&consumer.maximumRedeliveryCount=5" > + "&session.prefetchSize=1" > + "&transport.sendTimeout=30000" > + "&transport.receiveTimeout=30000" > + "&wireFormat.tcpNoDelayEnabled=true" > + "&wireFormat.maxInactivityDuration=120000" > ; > > var connectionFactory = new ConnectionFactory(connectionString); > > using (var connection = > (Connection)connectionFactory.CreateConnection()) > { > Assert.AreEqual(60000.0, > connection.RequestTimeout.TotalMilliseconds); > > var transport = this.GetTcpTransport(connection.ITransport); > Assert.AreEqual(60000.0, > transport.RequestTimeout.TotalMilliseconds); > Assert.IsTrue(transport.TcpNoDelayEnabled); > > var wireFormat = (OpenWireFormat)transport.Wireformat; > Assert.AreEqual(120000, wireFormat.MaxInactivityDuration); > Assert.IsTrue(wireFormat.TcpNoDelayEnabled); > > using (var session = > (Session)connection.CreateSession(AcknowledgementMode.Transactional)) > { > Assert.AreEqual(1, session.PrefetchSize); > > var queue = session.GetQueue("TestQueue"); > > using (var consumer = > (MessageConsumer)session.CreateConsumer(queue)) > { > Assert.AreEqual(5, > consumer.MaximumRedeliveryCount); > Assert.AreEqual(0, consumer.RedeliveryTimeout); > } > > using (var producer = > (MessageProducer)session.CreateProducer(queue)) > { > Assert.AreEqual(60000.0, > producer.RequestTimeout.TotalMilliseconds); > } > } > } > } > > protected TcpTransport GetTcpTransport(ITransport transport) > { > while (transport is TransportFilter) > { > var filter = (TransportFilter)transport; > var field = transport.GetType().GetField("next", > BindingFlags.GetField | BindingFlags.Instance | > BindingFlags.NonPublic); > transport = (ITransport)field.GetValue(filter); > } > > return (TcpTransport)transport; > } -- Tim Bish http://fusesource.com http://timbish.blogspot.com/