[rabbitmq-discuss] RabbitMQ crashes when messages are being pumped into a queue under win32 envir

Ming Li mli at rmmsoft.com.cn
Thu Mar 31 10:53:07 BST 2011



1.       using RabbitMQ2.4.0(windows bundle).winxp, creates an exchange and a queue.

2.       use multiple sender to send messages into the created queue, only a single receiver receiving message from the same queue.

3.       while running, what i discovered is that the ERL's RAM usage continue to increase and then crash when it reaches a certain percentage



Is there a way to prevent it from crashing?



Here are my receiver and sender source code:



Receiver:

RabbitMQ.Client.ConnectionFactory cf = new RabbitMQ.Client.ConnectionFactory();
            cf.UserName = RabbitMQ.Client.ConnectionFactory.DefaultUser;
            cf.Password = RabbitMQ.Client.ConnectionFactory.DefaultPass;
            cf.VirtualHost = RabbitMQ.Client.ConnectionFactory.DefaultVHost;
            cf.Protocol = RabbitMQ.Client.Protocols.FromEnvironment();
            cf.HostName = "192.168.3.43";
            cf.Address = "192.168.3.43";
            cf.Port = 9007;

            RabbitMQ.Client.IConnection IC = cf.CreateConnection();
            RabbitMQ.Client.IModel IM = IC.CreateModel();

            string qu = "Queue11"/*IM.QueueDeclare()*/;
            IM.QueueDeclare(qu, false, false, true, null);
            IM.BasicGet(qu, true);

            IM.BasicReturn += new RabbitMQ.Client.Events.BasicReturnEventHandler(IM_BasicReturn);
            RabbitMQ.Client.QueueingBasicConsumer _consumer = new RabbitMQ.Client.QueueingBasicConsumer(IM);

            IM.BasicConsume(qu, true, _consumer);
            int iCount = 0;
            while (true)
            {
                RabbitMQ.Client.Events.BasicDeliverEventArgs e = null;

                object obj = _consumer.Queue.Dequeue();
                if (obj == null || (e = obj as RabbitMQ.Client.Events.BasicDeliverEventArgs) == null)
                {
                   }
         }

Sender:

RabbitMQ.Client.ConnectionFactory cf = new RabbitMQ.Client.ConnectionFactory();
            cf.UserName = RabbitMQ.Client.ConnectionFactory.DefaultUser;
            cf.Password = RabbitMQ.Client.ConnectionFactory.DefaultPass;
            cf.VirtualHost = RabbitMQ.Client.ConnectionFactory.DefaultVHost;
            cf.Protocol = RabbitMQ.Client.Protocols.FromEnvironment();
            cf.HostName = "192.168.3.43";
            cf.Address = "192.168.3.43";
            cf.Port = 9007;

            SingleQuoteResponse res = new SingleQuoteResponse();
            T_Quote tq = new T_Quote();
            tq.SecurityDesc = "ssssssssss";
            res.Quote = tq;

            RabbitMQ.Client.IConnection IC = cf.CreateConnection();
            RabbitMQ.Client.IModel IM = IC.CreateModel();

            for (int j = 0; j < 100000000; j++)
            {
                IM.BasicPublish("", "Queue11", null, ESHelper.asES(ref res).ToBytes());
                Console.WriteLine("Sended :" + j.ToString());
            }

         if (IM != null)
            {
                IM.Close();
                IM.Dispose();
            }
            if (IM != null)
            {
                IC.Close();
                IC.Dispose();
            }

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20110331/144b53f2/attachment-0001.htm>


More information about the rabbitmq-discuss mailing list