occasional exception in ActiveMQ.Dispatcher.Dequeue() : millisecondsTimeout 
must be either non-negative and less than or equal to Int32.MaxValue or -1.
-------------------------------------------------------------------------------------------------------------------------------------------------------

                 Key: AMQNET-64
                 URL: https://issues.apache.org/activemq/browse/AMQNET-64
             Project: ActiveMQ .Net
          Issue Type: Bug
          Components: ActiveMQ Client
         Environment: .NET 2.0, Windows 2000 Server under VMware, 
https://svn.apache.org/repos/asf/activemq/activemq-dotnet/trunk @ 578465
            Reporter: David Holroyd
            Assignee: James Strachan


I tried a lightly modified version of the example code from 
http://activemq.apache.org/nms/nms.html and find that every few invocations of 
the test program, I see the following exception, rather than the normal 
'Received message' output:

{noformat}
Unhandled Exception: System.ArgumentOutOfRangeException: Number must be either 
non-negative and less than or equal to Int32.MaxValue or -1.
Parameter name: millisecondsTimeout
   at System.Threading.WaitHandle.WaitOne(Int32 millisecondsTimeout, Boolean 
exitContext)
   at ActiveMQ.Dispatcher.Dequeue(TimeSpan timeout)
   at ActiveMQ.Dispatcher.Dequeue()
   at ActiveMQ.MessageConsumer.Receive()
   at Test.Bridge.Main(String[] args)
{noformat}

The code in question is,

{code:title=Bridge.cs}
namespace Test {

        using System;
        using NMS;
        using ActiveMQ;

        public class Bridge {

                public static void Main(string[] args) {

                        IConnectionFactory factory = new ConnectionFactory(new 
Uri("tcp://192.168.9.162:61616"));
                        using (IConnection connection = 
factory.CreateConnection())
                        {
                            Console.WriteLine("Created a connection!");
                            
                            ISession session = connection.CreateSession();
                            
                            IDestination destination = 
session.GetQueue("FOO.BAR");
                            Console.WriteLine("Using destination: " + 
destination);
                            
                            // lets create a consumer and producer
                            IMessageConsumer consumer = 
session.CreateConsumer(destination);
                            
                            IMessageProducer producer = 
session.CreateProducer(destination);
                            producer.Persistent = true;
                            
                            // lets send a message
                            ITextMessage request = 
session.CreateTextMessage("Hello World!");
                            request.NMSCorrelationID = "abc";
                            request.Properties["NMSXGroupID"] = "cheese";
                            request.Properties["myHeader"] = "James";
                            
                            producer.Send(request);
                            
                            // lets consume a message
                            ITextMessage message = (ITextMessage) 
consumer.Receive();
                            if (message == null)
                            {
                                Console.WriteLine("No message received!");
                            }
                            else
                            {
                                Console.WriteLine("Received message with ID:   
" + message.NMSMessageId);
                                Console.WriteLine("Received message with text: 
" + message.Text);
                            }
                        }

                }
        }
}
{code}


The C# code is talking to ActiveMQ 4.1.1 running on the Linux host (I'm using 
NMS within VMware).


I'll try to nose around the code and work out what's happening, but this is the 
first time I've ever worked with C#.

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

Reply via email to