From stammailbox at gmail.com Sun Feb 2 05:59:41 2014 From: stammailbox at gmail.com (rails) Date: Sun, 2 Feb 2014 07:59:41 +0200 Subject: [rabbitmq-discuss] Replacing the management plugin default port In-Reply-To: References: Message-ID: I did many restarts all day. my logs have the the following line =INFO REPORT==== 2-Feb-2014::07:54:08 === Management plugin started. Port: 15672 whereas my configuration have the following: .... {rabbitmq_management, [{listener, [{port, 5680}]}]}, ... On Fri, Jan 31, 2014 at 7:44 AM, Michael Klishin < michael.s.klishin at gmail.com> wrote: > > 2014-01-30 rails : > > {rabbitmq_management, >> [ >> {listener, [{port, 5690}]} >> ]}, >> >> But still I was able to connect to the ui through 15672 (default) only. >> >> What did I do wrong? >> > > Restart RabbitMQ and see the log. > > There should be a message like > > =INFO REPORT==== 31-Jan-2014::09:43:34 === > Management plugin started. Port: 15676 > > or an error indicating that management listener failed to start (e.g. > because the port > is already in use). > -- > MK > > http://github.com/michaelklishin > http://twitter.com/michaelklishin > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From stammailbox at gmail.com Mon Feb 3 07:23:51 2014 From: stammailbox at gmail.com (rails) Date: Mon, 3 Feb 2014 09:23:51 +0200 Subject: [rabbitmq-discuss] No Queues, No message, yet erl.exe takes up all my cpu Message-ID: Following the RabbitMQ cluster tutorial. I am running three RabbitMQs on a single machine. I have passed a few messages and everything works smoothly. After leaving it on a few hours I open the task manager and see that my cpu is over 95% almost all of it are the three erl.exe processes. Now, I made my queues not durable and when I view my management UI plugin I see that there are no messages or even queues. Why is erl.exe taking all of my cpus after being a few hours on? -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Mon Feb 3 08:01:05 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Mon, 3 Feb 2014 12:01:05 +0400 Subject: [rabbitmq-discuss] No Queues, No message, yet erl.exe takes up all my cpu In-Reply-To: References: Message-ID: 2014-02-03 rails : > After leaving it on a few hours I open the task manager and see that my > cpu is over 95% almost all of it are the three erl.exe processes. This sounds like a runtime issue. What Erlang version do you use? Is there anything in RabbitMQ logs? -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From stammailbox at gmail.com Mon Feb 3 08:21:47 2014 From: stammailbox at gmail.com (rails) Date: Mon, 3 Feb 2014 10:21:47 +0200 Subject: [rabbitmq-discuss] No Queues, No message, yet erl.exe takes up all my cpu In-Reply-To: References: Message-ID: I am using erl5.10.4 On Mon, Feb 3, 2014 at 10:01 AM, Michael Klishin < michael.s.klishin at gmail.com> wrote: > 2014-02-03 rails : > > After leaving it on a few hours I open the task manager and see that my >> cpu is over 95% almost all of it are the three erl.exe processes. > > > This sounds like a runtime issue. > > What Erlang version do you use? Is there anything in RabbitMQ logs? > -- > MK > > http://github.com/michaelklishin > http://twitter.com/michaelklishin > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Mon Feb 3 08:40:13 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Mon, 3 Feb 2014 12:40:13 +0400 Subject: [rabbitmq-discuss] enableing rabbitmq-jsonrpc-channel plugin kills RabbitMQ service on Windows In-Reply-To: <827B6989-F610-49C7-A965-E314C3A61537@rabbitmq.com> References: <84304573-572d-44a5-954f-cd04d6a1bf6b@googlegroups.com> <41414E76-4C90-4AB1-A56C-20F9541D21BD@rabbitmq.com> <827B6989-F610-49C7-A965-E314C3A61537@rabbitmq.com> Message-ID: <51438E18-262C-42FC-8726-C2D27F833919@gopivotal.com> On 9 Sep 2013, at 17:15, Michael Klishin wrote: > This suggests a JSON RPC plugin dependency is not available. > > How did you install RabbitMQ? FTR, this issue was resolved in RabbitMQ 3.2.0. -- MK Software Engineer, Pivotal/RabbitMQ From Shashank.Lothe at techmahindra.com Mon Feb 3 09:47:08 2014 From: Shashank.Lothe at techmahindra.com (Lothe Shashank) Date: Mon, 3 Feb 2014 09:47:08 +0000 Subject: [rabbitmq-discuss] Capturing chang in IP address at the listener In-Reply-To: References: Message-ID: Hi Alan, Would you like to respond to my earlier mail? regards, Shashank ________________________________ From: Lothe Shashank Sent: Tuesday, January 21, 2014 4:30 PM To: rabbitmq-discuss at lists.rabbitmq.com Subject: Capturing chang in IP address at the listener Hi Alan, Thank you so much for all your earlier replies. Could you kindly throw some light on following two issues we have faced with rabbitmq-c (V0.3) running in Ubuntu 12.04? 1. I created a listener and a queue is created at the broker. I changed my system IP address and restarted network manager. I could ping to the broker with this new IP address. However the queue created at the broker still shows the old IP address and any message published on this queue after IP change is not received by the client. The amqp_simple_wait_frame_noblock() API does not give any error event for IP address change; it was giving AMQP_STATUS_TIMEOUT. Is there a way capture this run time IP address change at the listener? 2. I created two listener threads having separate connection. I turned off my network router. One listener was able to get AMQP_STATUS_SSL_ERROR/AMQP_STATUS_SSL_CONNECTION_FAILED error while the other listener was still giving AMQP_STATUS_TIMEOUT. I was expecting AMQP_STATUS_SSL_ERROR/AMQP_STATUS_SSL_CONNECTION_FAILED error at both the listener. What could be the reason for this behaviour? Thanks and regards, Shashank ________________________________ DISCLAIMER: This email (including any attachments) is intended for the sole use of the intended recipient/s and may contain material that is CONFIDENTIAL AND PRIVATE COMPANY INFORMATION. Any review or reliance by others or copying or distribution or forwarding of any or all of the contents in this message is STRICTLY PROHIBITED. If you are not the intended recipient, please contact the sender by email and delete all copies; your cooperation in this regard is appreciated. -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Mon Feb 3 10:07:48 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Mon, 3 Feb 2014 14:07:48 +0400 Subject: [rabbitmq-discuss] Replacing the management plugin default port In-Reply-To: References: Message-ID: 2014-01-30 rails : > I renamed rabbitmq.config.example to rabbitmq.config (in > ..\rabbitmq_server-3.2.2\etc) Looks like you are on Windows. If so, it may be an issue with incorrect config file location which is different between Windows and *nix. See http://www.rabbitmq.com/relocate.html#windows -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Mon Feb 3 10:14:53 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Mon, 3 Feb 2014 14:14:53 +0400 Subject: [rabbitmq-discuss] Capturing chang in IP address at the listener In-Reply-To: References: Message-ID: 2014-01-21 Lothe Shashank : > Is there a way capture this run time IP address change at the listener? There is nothing specific to librabbitmq-c about this question. See http://man7.org/linux/man-pages/man7/rtnetlink.7.html http://man7.org/linux/man-pages/man7/netlink.7.html and specifically *RTM_NEWADDR*, *RTM_DELADDR*, *RTM_GETADDR.* I suspect NAT can muddy the water quite a bit. -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From matthias at rabbitmq.com Mon Feb 3 10:19:15 2014 From: matthias at rabbitmq.com (Matthias Radestock) Date: Mon, 03 Feb 2014 10:19:15 +0000 Subject: [rabbitmq-discuss] Replacing the management plugin default port In-Reply-To: References: Message-ID: <52EF6D23.2060206@rabbitmq.com> On 03/02/14 10:07, Michael Klishin wrote: > > 2014-01-30 rails >: > > I renamed rabbitmq.config.example to rabbitmq.config (in > ..\rabbitmq_server-3.2.2\etc) > > > Looks like you are on Windows. > > If so, it may be an issue with incorrect config file location which is > different > between Windows and *nix. See > > http://www.rabbitmq.com/relocate.html#windows Please check your rabbit logs. They tell you whether the config file was read and where from, e.g. =INFO REPORT==== 3-Feb-2014::09:51:36 === node : rabbit at xps home dir : /home/matthias config file(s) : /etc/rabbitmq/rabbitmq.config cookie hash : 7XH7GYHpuPYdcMBp7JyhCw== log : /tmp/rabbit at xps.log sasl log : /tmp/rabbit at xps-sasl.log database dir : /tmp/rabbitmq-rabbit-mnesia If the "config file(s)" line says 'none' then the file wasn't found in the expected location and hence not read. Matthias. From mklishin at gopivotal.com Mon Feb 3 10:29:43 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Mon, 3 Feb 2014 14:29:43 +0400 Subject: [rabbitmq-discuss] ANN amqp gem 1.3.0 is released Message-ID: amqp gem [1] 1.3.0 is released. Release notes: http://blog.rubyrabbitmq.info/blog/2014/02/03/amqp-gem-1-dot-3-0-is-released/ 1. http://rubyamqp.info MK Software Engineer, Pivotal/RabbitMQ From pat at munkiisoft.com Mon Feb 3 10:39:32 2014 From: pat at munkiisoft.com (Patrick Long) Date: Mon, 3 Feb 2014 10:39:32 +0000 Subject: [rabbitmq-discuss] Stuck cluster node Message-ID: Yesterday morning node2 on a 2 node cluster reported that node 1 was down. The management UI on both nodes reported the other as unavailable but node 1 had no reports of node 2 being down, in its log This morning I decided to stop both nodes using *rabbitmqctl stop_app* and then bring them back up Node 2 stopped successfully Node 1 is hanging on stop_app Can anyone help me diagnose this issue, please Thanks -- Patrick Long - Munkiisoft Ltd -------------- next part -------------- An HTML attachment was scrubbed... URL: From Shashank.Lothe at techmahindra.com Mon Feb 3 10:47:03 2014 From: Shashank.Lothe at techmahindra.com (Lothe Shashank) Date: Mon, 3 Feb 2014 10:47:03 +0000 Subject: [rabbitmq-discuss] Un used connections at broker Message-ID: Hi Alan, I have few queries regarding RMQ broker behaviour. The sequence is as follows. 1. A client created a connection (Connection A) and a queue (Queue A) (auto-delete, non exclusive, non durable) on a broker. 2. After some time I created one more connection (Connection B) and I deleted the queue Queue A. I did not destroy Connection A and is unused henceforth. My queries are as follows. 1. What happens to the unused connection A? Will it be deleted by Broker eventually? 2. Will the resources allocated by connection A be deallocated by the broker? 3. If I create n number of connections which are unused will the performance of broker be affected? 4. Will garbage collector detect the unused connection? One more sequence I would like to mention. 1. A client created a connection (Connection A) and a queue (Queue A) (auto-delete, non exclusive, non durable) on a broker. 2. I pulled out power cable/network cable from the client. 3. I am not sure if the broker has detected the connection failure with client as the queue A created at the broker is not deleted Could you please clarify? Thanks and regards, Shashank ________________________________ DISCLAIMER: This email (including any attachments) is intended for the sole use of the intended recipient/s and may contain material that is CONFIDENTIAL AND PRIVATE COMPANY INFORMATION. Any review or reliance by others or copying or distribution or forwarding of any or all of the contents in this message is STRICTLY PROHIBITED. If you are not the intended recipient, please contact the sender by email and delete all copies; your cooperation in this regard is appreciated. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mpietrek at skytap.com Mon Feb 3 10:58:59 2014 From: mpietrek at skytap.com (Matt Pietrek) Date: Mon, 3 Feb 2014 02:58:59 -0800 Subject: [rabbitmq-discuss] Restarting the management plugin without restarting the broker Message-ID: We have a clustered pair of brokers running 3.2.2 that seem to be functioning normally, except that the management UI doesn't seem to work. Everything under Exchanges, Queues and Admin seems to be functioning normally. However, under Connections and Channels it says "... no connections..." or "... no channels..." respectively. Under the Overview tab it also says "... no connections..." Is there some sort of erl command or other wizardry I can do to safely reset the management plugin without dropping all my connections or otherwise messing up clients? Thanks, Matt -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Mon Feb 3 11:02:14 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Mon, 3 Feb 2014 15:02:14 +0400 Subject: [rabbitmq-discuss] Un used connections at broker In-Reply-To: References: Message-ID: <2C427C42-C1E1-4387-9CF1-7B86B4CE7931@rabbitmq.com> On 3 Feb 2014, at 14:47, Lothe Shashank wrote: > I have few queries regarding RMQ broker behaviour. The sequence is as follows. > 1. A client created a connection (Connection A) and a queue (Queue A) (auto-delete, non exclusive, non durable) on a broker. > 2. After some time I created one more connection (Connection B) and I deleted the queue Queue A. I did not destroy Connection A and is unused henceforth. > > My queries are as follows. > 1. What happens to the unused connection A? Will it be deleted by Broker eventually? No. Consumers on connection A will receive a consumer cancel notification: http://www.rabbitmq.com/consumer-cancel.html > 2. Will the resources allocated by connection A be deallocated by the broker? See above. > 3. If I create n number of connections which are unused will the performance of broker be affected? Up to a certain point (say, a few hundreds) the effect will be irrelevant. If you leave unused connections open, however, eventually you may run out of available file descriptors and RabbitMQ will stop accepting new connections. > 4. Will garbage collector detect the unused connection? There is no garbage collection for inactive connections. > One more sequence I would like to mention. > 1. A client created a connection (Connection A) and a queue (Queue A) (auto-delete, non exclusive, non durable) on a broker. > 2. I pulled out power cable/network cable from the client. > 3. I am not sure if the broker has detected the connection failure with client as the queue A created at the broker is not deleted Yes, RabbitMQ will eventually detect connection failure. It will take some time, due to how TCP works. Connections in RabbitMQ are orthogonal to queues. I?d recommend reading http://www.rabbitmq.com/tutorials/amqp-concepts.html and other tutorials: http://www.rabbitmq.com/getstarted.html in case you are not sure about the concepts. MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Mon Feb 3 11:05:07 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Mon, 3 Feb 2014 15:05:07 +0400 Subject: [rabbitmq-discuss] Restarting the management plugin without restarting the broker In-Reply-To: References: Message-ID: <2ED4418E-9F64-4304-9257-F9FA6EB382DF@rabbitmq.com> On 3 Feb 2014, at 14:58, Matt Pietrek wrote: > Under the Overview tab it also says "... no connections?" Are there any errors in the logs? > Is there some sort of erl command or other wizardry I can do to safely reset the management plugin without dropping all my connections or otherwise messing up clients? rabbitmqctl eval 'application:stop(rabbitmq_management).' rabbitmqctl eval 'application:start(rabbitmq_management).? Try it in a separate environment first. MK Software Engineer, Pivotal/RabbitMQ From mpietrek at skytap.com Mon Feb 3 11:08:53 2014 From: mpietrek at skytap.com (Matt Pietrek) Date: Mon, 3 Feb 2014 03:08:53 -0800 Subject: [rabbitmq-discuss] Restarting the management plugin without restarting the broker In-Reply-To: <2ED4418E-9F64-4304-9257-F9FA6EB382DF@rabbitmq.com> References: <2ED4418E-9F64-4304-9257-F9FA6EB382DF@rabbitmq.com> Message-ID: Michael, Thanks for the quick answer! Will of course test elsewhere first. Matt On Mon, Feb 3, 2014 at 3:05 AM, Michael Klishin wrote: > On 3 Feb 2014, at 14:58, Matt Pietrek wrote: > > > Under the Overview tab it also says "... no connections..." > > Are there any errors in the logs? > > > Is there some sort of erl command or other wizardry I can do to safely > reset the management plugin without dropping all my connections or > otherwise messing up clients? > > rabbitmqctl eval 'application:stop(rabbitmq_management).' > rabbitmqctl eval 'application:start(rabbitmq_management).' > > Try it in a separate environment first. > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Mon Feb 3 12:05:21 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Mon, 03 Feb 2014 12:05:21 +0000 Subject: [rabbitmq-discuss] Order of restarts - Federation of federation In-Reply-To: References: Message-ID: <52EF8601.6010207@rabbitmq.com> On 31/01/2014 6:28PM, Arun Rao wrote: > There seems to be an order in restarting rabbitmq servers if you have a > downstream rabbitmq server to a downstream rabbitmq server. So if there > is a downstream server D1 pulling messages from Upstream server U and > Downstream server D2 pulling messages from D1. When restarting D1 and > D2, if D2 comes up first I dont see messages flowing. When D1 comes up > first followed by D2, then everything is fine. Wow, you are actually right. It's an obscure bug in topic routing which gets tickled when using multi-hop federation. Thanks for the bug report! Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From jdashton at ashtonfam.org Mon Feb 3 14:35:18 2014 From: jdashton at ashtonfam.org (J. Daniel Ashton) Date: Mon, 3 Feb 2014 06:35:18 -0800 (PST) Subject: [rabbitmq-discuss] eacces error in RabbitMQ when trying to set up federation Message-ID: <42fdcd93-b0be-47dc-bbc1-33aa92fed0c0@googlegroups.com> I'm trying to prototype federated message queuing between a Mac host and a Fedora 20 image running under VirtualBox. After a certain amount of head banging I managed to get the Mac exchanges federated from the Fedora exchanges, meaning that messages sent to the Fedora upstream broker are received on the Mac (downstream) broker. However, when trying to go the other way (Fedora sees Mac as upstream), I get error messages about "eacces". ==> rabbit at localhost.log <== =WARNING REPORT==== 29-Jan-2014::21:18:11 === Federation exchange 'amq.direct' in vhost '/' did not connect to exchange 'amq.direct' in vhost '/' on amqp://172.30.42.19 {error,eacces} ==> rabbit at localhost-sasl.log <== =SUPERVISOR REPORT==== 29-Jan-2014::21:18:11 === Supervisor: {<0.15681.0>, rabbit_federation_link_sup} Context: child_terminated Reason: {shutdown,restart} Offender: [{pid,<0.21716.0>}, {name, {upstream, [<<"amqp://guest:guest at 172.30.42.19">>], <<"amq.direct">>,<<"amq.direct">>,1000,1,1,36000000, none,false,'on-confirm',none,<<"mac_host">>}}, {mfargs, {rabbit_federation_exchange_link,start_link, [{{upstream, [<<"amqp://guest:guest at 172.30.42.19">>], <<"amq.direct">>,<<"amq.direct">>,1000,1,1, 36000000,none,false,'on-confirm',none, <<"mac_host">>}, {resource,<<"/">>,exchange,<<"amq.direct">>}}]}}, {restart_type,{permanent,1}}, {shutdown,4294967295}, {child_type,worker}] My Google-fu is failing me. What may be causing the above error (*e.g.*SELinux?) and how should I go about fixing it? BTW, on the theory that it might be the Linux or Mac firewalls, I tried opening a browser on the Fedora box and requesting http://172.30.42.19:5672. I got a (tiny) answer in return, so the firewall looks less likely to be the problem. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jdashton at ashtonfam.org Mon Feb 3 14:37:10 2014 From: jdashton at ashtonfam.org (J. Daniel Ashton) Date: Mon, 3 Feb 2014 06:37:10 -0800 (PST) Subject: [rabbitmq-discuss] Quick tutorial on point-to-point broker connections? Message-ID: <2b972446-10ed-40cb-b50c-edebf0978090@googlegroups.com> I'd like to exchange messages between two apps residing at different companies and locations. Is there a tutorial that demonstrates direct point-to-point respond-request configuration of two brokers using RabbitMQ? Thanks! -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Mon Feb 3 15:57:05 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Mon, 03 Feb 2014 15:57:05 +0000 Subject: [rabbitmq-discuss] eacces error in RabbitMQ when trying to set up federation In-Reply-To: <42fdcd93-b0be-47dc-bbc1-33aa92fed0c0@googlegroups.com> References: <42fdcd93-b0be-47dc-bbc1-33aa92fed0c0@googlegroups.com> Message-ID: <52EFBC51.2090204@rabbitmq.com> That's quite odd. 'eacces' is an OS-level error, nothing in RabbitMQ should be generating that error for anything AMQPish. Is there anything interesting in the logs on the upstream? Cheers, Simon On 03/02/2014 2:35PM, J. Daniel Ashton wrote: > I'm trying to prototype federated message queuing between a Mac host and > a Fedora 20 image running under VirtualBox. After a certain amount of > head banging I managed to get the Mac exchanges federated from the > Fedora exchanges, meaning that messages sent to the Fedora upstream > broker are received on the Mac (downstream) broker. > > However, when trying to go the other way (Fedora sees Mac as upstream), > I get error messages about "eacces". > > |==> rabbit at localhost.log <== > > =WARNING REPORT==== 29-Jan-2014::21:18:11 === > Federation exchange 'amq.direct' in vhost '/' did not connect to exchange 'amq.direct' in vhost '/' on amqp://172.30.42.19 > {error,eacces} > > ==> rabbit at localhost-sasl.log <== > > =SUPERVISOR REPORT==== 29-Jan-2014::21:18:11 === > Supervisor: {<0.15681.0>, > rabbit_federation_link_sup} > Context: child_terminated > Reason: {shutdown,restart} > Offender: [{pid,<0.21716.0>}, > {name, > {upstream, > [<<"amqp://guest:guest at 172.30.42.19">>], > <<"amq.direct">>,<<"amq.direct">>,1000,1,1,36000000, > none,false,'on-confirm',none,<<"mac_host">>}}, > {mfargs, > {rabbit_federation_exchange_link,start_link, > [{{upstream, > [<<"amqp://guest:guest at 172.30.42.19">>], > <<"amq.direct">>,<<"amq.direct">>,1000,1,1, > 36000000,none,false,'on-confirm',none, > <<"mac_host">>}, > {resource,<<"/">>,exchange,<<"amq.direct">>}}]}}, > {restart_type,{permanent,1}}, > {shutdown,4294967295}, > {child_type,worker}] > | > > My Google-fu is failing me. What may be causing the above error (/e.g./ > SELinux?) and how should I go about fixing it? > > BTW, on the theory that it might be the Linux or Mac firewalls, I tried > opening a browser on the Fedora box and requesting > |http://172.30.42.19:5672|. I got a (tiny) answer in return, so the > firewall looks less likely to be the problem. > > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -- Simon MacMullen RabbitMQ, Pivotal From dmcintyre at gopivotal.com Mon Feb 3 16:06:34 2014 From: dmcintyre at gopivotal.com (Duncan McIntyre) Date: Mon, 3 Feb 2014 16:06:34 +0000 Subject: [rabbitmq-discuss] eacces error in RabbitMQ when trying to set up federation In-Reply-To: <42fdcd93-b0be-47dc-bbc1-33aa92fed0c0@googlegroups.com> References: <42fdcd93-b0be-47dc-bbc1-33aa92fed0c0@googlegroups.com> Message-ID: Did you do the browser check under the same user which runs rabbitmq? --- Duncan On Mon, Feb 3, 2014 at 2:35 PM, J. Daniel Ashton wrote: > I'm trying to prototype federated message queuing between a Mac host and a > Fedora 20 image running under VirtualBox. After a certain amount of head > banging I managed to get the Mac exchanges federated from the Fedora > exchanges, meaning that messages sent to the Fedora upstream broker are > received on the Mac (downstream) broker. > > However, when trying to go the other way (Fedora sees Mac as upstream), I > get error messages about "eacces". > > ==> rabbit at localhost.log <== > > =WARNING REPORT==== 29-Jan-2014::21:18:11 === > Federation exchange 'amq.direct' in vhost '/' did not connect to exchange 'amq.direct' in vhost '/' on amqp://172.30.42.19 > {error,eacces} > > ==> rabbit at localhost-sasl.log <== > > =SUPERVISOR REPORT==== 29-Jan-2014::21:18:11 === > Supervisor: {<0.15681.0>, > rabbit_federation_link_sup} > Context: child_terminated > Reason: {shutdown,restart} > Offender: [{pid,<0.21716.0>}, > {name, > {upstream, > [<<"amqp://guest:guest at 172.30.42.19">>], > <<"amq.direct">>,<<"amq.direct">>,1000,1,1,36000000, > none,false,'on-confirm',none,<<"mac_host">>}}, > {mfargs, > {rabbit_federation_exchange_link,start_link, > [{{upstream, > [<<"amqp://guest:guest at 172.30.42.19">>], > <<"amq.direct">>,<<"amq.direct">>,1000,1,1, > 36000000,none,false,'on-confirm',none, > <<"mac_host">>}, > {resource,<<"/">>,exchange,<<"amq.direct">>}}]}}, > {restart_type,{permanent,1}}, > {shutdown,4294967295}, > {child_type,worker}] > > My Google-fu is failing me. What may be causing the above error (*e.g.*SELinux?) and how should I go about fixing it? > > BTW, on the theory that it might be the Linux or Mac firewalls, I tried > opening a browser on the Fedora box and requesting > http://172.30.42.19:5672. I got a (tiny) answer in return, so the > firewall looks less likely to be the problem. > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Mon Feb 3 16:18:58 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Mon, 03 Feb 2014 16:18:58 +0000 Subject: [rabbitmq-discuss] eacces error in RabbitMQ when trying to set up federation In-Reply-To: References: <42fdcd93-b0be-47dc-bbc1-33aa92fed0c0@googlegroups.com> <52EFBC51.2090204@rabbitmq.com> Message-ID: <52EFC172.2020303@rabbitmq.com> I doubt it's a firewall, that should lead to "connection timed out" or "connection refused" type errors. SELinux is maybe a possibility. If you invoke: # rabbitmqctl eval 'gen_tcp:connect("172.30.42.19", 5672, []).' on the Fedora host then that will attempt to establish a vanilla TCP connection to the Mac. What response does it give? Cheers, Simon On 03/02/2014 4:01PM, Daniel Ashton wrote: > I see no evidence that it ever reaches the upstream. The upstream's log > files have nothing about being connected to from the Fedora broker. > That's why I wondered about Fedora (or upstream Mac host, for that > matter) firewalls or SELinux on Fedora. eacces . . . can that indicate > an SELinux problem? > > > On Mon, Feb 3, 2014 at 10:57 AM, Simon MacMullen > wrote: > > That's quite odd. 'eacces' is an OS-level error, nothing in RabbitMQ > should be generating that error for anything AMQPish. > > Is there anything interesting in the logs on the upstream? > > Cheers, Simon > > On 03/02/2014 2:35PM, J. Daniel Ashton wrote: > > I'm trying to prototype federated message queuing between a Mac > host and > a Fedora 20 image running under VirtualBox. After a certain > amount of > head banging I managed to get the Mac exchanges federated from the > Fedora exchanges, meaning that messages sent to the Fedora upstream > broker are received on the Mac (downstream) broker. > > However, when trying to go the other way (Fedora sees Mac as > upstream), > I get error messages about "eacces". > > |==> rabbit at localhost.log <== > > =WARNING REPORT==== 29-Jan-2014::21:18:11 === > Federation exchange 'amq.direct' in vhost '/' did not connect to > exchange 'amq.direct' in vhost '/' on amqp://172.30.42.19 > > {error,eacces} > > ==> rabbit at localhost-sasl.log <== > > =SUPERVISOR REPORT==== 29-Jan-2014::21:18:11 === > Supervisor: {<0.15681.0>, > rabbit_federation_link_sup} > Context: child_terminated > Reason: {shutdown,restart} > Offender: [{pid,<0.21716.0>}, > {name, > {upstream, > [<<"amqp://guest:guest at 172.30.__42.19 > ">>], > > <<"amq.direct">>,<<"amq.__direct">>,1000,1,1,36000000, > > none,false,'on-confirm',none,<__<"mac_host">>}}, > {mfargs, > {rabbit_federation_exchange___link,start_link, > [{{upstream, > > [<<"amqp://guest:guest at 172.30.__42.19 > ">>], > > <<"amq.direct">>,<<"amq.__direct">>,1000,1,1, > > 36000000,none,false,'on-__confirm',none, > <<"mac_host">>}, > > {resource,<<"/">>,exchange,<<"__amq.direct">>}}]}}, > {restart_type,{permanent,1}}, > {shutdown,4294967295}, > {child_type,worker}] > | > > My Google-fu is failing me. What may be causing the above error > (/e.g./ > SELinux?) and how should I go about fixing it? > > BTW, on the theory that it might be the Linux or Mac firewalls, > I tried > opening a browser on the Fedora box and requesting > |http://172.30.42.19:5672|. I got a (tiny) answer in return, so the > firewall looks less likely to be the problem. > > > > _________________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.__rabbitmq.com > > https://lists.rabbitmq.com/__cgi-bin/mailman/listinfo/__rabbitmq-discuss > > > > -- > Simon MacMullen > RabbitMQ, Pivotal > > > > > -- > Daniel Ashton PGP key available http://Daniel.AshtonFam.org > mailto:jdashton at AshtonFam.org > http://ChamberMusicWeekend.org -- Simon MacMullen RabbitMQ, Pivotal From videlalvaro at gmail.com Mon Feb 3 17:29:51 2014 From: videlalvaro at gmail.com (Alvaro Videla) Date: Mon, 3 Feb 2014 18:29:51 +0100 Subject: [rabbitmq-discuss] Quick tutorial on point-to-point broker connections? In-Reply-To: <2b972446-10ed-40cb-b50c-edebf0978090@googlegroups.com> References: <2b972446-10ed-40cb-b50c-edebf0978090@googlegroups.com> Message-ID: Hi, Have you tried using federation? See: http://www.rabbitmq.com/federation.html I also wrote an article about it: http://jaxenter.com/distributed-log-aggregation-with-rabbitmq-federation-49154.html Regards, Alvaro On Mon, Feb 3, 2014 at 3:37 PM, J. Daniel Ashton wrote: > > I'd like to exchange messages between two apps residing at different > companies and locations. Is there a tutorial that demonstrates direct > point-to-point respond-request configuration of two brokers using RabbitMQ? > > Thanks! > > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > From jdashton at ashtonfam.org Mon Feb 3 16:01:08 2014 From: jdashton at ashtonfam.org (Daniel Ashton) Date: Mon, 3 Feb 2014 11:01:08 -0500 Subject: [rabbitmq-discuss] eacces error in RabbitMQ when trying to set up federation In-Reply-To: <52EFBC51.2090204@rabbitmq.com> References: <42fdcd93-b0be-47dc-bbc1-33aa92fed0c0@googlegroups.com> <52EFBC51.2090204@rabbitmq.com> Message-ID: I see no evidence that it ever reaches the upstream. The upstream's log files have nothing about being connected to from the Fedora broker. That's why I wondered about Fedora (or upstream Mac host, for that matter) firewalls or SELinux on Fedora. eacces . . . can that indicate an SELinux problem? On Mon, Feb 3, 2014 at 10:57 AM, Simon MacMullen wrote: > That's quite odd. 'eacces' is an OS-level error, nothing in RabbitMQ > should be generating that error for anything AMQPish. > > Is there anything interesting in the logs on the upstream? > > Cheers, Simon > > On 03/02/2014 2:35PM, J. Daniel Ashton wrote: > >> I'm trying to prototype federated message queuing between a Mac host and >> a Fedora 20 image running under VirtualBox. After a certain amount of >> head banging I managed to get the Mac exchanges federated from the >> Fedora exchanges, meaning that messages sent to the Fedora upstream >> broker are received on the Mac (downstream) broker. >> >> However, when trying to go the other way (Fedora sees Mac as upstream), >> I get error messages about "eacces". >> >> |==> rabbit at localhost.log <== >> >> =WARNING REPORT==== 29-Jan-2014::21:18:11 === >> Federation exchange 'amq.direct' in vhost '/' did not connect to exchange >> 'amq.direct' in vhost '/' on amqp://172.30.42.19 >> {error,eacces} >> >> ==> rabbit at localhost-sasl.log <== >> >> =SUPERVISOR REPORT==== 29-Jan-2014::21:18:11 === >> Supervisor: {<0.15681.0>, >> rabbit_federation_link_sup} >> Context: child_terminated >> Reason: {shutdown,restart} >> Offender: [{pid,<0.21716.0>}, >> {name, >> {upstream, >> [<<"amqp://guest:guest at 172.30.42.19">>], >> <<"amq.direct">>,<<"amq. >> direct">>,1000,1,1,36000000, >> none,false,'on-confirm',none,<<"mac_host">>}}, >> {mfargs, >> {rabbit_federation_exchange_link,start_link, >> [{{upstream, >> [<<"amqp://guest:guest at 172.30.42.19">>], >> <<"amq.direct">>,<<"amq.direct">>,1000,1,1, >> 36000000,none,false,'on-confirm',none, >> <<"mac_host">>}, >> {resource,<<"/">>,exchange,<<" >> amq.direct">>}}]}}, >> {restart_type,{permanent,1}}, >> {shutdown,4294967295}, >> {child_type,worker}] >> | >> >> My Google-fu is failing me. What may be causing the above error (/e.g./ >> SELinux?) and how should I go about fixing it? >> >> BTW, on the theory that it might be the Linux or Mac firewalls, I tried >> opening a browser on the Fedora box and requesting >> |http://172.30.42.19:5672|. I got a (tiny) answer in return, so the >> firewall looks less likely to be the problem. >> >> >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> >> > -- > Simon MacMullen > RabbitMQ, Pivotal > -- Daniel Ashton PGP key available http://Daniel.AshtonFam.org mailto:jdashton at AshtonFam.org http://ChamberMusicWeekend.org -------------- next part -------------- An HTML attachment was scrubbed... URL: From jdashton at ashtonfam.org Mon Feb 3 17:10:14 2014 From: jdashton at ashtonfam.org (Daniel Ashton) Date: Mon, 3 Feb 2014 12:10:14 -0500 Subject: [rabbitmq-discuss] eacces error in RabbitMQ when trying to set up federation In-Reply-To: <52EFC172.2020303@rabbitmq.com> References: <42fdcd93-b0be-47dc-bbc1-33aa92fed0c0@googlegroups.com> <52EFBC51.2090204@rabbitmq.com> <52EFC172.2020303@rabbitmq.com> Message-ID: Thanks so much for the response, Simon. I've tweaked the network configuration, so the IP addresses are different. But the results are the same, whether connecting to the upstream or to myself: [root at localhost jdashton]# rabbitmqctl eval 'gen_tcp:connect("192.168.199.2", 5672, []).' {error,eacces} ...done. [root at localhost jdashton]# rabbitmqctl eval 'gen_tcp:connect("192.168.199.1", 5672, []).' {error,eacces} ...done. *.2 is myself, *.1 is my intended upstream host. >From the Mac side this works beautifully. Exchanges are seeing the Fedora20 host as their upstream, federation status shows them all as running, and the above command gets {ok,#Port<5233.*some_number*>} as the response when connecting to *.2 (Fedora) or *.1 (Mac/self). Thanks again for your help. I would love to get this working. On Mon, Feb 3, 2014 at 11:18 AM, Simon MacMullen wrote: > I doubt it's a firewall, that should lead to "connection timed out" or > "connection refused" type errors. > > SELinux is maybe a possibility. > > If you invoke: > > # rabbitmqctl eval 'gen_tcp:connect("172.30.42.19", 5672, []).' > > on the Fedora host then that will attempt to establish a vanilla TCP > connection to the Mac. What response does it give? > > Cheers, Simon > > > On 03/02/2014 4:01PM, Daniel Ashton wrote: > >> I see no evidence that it ever reaches the upstream. The upstream's log >> files have nothing about being connected to from the Fedora broker. >> That's why I wondered about Fedora (or upstream Mac host, for that >> matter) firewalls or SELinux on Fedora. eacces . . . can that indicate >> an SELinux problem? >> >> >> On Mon, Feb 3, 2014 at 10:57 AM, Simon MacMullen > > wrote: >> >> That's quite odd. 'eacces' is an OS-level error, nothing in RabbitMQ >> should be generating that error for anything AMQPish. >> >> Is there anything interesting in the logs on the upstream? >> >> Cheers, Simon >> >> On 03/02/2014 2:35PM, J. Daniel Ashton wrote: >> >> I'm trying to prototype federated message queuing between a Mac >> host and >> a Fedora 20 image running under VirtualBox. After a certain >> amount of >> head banging I managed to get the Mac exchanges federated from the >> Fedora exchanges, meaning that messages sent to the Fedora >> upstream >> broker are received on the Mac (downstream) broker. >> >> However, when trying to go the other way (Fedora sees Mac as >> upstream), >> I get error messages about "eacces". >> >> |==> rabbit at localhost.log <== >> >> =WARNING REPORT==== 29-Jan-2014::21:18:11 === >> Federation exchange 'amq.direct' in vhost '/' did not connect to >> exchange 'amq.direct' in vhost '/' on amqp://172.30.42.19 >> >> >> {error,eacces} >> >> ==> rabbit at localhost-sasl.log <== >> >> =SUPERVISOR REPORT==== 29-Jan-2014::21:18:11 === >> Supervisor: {<0.15681.0>, >> >> rabbit_federation_link_sup} >> Context: child_terminated >> Reason: {shutdown,restart} >> Offender: [{pid,<0.21716.0>}, >> {name, >> {upstream, >> [<<"amqp://guest:guest at 172.30.__42.19 >> ">>], >> >> <<"amq.direct">>,<<"amq.__direct">>,1000,1,1,36000000, >> >> none,false,'on-confirm',none,<__<"mac_host">>}}, >> {mfargs, >> {rabbit_federation_exchange___ >> link,start_link, >> [{{upstream, >> >> [<<"amqp://guest:guest at 172.30.__42.19 >> ">>], >> >> <<"amq.direct">>,<<"amq.__direct">>,1000,1,1, >> >> 36000000,none,false,'on-__confirm',none, >> <<"mac_host">>}, >> >> {resource,<<"/">>,exchange,<<"__amq.direct">>}}]}}, >> >> {restart_type,{permanent,1}}, >> {shutdown,4294967295}, >> {child_type,worker}] >> | >> >> My Google-fu is failing me. What may be causing the above error >> (/e.g./ >> SELinux?) and how should I go about fixing it? >> >> BTW, on the theory that it might be the Linux or Mac firewalls, >> I tried >> opening a browser on the Fedora box and requesting >> |http://172.30.42.19:5672|. I got a (tiny) answer in return, so >> the >> firewall looks less likely to be the problem. >> >> >> >> _________________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.__rabbitmq.com >> >> https://lists.rabbitmq.com/__cgi-bin/mailman/listinfo/__ >> rabbitmq-discuss >> >> > rabbitmq-discuss> >> >> >> -- >> Simon MacMullen >> RabbitMQ, Pivotal >> >> >> >> >> -- >> Daniel Ashton PGP key available http://Daniel.AshtonFam.org >> mailto:jdashton at AshtonFam.org >> http://ChamberMusicWeekend.org >> > > -- > Simon MacMullen > RabbitMQ, Pivotal > -- Daniel Ashton PGP key available http://Daniel.AshtonFam.org mailto:jdashton at AshtonFam.org http://ChamberMusicWeekend.org -------------- next part -------------- An HTML attachment was scrubbed... URL: From jdashton at ashtonfam.org Mon Feb 3 17:17:52 2014 From: jdashton at ashtonfam.org (J. Daniel Ashton) Date: Mon, 3 Feb 2014 09:17:52 -0800 (PST) Subject: [rabbitmq-discuss] service start reports failed on Fedora 20 Message-ID: On Fedora 20 there's a high probability that starting RabbitMQ will report that it has failed, but will then go ahead and start the service anyway. I use this command: sudo /sbin/service rabbitmq-server start Sometimes this reports OK. But more often it reports Failed. However, within a few seconds the rabbitmq log files will start showing activity, local producers and consumers can exchange messages, a downstream federation partner can connect, and ps -eaf shows a believable number of processes for beam, epmd and rabbitmq. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jdashton at ashtonfam.org Mon Feb 3 17:26:45 2014 From: jdashton at ashtonfam.org (Daniel Ashton) Date: Mon, 3 Feb 2014 12:26:45 -0500 Subject: [rabbitmq-discuss] eacces error in RabbitMQ when trying to set up federation In-Reply-To: References: <42fdcd93-b0be-47dc-bbc1-33aa92fed0c0@googlegroups.com> <52EFBC51.2090204@rabbitmq.com> <52EFC172.2020303@rabbitmq.com> Message-ID: Question partially answered: I ran "sudo setenforce 0" and suddenly the exchanges connect to the intended upstream. So . . . how to give them permission to do this when SELinux is enforcing? On Mon, Feb 3, 2014 at 12:10 PM, Daniel Ashton wrote: > Thanks so much for the response, Simon. > > I've tweaked the network configuration, so the IP addresses are > different. But the results are the same, whether connecting to the > upstream or to myself: > > [root at localhost jdashton]# rabbitmqctl eval > 'gen_tcp:connect("192.168.199.2", 5672, []).' > {error,eacces} > ...done. > [root at localhost jdashton]# rabbitmqctl eval > 'gen_tcp:connect("192.168.199.1", 5672, []).' > {error,eacces} > ...done. > > *.2 is myself, *.1 is my intended upstream host. > > From the Mac side this works beautifully. Exchanges are seeing the > Fedora20 host as their upstream, federation status shows them all as > running, and the above command gets {ok,#Port<5233.*some_number*>} as the > response when connecting to *.2 (Fedora) or *.1 (Mac/self). > > Thanks again for your help. I would love to get this working. > > > > > On Mon, Feb 3, 2014 at 11:18 AM, Simon MacMullen wrote: > >> I doubt it's a firewall, that should lead to "connection timed out" or >> "connection refused" type errors. >> >> SELinux is maybe a possibility. >> >> If you invoke: >> >> # rabbitmqctl eval 'gen_tcp:connect("172.30.42.19", 5672, []).' >> >> on the Fedora host then that will attempt to establish a vanilla TCP >> connection to the Mac. What response does it give? >> >> Cheers, Simon >> >> >> On 03/02/2014 4:01PM, Daniel Ashton wrote: >> >>> I see no evidence that it ever reaches the upstream. The upstream's log >>> files have nothing about being connected to from the Fedora broker. >>> That's why I wondered about Fedora (or upstream Mac host, for that >>> matter) firewalls or SELinux on Fedora. eacces . . . can that indicate >>> an SELinux problem? >>> >>> >>> On Mon, Feb 3, 2014 at 10:57 AM, Simon MacMullen >> > wrote: >>> >>> That's quite odd. 'eacces' is an OS-level error, nothing in RabbitMQ >>> should be generating that error for anything AMQPish. >>> >>> Is there anything interesting in the logs on the upstream? >>> >>> Cheers, Simon >>> >>> On 03/02/2014 2:35PM, J. Daniel Ashton wrote: >>> >>> I'm trying to prototype federated message queuing between a Mac >>> host and >>> a Fedora 20 image running under VirtualBox. After a certain >>> amount of >>> head banging I managed to get the Mac exchanges federated from >>> the >>> Fedora exchanges, meaning that messages sent to the Fedora >>> upstream >>> broker are received on the Mac (downstream) broker. >>> >>> However, when trying to go the other way (Fedora sees Mac as >>> upstream), >>> I get error messages about "eacces". >>> >>> |==> rabbit at localhost.log <== >>> >>> =WARNING REPORT==== 29-Jan-2014::21:18:11 === >>> Federation exchange 'amq.direct' in vhost '/' did not connect to >>> exchange 'amq.direct' in vhost '/' on amqp://172.30.42.19 >>> >>> >>> {error,eacces} >>> >>> ==> rabbit at localhost-sasl.log <== >>> >>> =SUPERVISOR REPORT==== 29-Jan-2014::21:18:11 === >>> Supervisor: {<0.15681.0>, >>> >>> rabbit_federation_link_sup} >>> Context: child_terminated >>> Reason: {shutdown,restart} >>> Offender: [{pid,<0.21716.0>}, >>> {name, >>> {upstream, >>> [<<"amqp://guest:guest at 172.30.__42.19 >>> ">>], >>> >>> <<"amq.direct">>,<<"amq.__direct">>,1000,1,1,36000000, >>> >>> none,false,'on-confirm',none,<__<"mac_host">>}}, >>> {mfargs, >>> {rabbit_federation_exchange___ >>> link,start_link, >>> [{{upstream, >>> >>> [<<"amqp://guest:guest at 172.30.__42.19 >>> ">>], >>> >>> <<"amq.direct">>,<<"amq.__direct">>,1000,1,1, >>> >>> 36000000,none,false,'on-__confirm',none, >>> <<"mac_host">>}, >>> >>> {resource,<<"/">>,exchange,<<"__amq.direct">>}}]}}, >>> >>> {restart_type,{permanent,1}}, >>> {shutdown,4294967295}, >>> {child_type,worker}] >>> | >>> >>> My Google-fu is failing me. What may be causing the above error >>> (/e.g./ >>> SELinux?) and how should I go about fixing it? >>> >>> BTW, on the theory that it might be the Linux or Mac firewalls, >>> I tried >>> opening a browser on the Fedora box and requesting >>> |http://172.30.42.19:5672|. I got a (tiny) answer in return, so >>> the >>> firewall looks less likely to be the problem. >>> >>> >>> >>> _________________________________________________ >>> rabbitmq-discuss mailing list >>> rabbitmq-discuss at lists.__rabbitmq.com >>> >>> https://lists.rabbitmq.com/__cgi-bin/mailman/listinfo/__ >>> rabbitmq-discuss >>> >>> >> rabbitmq-discuss> >>> >>> >>> -- >>> Simon MacMullen >>> RabbitMQ, Pivotal >>> >>> >>> >>> >>> -- >>> Daniel Ashton PGP key available http://Daniel.AshtonFam.org >>> mailto:jdashton at AshtonFam.org >>> http://ChamberMusicWeekend.org >>> >> >> -- >> Simon MacMullen >> RabbitMQ, Pivotal >> > > > > -- > Daniel Ashton PGP key available http://Daniel.AshtonFam.org > mailto:jdashton at AshtonFam.org http://ChamberMusicWeekend.org > -- Daniel Ashton PGP key available http://Daniel.AshtonFam.org mailto:jdashton at AshtonFam.org http://ChamberMusicWeekend.org -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Mon Feb 3 17:44:26 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Mon, 03 Feb 2014 17:44:26 +0000 Subject: [rabbitmq-discuss] eacces error in RabbitMQ when trying to set up federation In-Reply-To: References: <42fdcd93-b0be-47dc-bbc1-33aa92fed0c0@googlegroups.com> <52EFBC51.2090204@rabbitmq.com> <52EFC172.2020303@rabbitmq.com> Message-ID: <52EFD57A.4030201@rabbitmq.com> I'm afraid I don't know much about SELinux. But your answer to the "rabbitmqctl eval" question makes it clear: the broker is being denied permission to make outgoing TCP connections. Cheers, Simon On 03/02/2014 5:26PM, Daniel Ashton wrote: > Question partially answered: I ran "sudo setenforce 0" and suddenly the > exchanges connect to the intended upstream. > > So . . . how to give them permission to do this when SELinux is enforcing? > > > > On Mon, Feb 3, 2014 at 12:10 PM, Daniel Ashton > wrote: > > Thanks so much for the response, Simon. > > I've tweaked the network configuration, so the IP addresses are > different. But the results are the same, whether connecting to the > upstream or to myself: > > [root at localhost jdashton]# rabbitmqctl eval > 'gen_tcp:connect("192.168.199.2", 5672, []).' > {error,eacces} > ...done. > [root at localhost jdashton]# rabbitmqctl eval > 'gen_tcp:connect("192.168.199.1", 5672, []).' > {error,eacces} > ...done. > > *.2 is myself, *.1 is my intended upstream host. > > From the Mac side this works beautifully. Exchanges are seeing the > Fedora20 host as their upstream, federation status shows them all as > running, and the above command gets {ok,#Port<5233./some_number/>} > as the response when connecting to *.2 (Fedora) or *.1 (Mac/self). > > Thanks again for your help. I would love to get this working. > > > > > On Mon, Feb 3, 2014 at 11:18 AM, Simon MacMullen > wrote: > > I doubt it's a firewall, that should lead to "connection timed > out" or "connection refused" type errors. > > SELinux is maybe a possibility. > > If you invoke: > > # rabbitmqctl eval 'gen_tcp:connect("172.30.42.__19", 5672, []).' > > on the Fedora host then that will attempt to establish a vanilla > TCP connection to the Mac. What response does it give? > > Cheers, Simon > > > On 03/02/2014 4:01PM, Daniel Ashton wrote: > > I see no evidence that it ever reaches the upstream. The > upstream's log > files have nothing about being connected to from the Fedora > broker. > That's why I wondered about Fedora (or upstream Mac host, > for that > matter) firewalls or SELinux on Fedora. eacces . . . can > that indicate > an SELinux problem? > > > On Mon, Feb 3, 2014 at 10:57 AM, Simon MacMullen > > >> wrote: > > That's quite odd. 'eacces' is an OS-level error, > nothing in RabbitMQ > should be generating that error for anything AMQPish. > > Is there anything interesting in the logs on the upstream? > > Cheers, Simon > > On 03/02/2014 2:35PM, J. Daniel Ashton wrote: > > I'm trying to prototype federated message queuing > between a Mac > host and > a Fedora 20 image running under VirtualBox. After a > certain > amount of > head banging I managed to get the Mac exchanges > federated from the > Fedora exchanges, meaning that messages sent to the > Fedora upstream > broker are received on the Mac (downstream) broker. > > However, when trying to go the other way (Fedora > sees Mac as > upstream), > I get error messages about "eacces". > > |==> rabbit at localhost.log <== > > =WARNING REPORT==== 29-Jan-2014::21:18:11 === > Federation exchange 'amq.direct' in vhost '/' did > not connect to > exchange 'amq.direct' in vhost '/' on > amqp://172.30.42.19 > > > {error,eacces} > > ==> rabbit at localhost-sasl.log <== > > =SUPERVISOR REPORT==== 29-Jan-2014::21:18:11 === > Supervisor: {<0.15681.0>, > > rabbit_federation_link_sup} > Context: child_terminated > Reason: {shutdown,restart} > Offender: [{pid,<0.21716.0>}, > {name, > {upstream, > > [<<"amqp://guest:guest at 172.30.____42.19 > >">>], > > > <<"amq.direct">>,<<"amq.____direct">>,1000,1,1,36000000, > > none,false,'on-confirm',none,<____<"mac_host">>}}, > {mfargs, > > {rabbit_federation_exchange_____link,start_link, > [{{upstream, > > [<<"amqp://guest:guest at 172.30.____42.19 > >">>], > > <<"amq.direct">>,<<"amq.____direct">>,1000,1,1, > > 36000000,none,false,'on-____confirm',none, > <<"mac_host">>}, > > {resource,<<"/">>,exchange,<<"____amq.direct">>}}]}}, > > {restart_type,{permanent,1}}, > {shutdown,4294967295}, > {child_type,worker}] > | > > My Google-fu is failing me. What may be causing the > above error > (/e.g./ > SELinux?) and how should I go about fixing it? > > BTW, on the theory that it might be the Linux or > Mac firewalls, > I tried > opening a browser on the Fedora box and requesting > |http://172.30.42.19:5672|. I got a (tiny) answer > in return, so the > firewall looks less likely to be the problem. > > > > ___________________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.__rabbi__tmq.com > > > > https://lists.rabbitmq.com/____cgi-bin/mailman/listinfo/____rabbitmq-discuss > > > > > > > > -- > Simon MacMullen > RabbitMQ, Pivotal > > > > > -- > Daniel Ashton PGP key available http://Daniel.AshtonFam.org > mailto:jdashton at AshtonFam.org > > __> > http://ChamberMusicWeekend.org > > > -- > Simon MacMullen > RabbitMQ, Pivotal > > > > > -- > Daniel Ashton PGP key available http://Daniel.AshtonFam.org > mailto:jdashton at AshtonFam.org > http://ChamberMusicWeekend.org > > > > > -- > Daniel Ashton PGP key available http://Daniel.AshtonFam.org > mailto:jdashton at AshtonFam.org > http://ChamberMusicWeekend.org -- Simon MacMullen RabbitMQ, Pivotal From jhalterman at gmail.com Mon Feb 3 19:31:01 2014 From: jhalterman at gmail.com (Jonathan Halterman) Date: Mon, 3 Feb 2014 11:31:01 -0800 Subject: [rabbitmq-discuss] ANN Lyra 0.4.0 - High Availability RabbitMQ Client Message-ID: I'm happy to announce the release of Lyra 0.4.0, a high availability RabbitMQ client for the JVM! This version includes new support for auto-recovery of exchanges, exchange bindings, queues and queue bindings, along with various bug fixes. See the changelog and project website for more details. Also check out a description of the failure scenarios that Lyra handles (links below). https://github.com/jhalterman/lyra https://github.com/jhalterman/lyra/wiki/Failure-Scenarios https://github.com/jhalterman/lyra/blob/master/CHANGES.txt Cheers, Jonathan -------------- next part -------------- An HTML attachment was scrubbed... URL: From arunrao.seattle at gmail.com Mon Feb 3 20:29:30 2014 From: arunrao.seattle at gmail.com (Arun Rao) Date: Mon, 3 Feb 2014 12:29:30 -0800 Subject: [rabbitmq-discuss] Policy Settings definition Message-ID: Hello - I am running rabbitmq version 3.0.2. When I set a policy for dead lettering, i get the error message policy settings not recognized. As per the changelog, this was introduced in 2.8.0. can some one please help? http://www.rabbitmq.com/changelog.html Interestingly, in the web Management console (port:15672), i see three definitions under policy: ha-mode, ha-params and federation-upstream-set. SHould i enable any plugin for this? *Command::>* sudo rabbitmqctl set_policy -p rqa3.logging DLX ".*" '{"x-dead-letter-exchange":"serviceDLX"}' Setting policy "DLX" for pattern ".*" to "{\"x-dead-letter-exchange\":\"serviceDLX\"}" ... Error: Validation failed [{<<"x-dead-letter-exchange">>,<<"serviceDLX">>}] are not recognised policy settings *RabbitMQ version::>* sudo rabbitmqctl report|more .... [{rabbitmq_shovel_management,"Shovel Status","3.0.2"}, {rabbitmq_federation_management,"RabbitMQ Federation Management", "3.0.2"}, {rabbitmq_management,"RabbitMQ Management Console","3.0.2"}, {rabbitmq_federation,"RabbitMQ Federation","3.0.2"}, {rabbitmq_management_agent,"RabbitMQ Management Agent","3.0.2"}, {rabbit,"RabbitMQ","3.0.2"}, *Enabled Plugins:>* sudo rabbitmq-plugins list [e] amqp_client 3.0.2 [ ] cowboy 0.5.0-rmq3.0.2-git4b93c2d [ ] eldap 3.0.2-gite309de4 [e] mochiweb 2.3.1-rmq3.0.2-gitd541e9a [ ] rabbitmq_auth_backend_ldap 3.0.2 [ ] rabbitmq_auth_mechanism_ssl 3.0.2 [ ] rabbitmq_consistent_hash_exchange 3.0.2 [E] rabbitmq_federation 3.0.2 [E] rabbitmq_federation_management 3.0.2 [ ] rabbitmq_jsonrpc 3.0.2 [ ] rabbitmq_jsonrpc_channel 3.0.2 [ ] rabbitmq_jsonrpc_channel_examples 3.0.2 [E] rabbitmq_management 3.0.2 [e] rabbitmq_management_agent 3.0.2 [ ] rabbitmq_management_visualiser 3.0.2 [e] rabbitmq_mochiweb 3.0.2 [ ] rabbitmq_mqtt 3.0.2 [ ] rabbitmq_old_federation 3.0.2 [ ] rabbitmq_shovel 3.0.2 [E] rabbitmq_shovel_management 3.0.2 [ ] rabbitmq_stomp 3.0.2 [ ] rabbitmq_tracing 3.0.2 [ ] rabbitmq_web_stomp 3.0.2 [ ] rabbitmq_web_stomp_examples 3.0.2 [ ] rfc4627_jsonrpc 3.0.2-git7ab174b [ ] sockjs 0.3.4-rmq3.0.2-git3132eb9 [e] webmachine 1.9.1-rmq3.0.2-git52e62bc Thanks! -------------- next part -------------- An HTML attachment was scrubbed... URL: From videlalvaro at gmail.com Mon Feb 3 20:34:22 2014 From: videlalvaro at gmail.com (Alvaro Videla) Date: Mon, 3 Feb 2014 21:34:22 +0100 Subject: [rabbitmq-discuss] Policy Settings definition In-Reply-To: References: Message-ID: Hi, According to the docs[1], the policy key should be "dead-letter-exchange" instead of "x-dead-letter-exchange" Regards, Alvaro 1 - http://www.rabbitmq.com/dlx.html On Mon, Feb 3, 2014 at 9:29 PM, Arun Rao wrote: > Hello - > > I am running rabbitmq version 3.0.2. When I set a policy for dead lettering, > i get the error message policy settings not recognized. As per the > changelog, this was introduced in 2.8.0. can some one please > help?http://www.rabbitmq.com/changelog.html > > Interestingly, in the web Management console (port:15672), i see three > definitions under policy: ha-mode, ha-params and federation-upstream-set. > SHould i enable any plugin for this? > > Command::> > > sudo rabbitmqctl set_policy -p rqa3.logging DLX ".*" > '{"x-dead-letter-exchange":"serviceDLX"}' > > Setting policy "DLX" for pattern ".*" to > "{\"x-dead-letter-exchange\":\"serviceDLX\"}" ... > > Error: Validation failed > > > [{<<"x-dead-letter-exchange">>,<<"serviceDLX">>}] are not recognised policy > settings > > > RabbitMQ version::> > > sudo rabbitmqctl report|more > > .... > > [{rabbitmq_shovel_management,"Shovel Status","3.0.2"}, > > {rabbitmq_federation_management,"RabbitMQ Federation Management", > > "3.0.2"}, > > {rabbitmq_management,"RabbitMQ Management Console","3.0.2"}, > > {rabbitmq_federation,"RabbitMQ Federation","3.0.2"}, > > {rabbitmq_management_agent,"RabbitMQ Management Agent","3.0.2"}, > > {rabbit,"RabbitMQ","3.0.2"}, > > > Enabled Plugins:> > > > sudo rabbitmq-plugins list > > [e] amqp_client 3.0.2 > > [ ] cowboy 0.5.0-rmq3.0.2-git4b93c2d > > [ ] eldap 3.0.2-gite309de4 > > [e] mochiweb 2.3.1-rmq3.0.2-gitd541e9a > > [ ] rabbitmq_auth_backend_ldap 3.0.2 > > [ ] rabbitmq_auth_mechanism_ssl 3.0.2 > > [ ] rabbitmq_consistent_hash_exchange 3.0.2 > > [E] rabbitmq_federation 3.0.2 > > [E] rabbitmq_federation_management 3.0.2 > > [ ] rabbitmq_jsonrpc 3.0.2 > > [ ] rabbitmq_jsonrpc_channel 3.0.2 > > [ ] rabbitmq_jsonrpc_channel_examples 3.0.2 > > [E] rabbitmq_management 3.0.2 > > [e] rabbitmq_management_agent 3.0.2 > > [ ] rabbitmq_management_visualiser 3.0.2 > > [e] rabbitmq_mochiweb 3.0.2 > > [ ] rabbitmq_mqtt 3.0.2 > > [ ] rabbitmq_old_federation 3.0.2 > > [ ] rabbitmq_shovel 3.0.2 > > [E] rabbitmq_shovel_management 3.0.2 > > [ ] rabbitmq_stomp 3.0.2 > > [ ] rabbitmq_tracing 3.0.2 > > [ ] rabbitmq_web_stomp 3.0.2 > > [ ] rabbitmq_web_stomp_examples 3.0.2 > > [ ] rfc4627_jsonrpc 3.0.2-git7ab174b > > [ ] sockjs 0.3.4-rmq3.0.2-git3132eb9 > > [e] webmachine 1.9.1-rmq3.0.2-git52e62bc > > Thanks! > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > From matthias at rabbitmq.com Mon Feb 3 20:40:38 2014 From: matthias at rabbitmq.com (Matthias Radestock) Date: Mon, 03 Feb 2014 20:40:38 +0000 Subject: [rabbitmq-discuss] Policy Settings definition In-Reply-To: References: Message-ID: <52EFFEC6.3060204@rabbitmq.com> On 03/02/14 20:29, Arun Rao wrote: > I am running rabbitmq version 3.0.2. When I set a policy for dead > lettering, i get the error message policy settings not recognized. As > per the changelog, this was introduced in 2.8.0. *policy-based* configuration of dead-lettering was only introduced in 3.2.0. Matthias. From arunrao.seattle at gmail.com Mon Feb 3 20:55:50 2014 From: arunrao.seattle at gmail.com (Arun Rao) Date: Mon, 3 Feb 2014 12:55:50 -0800 Subject: [rabbitmq-discuss] Policy Settings definition In-Reply-To: <52EFFEC6.3060204@rabbitmq.com> References: <52EFFEC6.3060204@rabbitmq.com> Message-ID: Hey guys - To test, I ran mac standalone rabbitmq server -3.2.3. I still get the same error: ./rabbitmqctl set_policy DLX ".*" '{"x-dead-letter-exchange":"test"}' Setting policy "DLX" for pattern ".*" to "{\"x-dead-letter-exchange\":\"test\"}" with priority "0" ... Error: Validation failed [{<<"x-dead-letter-exchange">>,<<"test">>}] are not recognised policy settings ./rabbitmq-plugins list [e] amqp_client 3.2.3 [ ] cowboy 0.5.0-rmq3.2.3-git4b93c2d [ ] eldap 3.2.3-gite309de4 [e] mochiweb 2.7.0-rmq3.2.3-git680dba8 [ ] rabbitmq_amqp1_0 3.2.3 [ ] rabbitmq_auth_backend_ldap 3.2.3 [ ] rabbitmq_auth_mechanism_ssl 3.2.3 [ ] rabbitmq_consistent_hash_exchange 3.2.3 [ ] rabbitmq_federation 3.2.3 [ ] rabbitmq_federation_management 3.2.3 [ ] rabbitmq_jsonrpc 3.2.3 [ ] rabbitmq_jsonrpc_channel 3.2.3 [ ] rabbitmq_jsonrpc_channel_examples 3.2.3 [E] rabbitmq_management 3.2.3 [e] rabbitmq_management_agent 3.2.3 [ ] rabbitmq_management_visualiser 3.2.3 [ ] rabbitmq_mqtt 3.2.3 [ ] rabbitmq_shovel 3.2.3 [ ] rabbitmq_shovel_management 3.2.3 [ ] rabbitmq_stomp 3.2.3 [ ] rabbitmq_tracing 3.2.3 [e] rabbitmq_web_dispatch 3.2.3 [ ] rabbitmq_web_stomp 3.2.3 [ ] rabbitmq_web_stomp_examples 3.2.3 [ ] rfc4627_jsonrpc 3.2.3-git5e67120 [ ] sockjs 0.3.4-rmq3.2.3-git3132eb9 [e] webmachine 1.10.3-rmq3.2.3-gite9359c7 Thanks! On Mon, Feb 3, 2014 at 12:40 PM, Matthias Radestock wrote: > On 03/02/14 20:29, Arun Rao wrote: > >> I am running rabbitmq version 3.0.2. When I set a policy for dead >> lettering, i get the error message policy settings not recognized. As >> per the changelog, this was introduced in 2.8.0. >> > > *policy-based* configuration of dead-lettering was only introduced in > 3.2.0. > > Matthias. > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From arunrao.seattle at gmail.com Mon Feb 3 20:56:56 2014 From: arunrao.seattle at gmail.com (Arun Rao) Date: Mon, 3 Feb 2014 12:56:56 -0800 Subject: [rabbitmq-discuss] Policy Settings definition In-Reply-To: References: <52EFFEC6.3060204@rabbitmq.com> Message-ID: Matthias - You are right. I see dead-letter-exchange and dead-letter routing key in Management console (Port;15672). Thanks! On Mon, Feb 3, 2014 at 12:55 PM, Arun Rao wrote: > Hey guys - > > To test, I ran mac standalone rabbitmq server -3.2.3. I still get the same > error: > > ./rabbitmqctl set_policy DLX ".*" '{"x-dead-letter-exchange":"test"}' > > Setting policy "DLX" for pattern ".*" to > "{\"x-dead-letter-exchange\":\"test\"}" with priority "0" ... > > Error: Validation failed > > > [{<<"x-dead-letter-exchange">>,<<"test">>}] are not recognised policy > settings > > > ./rabbitmq-plugins list > > [e] amqp_client 3.2.3 > > [ ] cowboy 0.5.0-rmq3.2.3-git4b93c2d > > [ ] eldap 3.2.3-gite309de4 > > [e] mochiweb 2.7.0-rmq3.2.3-git680dba8 > > [ ] rabbitmq_amqp1_0 3.2.3 > > [ ] rabbitmq_auth_backend_ldap 3.2.3 > > [ ] rabbitmq_auth_mechanism_ssl 3.2.3 > > [ ] rabbitmq_consistent_hash_exchange 3.2.3 > > [ ] rabbitmq_federation 3.2.3 > > [ ] rabbitmq_federation_management 3.2.3 > > [ ] rabbitmq_jsonrpc 3.2.3 > > [ ] rabbitmq_jsonrpc_channel 3.2.3 > > [ ] rabbitmq_jsonrpc_channel_examples 3.2.3 > > [E] rabbitmq_management 3.2.3 > > [e] rabbitmq_management_agent 3.2.3 > > [ ] rabbitmq_management_visualiser 3.2.3 > > [ ] rabbitmq_mqtt 3.2.3 > > [ ] rabbitmq_shovel 3.2.3 > > [ ] rabbitmq_shovel_management 3.2.3 > > [ ] rabbitmq_stomp 3.2.3 > > [ ] rabbitmq_tracing 3.2.3 > > [e] rabbitmq_web_dispatch 3.2.3 > > [ ] rabbitmq_web_stomp 3.2.3 > > [ ] rabbitmq_web_stomp_examples 3.2.3 > > [ ] rfc4627_jsonrpc 3.2.3-git5e67120 > > [ ] sockjs 0.3.4-rmq3.2.3-git3132eb9 > > [e] webmachine 1.10.3-rmq3.2.3-gite9359c7 > > > Thanks! > > > On Mon, Feb 3, 2014 at 12:40 PM, Matthias Radestock > wrote: > >> On 03/02/14 20:29, Arun Rao wrote: >> >>> I am running rabbitmq version 3.0.2. When I set a policy for dead >>> lettering, i get the error message policy settings not recognized. As >>> per the changelog, this was introduced in 2.8.0. >>> >> >> *policy-based* configuration of dead-lettering was only introduced in >> 3.2.0. >> >> Matthias. >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Mon Feb 3 20:59:54 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 4 Feb 2014 00:59:54 +0400 Subject: [rabbitmq-discuss] Policy Settings definition In-Reply-To: References: <52EFFEC6.3060204@rabbitmq.com> Message-ID: <9862CE93-FA8F-411D-9E28-7A945A612387@rabbitmq.com> On 4 Feb 2014, at 00:55, Arun Rao wrote: > ./rabbitmqctl set_policy DLX ".*" '{"x-dead-letter-exchange":"test"}' > > Setting policy "DLX" for pattern ".*" to "{\"x-dead-letter-exchange\":\"test\"}" with priority "0" ... > As ?lvaro mentioned earlier, [1] mentions that when configuring via policies, the key should be "dead-letter-exchange? (without the ?x-? prefix). 1. http://www.rabbitmq.com/dlx.html MK Software Engineer, Pivotal/RabbitMQ From sven at logicopolis.com Mon Feb 3 22:53:22 2014 From: sven at logicopolis.com (Sven Resch) Date: Mon, 3 Feb 2014 14:53:22 -0800 Subject: [rabbitmq-discuss] Tutorial #3 (Publish/Subscribe) Message-ID: I?m just going through the tutorials and have a question on Tutorial #3 (Publish/Subscribe). The tutorial states as follows: > Secondly, once we disconnect the consumer the queue should be deleted. There's an exclusive flag for that: > > result = channel.queue_declare(exclusive=True) The description of what the exclusive flag does not seem consistent with the Pika documentation from: https://pika.readthedocs.org/en/latest/modules/adapters/blocking.html For queue_declare states as follows: > exclusive (bool) ? Only allow access by the current connection > auto_delete (bool) ? Delete after consumer cancels or disconnects Should tutorial #3 be updated to use auto_delete=True or should the description for the exclusive flag be fixed? Thx, Sven -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Tue Feb 4 05:18:11 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Tue, 4 Feb 2014 09:18:11 +0400 Subject: [rabbitmq-discuss] Tutorial #3 (Publish/Subscribe) In-Reply-To: References: Message-ID: 2014-02-04 Sven Resch : > Should tutorial #3 be updated to use *auto_delete=True* or should the > description for the *exclusive* flag be fixed? > The effect of exclusive=True is two-fold: * The queue can only be used on the connection that declared it * When that connection is closed or lost, the queue will *always* be deleted On the other hand, auto-deleted non-exclusive queues can be used by any connection and will be deleted when the last consumer is cancelled or gone (if there ever was one). -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From alan.antonuk at gmail.com Tue Feb 4 05:22:40 2014 From: alan.antonuk at gmail.com (Alan Antonuk) Date: Mon, 3 Feb 2014 21:22:40 -0800 Subject: [rabbitmq-discuss] Capturing chang in IP address at the listener In-Reply-To: References: Message-ID: Sorry I must've glossed over your message earlier... On Mon, Feb 3, 2014 at 1:47 AM, Lothe Shashank < Shashank.Lothe at techmahindra.com> wrote: > > > 1. I created a listener and a queue is created at the broker. I changed my > system IP address and restarted network manager. I could ping to the broker > with this new IP address. However the queue created at the broker still > shows the old IP address and any message published on this queue after IP > change is not received by the client. The amqp_simple_wait_frame_noblock() > API does not give any error event for IP address change; it was giving > AMQP_STATUS_TIMEOUT. Is there a way capture this run time IP address change > at the listener? > What do you mean by 'listener'? Do you mean you change the IP address of the machine running the broker, or the machine running the client? > > 2. I created two listener threads having separate connection. I turned off > my network router. One listener was able to get > AMQP_STATUS_SSL_ERROR/AMQP_STATUS_SSL_CONNECTION_FAILED error while the > other listener was still giving AMQP_STATUS_TIMEOUT. I was expecting > AMQP_STATUS_SSL_ERROR/AMQP_STATUS_SSL_CONNECTION_FAILED error at both the > listener. What could be the reason for this behaviour? > AMQP_STATUS_TIMEOUT only means the timeout that was specified to amqp_simple_wait_frame_noblock() was reached before data was available on the socket, or an error occurred. Most likely the operating system hasn't detected that the socket has been closed. -Alan -------------- next part -------------- An HTML attachment was scrubbed... URL: From sid.young at gmail.com Tue Feb 4 05:41:43 2014 From: sid.young at gmail.com (Sid Young) Date: Mon, 3 Feb 2014 21:41:43 -0800 (PST) Subject: [rabbitmq-discuss] Draft of C++ rabbitMq API In-Reply-To: References: Message-ID: <751ae708-12a1-4cc1-9379-6a646e43b44e@googlegroups.com> Hi, I've been using your C++ AMQP library and its not bad, are you planning to add any enhancements to support rabbitmq-c v0.5 ?? in particular the socket interface has been deprecated in favour of the amqp_tcp_socket_new (amqp_connection_state_t state) I was also wondering if you would object to me submitting a few more example programs so more people might look at implementing the library. Thanks Sid On Monday, March 1, 2010 9:55:57 PM UTC+10, Alexandre Kalendarev wrote: > > Hi colleagues! > > I developed the C++ interface, see below > > If You have any ideas - wellcome! > > the Draft of C++ API > > Connection class > > class AMQPConnection { > AMQPConnection(); > AMQPConnection( string connectionString ); > AMQPConnection( string connectionString , int channelNumber); > > void Open( string connectionString ); > void Open( string connectionString , int channelNumber); > > void Close(); > > setChannel(int channelNumber); > } > > const AMQPCnnDebug = "localhost:5672" > > the example: > AMQPConnection * cnn = new AMQPConnection( > "guest:guest at localhost:5673/somevhost" ); > > default connection string is "localhost:5672" > the debug connection string AMQPCnnDebug is > "guest:guest at localhost:5673" > > > Exchange class > > class AMQPExchange { > AMQPExchange( AMQPConnection * cnn ); > > void Declare(string name); > void Declare(string name, int parms); > void Declare(string name, int parms, map properties ); // *)? > > void Delete(string name) > } > > the parms is set of constants as AMQPDurable, AMQPAutodelete etc > the type of exchange is AMQPDirect default or AMQPFanout, or AMQPTopic > > > Example: > AMQPExchange * ex = new AMQPExchange(new AMQPConnection()); > ex->Declare("my_exchange"); > > Queue class > > class AMQPQueue { > AMQPQueue(AMQPConnection * cnn); > > void Declare(string name); > void Declare(string name, int parms); > void Declare(string name, int parms, map properties ); // *)? > > void Delete(string name) > > void Purge (string name) > > } > the parms is set of constants as AMQPDurable, AMQPAutodelete etc > > > example: > AMQPEQueue * qu = new AMQPEQueue(new AMQPConnection()); > qu->Declare("qu_mylife"); > > Basic class: > > class AMQPBasic { > AMQPBasic(AMQPConnection * cnn); > > void setProperty(string name, string value ); > void setProperty(string name, int value ); > > void Bind (string exchangeName, string queueName ); > void Bind (string exchangeName, string queueName , string key); > > void Publish( string exchangeName, string message); > void Publish( string exchangeName, uchar* message); > void Publish( string exchangeName, string message, string key); > void Publish( string exchangeName, uchar* message, string key); > > void Cancel( string queueName) > > AMQPMessage * Get( string queueName) > > > void Ask( string queueName ) ???? > > void Reject( string queueName ) ???? > > void Consume( string queueName , IAMQPCallback * callbackName ); > > } > > class AMQPMessage ???? > int timestamp > int expiration > string contentType > string deliveryTag > uchar* message or string > int number // internal number message > string exchange > string key > .... > > IAMQPCallback is abstract class, the callbackName is derived from > IAMQPCallback. > after received each the message call the method run of derived > AMQPCallback base class. > > > *) properties is map of addional property, it will to resolve in future. > > Examples: > > // publish message > AMQPConnection * cnn = new AMQPConnection(); > AMQPExchange * ex = new AMQPExchange(cnn); > ex->Declare("my_exchange", AMQPTopic); > basic = new AMQPBasic(cnn); > basic->Bind("my_exchange", "qu_mylive", "news" ); > basic->Publish("my_exchange", "12345" , "news"); > > > // consume message > class printMessage : IAMQPCallback { > void run (uchar* message) { > std::cout << message << std::endl; > } > } > > AMQPConnection * cnn = new AMQPConnection(); > basic = new AMQPBasic(cnn); > printMessage * pm = new printMessage(); > basic->Consume("qu_mylive", pm); > > > unrealise classes(it will to resolve in future): AMQPFile, AMQPStreams > etc ... > > exceptions: > > AMQPnoConnectException > AMQPnonAutorizeException > AMQPnotFoundException > AMQPnotAllowedException > ... > AMQPerrorException (AMQPcommandInvalidException ) > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq... at lists.rabbitmq.com > http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From sid.young at gmail.com Tue Feb 4 05:46:17 2014 From: sid.young at gmail.com (Sid Young) Date: Mon, 3 Feb 2014 21:46:17 -0800 (PST) Subject: [rabbitmq-discuss] Documentation Download In-Reply-To: <3450a698-13af-48f7-a2cf-c98174ad550b@googlegroups.com> References: <3450a698-13af-48f7-a2cf-c98174ad550b@googlegroups.com> Message-ID: G'Day, I downloaded the code to my home webserver, then used doxygen to build a website for it. Might be worth a try? Sid On Wednesday, January 15, 2014 10:06:21 AM UTC+10, Dann Ormond wrote: > > Is there a way to create an offline version of the documentation found on > the website? > > Thanks! > -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Tue Feb 4 05:55:42 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Tue, 4 Feb 2014 09:55:42 +0400 Subject: [rabbitmq-discuss] Documentation Download In-Reply-To: References: <3450a698-13af-48f7-a2cf-c98174ad550b@googlegroups.com> Message-ID: 2014-02-04 Sid Young : > I downloaded the code to my home webserver, then used doxygen to build a > website for it. Might be worth a try? rabbitmq.com content is not open source -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From sekhar434145 at gmail.com Tue Feb 4 07:10:16 2014 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Tue, 4 Feb 2014 12:40:16 +0530 Subject: [rabbitmq-discuss] Code for Spring AMQP Request-Reply (Fixed Reply Queue) Message-ID: Hi, I have done one sample to test fixed reply queue and attached the source code for the same. When I run the producer and consumer programs, queues are getting generated and able to send and receive the message. So, can one please tell me the above configuration is correct or not in case of fixed reply queue? Thanks, Sekhar -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Request_Reply.rar Type: application/rar Size: 2368 bytes Desc: not available URL: From umutcan at gamegos.com Tue Feb 4 07:24:57 2014 From: umutcan at gamegos.com (Umutcan) Date: Tue, 04 Feb 2014 09:24:57 +0200 Subject: [rabbitmq-discuss] Publishing Performance Message-ID: <52F095C9.6080704@gamegos.com> Hi, Does publishing get slower while number of the queued messages are increasing? While I am doing an operation, publishing speed get slower in time. Operation publishes a certain amount of messages to RMQ and then a consumer processes messages. Since publishing speed is higher than consuming speed, messages waits for a while in the queue. I am not running operation again until queue is empty. Thanks, Umutcan From mklishin at gopivotal.com Tue Feb 4 07:30:10 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 4 Feb 2014 11:30:10 +0400 Subject: [rabbitmq-discuss] Publishing Performance In-Reply-To: <52F095C9.6080704@gamegos.com> References: <52F095C9.6080704@gamegos.com> Message-ID: <4D3D25E7-482E-471A-8C8D-4AFDF358E1FA@rabbitmq.com> On 4 Feb 2014, at 11:24, Umutcan wrote: > Does publishing get slower while number of the queued messages are increasing? > > While I am doing an operation, publishing speed get slower in time. Operation publishes a certain amount of messages to RMQ and then a consumer processes messages. Since publishing speed is higher than consuming speed, messages waits for a while in the queue. I am not running operation again until queue is empty. If consumers do not keep up with publishers, eventually RabbitMQ will throttle publishers until consumers drain enough messages to eliminate RAM and disk space pressure. See http://rabbitmq.com/memory.html. OS swapping can also take place, which affects performance severely. Otherwise there is little connection between publisher throughput and how many messages there are in the queues. MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Tue Feb 4 07:43:57 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 4 Feb 2014 11:43:57 +0400 Subject: [rabbitmq-discuss] Code for Spring AMQP Request-Reply (Fixed Reply Queue) In-Reply-To: References: Message-ID: <3FD81B31-1FBF-4A82-AB1F-26594A8659A7@rabbitmq.com> On 4 Feb 2014, at 11:10, Rajasekhar P wrote: > I have done one sample to test fixed reply queue and attached the source code for the same. When I run the producer and consumer programs, queues are getting generated and able to send and receive the message. So, can one please tell me the above configuration is correct or not in case of fixed reply queue? Reposted to gist: https://gist.github.com/michaelklishin/d33ad46f81ff591f0988 MK Software Engineer, Pivotal/RabbitMQ From sekhar434145 at gmail.com Tue Feb 4 08:08:56 2014 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Tue, 4 Feb 2014 13:38:56 +0530 Subject: [rabbitmq-discuss] Code for Spring AMQP Request-Reply (Fixed Reply Queue) In-Reply-To: <3FD81B31-1FBF-4A82-AB1F-26594A8659A7@rabbitmq.com> References: <3FD81B31-1FBF-4A82-AB1F-26594A8659A7@rabbitmq.com> Message-ID: Hi MK, Is that code configuration correct? On Tue, Feb 4, 2014 at 1:13 PM, Michael Klishin wrote: > On 4 Feb 2014, at 11:10, Rajasekhar P wrote: > > > I have done one sample to test fixed reply queue and attached the source > code for the same. When I run the producer and consumer programs, queues > are getting generated and able to send and receive the message. So, can one > please tell me the above configuration is correct or not in case of fixed > reply queue? > > Reposted to gist: > https://gist.github.com/michaelklishin/d33ad46f81ff591f0988 > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From pk_basu at hotmail.com Tue Feb 4 09:06:27 2014 From: pk_basu at hotmail.com (pkbasu) Date: Tue, 4 Feb 2014 01:06:27 -0800 (PST) Subject: [rabbitmq-discuss] MQTT adapter for RabbitMQ Message-ID: <1391504787656-33075.post@n5.nabble.com> I have a question on MQTT adapter of RabbitMQ. Are clients (e.g. android/ios devices) expected to directly connect to this adapter? In our architecture, client devices connect to our frontend servers, which connect to RabbitMQ brokers. This way, the client devices do not need to know the details of exchanges, brokers, routes etc. However, with the MQTT broker plugin, it looks like client devices are encouraged to connect to RabbitMQ directly. Is an alternate architecture possible? -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/MQTT-adapter-for-RabbitMQ-tp33075.html Sent from the RabbitMQ mailing list archive at Nabble.com. From mklishin at gopivotal.com Tue Feb 4 09:16:08 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 4 Feb 2014 13:16:08 +0400 Subject: [rabbitmq-discuss] MQTT adapter for RabbitMQ In-Reply-To: <1391504787656-33075.post@n5.nabble.com> References: <1391504787656-33075.post@n5.nabble.com> Message-ID: On 4 Feb 2014, at 13:06, pkbasu wrote: > This way, the client devices do not need to know the details of > exchanges, brokers, routes etc. However, with the MQTT broker plugin, it > looks like client devices are encouraged to connect to RabbitMQ directly. Is > an alternate architecture possible? You can either use MQTT clients to connect to RabbitMQ w/ MQTT plugin enabled, or make an intermediary service connect to RabbitMQ. MK Software Engineer, Pivotal/RabbitMQ From emile at rabbitmq.com Tue Feb 4 09:16:58 2014 From: emile at rabbitmq.com (Emile Joubert) Date: Tue, 04 Feb 2014 09:16:58 +0000 Subject: [rabbitmq-discuss] MQTT adapter for RabbitMQ In-Reply-To: <1391504787656-33075.post@n5.nabble.com> References: <1391504787656-33075.post@n5.nabble.com> Message-ID: <52F0B00A.2000907@rabbitmq.com> Hi, On 04/02/14 09:06, pkbasu wrote: > I have a question on MQTT adapter of RabbitMQ. Are clients (e.g. android/ios > devices) expected to directly connect to this adapter? In our architecture, > client devices connect to our frontend servers, which connect to RabbitMQ > brokers. This way, the client devices do not need to know the details of > exchanges, brokers, routes etc. However, with the MQTT broker plugin, it > looks like client devices are encouraged to connect to RabbitMQ directly. Is > an alternate architecture possible? MQTT clients are permitted to connect directly to the adapter. MQTT clients do not normally need to know about the names of exchanges or routes. The MQTT adapter only uses one exchange. This is the more common approach of the two that you sketch. It is also permitted for clients to connect via a front-end server if that makes things easier for you. The front-end server would need to use one of the supported protocols when connecting to RabbitMQ. We encourage you to use the approach that suits the problem at hand. Emile From pk_basu at hotmail.com Tue Feb 4 09:52:47 2014 From: pk_basu at hotmail.com (pkbasu) Date: Tue, 4 Feb 2014 01:52:47 -0800 (PST) Subject: [rabbitmq-discuss] MQTT adapter for RabbitMQ In-Reply-To: <52F0B00A.2000907@rabbitmq.com> References: <1391504787656-33075.post@n5.nabble.com> <52F0B00A.2000907@rabbitmq.com> Message-ID: <1391507567419-33078.post@n5.nabble.com> Thanks MK and Emile. I guess if we go with intermediate server, then there are two options - 1) AMQP-MQTT gateway which connects to RabbitMQ broker using AMQP protocol and serves client devices using MQTT protocol. 2) MQTT-MQTT proxy which connects to RMQ broker using MQTT and serves client devices using MQTT too. Option 2 might be the easier solution, since the protocol conversion is done by RMQ for us in that case. Am I making sense? Thanks a lot! -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/MQTT-adapter-for-RabbitMQ-tp33075p33078.html Sent from the RabbitMQ mailing list archive at Nabble.com. From simon at rabbitmq.com Tue Feb 4 10:18:05 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Tue, 04 Feb 2014 10:18:05 +0000 Subject: [rabbitmq-discuss] Policy Settings definition In-Reply-To: <9862CE93-FA8F-411D-9E28-7A945A612387@rabbitmq.com> References: <52EFFEC6.3060204@rabbitmq.com> <9862CE93-FA8F-411D-9E28-7A945A612387@rabbitmq.com> Message-ID: <52F0BE5D.9080708@rabbitmq.com> On 03/02/2014 8:59PM, Michael Klishin wrote: > As ?lvaro mentioned earlier, [1] mentions that when configuring via policies, > the key should be "dead-letter-exchange? (without the ?x-? prefix). For some background: the reason why it's this way is that arguments not specified in the AMQP standard need to begin with "x-", but policies are not part of AMQP so they don't have that constraint. I wonder whether that was a mistake though. It *is* confusing... Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Tue Feb 4 10:24:07 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Tue, 04 Feb 2014 10:24:07 +0000 Subject: [rabbitmq-discuss] Publishing Performance In-Reply-To: <4D3D25E7-482E-471A-8C8D-4AFDF358E1FA@rabbitmq.com> References: <52F095C9.6080704@gamegos.com> <4D3D25E7-482E-471A-8C8D-4AFDF358E1FA@rabbitmq.com> Message-ID: <52F0BFC7.2080108@rabbitmq.com> On 04/02/2014 7:30AM, Michael Klishin wrote: > On 4 Feb 2014, at 11:24, Umutcan wrote: > >> Does publishing get slower while number of the queued messages are increasing? >> >> While I am doing an operation, publishing speed get slower in time. Operation publishes a certain amount of messages to RMQ and then a consumer processes messages. Since publishing speed is higher than consuming speed, messages waits for a while in the queue. I am not running operation again until queue is empty. > > If consumers do not keep up with publishers, eventually RabbitMQ will throttle publishers > until consumers drain enough messages to eliminate RAM and disk space pressure. First of all, RabbitMQ will start paging messages out to disk. Since at all times RabbitMQ tries not to accept messages faster than it can do something sensible with them, this will mean the publishing rate goes down substantially at this point. You can see if a queue is paging to disk in the management plugin web UI, or by looking at backing_queue_status.ram_msg_count in rabbitmqctl list_queues or the HTTP API. Eventually if the disk fills up, or something else happens to make memory usage spike, then the memory alarm can go off and block publishers completely until memory use drops again. > See http://rabbitmq.com/memory.html. > > OS swapping can also take place, which affects performance severely. We try to avoid that, but on a machine where other services are running it's not always possible. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From akhil.pillai at gslab.com Tue Feb 4 11:21:09 2014 From: akhil.pillai at gslab.com (akhil.pillai at gslab.com) Date: Tue, 4 Feb 2014 03:21:09 -0800 (PST) Subject: [rabbitmq-discuss] RabbitMQ consumer cancel notification callback is not called In-Reply-To: References: Message-ID: <2f629852-9e3f-4422-bee9-2e12e8d65859@googlegroups.com> On Thursday, January 30, 2014 1:22:24 PM UTC+5:30, akhil.... at gslab.com wrote: > > Hi All, > > I am working on RabbitMQ HA cluster . I want my client to connect to > slave node when the master node goes down. > I am trying to achieve this using consumer cancel notification. > I am using python amqp 1.4.2 library . I have set the capability > 'consumer_cancel_notify' as True in client_properties. > In basic_consume() I have passed a callback function to on_cancel > parameter. But this callback is not called when master goes down. > > Can someone tell where I am going wrong. > > Following is my code : > > import amqp > > # this is the callback function to receive the messages published to the > queue > def myCallback(message): > print "messsage received",message.body > > # this is the callback Function for consumer cancel notification > def cancelCallback(): > print "cancelCallback called" > > > cpDict = {"capabilities":{"consumer_cancel_notify": True, },} > con = amqp.Connection(host ="localhost:5672",userid > ="guest",password="guest",client_properties=cpDict) > channel = con.channel() > channel.exchange_declare(exchange="exchange1",type='direct', durable=True, > auto_delete=False) > channel.queue_declare(queue="bm2_execQ", durable=True,exclusive=True, > auto_delete=False) > channel.queue_bind(queue="bm2_execQ",exchange="exchange1", > routing_key="bm2_execQ") > channel.basic_consume(queue="bm2_execQ",callback=myCallback, > consumer_tag="bm2_tag",on_cancel=cancelCallback) > > msg = amqp.Message("hi") > msg.properties["content_type"] = "text/plain" > msg.properties["delivery_mode"] = 2 > > channel.basic_publish(msg,"exchange1","bm2_execQ") > > while True : > channel.wait() > Can somebody please help me on this? -------------- next part -------------- An HTML attachment was scrubbed... URL: From MJeffery at fnb.co.za Tue Feb 4 12:51:57 2014 From: MJeffery at fnb.co.za (Jeffery, Mark) Date: Tue, 4 Feb 2014 12:51:57 +0000 Subject: [rabbitmq-discuss] Network Partion Message-ID: <06536F18C0038E489237EEE3CA9BF2D0519AEA2B@FRGR1D2MX07.services.firstrand.net> Hello We are using a RabbitMQ cluster across a WAN. I know this is not recommended and I want to fix this because we occasionally get a network partition when the core switches are upgraded. The dip is for a very very small time. Is the solution to use the shovel plugin ? Would the "Self Healing" functionality in later versions be the solution ? We are highly reliant on mirrored queues. Any recommendation will be helpful. Thanks Jeff To read FirstRand Bank's Disclaimer for this email click on the following address or copy into your Internet browser: https://www.fnb.co.za/disclaimer.html If you are unable to access the Disclaimer, send a blank e-mail to firstrandbankdisclaimer at fnb.co.za and we will send you a copy of the Disclaimer. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Tue Feb 4 13:40:49 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 4 Feb 2014 17:40:49 +0400 Subject: [rabbitmq-discuss] ANN Bunny 1.1.2 is released Message-ID: Bunny [1] 1.1.2 is released. Release notes: http://blog.rubyrabbitmq.info/blog/2014/02/04/bunny-1-dot-1-2-is-released/ 1. http://rubybunny.info -- MK -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Tue Feb 4 13:48:31 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 4 Feb 2014 17:48:31 +0400 Subject: [rabbitmq-discuss] ANN March Hare 2.1.2 is released Message-ID: March Hare [1] 2.1.2 is released. Release notes: http://blog.rubyrabbitmq.info/blog/2014/02/04/march-hare-2-dot-1-2-is-released/ 1. http://rubymarchhare.info -- MK -------------- next part -------------- An HTML attachment was scrubbed... URL: From grussell at gopivotal.com Tue Feb 4 13:51:58 2014 From: grussell at gopivotal.com (Gary Russell) Date: Tue, 4 Feb 2014 08:51:58 -0500 Subject: [rabbitmq-discuss] Code for Spring AMQP Request-Reply (Fixed Reply Queue) In-Reply-To: References: <3FD81B31-1FBF-4A82-AB1F-26594A8659A7@rabbitmq.com> Message-ID: Michael, thanks for reposting to Gist. Sekhar, I am not sure what you are asking "...queues are getting generated and able to send and receive the message... above configuration is correct or not..." It sounds like it's working and it looks like you used the configuration snippet from the Spring-AMQP documentation ( http://docs.spring.io/spring-amqp/docs/1.3.0.BUILD-SNAPSHOT/reference/html/amqp.html#d4e617) - (correctly setting up the RabbitTemplate and the reply listener). So what is the question? On Tue, Feb 4, 2014 at 3:08 AM, Rajasekhar P wrote: > Hi MK, Is that code configuration correct? > > > On Tue, Feb 4, 2014 at 1:13 PM, Michael Klishin wrote: > >> On 4 Feb 2014, at 11:10, Rajasekhar P wrote: >> >> > I have done one sample to test fixed reply queue and attached the >> source code for the same. When I run the producer and consumer programs, >> queues are getting generated and able to send and receive the message. So, >> can one please tell me the above configuration is correct or not in case of >> fixed reply queue? >> >> Reposted to gist: >> https://gist.github.com/michaelklishin/d33ad46f81ff591f0988 >> >> MK >> >> Software Engineer, Pivotal/RabbitMQ >> >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From stammailbox at gmail.com Tue Feb 4 15:00:20 2014 From: stammailbox at gmail.com (rails) Date: Tue, 4 Feb 2014 17:00:20 +0200 Subject: [rabbitmq-discuss] Is my RabbitMQ cluster Active/Active or Active/Passive? Message-ID: I have created a cluster consists of three RabbitMQ nodes using join_cluster command. i.e. rabbitmqctl -n rabbit2 at MYPC1 join_cluster rabbit2 at MYPC1 (currently the cluster runs on a single computer) Questions: In the documents it says there is one implemetation for active passive and one for active active. 1. What did I configure? 2. How do I know? 3. How can it be changed? 4. Is there a big performance trade off between Active Active & Active Passive? 5. What is the best practice to interact with active/active? i.e. install a load balancer? apache that will round robin 6. What is the best practice to interact with active/passive? if I interact with only the active - this is a single point f failure Thanks. -------------- next part -------------- An HTML attachment was scrubbed... URL: From stammailbox at gmail.com Tue Feb 4 15:19:50 2014 From: stammailbox at gmail.com (rails) Date: Tue, 4 Feb 2014 17:19:50 +0200 Subject: [rabbitmq-discuss] RabbitMQ Node recovery - How to set a node to auto restart on failure Message-ID: I am running RabbitMQ in a cluster mode. I want that when a node fails it will auto restart and join the cluster. How do I configure that? Thanks. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Tue Feb 4 15:27:45 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 4 Feb 2014 19:27:45 +0400 Subject: [rabbitmq-discuss] RabbitMQ Node recovery - How to set a node to auto restart on failure In-Reply-To: References: Message-ID: On 4 Feb 2014, at 19:19, rails wrote: > I want that when a node fails it will auto restart and join the cluster. > How do I configure that? Use a monitoring tool such as Monit or Nagios. MK Software Engineer, Pivotal/RabbitMQ From pat at munkiisoft.com Tue Feb 4 16:15:46 2014 From: pat at munkiisoft.com (Patrick Long) Date: Tue, 4 Feb 2014 16:15:46 +0000 Subject: [rabbitmq-discuss] BasicGet and Cancellation Notifications Message-ID: We are using BasicGet to get a message of one at a time. We are also going to be mirroring our queues in a cluster. I read that if you are using mirrored queues you should be listening out for Consumer Cancellation Notifications. Are they only used by basic consumer because of long running connections? What should we be catching if using BasicGet with noAck as false? If the connection does down before we acknowledge the message the call to BasicAck will fail. Thanks -- Patrick Long - Munkiisoft Ltd -------------- next part -------------- An HTML attachment was scrubbed... URL: From sagu.prf1 at gmail.com Tue Feb 4 16:22:36 2014 From: sagu.prf1 at gmail.com (sagu prf) Date: Tue, 4 Feb 2014 08:22:36 -0800 Subject: [rabbitmq-discuss] Rabbitmq crashed (2.8.7 version) Message-ID: Hello team , We are running rabbitmq 2.8.7 , yesterday morning we had network outage detected on one of the cluster node (which is master during that network event). it did not failover/recover after network outage . Management console shows queue status is unknown. Cluster status : rabbitmq04 - shows all cluster node are active rabbitmq05 - shows only 05 and 06 are up ( it was considered node 4 is down) rabbitmq06 - shows only 05 and 06 are up ( it was considered node 4 is down) To resolve this issue: restarted rabbitmq services cluster node one by one but i noticed queue missing after restart . rabbitmq06 , rabbitmq05 restarted these machines and kept online rabbitmq04. after came up mq06 and mq05 .. restarted the rabbitmq04 . I have uploaded the backup config file to fix the queue missing issue and rabbitmq was up : After 2 hours , Rabbitmq is unresponsive (even command line list_queues were not working on rabbitmq05 ,rabbitmq06 ) i can see list of queues on only one node (rabbitmq04) . Sasl logs : --------------- =CRASH REPORT==== 3-Feb-2014::18:59:36 === crasher: initial call: gen:init_it/6 pid: <0.286.0> registered_name: [] exception exit: {normal, {gen_server2,call, [<0.285.0>,{gm_deaths,[<3201.298.0>]},infinity]}} in function gen_server2:terminate/3 rabbitmq at nc1-iphonesys-mq05:/var/log/rabbitmq$ head -1000 rabbit at nc1-iphonesys-mq05-sasl.log.1 =CRASH REPORT==== 3-Feb-2014::18:59:36 === crasher: initial call: gen:init_it/6 pid: <0.286.0> registered_name: [] exception exit: {normal, {gen_server2,call, [<0.285.0>,{gm_deaths,[<3201.298.0>]},infinity]}} in function gen_server2:terminate/3 ancestors: [<0.285.0>,rabbit_mirror_queue_slave_sup,rabbit_sup, <0.120.0>] messages: [] links: [] dictionary: [{random_seed,{27359,22849,24486}}] trap_exit: false status: running heap_size: 1597 stack_size: 24 reductions: 9950 neighbours: =SUPERVISOR REPORT==== 3-Feb-2014::19:15:55 === Supervisor: {<0.5400.9>,rabbit_channel_sup_sup} Context: shutdown_error Reason: noproc Offender: [{pid,<0.5424.9>}, {name,channel_sup}, {mfa,{rabbit_channel_sup,start_link,[]}}, {restart_type,temporary}, {shutdown,infinity}, {child_type,supervisor}] =CRASH REPORT==== 3-Feb-2014::20:19:20 === crasher: initial call: rabbit_reader:init/4 pid: <0.1467.9> registered_name: [] exception exit: channel_termination_timeout in function rabbit_reader:wait_for_channel_termination/2 in call from rabbit_reader:send_exception/3 in call from rabbit_reader:terminate/2 in call from rabbit_reader:handle_other/3 in call from rabbit_reader:start_connection/7 ancestors: [<0.1464.9>,rabbit_tcp_client_sup,rabbit_sup,<0.120.0>] messages: [emit_stats, {tcp,#Port<0.51699>,<<8,0,0,0,0,0,0,206>>}, {'EXIT',#Port<0.51699>,normal}] links: [] dictionary: [{{ch_pid,<0.1515.9>},{1,#Ref<0.0.30.173849>}}, {{channel,1}, {<0.1515.9>,{method,rabbit_framing_amqp_0_9_1}}}] trap_exit: true status: running heap_size: 2584 stack_size: 24 reductions: 141714 neighbours: =SUPERVISOR REPORT==== 3-Feb-2014::20:19:20 === Supervisor: {<0.1464.9>,rabbit_connection_sup} Context: shutdown_error Reason: channel_termination_timeout Offender: [{pid,<0.1467.9>}, {name,reader}, {mfa,{rabbit_reader,start_link, [<0.1466.9>,<0.1465.9>, #Fun]}}, {restart_type,intrinsic}, {shutdown,4294967295}, {child_type,worker}] =CRASH REPORT==== 3-Feb-2014::20:19:20 === crasher: initial call: rabbit_reader:init/4 pid: <0.2780.9> registered_name: [] exception exit: channel_termination_timeout in function rabbit_reader:wait_for_channel_termination/2 in call from rabbit_reader:send_exception/3 in call from rabbit_reader:terminate/2 in call from rabbit_reader:handle_other/3 in call from rabbit_reader:start_connection/7 ancestors: [<0.2777.9>,rabbit_tcp_client_sup,rabbit_sup,<0.120.0>] messages: [{'EXIT',#Port<0.52321>,normal}] links: [] dictionary: [{{channel,1}, {<0.2786.9>,{method,rabbit_framing_amqp_0_9_1}}}, {{ch_pid,<0.2786.9>},{1,#Ref<0.0.31.26199>}}] trap_exit: true status: running heap_size: 2584 stack_size: 24 reductions: 119601 neighbours: Regards sagu From simon at rabbitmq.com Tue Feb 4 16:53:27 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Tue, 04 Feb 2014 16:53:27 +0000 Subject: [rabbitmq-discuss] BasicGet and Cancellation Notifications In-Reply-To: References: Message-ID: <52F11B07.7040408@rabbitmq.com> On 04/02/2014 4:15PM, Patrick Long wrote: > I read that if you are using mirrored queues you should be listening out > for Consumer Cancellation Notifications. Are they only used by basic > consumer because of long running connections? Yes. > What should we be catching if using BasicGet with noAck as false? If the > connection does down before we acknowledge the message the call to > BasicAck will fail. You don't need to do anything special. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Tue Feb 4 17:18:08 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Tue, 04 Feb 2014 17:18:08 +0000 Subject: [rabbitmq-discuss] Network Partion In-Reply-To: <06536F18C0038E489237EEE3CA9BF2D0519AEA2B@FRGR1D2MX07.services.firstrand.net> References: <06536F18C0038E489237EEE3CA9BF2D0519AEA2B@FRGR1D2MX07.services.firstrand.net> Message-ID: <52F120D0.4090801@rabbitmq.com> On 04/02/2014 12:51PM, Jeffery, Mark wrote: > We are using a RabbitMQ cluster across a WAN. > > I know this is not recommended and I want to fix this because we > occasionally get a network partition when the core switches are upgraded. > > The dip is for a very very small time. Still, if it is enough for the TCP connections between nodes to be disrupted that will cause a partition. > Is the solution to use the shovel plugin ? Or Federation, both are WAN safe. > Would the ?Self Healing? functionality in later versions be the solution ? autoheal does not let you ignore the possibility of network partitions and thus beat the CAP theorem. It's something that will automatically bash your cluster back into shape, but it is possible to lose data in the process. As http://www.rabbitmq.com/partitions.html says: > Network partitions will always cause problems for RabbitMQ clusters; > you just get some degree of choice over what kind of problems you > get. On 04/02/2014 12:51PM, Jeffery, Mark wrote: > We are highly reliant on mirrored queues. So you probably want clusters in each location, so you can use mirroring, but connected together with federation / shovel. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From roysvork at gmail.com Tue Feb 4 18:54:05 2014 From: roysvork at gmail.com (roysvork) Date: Tue, 4 Feb 2014 10:54:05 -0800 (PST) Subject: [rabbitmq-discuss] Rabbit MQ dropping connections and slow message delivery Message-ID: <1391540045556-33093.post@n5.nabble.com> Hi there, Forgive me if any of this sounds foolish, I have recently started using rabbit and am new to AMQP. I noticed that messages sent to one of my queues can take up to a minute to deliver. When looking at the log file, I see a constant stream of connections being made, and then dropped: =INFO REPORT==== 4-Feb-2014::18:33:54 === accepting AMQP connection <0.10790.0> ([::1]:56034 -> [::1]:5672) =INFO REPORT==== 4-Feb-2014::18:33:54 === closing AMQP connection <0.10747.0> ([::1]:56020 -> [::1]:5672) =INFO REPORT==== 4-Feb-2014::18:34:05 === accepting AMQP connection <0.10821.0> ([::1]:56035 -> [::1]:5672) =ERROR REPORT==== 4-Feb-2014::18:34:13 === closing AMQP connection <0.10766.0> ([::1]:56022 -> [::1]:5672): {heartbeat_timeout,running} =INFO REPORT==== 4-Feb-2014::18:34:16 === accepting AMQP connection <0.10840.0> ([::1]:56037 -> [::1]:5672) =INFO REPORT==== 4-Feb-2014::18:34:16 === closing AMQP connection <0.10787.0> ([::1]:56033 -> [::1]:5672) =ERROR REPORT==== 4-Feb-2014::18:34:24 === closing AMQP connection <0.10790.0> ([::1]:56034 -> [::1]:5672): {heartbeat_timeout,running} In my use case, I am sending three messages simultaneously. Usually the first message sent arrives more or less straight away, but then there is a significant delay between the others. Here's a snapshot of the queued message and message rates graphs over the period covering the three messages: http://imgur.com/ClN9TAJ I am not sure I fully understand what or why is happening. This is just a default installation on my local dev machine, with nothing modified whatsoever. If you would like any more information then let me know and I will provide whatever I can Cheers, Pete -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Rabbit-MQ-dropping-connections-and-slow-message-delivery-tp33093.html Sent from the RabbitMQ mailing list archive at Nabble.com. From michael.s.klishin at gmail.com Tue Feb 4 19:05:57 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Tue, 4 Feb 2014 23:05:57 +0400 Subject: [rabbitmq-discuss] Rabbit MQ dropping connections and slow message delivery In-Reply-To: <1391540045556-33093.post@n5.nabble.com> References: <1391540045556-33093.post@n5.nabble.com> Message-ID: 2014-02-04 roysvork : > =ERROR REPORT==== 4-Feb-2014::18:34:24 === > closing AMQP connection <0.10790.0> ([::1]:56034 -> [::1]:5672): > {heartbeat_timeout,running} > > In my use case, I am sending three messages simultaneously. Usually the > first message sent arrives more or less straight away, but then there is a > significant delay between the others. Here's a snapshot of the queued > message and message rates graphs over the period covering the three > messages: > > http://imgur.com/ClN9TAJ > > I am not sure I fully understand what or why is happening. This is just a > default installation on my local dev machine, with nothing modified > whatsoever. > What client library do you use? There is no connection activity for a period of time (580 seconds in the most recent version, 600 earlier), so RabbitMQ closes connections. That's fairly odd if you observe this on localhost. -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Tue Feb 4 21:30:47 2014 From: cwstorm at gmail.com (cw storm) Date: Tue, 4 Feb 2014 16:30:47 -0500 Subject: [rabbitmq-discuss] basicQos Message-ID: Is it possible to pass a variable to basicQos()? For example, I assign "int x = 10". I called on "channel.basicQos(x)". I tried this but don't see the consumer service being subscribe to the channel. But if I just hardcode the actual value, then it works. -------------- next part -------------- An HTML attachment was scrubbed... URL: From videlalvaro at gmail.com Tue Feb 4 22:09:08 2014 From: videlalvaro at gmail.com (Alvaro Videla) Date: Tue, 4 Feb 2014 23:09:08 +0100 Subject: [rabbitmq-discuss] basicQos In-Reply-To: References: Message-ID: Hi, What are you tried to achieve? Regards, Alvaro On Tue, Feb 4, 2014 at 10:30 PM, cw storm wrote: > Is it possible to pass a variable to basicQos()? For example, I assign "int > x = 10". I called on "channel.basicQos(x)". I tried this but don't see the > consumer service being subscribe to the channel. But if I just hardcode the > actual value, then it works. > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > From cwstorm at gmail.com Tue Feb 4 22:35:35 2014 From: cwstorm at gmail.com (cistron) Date: Tue, 4 Feb 2014 17:35:35 -0500 Subject: [rabbitmq-discuss] basicQos In-Reply-To: References: Message-ID: <329793CD-A7AF-4F51-A29D-779BCB1A4D32@gmail.com> I just want to pass a veritable to the method instead of hard coding the value. Sent from my iPhone > On Feb 4, 2014, at 5:09 PM, Alvaro Videla wrote: > > Hi, > > What are you tried to achieve? > > Regards, > > Alvaro > >> On Tue, Feb 4, 2014 at 10:30 PM, cw storm wrote: >> Is it possible to pass a variable to basicQos()? For example, I assign "int >> x = 10". I called on "channel.basicQos(x)". I tried this but don't see the >> consumer service being subscribe to the channel. But if I just hardcode the >> actual value, then it works. >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss From videlalvaro at gmail.com Tue Feb 4 22:46:33 2014 From: videlalvaro at gmail.com (Alvaro Videla) Date: Tue, 4 Feb 2014 23:46:33 +0100 Subject: [rabbitmq-discuss] basicQos In-Reply-To: <329793CD-A7AF-4F51-A29D-779BCB1A4D32@gmail.com> References: <329793CD-A7AF-4F51-A29D-779BCB1A4D32@gmail.com> Message-ID: I've just tried the code from the tutorials here: http://www.rabbitmq.com/tutorials/tutorial-two-java.html Specifically: int prefetchCount = 10; channel.basicQos(prefetchCount); And it worked. What errors are you getting? Regards, Alvaro On Tue, Feb 4, 2014 at 11:35 PM, cistron wrote: > I just want to pass a veritable to the method instead of hard coding the value. > > Sent from my iPhone > >> On Feb 4, 2014, at 5:09 PM, Alvaro Videla wrote: >> >> Hi, >> >> What are you tried to achieve? >> >> Regards, >> >> Alvaro >> >>> On Tue, Feb 4, 2014 at 10:30 PM, cw storm wrote: >>> Is it possible to pass a variable to basicQos()? For example, I assign "int >>> x = 10". I called on "channel.basicQos(x)". I tried this but don't see the >>> consumer service being subscribe to the channel. But if I just hardcode the >>> actual value, then it works. >>> >>> _______________________________________________ >>> rabbitmq-discuss mailing list >>> rabbitmq-discuss at lists.rabbitmq.com >>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss From gonzalez.mariano.gabriel at gmail.com Tue Feb 4 20:17:16 2014 From: gonzalez.mariano.gabriel at gmail.com (=?UTF-8?Q?Mariano_Gonz=C3=A1lez?=) Date: Tue, 4 Feb 2014 12:17:16 -0800 (PST) Subject: [rabbitmq-discuss] sensu rabbitmq check triggering a SSL exception Message-ID: <9a75fc6c-a18c-4e8d-95cf-36832057f788@googlegroups.com> Hi there! I'm trying to add a sensu check (https://github.com/sensu/sensu-community-plugins/blob/master/plugins/rabbitmq/rabbitmq-amqp-alive.rb), but it's triggering the following error: [root at server plugins]# ./rabbitmq-amqp-alive.rb -w rabbitmq_host -p my_pass -P 5671 -u my_user -v my_vhost W, [2014-02-04T19:10:19.827147 #4555] WARN -- #: Using TLS but no client certificate is provided! If RabbitMQ is configured to verify peer certificate, connection upgrade will fail! Looks like there's some kind of SSL error, but I cannot figure it out. Here's my rabbitmq config: https://gist.github.com/Mariano-gon/8811478. Any advice will be really appreciated. Thanks! -------------- next part -------------- An HTML attachment was scrubbed... URL: From s.sciarrati at gmail.com Wed Feb 5 00:10:02 2014 From: s.sciarrati at gmail.com (Simone Sciarrati) Date: Wed, 5 Feb 2014 01:10:02 +0100 Subject: [rabbitmq-discuss] Publishing Performance In-Reply-To: <52F0BFC7.2080108@rabbitmq.com> References: <52F095C9.6080704@gamegos.com> <4D3D25E7-482E-471A-8C8D-4AFDF358E1FA@rabbitmq.com> <52F0BFC7.2080108@rabbitmq.com> Message-ID: Hi, I tried rabbitmqctl list_queues and could not see backing_queue_status.ram_msg_count, I think you mean ./rabbitmqadmin list queues name backing_queue_status.ram_msg_count (or variations of it) How does backing_queue_status.ram_msg_count relate to the queue paging messages to disk? I have seen a few threads and in one it was suggested to look at the comments in https://github.com/michaelklishin/rabbit-hole/blob/master/queues.go#L10 but there I see: RAMMessageCount int64 `json:"ram_msg_count"` // Number of outstanding acks held in RAM It is not clear to me how 'number of outstanding acks held in RAM' relates to messages being paged to disk. Also where does it show in the UI? Thanks, S On Tue, Feb 4, 2014 at 11:24 AM, Simon MacMullen wrote: > On 04/02/2014 7:30AM, Michael Klishin wrote: >> >> On 4 Feb 2014, at 11:24, Umutcan wrote: >> >>> Does publishing get slower while number of the queued messages are >>> increasing? >>> >>> While I am doing an operation, publishing speed get slower in time. >>> Operation publishes a certain amount of messages to RMQ and then a consumer >>> processes messages. Since publishing speed is higher than consuming speed, >>> messages waits for a while in the queue. I am not running operation again >>> until queue is empty. >> >> >> If consumers do not keep up with publishers, eventually RabbitMQ will >> throttle publishers >> until consumers drain enough messages to eliminate RAM and disk space >> pressure. > > > First of all, RabbitMQ will start paging messages out to disk. Since at all > times RabbitMQ tries not to accept messages faster than it can do something > sensible with them, this will mean the publishing rate goes down > substantially at this point. > > You can see if a queue is paging to disk in the management plugin web UI, or > by looking at backing_queue_status.ram_msg_count in rabbitmqctl list_queues > or the HTTP API. > > Eventually if the disk fills up, or something else happens to make memory > usage spike, then the memory alarm can go off and block publishers > completely until memory use drops again. > > >> See http://rabbitmq.com/memory.html. >> >> OS swapping can also take place, which affects performance severely. > > > We try to avoid that, but on a machine where other services are running it's > not always possible. > > Cheers, Simon > > -- > Simon MacMullen > RabbitMQ, Pivotal > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss From cwstorm at gmail.com Wed Feb 5 00:32:22 2014 From: cwstorm at gmail.com (cw storm) Date: Tue, 4 Feb 2014 19:32:22 -0500 Subject: [rabbitmq-discuss] basicQos In-Reply-To: References: <329793CD-A7AF-4F51-A29D-779BCB1A4D32@gmail.com> Message-ID: Hmm...guess I have to figure this one out. I'm not getting any error during compilation time. I executed the service and can see that it being the consumer for the queue. This is with my hardcodeing the value in channel.basicQos(10). Now, if I assigned a value to a variable, I don't see the consumer service being assigned to the queue. Since you've confirmed that I can used a variable for the method, I will have to dig further into my service. Thanks. On Tue, Feb 4, 2014 at 5:46 PM, Alvaro Videla wrote: > I've just tried the code from the tutorials here: > http://www.rabbitmq.com/tutorials/tutorial-two-java.html > > Specifically: > > int prefetchCount = 10; > channel.basicQos(prefetchCount); > > And it worked. > > What errors are you getting? > > Regards, > > Alvaro > > On Tue, Feb 4, 2014 at 11:35 PM, cistron wrote: > > I just want to pass a veritable to the method instead of hard coding the > value. > > > > Sent from my iPhone > > > >> On Feb 4, 2014, at 5:09 PM, Alvaro Videla > wrote: > >> > >> Hi, > >> > >> What are you tried to achieve? > >> > >> Regards, > >> > >> Alvaro > >> > >>> On Tue, Feb 4, 2014 at 10:30 PM, cw storm wrote: > >>> Is it possible to pass a variable to basicQos()? For example, I > assign "int > >>> x = 10". I called on "channel.basicQos(x)". I tried this but don't > see the > >>> consumer service being subscribe to the channel. But if I just > hardcode the > >>> actual value, then it works. > >>> > >>> _______________________________________________ > >>> rabbitmq-discuss mailing list > >>> rabbitmq-discuss at lists.rabbitmq.com > >>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > >> _______________________________________________ > >> rabbitmq-discuss mailing list > >> rabbitmq-discuss at lists.rabbitmq.com > >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > _______________________________________________ > > rabbitmq-discuss mailing list > > rabbitmq-discuss at lists.rabbitmq.com > > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jamesjdempster at gmail.com Wed Feb 5 01:48:12 2014 From: jamesjdempster at gmail.com (James Dempster) Date: Wed, 5 Feb 2014 12:48:12 +1100 Subject: [rabbitmq-discuss] Support for Delphi 2007 Message-ID: Hi, I'm currently using HabariClient-1.6 with indy 10.5.8 developing on Delphi 2007. What I have been noticing is that sometimes I create my session, then my Producer, send my message via the Producer but get an exception 'Not connected! Command: SEND'. So it thinks it's not connected. This doesn't happen all of the time, only when there is a lot of messages at once. So I'm thinking its either the version of Indy I am using or as it states here on your web site, http://www.habarisoft.com/habari_rabbitmq.html , "For usage with non-Unicode versions (Delphi 6 to 2007) please contact us." The version of the client I should be using? So was hoping you might be able to help me in which versions I should be using please. Thanks James -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Wed Feb 5 04:49:21 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Wed, 5 Feb 2014 08:49:21 +0400 Subject: [rabbitmq-discuss] sensu rabbitmq check triggering a SSL exception In-Reply-To: <9a75fc6c-a18c-4e8d-95cf-36832057f788@googlegroups.com> References: <9a75fc6c-a18c-4e8d-95cf-36832057f788@googlegroups.com> Message-ID: 2014-02-05 Mariano Gonz?lez : > Looks like there's some kind of SSL error, but I cannot figure it out. You set port to 5671 which is the default SSL port, so Bunny assumes it should use TLS but you provide no client certificate. Use port 5672. http://rubybunny.info/articles/tls.html -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From sekhar434145 at gmail.com Wed Feb 5 05:41:19 2014 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Wed, 5 Feb 2014 11:11:19 +0530 Subject: [rabbitmq-discuss] Code for Spring AMQP Request-Reply (Fixed Reply Queue) In-Reply-To: References: <3FD81B31-1FBF-4A82-AB1F-26594A8659A7@rabbitmq.com> Message-ID: Just am re-checking whether setting up RabbitTemplate and reply listener at producer end and container configuration at consumer end is correct approach or not? As you have mentioned "*correctly setting up the RabbitTemplate and the reply listener).*" that is fine. Thank you Russell. Regards, Sekhar On Tue, Feb 4, 2014 at 7:21 PM, Gary Russell wrote: > Michael, thanks for reposting to Gist. > > Sekhar, I am not sure what you are asking "...queues are getting > generated and able to send and receive the message... above configuration > is correct or not..." > > It sounds like it's working and it looks like you used the configuration > snippet from the Spring-AMQP documentation ( > http://docs.spring.io/spring-amqp/docs/1.3.0.BUILD-SNAPSHOT/reference/html/amqp.html#d4e617) > - (correctly setting up the RabbitTemplate and the reply listener). > > So what is the question? > > > > > > On Tue, Feb 4, 2014 at 3:08 AM, Rajasekhar P wrote: > >> Hi MK, Is that code configuration correct? >> >> >> On Tue, Feb 4, 2014 at 1:13 PM, Michael Klishin wrote: >> >>> On 4 Feb 2014, at 11:10, Rajasekhar P wrote: >>> >>> > I have done one sample to test fixed reply queue and attached the >>> source code for the same. When I run the producer and consumer programs, >>> queues are getting generated and able to send and receive the message. So, >>> can one please tell me the above configuration is correct or not in case of >>> fixed reply queue? >>> >>> Reposted to gist: >>> https://gist.github.com/michaelklishin/d33ad46f81ff591f0988 >>> >>> MK >>> >>> Software Engineer, Pivotal/RabbitMQ >>> >>> >>> _______________________________________________ >>> rabbitmq-discuss mailing list >>> rabbitmq-discuss at lists.rabbitmq.com >>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >>> >> >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> >> > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From stammailbox at gmail.com Wed Feb 5 08:21:18 2014 From: stammailbox at gmail.com (rails) Date: Wed, 5 Feb 2014 10:21:18 +0200 Subject: [rabbitmq-discuss] RabbitMQ Node recovery - How to set a node to auto restart on failure In-Reply-To: References: Message-ID: Thanks. So, just to make sure - After reading a lot documents on the RabbitMQ site about clustering & mirrored queue behaviour where it says that in order to supply HA behaviour, when a RabbitMQ node dies - it promotes slaves queues to be the master - there is no process that loads a failed node. * when saying node I mean a rabbit node, a process. Not a VM node. On Tue, Feb 4, 2014 at 5:27 PM, Michael Klishin wrote: > > On 4 Feb 2014, at 19:19, rails wrote: > > > I want that when a node fails it will auto restart and join the cluster. > > How do I configure that? > > Use a monitoring tool such as Monit or Nagios. > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Wed Feb 5 08:39:57 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Wed, 5 Feb 2014 12:39:57 +0400 Subject: [rabbitmq-discuss] RabbitMQ Node recovery - How to set a node to auto restart on failure In-Reply-To: References: Message-ID: 2014-02-05 rails : > So, just to make sure - > After reading a lot documents on the RabbitMQ site about clustering > & mirrored queue behaviour > where it says that in order to supply HA behaviour, when a RabbitMQ node > dies - it promotes slaves queues to be the master - there is no process > that loads a failed node. > A more correct description should be "RabbitMQ node stops responding". Because it can be due to a network or other issue, remote node recovery won't always be possible. So it's up to external tools to recover failing OS processes. HTH, -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From yuva670 at gmail.com Wed Feb 5 09:09:04 2014 From: yuva670 at gmail.com (Mahesh Viraktamath) Date: Wed, 5 Feb 2014 14:39:04 +0530 Subject: [rabbitmq-discuss] Message Rates slow down Message-ID: Hi, When I run a consumer which writes to a queue - say "Q_OUT", the message rate is around 4.5/s. If I start another consumer which consumes from "Q_OUT", the message rate for the writing consumer drops considerably to 1.6-1.8. I can't understand how can a consuming client can bring down the message rate of the writing consumer. I am using RabbitMQ 3.2.0 and Erlang R15B02. -Mahesh -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Wed Feb 5 09:13:47 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 5 Feb 2014 13:13:47 +0400 Subject: [rabbitmq-discuss] Message Rates slow down In-Reply-To: References: Message-ID: On 5 Feb 2014, at 13:09, Mahesh Viraktamath wrote: > When I run a consumer which writes to a queue - say "Q_OUT", the message rate is around 4.5/s. If I start another consumer which consumes from "Q_OUT", the message rate for the writing consumer drops considerably to 1.6-1.8. I can't understand how can a consuming client can bring down the message rate of the writing consumer. If your consumer also publishes messages, adding another consumer to the same queue will lead to the 2nd consumer consuming some of the messages. That means the 1st consumer does less work, and publishes fewer messages. If I misunderstood your use case, can you please post some code and management UI screenshots that demonstrate your observations? MK Software Engineer, Pivotal/RabbitMQ From stammailbox at gmail.com Wed Feb 5 09:15:26 2014 From: stammailbox at gmail.com (rails) Date: Wed, 5 Feb 2014 11:15:26 +0200 Subject: [rabbitmq-discuss] RabbitMQ Node recovery - How to set a node to auto restart on failure In-Reply-To: References: Message-ID: Can I set it to be automatically? A. I want to be alert when the queue is failing B. I want it to restart somehow. How can I set this behaviour? On Wed, Feb 5, 2014 at 10:39 AM, Michael Klishin < michael.s.klishin at gmail.com> wrote: > 2014-02-05 rails : > > So, just to make sure - >> After reading a lot documents on the RabbitMQ site about clustering >> & mirrored queue behaviour >> where it says that in order to supply HA behaviour, when a RabbitMQ node >> dies - it promotes slaves queues to be the master - there is no process >> that loads a failed node. >> > > A more correct description should be "RabbitMQ node stops responding". > Because it can be due to a network > or other issue, remote node recovery won't always be possible. So it's up > to external tools to recover failing OS processes. > > HTH, > -- > MK > > http://github.com/michaelklishin > http://twitter.com/michaelklishin > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Wed Feb 5 09:19:34 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 5 Feb 2014 13:19:34 +0400 Subject: [rabbitmq-discuss] RabbitMQ Node recovery - How to set a node to auto restart on failure In-Reply-To: References: Message-ID: On 5 Feb 2014, at 13:15, rails wrote: > A. I want to be alert when the queue is failing > B. I want it to restart somehow. > How can I set this behaviour? How do you define ?queue failure?? Do you mean RabbitMQ node failure? MK Software Engineer, Pivotal/RabbitMQ From yuva670 at gmail.com Wed Feb 5 09:22:43 2014 From: yuva670 at gmail.com (Mahesh Viraktamath) Date: Wed, 5 Feb 2014 14:52:43 +0530 Subject: [rabbitmq-discuss] Message Rates slow down In-Reply-To: References: Message-ID: Hi Michael, thanks for your reply. My exact scenario is as follows - I have 2 queues - Q_IN and Q_OUT I have 3 consumers - A, B and C A writes to Q_IN in bulk, B is not yet started. Once, A is done with publishing 25k messages to Q_IN, B is started and it consumes from it. After each message is processed, B writes an output to Q_OUT. It consumes and publishes at 4.5/s. C is not yet started. Now, when C is started, it starts consuming B's output from Q_OUT, at this time message rates of B go down to 1.6-1.8. A and C are python clients using pika and BlockingConnection. B is a java client. Thanks, Mahesh On Wed, Feb 5, 2014 at 2:43 PM, Michael Klishin wrote: > > On 5 Feb 2014, at 13:09, Mahesh Viraktamath wrote: > > > When I run a consumer which writes to a queue - say "Q_OUT", the message > rate is around 4.5/s. If I start another consumer which consumes from > "Q_OUT", the message rate for the writing consumer drops considerably to > 1.6-1.8. I can't understand how can a consuming client can bring down the > message rate of the writing consumer. > > If your consumer also publishes messages, adding another consumer to the > same queue will lead to the 2nd consumer > consuming some of the messages. That means the 1st consumer does less > work, and publishes fewer messages. > > If I misunderstood your use case, can you please post some code and > management UI screenshots that demonstrate > your observations? > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From stammailbox at gmail.com Wed Feb 5 09:48:26 2014 From: stammailbox at gmail.com (rails) Date: Wed, 5 Feb 2014 11:48:26 +0200 Subject: [rabbitmq-discuss] RabbitMQ Node recovery - How to set a node to auto restart on failure In-Reply-To: References: Message-ID: 1. Lets say a process was shut down (disk space full, internal error, someone killed it) 2. Lets say a machine was disconnected from network. after 10 minutes it is connected again. On Wed, Feb 5, 2014 at 11:19 AM, Michael Klishin wrote: > On 5 Feb 2014, at 13:15, rails wrote: > > > A. I want to be alert when the queue is failing > > B. I want it to restart somehow. > > How can I set this behaviour? > > How do you define "queue failure"? Do you mean RabbitMQ node failure? > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Wed Feb 5 09:52:56 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 05 Feb 2014 09:52:56 +0000 Subject: [rabbitmq-discuss] Publishing Performance In-Reply-To: References: <52F095C9.6080704@gamegos.com> <4D3D25E7-482E-471A-8C8D-4AFDF358E1FA@rabbitmq.com> <52F0BFC7.2080108@rabbitmq.com> Message-ID: <52F209F8.4070403@rabbitmq.com> On 05/02/2014 12:10AM, Simone Sciarrati wrote: > I tried rabbitmqctl list_queues and could not see > backing_queue_status.ram_msg_count, I think you mean ./rabbitmqadmin > list queues name backing_queue_status.ram_msg_count (or variations of > it) You can do that too. For rabbitmqctl you need "rabbitmqctl list_queues name backing_queue_status" and then pull ram_msg_count out yourself. > How does backing_queue_status.ram_msg_count relate to the queue paging > messages to disk? It tells you the number of messages the queue has in RAM. If that number is the same as the total message count, no paging has taken place. Otherwise it has. > I have seen a few threads and in one it was > suggested to look at the comments in > https://github.com/michaelklishin/rabbit-hole/blob/master/queues.go#L10 > but there I see: > > RAMMessageCount int64 `json:"ram_msg_count"` > // Number of outstanding acks held in RAM You need the comment before that line, not after it: // Number of messages held in RAM RAMMessageCount int64 `json:"ram_msg_count"` > Also where does it show in the UI? On the right hand side of "Details" under "Overview" on the queue details page. It was only added to the UI in 3.2.0 BTW. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From mklishin at gopivotal.com Wed Feb 5 09:53:30 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 5 Feb 2014 13:53:30 +0400 Subject: [rabbitmq-discuss] RabbitMQ Node recovery - How to set a node to auto restart on failure In-Reply-To: References: Message-ID: <2DEAD548-B3F2-4AC4-AF77-C1364C56567F@rabbitmq.com> On 5 Feb 2014, at 13:48, rails wrote: > 1. Lets say a process was shut down > (disk space full, internal error, someone killed it) > > 2. Lets say a machine was disconnected from network. after 10 minutes it is connected again. Like I said earlier in this thread, such failures cannot be recovered by other RabbitMQ nodes (it is easy to see with #2). It is not even clear how to recover (e.g. how do you free up disk space). What you need is a tool such as Monit which monitors RabbitMQ nodes, available disk space, etc and sends out notifications and (if possible) tries to recover the system. MK Software Engineer, Pivotal/RabbitMQ From arun.achutha at gmail.com Wed Feb 5 10:12:38 2014 From: arun.achutha at gmail.com (arun kumar) Date: Wed, 5 Feb 2014 15:42:38 +0530 Subject: [rabbitmq-discuss] RabbitMQ Node recovery - How to set a node to auto restart on failure In-Reply-To: <2DEAD548-B3F2-4AC4-AF77-C1364C56567F@rabbitmq.com> References: <2DEAD548-B3F2-4AC4-AF77-C1364C56567F@rabbitmq.com> Message-ID: hi Michael , I'm able to collect rabbitmq messages comming from openstack nova components using python pika module but how to filter the messages is the big question mark for that i'm using topic exchange but binding keys i don't know which binding key have to put and get the messages according to that binding key using pyrabbit i'm able to list some bindings but i dont know which binding key related to the exchange i'm using currently i'm just putting # symbol in my python client code and able to get the messages is there any way short to find out the bindings appropriately and filtering the messages accordingly any help i thankful them alot. Regards, john On Wed, Feb 5, 2014 at 3:23 PM, Michael Klishin wrote: > > On 5 Feb 2014, at 13:48, rails wrote: > > > 1. Lets say a process was shut down > > (disk space full, internal error, someone killed it) > > > > 2. Lets say a machine was disconnected from network. after 10 minutes it > is connected again. > > Like I said earlier in this thread, such failures cannot be recovered by > other RabbitMQ nodes (it is easy > to see with #2). It is not even clear how to recover (e.g. how do you free > up disk space). > > What you need is a tool such as Monit which monitors RabbitMQ nodes, > available disk space, etc > and sends out notifications and (if possible) tries to recover the system. > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From pat at munkiisoft.com Wed Feb 5 11:07:51 2014 From: pat at munkiisoft.com (Patrick Long) Date: Wed, 5 Feb 2014 11:07:51 +0000 Subject: [rabbitmq-discuss] Mirrored queues and Load balanced cluster Message-ID: RMQ 3.2.1 Erlang R16B02 We are going to set the queues in our cluster to be mirrored. They are also behind a load balancer. I read that when a queue is mirrored it is the job of the Channel to write a published message to all nodes. The channel is on the client side of the Load Balancer so how would it ever be able to write directly to each node? Have I misunderstood this? Thanks -- Patrick Long - Munkiisoft Ltd -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Wed Feb 5 11:11:33 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 05 Feb 2014 11:11:33 +0000 Subject: [rabbitmq-discuss] Mirrored queues and Load balanced cluster In-Reply-To: References: Message-ID: <52F21C65.9090403@rabbitmq.com> On 05/02/2014 11:07AM, Patrick Long wrote: > I read that when a queue is mirrored it is the job of the Channel to > write a published message to all nodes. That's the channel process inside the broker, not the one in the client. From the client's point of view it just publishes as usual. > The channel is on the client side of the Load Balancer so how would it > ever be able to write directly to each node? > > Have I misunderstood this? I think so. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From haster2004 at yandex.ru Wed Feb 5 12:22:40 2014 From: haster2004 at yandex.ru (Haster) Date: Wed, 5 Feb 2014 04:22:40 -0800 (PST) Subject: [rabbitmq-discuss] Set prefix for temporary queue name Message-ID: <1391602960488-33118.post@n5.nabble.com> Hi there! Is there any chance to create temporary queue with some defined prefix? For example, I want what all such queues starts from haster_ prefix and in result full queue name was such as haster_kjdnwdwkedwe. -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Set-prefix-for-temporary-queue-name-tp33118.html Sent from the RabbitMQ mailing list archive at Nabble.com. From simon at rabbitmq.com Wed Feb 5 14:22:16 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 05 Feb 2014 14:22:16 +0000 Subject: [rabbitmq-discuss] Set prefix for temporary queue name In-Reply-To: <1391602960488-33118.post@n5.nabble.com> References: <1391602960488-33118.post@n5.nabble.com> Message-ID: <52F24918.2070606@rabbitmq.com> On 05/02/2014 12:22PM, Haster wrote: > Is there any chance to create temporary queue with some defined prefix? There's no such concept as "temporary queue" in AMQP. Normally when you want a temporary queue, you would create a queue which was server-named and exclusive (and/or autodelete). Many client APIs have a convenience method to do this, e.g. Channel.queueDeclare() in the Java client. But exclusive / autodelete aren't really related to the name. So the question you're asking becomes "can you create a server-named queue with some defined prefix?" The answer to that is no. But you don't need to use server-named queues if you don't want. Just generate a queue name yourself - it can still be exclusive / autodelete and thus usable as a temporary queue. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From cwstorm at gmail.com Wed Feb 5 14:39:07 2014 From: cwstorm at gmail.com (cw storm) Date: Wed, 5 Feb 2014 09:39:07 -0500 Subject: [rabbitmq-discuss] basicQos In-Reply-To: References: <329793CD-A7AF-4F51-A29D-779BCB1A4D32@gmail.com> Message-ID: It was my silly mistake of overlooking the typo on the variable name. All is good. On Tue, Feb 4, 2014 at 7:32 PM, cw storm wrote: > Hmm...guess I have to figure this one out. I'm not getting any error > during compilation time. I executed the service and can see that it being > the consumer for the queue. This is with my hardcodeing the value in > channel.basicQos(10). Now, if I assigned a value to a variable, I don't > see the consumer service being assigned to the queue. Since you've > confirmed that I can used a variable for the method, I will have to dig > further into my service. Thanks. > > > On Tue, Feb 4, 2014 at 5:46 PM, Alvaro Videla wrote: > >> I've just tried the code from the tutorials here: >> http://www.rabbitmq.com/tutorials/tutorial-two-java.html >> >> Specifically: >> >> int prefetchCount = 10; >> channel.basicQos(prefetchCount); >> >> And it worked. >> >> What errors are you getting? >> >> Regards, >> >> Alvaro >> >> On Tue, Feb 4, 2014 at 11:35 PM, cistron wrote: >> > I just want to pass a veritable to the method instead of hard coding >> the value. >> > >> > Sent from my iPhone >> > >> >> On Feb 4, 2014, at 5:09 PM, Alvaro Videla >> wrote: >> >> >> >> Hi, >> >> >> >> What are you tried to achieve? >> >> >> >> Regards, >> >> >> >> Alvaro >> >> >> >>> On Tue, Feb 4, 2014 at 10:30 PM, cw storm wrote: >> >>> Is it possible to pass a variable to basicQos()? For example, I >> assign "int >> >>> x = 10". I called on "channel.basicQos(x)". I tried this but don't >> see the >> >>> consumer service being subscribe to the channel. But if I just >> hardcode the >> >>> actual value, then it works. >> >>> >> >>> _______________________________________________ >> >>> rabbitmq-discuss mailing list >> >>> rabbitmq-discuss at lists.rabbitmq.com >> >>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> >> _______________________________________________ >> >> rabbitmq-discuss mailing list >> >> rabbitmq-discuss at lists.rabbitmq.com >> >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> > _______________________________________________ >> > rabbitmq-discuss mailing list >> > rabbitmq-discuss at lists.rabbitmq.com >> > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From grussell at gopivotal.com Wed Feb 5 15:50:38 2014 From: grussell at gopivotal.com (Gary Russell) Date: Wed, 5 Feb 2014 10:50:38 -0500 Subject: [rabbitmq-discuss] Code for Spring AMQP Request-Reply (Fixed Reply Queue) In-Reply-To: References: <3FD81B31-1FBF-4A82-AB1F-26594A8659A7@rabbitmq.com> Message-ID: No problem; that was typically the mistake that most folks made when configuring the template with a fixed reply queue; that's why we added the example to the documentation. On Wed, Feb 5, 2014 at 12:41 AM, Rajasekhar P wrote: > Just am re-checking whether setting up RabbitTemplate and reply listener > at producer end and container configuration at consumer end is correct > approach or not? As you have mentioned "*correctly setting up the > RabbitTemplate and the reply listener).*" that is fine. Thank you Russell. > > > Regards, > Sekhar > > > On Tue, Feb 4, 2014 at 7:21 PM, Gary Russell wrote: > >> Michael, thanks for reposting to Gist. >> >> Sekhar, I am not sure what you are asking "...queues are getting >> generated and able to send and receive the message... above >> configuration is correct or not..." >> >> It sounds like it's working and it looks like you used the configuration >> snippet from the Spring-AMQP documentation ( >> http://docs.spring.io/spring-amqp/docs/1.3.0.BUILD-SNAPSHOT/reference/html/amqp.html#d4e617) >> - (correctly setting up the RabbitTemplate and the reply listener). >> >> So what is the question? >> >> >> >> >> >> On Tue, Feb 4, 2014 at 3:08 AM, Rajasekhar P wrote: >> >>> Hi MK, Is that code configuration correct? >>> >>> >>> On Tue, Feb 4, 2014 at 1:13 PM, Michael Klishin wrote: >>> >>>> On 4 Feb 2014, at 11:10, Rajasekhar P wrote: >>>> >>>> > I have done one sample to test fixed reply queue and attached the >>>> source code for the same. When I run the producer and consumer programs, >>>> queues are getting generated and able to send and receive the message. So, >>>> can one please tell me the above configuration is correct or not in case of >>>> fixed reply queue? >>>> >>>> Reposted to gist: >>>> https://gist.github.com/michaelklishin/d33ad46f81ff591f0988 >>>> >>>> MK >>>> >>>> Software Engineer, Pivotal/RabbitMQ >>>> >>>> >>>> _______________________________________________ >>>> rabbitmq-discuss mailing list >>>> rabbitmq-discuss at lists.rabbitmq.com >>>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >>>> >>> >>> >>> _______________________________________________ >>> rabbitmq-discuss mailing list >>> rabbitmq-discuss at lists.rabbitmq.com >>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >>> >>> >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> >> > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From k.madnani84 at gmail.com Wed Feb 5 16:10:42 2014 From: k.madnani84 at gmail.com (k.madnani84) Date: Wed, 5 Feb 2014 08:10:42 -0800 (PST) Subject: [rabbitmq-discuss] Fedrating Queues not behaving as expected? Message-ID: <1391616642571-33123.post@n5.nabble.com> Hi, I have 2 clusters Cluster1 and Cluster 2 each with two nodes.I am trying to implement fedration queues wherein i am making my Cluster1 as downstream cluster and cluster 2 as upstream cluster.I set a policy on cluster 1 such that all the resources ending with ".federate" gets federated .Also i am setting an Upstream parameter on cluster 1. When i create a queue with name "myQueue.federate" a similar queue gets created in Cluster 2 as well so that means the policy and parameter worked fine and i could see in logs as : Federation queue 'myQueue.federate' in vhost '/' connected to queue 'myQueue.federate' in vhost '/' on amqp://xxx.xxx.xxx.com:5672 So we are good till now.Next what i read is messages flow from Upstream to downstream.That means in my case from Cluster2 to Cluster1.So i published message in Cluster2 and tried to consume it from Cluster1 but i get a response while consuming from Cluster1 that the queue is empty. Also in RabbitMQ console for cluster2 i see 1 ready message in queue myQueue.federate but for cluster1 i see 0 messages. Could anybody tell me where am i wrong? Thanks & Regards, Kuldip -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Fedrating-Queues-not-behaving-as-expected-tp33123.html Sent from the RabbitMQ mailing list archive at Nabble.com. From simon at rabbitmq.com Wed Feb 5 16:16:27 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 05 Feb 2014 16:16:27 +0000 Subject: [rabbitmq-discuss] Fedrating Queues not behaving as expected? In-Reply-To: <1391616642571-33123.post@n5.nabble.com> References: <1391616642571-33123.post@n5.nabble.com> Message-ID: <52F263DB.3020301@rabbitmq.com> On 05/02/2014 4:10PM, k.madnani84 wrote: > So we are good till now.Next what i read is messages flow from Upstream to > downstream.That means in my case from Cluster2 to Cluster1.So i published > message in Cluster2 and tried to consume it from Cluster1 but i get a > response while consuming from Cluster1 that the queue is empty. If you get a response when "consuming", do you mean you are invoking basic.get rather than basic.consume? From http://www.rabbitmq.com/federated-queues.html: "basic.get cannot retrieve messages over federation if there aren't any in a local queue (on the node the client is connected to). Since basic.get is a synchronous method, the node serving a request would have to block while contacting all the other nodes to retrieve more messages. This wouldn't sit well with federation's availability promise (partition tolerance)." Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From k.madnani84 at gmail.com Wed Feb 5 16:21:23 2014 From: k.madnani84 at gmail.com (k.madnani84) Date: Wed, 5 Feb 2014 08:21:23 -0800 (PST) Subject: [rabbitmq-discuss] Fedrating Queues not behaving as expected? In-Reply-To: <52F263DB.3020301@rabbitmq.com> References: <1391616642571-33123.post@n5.nabble.com> <52F263DB.3020301@rabbitmq.com> Message-ID: <1391617283584-33125.post@n5.nabble.com> I am using the RabbitMQ console to get the messages,the "GET Messages" option under queue name.Does it call basic.get?Do i need to use a client using basic.consume? -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Fedrating-Queues-not-behaving-as-expected-tp33123p33125.html Sent from the RabbitMQ mailing list archive at Nabble.com. From simon at rabbitmq.com Wed Feb 5 16:24:17 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 05 Feb 2014 16:24:17 +0000 Subject: [rabbitmq-discuss] Fedrating Queues not behaving as expected? In-Reply-To: <1391617283584-33125.post@n5.nabble.com> References: <1391616642571-33123.post@n5.nabble.com> <52F263DB.3020301@rabbitmq.com> <1391617283584-33125.post@n5.nabble.com> Message-ID: <52F265B1.5020007@rabbitmq.com> On 05/02/2014 4:21PM, k.madnani84 wrote: > I am using the RabbitMQ console to get the messages,the "GET Messages" option > under queue name.Does it call basic.get? Yes. > Do i need to use a client using basic.consume? Yes. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From dmcintyre at gopivotal.com Wed Feb 5 17:04:33 2014 From: dmcintyre at gopivotal.com (Duncan McIntyre) Date: Wed, 5 Feb 2014 17:04:33 +0000 Subject: [rabbitmq-discuss] No Message rates in UI - 3.2.3 Message-ID: As the subject says, no message rates are appearing in the management UI on a 3.2.3 instance. Erlang R16B03-1. The instance is not clustered. Messages counts *are* showing. Config has: {collect_statistics,fine}, {collect_statistics_interval,5000}, --- Duncan -------------- next part -------------- An HTML attachment was scrubbed... URL: From k.madnani84 at gmail.com Wed Feb 5 19:07:24 2014 From: k.madnani84 at gmail.com (k.madnani84) Date: Wed, 5 Feb 2014 11:07:24 -0800 (PST) Subject: [rabbitmq-discuss] Fedrating Queues not behaving as expected? In-Reply-To: <52F265B1.5020007@rabbitmq.com> References: <1391616642571-33123.post@n5.nabble.com> <52F263DB.3020301@rabbitmq.com> <1391617283584-33125.post@n5.nabble.com> <52F265B1.5020007@rabbitmq.com> Message-ID: <1391627244505-33128.post@n5.nabble.com> Thanks ..That works awesome!!!! -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Fedrating-Queues-not-behaving-as-expected-tp33123p33128.html Sent from the RabbitMQ mailing list archive at Nabble.com. From k.madnani84 at gmail.com Wed Feb 5 19:14:43 2014 From: k.madnani84 at gmail.com (k.madnani84) Date: Wed, 5 Feb 2014 11:14:43 -0800 (PST) Subject: [rabbitmq-discuss] Federation with multiple uri's? Message-ID: <1391627683726-33129.post@n5.nabble.com> Hi, I am trying to set parameter for federation upstream with multiple uri's but cant get what would be the right syntax.The web document says uri's need to be seperated with space but i tried and got following error: Command://opt/app/rabbitmq/sbin/rabbitmqctl set_parameter federation-upstream -p / HA-upstream-CLUSTER4-adminvhost '{"uri":"amqp://feduser:myFedPassword at zldv0434.XXX.XXX.com:5694 amqp://feduser:myFedPassword at zldv0435.XXX.XXX.com:5672 amqp://feduser:myFedPassword at zldv0434.XXX.XXX.com:5672","max-hops":1}' Error: Validation failed "amqp://feduser:myFedPassword at zldv0434.XXX.XXX.com:5694 amqp://feduser:myFedPassword at zldv0435.XXX.XXX.com:5672 amqp://feduser:myFedPassword at zldv0434.XXX.XXX.com:5672" not a valid URI: {{unable_to_parse_uri, Command: bash-3.2$ //opt/app/rabbitmq/sbin/rabbitmqctl set_parameter federation-upstream -p / HA-upstream-CLUSTER4-adminvhost '{"uri":"amqp://feduser:myFedPassword at zldv0434.XXX.XXX.com:5694" "amqp://feduser:myFedPassword at zldv0435.XXX.XXX.com:5672" "amqp://feduser:myFedPassword at zldv0434.XXX.XXX.com:5672","max-hops":1}' Setting runtime parameter "HA-upstream-CLUSTER4-adminvhost" for component "federation-upstream" to "{\"uri\":\"amqp://feduser:myFedPassword at zldv0434.XXX.XXX.com:5694\" \"amqp://feduser:myFedPassword at zldv0435.XXX.XXX.com:5672\" \"amqp://feduser:myFedPassword at zldv0434.XXX.XXX.com:5672\",\"max-hops\":1}" ... Error: JSON decoding error What is the correct syntax? -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Federation-with-multiple-uri-s-tp33129.html Sent from the RabbitMQ mailing list archive at Nabble.com. From videlalvaro at gmail.com Wed Feb 5 19:22:10 2014 From: videlalvaro at gmail.com (Alvaro Videla) Date: Wed, 5 Feb 2014 20:22:10 +0100 Subject: [rabbitmq-discuss] Federation with multiple uri's? In-Reply-To: <1391627683726-33129.post@n5.nabble.com> References: <1391627683726-33129.post@n5.nabble.com> Message-ID: Hi, The documentation mentions[1] about the uri field: "Note that this field can either be a string, or a list of strings." So I assume you should specify the URI like this: '{"uri":["amqp://server-one", "amqp://server-two", "amqp://server-three"],"expires":3600000}' Regards, Alvaro 1 - http://www.rabbitmq.com/federation-reference.html On Wed, Feb 5, 2014 at 8:14 PM, k.madnani84 wrote: > Hi, > > I am trying to set parameter for federation upstream with multiple uri's but > cant get what would be the right syntax.The web document says uri's need to > be seperated with space but i tried and got following error: > > Command://opt/app/rabbitmq/sbin/rabbitmqctl set_parameter > federation-upstream -p / HA-upstream-CLUSTER4-adminvhost > '{"uri":"amqp://feduser:myFedPassword at zldv0434.XXX.XXX.com:5694 > amqp://feduser:myFedPassword at zldv0435.XXX.XXX.com:5672 > amqp://feduser:myFedPassword at zldv0434.XXX.XXX.com:5672","max-hops":1}' > > Error: Validation failed > "amqp://feduser:myFedPassword at zldv0434.XXX.XXX.com:5694 > amqp://feduser:myFedPassword at zldv0435.XXX.XXX.com:5672 > amqp://feduser:myFedPassword at zldv0434.XXX.XXX.com:5672" not a valid URI: > {{unable_to_parse_uri, > > > Command: > bash-3.2$ //opt/app/rabbitmq/sbin/rabbitmqctl set_parameter > federation-upstream -p / HA-upstream-CLUSTER4-adminvhost > '{"uri":"amqp://feduser:myFedPassword at zldv0434.XXX.XXX.com:5694" > "amqp://feduser:myFedPassword at zldv0435.XXX.XXX.com:5672" > "amqp://feduser:myFedPassword at zldv0434.XXX.XXX.com:5672","max-hops":1}' > Setting runtime parameter "HA-upstream-CLUSTER4-adminvhost" for component > "federation-upstream" to > "{\"uri\":\"amqp://feduser:myFedPassword at zldv0434.XXX.XXX.com:5694\" > \"amqp://feduser:myFedPassword at zldv0435.XXX.XXX.com:5672\" > \"amqp://feduser:myFedPassword at zldv0434.XXX.XXX.com:5672\",\"max-hops\":1}" > ... > Error: JSON decoding error > > What is the correct syntax? > > > > > > -- > View this message in context: http://rabbitmq.1065348.n5.nabble.com/Federation-with-multiple-uri-s-tp33129.html > Sent from the RabbitMQ mailing list archive at Nabble.com. > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss From tgv812 at gmail.com Wed Feb 5 22:08:43 2014 From: tgv812 at gmail.com (TaraGopi N) Date: Wed, 5 Feb 2014 17:08:43 -0500 Subject: [rabbitmq-discuss] problem seen with multiple listeners on a single reply queue Message-ID: Hi We are beginners in rabbitmq. We use rabbitmq 3.2.2. I recently observed an issue with multiple listeners on the same reply queue when performance testing our application written in Java. Here is the test scenario: 50 Concurrent users post a request to Service F to create an entity A. The message contains a user id and a timestamp. Each concurrent user posts roughly two messages per second. F publishes this message to a non-durable queue via a topic exchange (using convertSendAndReceive) and waits for the response on a fixed reply queue ReplyQ1. Service A picks up this message and creates this entity (basically an entry in a table) after validating that the user id wihin that message is valid. For the validation, Service A sends this message to another non-durable queue via a topic exchange (convertSendAndReceive) and waits for a response on another fixed reply queue, ReplyQ2. A validating service V picks up this user id, validates it (basically a select from a db table) and then sends the response back to ReplyQ2. Service A picks this up, based on the message, creates the entity and then sends response to ReplyQ1. CreateEntity A Request -> Service F -> Q1 -> Service A -> Q2 - Service V Service V-> ReplyQ2 -> Service A (creates entity A if user valid) -> ReplyQ1 -> Service F F, A and V all live within the same tomcat instance. When a second tomcat instance was started with service A and V, I started to notice warning messages in tomcat logs: WARN : org.springframework.amqp.rabbit.core.RabbitTemplate - Reply received after timeout for b3fd4f57-0403-4704-8f16-8c3055ca0cd9 It looked like messages were not picked up by the correct listener from the validation response queues. Response times were high for this create Entity A request (10 seconds) and only about 5 transactions were processed per second. Tests were run in AWS on m1.large instances. High response time was not caused by network latency. network latency was really small On testing with separate reply queues for the user id validation response, (ReplyQ21 and ReplyQ22 instead of ReplyQ2), response times improved (1 second) and more transactions (roughly 70) were processed per second. Is this a good design approach for this scenario? Or is there a better way to handle this ? All messages are non-persistent. No concurrency or prefetch settings configured on the listeners. Please let me know if you need any other information. Thanks. -------------- next part -------------- An HTML attachment was scrubbed... URL: From otnateos at gmail.com Wed Feb 5 22:20:32 2014 From: otnateos at gmail.com (Johanes Soetanto) Date: Thu, 6 Feb 2014 09:20:32 +1100 Subject: [rabbitmq-discuss] RabbitMQ management down after cluster issue Message-ID: Sorry, reposting this since the original one was sent using unregistered email address Johanes ---------- Forwarded message ---------- Date: 6 February 2014 09:17 Subject: RabbitMQ management down after cluster issue To: rabbitmq-discuss at lists.rabbitmq.com Hi all, We are having problem with our RabbitMQ cluster which we are not quite sure how to debug the root cause. We have 2 nodes in a cluster and one of the node (MQ1) had its management console down after clustering issue/network partition. (I assume this is what happen because we ping the management console from zabbix every minute) Last month we experience network partition and the same node's management plugin was down as well. Since then that node had been reinstalled with the same RabbitMQ version and we use "auto-heal" policy when a network partition happen. Looking at both nodes' log here is some critical information i can gather MQ1 =INFO REPORT==== 5-Feb-2014::11:14:49 === rabbit on node rabbit at mq2 down =INFO REPORT==== 5-Feb-2014::11:14:51 === Statistics database started. =INFO REPORT==== 5-Feb-2014::11:14:51 === Mirrored-queue (queue 'email.out.5' in vhost '/'): Slave saw deaths of mirrors ....... =ERROR REPORT==== 5-Feb-2014::11:14:52 === Mnesia(rabbit at mq1): ** ERROR ** mnesia_event got {inconsistent_database, running_partitioned_network, rabbit at mq2} =INFO REPORT==== 5-Feb-2014::11:14:52 === Autoheal request sent to rabbit at mq1 =INFO REPORT==== 5-Feb-2014::11:14:52 === Autoheal request received from rabbit at mq1 =INFO REPORT==== 5-Feb-2014::11:14:52 === global: Name conflict terminating {rabbit_mgmt_db,<2705.453.0>} =ERROR REPORT==== 5-Feb-2014::11:14:52 === ** Generic server <0.10360.0> terminating ** Last message in was {mnesia_locker,rabbit at mq2,granted} ** When Server state == {state,<0.10358.0>,<0.10359.0>,rabbit_mgmt_sup, [{rabbit_mgmt_db, {rabbit_mgmt_db,start_link,[]}, permanent,4294967295,worker, [rabbit_mgmt_db]}]} ** Reason for termination == ** {unexpected_info,{mnesia_locker,rabbit at mq2,granted}} =INFO REPORT==== 5-Feb-2014::11:14:52 === Autoheal decision * Partitions: [[rabbit at mq1],[rabbit at mq2]] * Winner: rabbit at mq1 * Losers: [rabbit at mq2] =INFO REPORT==== 5-Feb-2014::11:14:52 === Autoheal: I am the winner, waiting for [rabbit at mq2] to stop =INFO REPORT==== 5-Feb-2014::11:14:53 === rabbit on node rabbit at mq2 down =INFO REPORT==== 5-Feb-2014::11:14:58 === Autoheal: final node has stopped, starting... =INFO REPORT==== 5-Feb-2014::11:16:14 === rabbit on node rabbit at mq2 up MQ2 =ERROR REPORT==== 5-Feb-2014::11:14:49 === ** Node rabbit at mq1 not responding ** ** Removing (timedout) connection ** =INFO REPORT==== 5-Feb-2014::11:14:49 === rabbit on node rabbit at mq1 down =INFO REPORT==== 5-Feb-2014::11:14:51 === Mirrored-queue (queue 'managedAmqpOutboundSms5' in vhost '/'): Master saw deaths of mirrors ... =ERROR REPORT==== 5-Feb-2014::11:14:52 === Mnesia(rabbit at mq2): ** ERROR ** mnesia_event got {inconsistent_database, running_partitioned_network, rabbit at mq1} ... =INFO REPORT==== 5-Feb-2014::11:14:52 === Statistics database started. =WARNING REPORT==== 5-Feb-2014::11:14:52 === Autoheal: we were selected to restart; winner is rabbit at mq1 =INFO REPORT==== 5-Feb-2014::11:14:52 === Stopping RabbitMQ =INFO REPORT==== 5-Feb-2014::11:14:53 === stopped TCP Listener on [::]:5672 =ERROR REPORT==== 5-Feb-2014::11:14:59 === Mnesia(rabbit at mq2): ** ERROR ** mnesia_event got {inconsistent_database, starting_partitioned_network, rabbit at mq1} =INFO REPORT==== 5-Feb-2014::11:15:13 === Starting RabbitMQ 3.1.5 on Erlang R14B04 Copyright (C) 2007-2013 GoPivotal, Inc. Licensed under the MPL. See http://www.rabbitmq.com/ ... Is there some obvious error I should be looking at from RabbitMQ log to find out what's happening? because the other log files do not seem to provide meaningful information. Here's our system setup (in case it may help) - 2 nodes cluster on Linode - Ubuntu 12.04.3 instance - RabbitMQ 3.1.5 - management plugin enabled - both nodes communicating on private LAN ip address - both nodes is used by our app servers using spring-amqp to communicate (might be unrelated information) Any hints or help to debug the issue will be appreciated. Thanks Johanes -------------- next part -------------- An HTML attachment was scrubbed... URL: From mgg at giagnocavo.net Thu Feb 6 03:44:15 2014 From: mgg at giagnocavo.net (Michael Giagnocavo) Date: Thu, 6 Feb 2014 03:44:15 +0000 Subject: [rabbitmq-discuss] Unknown delivery tag Message-ID: <304322d0ec4b4242b22745180f38ddd7@CO1PR07MB331.namprd07.prod.outlook.com> Hi! We're using the .NET client with QueueingBasicConsumer. Rabbit 3.2.2, ErlangR16B03. Now and then our consumer crashes with an exception like this (printed by the RabbitMQ client library to the console, apparently): Unhandled Exception: RabbitMQ.Client.Exceptions.OperationInterruptedException: The AMQP operation was interrupted: AMQP close-reason, initiated by Peer, code=406, text="PRECONDITION_FAILED - unknown delivery tag 995139", classId=60, methodId=80, cause= at RabbitMQ.Client.Impl.SimpleBlockingRpcContinuation.GetReply() at RabbitMQ.Client.Impl.ModelBase.ModelRpc(MethodBase method, ContentHeaderBase header, Byte[] body) at RabbitMQ.Client.Framing.Impl.v0_9_1.Model.TxCommit() As I understand, this means that we ack'd a tag that the server didn't recognize, correct? Are delivery tags guaranteed to be monotonically increasing? We have a prefetch of 2000 and do multiple tag acks. We call dequeue in a loop until we have 500 messages or timeout (1 second) on dequeue. We even have code after each dequeue that fails the process if our maxTag var is greater than the current message's delivery tag. Could it be that we're dequeueing a message with a high delivery tag, then next time we get one with a lower delivery tag and hence it's unknown to the server since we already ack'd and committed? Any other suggestions? -Michael -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Thu Feb 6 05:17:57 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Thu, 6 Feb 2014 09:17:57 +0400 Subject: [rabbitmq-discuss] Unknown delivery tag In-Reply-To: <304322d0ec4b4242b22745180f38ddd7@CO1PR07MB331.namprd07.prod.outlook.com> References: <304322d0ec4b4242b22745180f38ddd7@CO1PR07MB331.namprd07.prod.outlook.com> Message-ID: 2014-02-06 Michael Giagnocavo : > As I understand, this means that we ack?d a tag that the server didn?t > recognize, correct? Are delivery tags guaranteed to be monotonically > increasing? > Yes. However, when you reconnect and reopen channels, every channel will have its delivery tag reset. > > > Could it be that we?re dequeueing a message with a high delivery tag, then > next time we get one with a lower delivery tag and hence it?s unknown to > the server since we already ack?d and committed? > Double acking will result in this exception. -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From haster2004 at yandex.ru Thu Feb 6 06:05:47 2014 From: haster2004 at yandex.ru (Haster) Date: Wed, 5 Feb 2014 22:05:47 -0800 (PST) Subject: [rabbitmq-discuss] Set prefix for temporary queue name In-Reply-To: <52F24918.2070606@rabbitmq.com> References: <1391602960488-33118.post@n5.nabble.com> <52F24918.2070606@rabbitmq.com> Message-ID: <1391666747115-33135.post@n5.nabble.com> Simon, thanks for reply -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Set-prefix-for-temporary-queue-name-tp33118p33135.html Sent from the RabbitMQ mailing list archive at Nabble.com. From sathish.kannath at wipro.com Thu Feb 6 07:46:29 2014 From: sathish.kannath at wipro.com (s_kan) Date: Wed, 5 Feb 2014 23:46:29 -0800 (PST) Subject: [rabbitmq-discuss] RabbitMQ message filtering based on routing key Message-ID: <1391672789788-33136.post@n5.nabble.com> Hi All, I am working on an application with NodeJS and RabbitMQ. I ve a client which is a browser, and when it connects to server (Node.js+Socket.io application), i want to look up from the queue with a particular routing key. Ex : publisher publishes with routing keys fail.user1.message and fail.user2.message to a general queue fail.queue and fail.queue is bound to fail.exchange ( It is topic based ) . Now when user1 connects, he is interested only in fail.user1.message, similarly for user2. I would like to know, if this is possible?, currently my subscriber is taking both fail.user1 and fail.user2.message from the context of user1. I am not using multiple queues as there will be lot of users. I am looking to filter out the message Sample Code for subscriber var failExchange = connection.exchange('fail.exchange', {passive:true}); var failQueue = connection.queue('fail.queue',{passive : true},function(queue){ }); failQueue.bind('fail.exchange','fail.'+userId+'.message',function(){ console.log('binding complete'+userId); }); failQueue.subscribe(function(message, headers, deliveryInfo){ .... // Here iam getting all the routing keys in deliveryInfo, how can i tell iam interested only in //fail.user1.message }); Any help/ideas? Thanks -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/RabbitMQ-message-filtering-based-on-routing-key-tp33136.html Sent from the RabbitMQ mailing list archive at Nabble.com. From michael.s.klishin at gmail.com Thu Feb 6 07:54:22 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Thu, 6 Feb 2014 11:54:22 +0400 Subject: [rabbitmq-discuss] RabbitMQ message filtering based on routing key In-Reply-To: <1391672789788-33136.post@n5.nabble.com> References: <1391672789788-33136.post@n5.nabble.com> Message-ID: 2014-02-06 s_kan : > i want to look up from the queue with a particular routing > key. > You need to use multiple queues and a topic exchange. See tutorial 5: http://www.rabbitmq.com/getstarted.html. -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From sathish.kannath at wipro.com Thu Feb 6 08:14:47 2014 From: sathish.kannath at wipro.com (s_kan) Date: Thu, 6 Feb 2014 00:14:47 -0800 (PST) Subject: [rabbitmq-discuss] RabbitMQ message filtering based on routing key In-Reply-To: References: <1391672789788-33136.post@n5.nabble.com> Message-ID: <1391674487376-33138.post@n5.nabble.com> Hi, Thanks for the reply. I would also like to know, if there is any alternate method available apart from the one i ve posted. One of the answer to http://comments.gmane.org/gmane.comp.networking.rabbitmq.general/25333 say about " If you don't want a queue for each possible routing key you could aim for an intermediate granularity. Or partition consumers by capability, create a queue per partition and route messages according to the capabilities required for processing. " Any link/example/documentation for this method available? Thanks -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/RabbitMQ-message-filtering-based-on-routing-key-tp33136p33138.html Sent from the RabbitMQ mailing list archive at Nabble.com. From torbenx at gmx.de Wed Feb 5 12:37:33 2014 From: torbenx at gmx.de (Torben) Date: Wed, 5 Feb 2014 04:37:33 -0800 (PST) Subject: [rabbitmq-discuss] Make sure all messages of the same "timestep" have been sent before closing the program? Message-ID: <53a6187e-579e-46e0-b495-d9a4437dc834@googlegroups.com> Hi all! I have a tool which sends a lot of messages to RabbitMQ. Those messages have a "timestep". The timestep is increased by 1 when the tool is doing its calculations again. For each timestep I get a few hundred result messages. I want to make sure, that if I exit the program ALL the messages of the last timestep calculated have been sent. It would be bad if results of the last timestep would be missing from the queue. How can I accomplish that? My first idea was bulk sending, but RabbitMQ doesn't seem to support this. Is there a way I can use transactions? Like opening the transaction, sending all the messages, then commiting the transaction? -------------- next part -------------- An HTML attachment was scrubbed... URL: From andrew.dulev.mmo at gmail.com Wed Feb 5 13:11:15 2014 From: andrew.dulev.mmo at gmail.com (dredger) Date: Wed, 5 Feb 2014 05:11:15 -0800 (PST) Subject: [rabbitmq-discuss] php rabbitmq Per-Message TTL Issue Message-ID: <53d02d5f-2bb4-43ee-9abe-609ae6fbfc51@googlegroups.com> I'm using different "Per Message TTL" in RabbitMQ queue, and I expect that messages with different TTL should be processed by consumer in due time. To provide this behaviour, I use RabbitMQ queue with huge "x-message-ttl", I add messages to this queue with own value of "Per Message TTL"(see code below). For example add to queue messages with TTL 30, 20 and 10 seconds. The problem in behaviour, how RabbitMQ process the messages with different "Per MessageTTL" in queue, the messages with largest TTL stop the messages with less TTL. So consumer process all mesages together, when largest TTL expire. *Publish message code:* $channel = new AMQPChannel($this->connection); $exchange = new AMQPExchange($channel); $exchange->setName($exchangeName); $exchange->setType(AMQP_EX_TYPE_DIRECT); $ttl = $ttl*1000; $params = array('expiration'=>$ttl); $message = $exchange->publish($msg, $this->queueNotDelayedName, null, $params); -------------- next part -------------- An HTML attachment was scrubbed... URL: From tomas.tulka at atos.net Wed Feb 5 13:53:36 2014 From: tomas.tulka at atos.net (Tomas Tulka) Date: Wed, 5 Feb 2014 05:53:36 -0800 (PST) Subject: [rabbitmq-discuss] shared exchange/queue Message-ID: <1391608416858-33119.post@n5.nabble.com> Hi, I need to have a "topic" shared between two brokers. Consider an exchange called TestDistributedEx and its queue called TestDistributedExQ, and two brokers rabbit at server1, rabbit at server2, and of course two clients connected to their brokers (client1 -> server1, client2 -> server2). Sending a message1 by client1 to server1 and message2 by client2 to server2 I need to get message1 and message2 by client1, and message1 and message2 by client2 - it means two sends, four receives. Is this even possible? I tried shovels, clustering without success... Any idea? Example? Thank you in advance! -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/shared-exchange-queue-tp33119.html Sent from the RabbitMQ mailing list archive at Nabble.com. From blakelyc at gmail.com Wed Feb 5 18:19:33 2014 From: blakelyc at gmail.com (Blake Crawford) Date: Wed, 5 Feb 2014 10:19:33 -0800 (PST) Subject: [rabbitmq-discuss] Can RabbitMQ send messages on configuration changes? Message-ID: I am working on a use-case for which it would be nice for Rabbit to send messages whenever configuration changes (new exchanges, queues, or bindings) are made. Is this possible? Cheers, -b -------------- next part -------------- An HTML attachment was scrubbed... URL: From kalyanceg at gmail.com Thu Feb 6 02:34:44 2014 From: kalyanceg at gmail.com (Kalyana sundaram) Date: Wed, 5 Feb 2014 18:34:44 -0800 (PST) Subject: [rabbitmq-discuss] Rabbitmq synchronization non empty slave Message-ID: <81050d18-18ec-46cd-a9ca-cfbc5d80aaa1@googlegroups.com> In rabbitmq, if I have a queue mirrored across two nodes and the sync-mode is not automatic and if due to some reason partition occurs, and both the mirrors grow independently. What happens when I restart the non trusted partition? Will the data in the non trusted partition get lost after restart? Or will new data be appended to the queues and in due course of time data in both queues will converge? -------------- next part -------------- An HTML attachment was scrubbed... URL: From sagu.prf1 at gmail.com Thu Feb 6 08:27:27 2014 From: sagu.prf1 at gmail.com (sagu prf) Date: Thu, 6 Feb 2014 13:57:27 +0530 Subject: [rabbitmq-discuss] Rabbitmq upgrade from 2.8.7 version to 3.2.3 version Message-ID: Hello Team , Shall we upload the same 2.8.7 rabbit-machine.json config files (queue and vhosts information ? to new version 3.2.3 ? Can you please update whether it break anything ? because 2.8.7 has x-ha-policy-all . Regards sagu From simon at rabbitmq.com Thu Feb 6 08:32:45 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 06 Feb 2014 08:32:45 +0000 Subject: [rabbitmq-discuss] shared exchange/queue In-Reply-To: <1391608416858-33119.post@n5.nabble.com> References: <1391608416858-33119.post@n5.nabble.com> Message-ID: <52F348AD.8070708@rabbitmq.com> On 05/02/2014 13:53, Tomas Tulka wrote: > Hi, I need to have a "topic" shared between two brokers. Hi. > Consider an exchange called TestDistributedEx and its queue called > TestDistributedExQ, and two brokers rabbit at server1, rabbit at server2, and of > course two clients connected to their brokers (client1 -> server1, client2 > -> server2). > > Sending a message1 by client1 to server1 and message2 by client2 to server2 > I need to get message1 and message2 by client1, and message1 and message2 by > client2 - it means two sends, four receives. Sounds like you want a federated exchange: http://www.rabbitmq.com/federated-exchanges.html Cheers, Simon From simon at rabbitmq.com Thu Feb 6 08:34:32 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 06 Feb 2014 08:34:32 +0000 Subject: [rabbitmq-discuss] php rabbitmq Per-Message TTL Issue In-Reply-To: <53d02d5f-2bb4-43ee-9abe-609ae6fbfc51@googlegroups.com> References: <53d02d5f-2bb4-43ee-9abe-609ae6fbfc51@googlegroups.com> Message-ID: <52F34918.2080402@rabbitmq.com> On 05/02/2014 13:11, dredger wrote: > The problem in behaviour, how RabbitMQ process the messages with > different "Per MessageTTL" in queue, the messages with largest TTL stop > the messages with less TTL. So consumer process all mesages together, > when largest TTL expire. From http://www.rabbitmq.com/ttl.html#per-message-ttl : When setting per-message TTL however, expired messages can queue up behind non-expired ones until the latter are consumed or expired. So I'm afraid this is by design. Cheers, Simon From simon at rabbitmq.com Thu Feb 6 08:35:40 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 06 Feb 2014 08:35:40 +0000 Subject: [rabbitmq-discuss] Make sure all messages of the same "timestep" have been sent before closing the program? In-Reply-To: <53a6187e-579e-46e0-b495-d9a4437dc834@googlegroups.com> References: <53a6187e-579e-46e0-b495-d9a4437dc834@googlegroups.com> Message-ID: <52F3495C.4000108@rabbitmq.com> On 05/02/2014 12:37, Torben wrote: > Is there a way I can use transactions? Like > opening the transaction, sending all the messages, then commiting the > transaction? Yes, that will work. Or enable confirms, and then wait for all outstanding confirms before continuing. Cheers, Simon From simon at rabbitmq.com Thu Feb 6 08:37:48 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 06 Feb 2014 08:37:48 +0000 Subject: [rabbitmq-discuss] Rabbitmq upgrade from 2.8.7 version to 3.2.3 version In-Reply-To: References: Message-ID: <52F349DC.2000303@rabbitmq.com> On 06/02/2014 08:27, sagu prf wrote: > Hello Team , > > Shall we upload the same 2.8.7 rabbit-machine.json config files > (queue and vhosts information ? to new version 3.2.3 ? > > Can you please update whether it break anything ? because 2.8.7 has > x-ha-policy-all . It won't break anything. The queues will have the "x-ha-policy" argument set, but in 3.x it won't do anything, it'll just be there. You could edit the JSON to remove it, but you don't have to. Cheers, Simon From simon at rabbitmq.com Thu Feb 6 08:39:06 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 06 Feb 2014 08:39:06 +0000 Subject: [rabbitmq-discuss] Rabbitmq synchronization non empty slave In-Reply-To: <81050d18-18ec-46cd-a9ca-cfbc5d80aaa1@googlegroups.com> References: <81050d18-18ec-46cd-a9ca-cfbc5d80aaa1@googlegroups.com> Message-ID: <52F34A2A.5050102@rabbitmq.com> On 06/02/2014 02:34, Kalyana sundaram wrote: > In rabbitmq, if I have a queue mirrored across two nodes and the > sync-mode is not automatic and if due to some reason partition occurs, > and both the mirrors grow independently. What happens when I restart the > non trusted partition? Everything in it is lost, the trusted partition wins. > Will the data in the non trusted partition get > lost after restart? Yes. Cheers, Simon From mklishin at gopivotal.com Thu Feb 6 08:42:20 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 6 Feb 2014 12:42:20 +0400 Subject: [rabbitmq-discuss] RabbitMQ message filtering based on routing key In-Reply-To: <1391674487376-33138.post@n5.nabble.com> References: <1391672789788-33136.post@n5.nabble.com> <1391674487376-33138.post@n5.nabble.com> Message-ID: On 6 Feb 2014, at 12:14, s_kan wrote: > " > If you don't want a queue for each possible routing key you could aim > for an intermediate granularity. Or partition consumers by capability, > create a queue per partition and route messages according to the > capabilities required for processing. > " > > Any link/example/documentation for this method available? One queue per capability is what tutorial 5 demonstrates. You can also use 1 queue for users with ids 1-100 (say, partition A), another one for 101-200, and so on. Your binding keys will look like users.partitions.a, users.partitions.b and so on. For more sophisticated partitioning strategies see http://blog.travis-ci.com/2013-08-08-solving-the-puzzle-of-scalable-log-processing/ MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Thu Feb 6 08:43:42 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 6 Feb 2014 12:43:42 +0400 Subject: [rabbitmq-discuss] Can RabbitMQ send messages on configuration changes? In-Reply-To: References: Message-ID: <45057533-6049-4878-BD97-0554DD38DDF2@rabbitmq.com> On 5 Feb 2014, at 22:19, Blake Crawford wrote: > I am working on a use-case for which it would be nice for Rabbit to send messages whenever configuration changes (new exchanges, queues, or bindings) are made. Is this possible? No, although this is an interesting idea for a plugin. Currently you?ll have to poll HTTP API. MK Software Engineer, Pivotal/RabbitMQ From sathish.kannath at wipro.com Thu Feb 6 08:50:00 2014 From: sathish.kannath at wipro.com (s_kan) Date: Thu, 6 Feb 2014 00:50:00 -0800 (PST) Subject: [rabbitmq-discuss] RabbitMQ message filtering based on routing key In-Reply-To: References: <1391672789788-33136.post@n5.nabble.com> <1391674487376-33138.post@n5.nabble.com> Message-ID: <1391676600850-33151.post@n5.nabble.com> Hi Michael, Thanks for your help, will check that out. -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/RabbitMQ-message-filtering-based-on-routing-key-tp33136p33151.html Sent from the RabbitMQ mailing list archive at Nabble.com. From matthias at rabbitmq.com Thu Feb 6 09:07:16 2014 From: matthias at rabbitmq.com (Matthias Radestock) Date: Thu, 06 Feb 2014 09:07:16 +0000 Subject: [rabbitmq-discuss] shared exchange/queue In-Reply-To: <52F348AD.8070708@rabbitmq.com> References: <1391608416858-33119.post@n5.nabble.com> <52F348AD.8070708@rabbitmq.com> Message-ID: <52F350C4.6060000@rabbitmq.com> On 06/02/14 08:32, Simon MacMullen wrote: > Sounds like you want a federated exchange: > > http://www.rabbitmq.com/federated-exchanges.html Though clustering should work too, though obviously you'd need to give the two queues different names but then bind them with the same routing key to the exchange on which messages are published. Matthias. From simon at rabbitmq.com Thu Feb 6 10:25:06 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 06 Feb 2014 10:25:06 +0000 Subject: [rabbitmq-discuss] RabbitMQ management down after cluster issue In-Reply-To: References: Message-ID: <52F36302.8000408@rabbitmq.com> On 05/02/2014 10:20PM, Johanes Soetanto wrote: > Hi all, Hi. > We are having problem with our RabbitMQ cluster which we are not quite > sure how to debug the root cause. We have 2 nodes in a cluster and one > of the node (MQ1) had its management console down after clustering > issue/network partition. (I assume this is what happen because we ping > the management console from zabbix every minute) We've had reports of this happening before... > ** {unexpected_info,{mnesia_locker,rabbit at mq2,granted}} ...but thanks, that's not something we've had reported before, and it gives me a decent idea of why this might be happening. > Any hints or help to debug the issue will be appreciated. Well, I think for the time being it's just the case that the management DB might not survive a network partition. Hopefully we can make this more reliable in future. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Thu Feb 6 10:58:33 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 06 Feb 2014 10:58:33 +0000 Subject: [rabbitmq-discuss] No Message rates in UI - 3.2.3 In-Reply-To: References: Message-ID: <52F36AD9.7040608@rabbitmq.com> On 05/02/2014 5:04PM, Duncan McIntyre wrote: > As the subject says, no message rates are appearing in the management UI > on a 3.2.3 instance. Erlang R16B03-1. How are they not appearing? Displaying '0'? Displaying '?'? Are the columns just not there? > The instance is not clustered. Messages counts *are* showing. Which suggests the mgmt DB is alive and well. > Config has: > > {collect_statistics,fine}, > {collect_statistics_interval,5000}, You shouldn't need to specify those. But it would be good to see the config in total, and also the output of "rabbitmqctl report". Finally, is there any clue in the logs? Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From tomas.tulka at atos.net Thu Feb 6 11:10:13 2014 From: tomas.tulka at atos.net (Tomas Tulka) Date: Thu, 6 Feb 2014 03:10:13 -0800 (PST) Subject: [rabbitmq-discuss] shared exchange/queue In-Reply-To: <52F348AD.8070708@rabbitmq.com> References: <1391608416858-33119.post@n5.nabble.com> <52F348AD.8070708@rabbitmq.com> Message-ID: <1391685013647-33155.post@n5.nabble.com> > Sounds like you want a federated exchange The theory looks pretty well, hopefully I will be able to find some working example Thank you! -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/shared-exchange-queue-tp33119p33155.html Sent from the RabbitMQ mailing list archive at Nabble.com. From dmcintyre at gopivotal.com Thu Feb 6 11:31:45 2014 From: dmcintyre at gopivotal.com (Duncan McIntyre) Date: Thu, 6 Feb 2014 11:31:45 +0000 Subject: [rabbitmq-discuss] No Message rates in UI - 3.2.3 In-Reply-To: <52F36AD9.7040608@rabbitmq.com> References: <52F36AD9.7040608@rabbitmq.com> Message-ID: Incoming shows 0.00/s Deliver/get and ack are both blank. Nothing obvious in the logs. root at ubuntu-A:/var/log/rabbitmq# rabbitmqctl report Reporting server status on {{2014,2,6},{11,25,20}} ... Status of node 'rabbit at ubuntu-A' ... [{pid,17472}, {running_applications, [{rabbitmq_federation_management,"RabbitMQ Federation Management", "3.2.3"}, {rabbitmq_management,"RabbitMQ Management Console","3.2.3"}, {rabbitmq_web_dispatch,"RabbitMQ Web Dispatcher","3.2.3"}, {webmachine,"webmachine","1.10.3-rmq3.2.3-gite9359c7"}, {mochiweb,"MochiMedia Web Server","2.7.0-rmq3.2.3-git680dba8"}, {rabbitmq_management_agent,"RabbitMQ Management Agent","3.2.3"}, {rabbitmq_federation,"RabbitMQ Federation","3.2.3"}, {rabbitmq_stomp,"Embedded Rabbit Stomp Adapter","3.2.3"}, {rabbit,"RabbitMQ","3.2.3"}, {mnesia,"MNESIA CXC 138 12","4.11"}, {os_mon,"CPO CXC 138 46","2.2.14"}, {amqp_client,"RabbitMQ AMQP Client","3.2.3"}, {inets,"INETS CXC 138 49","5.9.8"}, {xmerl,"XML parser","1.3.6"}, {sasl,"SASL CXC 138 11","2.3.4"}, {stdlib,"ERTS CXC 138 10","1.19.4"}, {kernel,"ERTS CXC 138 10","2.16.4"}]}, {os,{unix,linux}}, {erlang_version, "Erlang R16B03-1 (erts-5.10.4) [source] [64-bit] [async-threads:30] [hipe] [kernel-poll:true]\n"}, {memory, [{total,180512816}, {connection_procs,55648}, {queue_procs,85569552}, {plugins,313096}, {other_proc,13600136}, {mnesia,61808}, {mgmt_db,551488}, {msg_index,12148640}, {other_ets,25851928}, {binary,17868992}, {code,20055595}, {atom,703377}, {other_system,3732556}]}, {vm_memory_high_watermark,0.4}, {vm_memory_limit,414500454}, {disk_free_limit,50000000}, {disk_free,13575303168}, {file_descriptors, [{total_limit,924},{total_used,6},{sockets_limit,829},{sockets_used,3}]}, {processes,[{limit,1048576},{used,222}]}, {run_queue,0}, {uptime,193752}] Cluster status of node 'rabbit at ubuntu-A' ... [{nodes,[{disc,['rabbit at ubuntu-A']}]}, {running_nodes,['rabbit at ubuntu-A']}, {partitions,[]}] Application environment of node 'rabbit at ubuntu-A' ... [{auth_backends,[rabbit_auth_backend_internal]}, {auth_mechanisms,['PLAIN','AMQPLAIN']}, {backing_queue_module,rabbit_variable_queue}, {cluster_nodes,{[],disc}}, {cluster_partition_handling,autoheal}, {collect_statistics,fine}, {collect_statistics_interval,5000}, {default_permissions,[<<".*">>,<<".*">>,<<".*">>]}, {default_user,<<"guest">>}, {default_user_tags,[administrator]}, {default_vhost,<<"/">>}, {delegate_count,16}, {disk_free_limit,50000000}, {enabled_plugins_file,"/etc/rabbitmq/enabled_plugins"}, {error_logger,{file,"/var/log/rabbitmq/rabbit at ubuntu-A.log"}}, {frame_max,131072}, {halt_on_upgrade_failure,true}, {heartbeat,580}, {hipe_compile,false}, {hipe_modules,[rabbit_reader,rabbit_channel,gen_server2,rabbit_exchange, rabbit_command_assembler,rabbit_framing_amqp_0_9_1, rabbit_basic,rabbit_event,lists,queue,priority_queue, rabbit_router,rabbit_trace,rabbit_misc,rabbit_binary_parser, rabbit_exchange_type_direct,rabbit_guid,rabbit_net, rabbit_amqqueue_process,rabbit_variable_queue, rabbit_binary_generator,rabbit_writer,delegate,gb_sets,lqueue, sets,orddict,rabbit_amqqueue,rabbit_limiter,gb_trees, rabbit_queue_index,rabbit_exchange_decorator,gen,dict,ordsets, file_handle_cache,rabbit_msg_store,array, rabbit_msg_store_ets_index,rabbit_msg_file, rabbit_exchange_type_fanout,rabbit_exchange_type_topic,mnesia, mnesia_lib,rpc,mnesia_tm,qlc,sofs,proplists,credit_flow,pmon, ssl_connection,tls_connection,ssl_record,tls_record,gen_fsm, ssl]}, {included_applications,[]}, {log_levels,[{connection,info}]}, {msg_store_file_size_limit,16777216}, {msg_store_index_module,rabbit_msg_store_ets_index}, {plugins_dir,"/usr/lib/rabbitmq/lib/rabbitmq_server-3.2.3/sbin/../plugins"}, {plugins_expand_dir,"/var/lib/rabbitmq/mnesia/rabbit at ubuntu-A-plugins-expand "}, {queue_index_max_journal_entries,65536}, {reverse_dns_lookups,false}, {sasl_error_logger,{file,"/var/log/rabbitmq/rabbit at ubuntu-A-sasl.log"}}, {server_properties,[]}, {ssl_apps,[asn1,crypto,public_key,ssl]}, {ssl_cert_login_from,distinguished_name}, {ssl_listeners,[]}, {ssl_options,[]}, {tcp_listen_options,[binary, {packet,raw}, {reuseaddr,true}, {backlog,128}, {nodelay,true}, {linger,{true,0}}, {exit_on_close,false}]}, {tcp_listeners,[5672]}, {trace_vhosts,[]}, {vm_memory_high_watermark,0.4}, {vm_memory_high_watermark_paging_ratio,0.5}] Connections: pid name port peer_port host peer_host ssl peer_cert_subject peer_cert_issuer peer_cert_validity auth_mechanism ssl_protocol ssl_key_exchange ssl_cipher ssl_hash protocol user vhost timeout frame_max client_properties recv_oct recv_cnt send_oct send_cnt send_pend state last_blocked_by last_blocked_age channels <'rabbit at ubuntu-A'.3.6726.8> 172.16.192.1:50769 -> 172.16.192.100:5672 5672 50769 172.16.192.100172.16.192.1 false PLAIN {0,9,1} guest / 580 131072 [{"product","RabbitMQ"},{"information","Licensed under the MPL. See http://www.rabbitmq.com/"},{"platform","Java"},{"capabilities",[{"exchange_exchange_bindings",true},{"authentication_failure_close",true},{"consumer_cancel_notify",true},{"basic.nack",true},{"publisher_confirms",true},{"connection.blocked",true}]},{"copyright","Copyright (C) 2007-2013 GoPivotal, Inc."},{"version","3.2.2"}] 14861972 99260 573 18 0 running none infinity 1 Channels: pid name connection number user vhost transactional confirm consumer_count messages_unacknowledged messages_unconfirmed messages_uncommitted acks_uncommitted prefetch_count client_flow_blocked <'rabbit at ubuntu-A'.3.6734.8> 172.16.192.1:50769 -> 172.16.192.100:5672 (1) <'rabbit at ubuntu-A'.3.6726.8> 1guest / false false 0 0 0 0 0 0 false Queues on /: pid name durable auto_delete arguments owner_pid policy exclusive_consumer_pid exclusive_consumer_tag messages_ready messages_unacknowledged messages consumers memory slave_pids synchronised_slave_pids backing_queue_status status <'rabbit at ubuntu-A'.3.6634.8> q1 true false [] 100000 0 100000 0 85564144 [{q1,3273}, {q2,12055}, {delta,{delta,59264,25408,84672}}, {q3,12161}, {q4,47103}, {len,100000}, {pending_acks,0}, {target_ram_count,infinity}, {ram_msg_count,50376}, {ram_ack_count,0}, {next_seq_id,100000}, {persistent_count,100000}, {avg_ingress_rate,69.52886647196787}, {avg_egress_rate,0.0}, {avg_ack_ingress_rate,0.0}, {avg_ack_egress_rate,0.0}] running Exchanges on /: name type durable auto_delete internal arguments policy direct true false false [] amq.direct direct true false false [] amq.fanout fanout true false false [] amq.headers headers true false false [] amq.match headers true false false [] amq.rabbitmq.log topic true false false [] amq.rabbitmq.trace topic true false false [] amq.topic topic true false false [] ex1 fanout true false false [] Bindings on /: source_name source_kind destination_name destination_kind routing_key arguments exchange q1 queue q1 [] ex1 exchange q1 queue [] Consumers on /: Permissions on /: user configure write read guest .* .* .* Policies on /: Parameters on /: ...done. On Thu, Feb 6, 2014 at 10:58 AM, Simon MacMullen wrote: > On 05/02/2014 5:04PM, Duncan McIntyre wrote: > >> As the subject says, no message rates are appearing in the management UI >> on a 3.2.3 instance. Erlang R16B03-1. >> > > How are they not appearing? Displaying '0'? Displaying '?'? Are the > columns just not there? > > The instance is not clustered. Messages counts *are* showing. >> > > Which suggests the mgmt DB is alive and well. > > Config has: >> >> {collect_statistics,fine}, >> {collect_statistics_interval,5000}, >> > > You shouldn't need to specify those. But it would be good to see the > config in total, and also the output of "rabbitmqctl report". > > Finally, is there any clue in the logs? > > Cheers, Simon > > -- > Simon MacMullen > RabbitMQ, Pivotal > -- ---- Duncan McIntyre Senior Consultant dmcintyre at gopivotal.com +44 7917 580 118 -------------- next part -------------- An HTML attachment was scrubbed... URL: From tomas.tulka at atos.net Thu Feb 6 12:21:56 2014 From: tomas.tulka at atos.net (Tomas Tulka) Date: Thu, 6 Feb 2014 04:21:56 -0800 (PST) Subject: [rabbitmq-discuss] shared exchange/queue In-Reply-To: <52F348AD.8070708@rabbitmq.com> References: <1391608416858-33119.post@n5.nabble.com> <52F348AD.8070708@rabbitmq.com> Message-ID: <1391689316542-33157.post@n5.nabble.com> While I am trying an example setup from http://www.rabbitmq.com/federation.html, running rabbitmqctl set_policy --apply-to exchanges federate-me "^amq\." '{"federation-upstream-set":"all"}' I got this error: Error: invalid command 'set_policy --apply-to exchanges federate-me ^TestDistributedExTopic {"federation-upstream-set":"all"}' I am using RabbitMQ 3.1.5. What is this about? Thanks! -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/shared-exchange-queue-tp33119p33157.html Sent from the RabbitMQ mailing list archive at Nabble.com. From simon at rabbitmq.com Thu Feb 6 12:50:35 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 06 Feb 2014 12:50:35 +0000 Subject: [rabbitmq-discuss] Can RabbitMQ send messages on configuration changes? In-Reply-To: <45057533-6049-4878-BD97-0554DD38DDF2@rabbitmq.com> References: <45057533-6049-4878-BD97-0554DD38DDF2@rabbitmq.com> Message-ID: <52F3851B.9090607@rabbitmq.com> On 06/02/2014 8:43AM, Michael Klishin wrote: > On 5 Feb 2014, at 22:19, Blake Crawford wrote: > >> I am working on a use-case for which it would be nice for Rabbit to send messages whenever configuration changes (new exchanges, queues, or bindings) are made. Is this possible? > > No, although this is an interesting idea for a plugin. People have been asking for this, on and off. So I wrote something this morning: https://github.com/simonmacmullen/rabbitmq-event-exchange Feedback appreciated. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Thu Feb 6 12:52:26 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 06 Feb 2014 12:52:26 +0000 Subject: [rabbitmq-discuss] shared exchange/queue In-Reply-To: <1391689316542-33157.post@n5.nabble.com> References: <1391608416858-33119.post@n5.nabble.com> <52F348AD.8070708@rabbitmq.com> <1391689316542-33157.post@n5.nabble.com> Message-ID: <52F3858A.6080405@rabbitmq.com> On 06/02/2014 12:21PM, Tomas Tulka wrote: > Error: invalid command 'set_policy --apply-to exchanges federate-me > ^TestDistributedExTopic {"federation-upstream-set":"all"}' > > I am using RabbitMQ 3.1.5. --apply-to was added in 3.2.0. You can omit it in 3.1.x, since only exchanges can be federated with that version. You can read the docs for 3.1.x here: http://previous.rabbitmq.com/v3_1_x/federation.html Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From michael.s.klishin at gmail.com Thu Feb 6 12:56:17 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Thu, 6 Feb 2014 16:56:17 +0400 Subject: [rabbitmq-discuss] Can RabbitMQ send messages on configuration changes? In-Reply-To: <52F3851B.9090607@rabbitmq.com> References: <45057533-6049-4878-BD97-0554DD38DDF2@rabbitmq.com> <52F3851B.9090607@rabbitmq.com> Message-ID: 2014-02-06 16:50 GMT+04:00 Simon MacMullen : > https://github.com/simonmacmullen/rabbitmq-event-exchange > > Feedback appreciated. Looks good. I'd rename the exchange to "amq.rabbitmq.events", though. -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From pat at munkiisoft.com Thu Feb 6 14:41:25 2014 From: pat at munkiisoft.com (Patrick Long) Date: Thu, 6 Feb 2014 14:41:25 +0000 Subject: [rabbitmq-discuss] bad_header,"GET /\r\n\r" Message-ID: As of yesterday I am seeing this error in the RabbitMQ logs *{bad_header,<<"GET /\r\n\r">>}* I have seen a common bad_header issue reported by others but that has very different content in the error message. Does anyone know what might be causing this one? Thanks -- Patrick Long - Munkiisoft Ltd -------------- next part -------------- An HTML attachment was scrubbed... URL: From blakelyc at gmail.com Thu Feb 6 14:54:49 2014 From: blakelyc at gmail.com (Blake Crawford) Date: Thu, 6 Feb 2014 09:54:49 -0500 Subject: [rabbitmq-discuss] Can RabbitMQ send messages on configuration changes? In-Reply-To: <52F3851B.9090607@rabbitmq.com> References: <45057533-6049-4878-BD97-0554DD38DDF2@rabbitmq.com> <52F3851B.9090607@rabbitmq.com> Message-ID: On Thu, Feb 6, 2014 at 7:50 AM, Simon MacMullen wrote: > On 06/02/2014 8:43AM, Michael Klishin wrote: > >> On 5 Feb 2014, at 22:19, Blake Crawford wrote: >> >> I am working on a use-case for which it would be nice for Rabbit to send >>> messages whenever configuration changes (new exchanges, queues, or >>> bindings) are made. Is this possible? >>> >> >> No, although this is an interesting idea for a plugin. >> > > People have been asking for this, on and off. So I wrote something this > morning: > > https://github.com/simonmacmullen/rabbitmq-event-exchange > > Feedback appreciated. > > Hi Simon: I'm going to kick the tires on this today or tomorrow. It looks to do exactly what I need. Thanks! -------------- next part -------------- An HTML attachment was scrubbed... URL: From tomas.tulka at atos.net Thu Feb 6 14:55:08 2014 From: tomas.tulka at atos.net (Tomas Tulka) Date: Thu, 6 Feb 2014 06:55:08 -0800 (PST) Subject: [rabbitmq-discuss] shared exchange/queue In-Reply-To: <52F3858A.6080405@rabbitmq.com> References: <1391608416858-33119.post@n5.nabble.com> <52F348AD.8070708@rabbitmq.com> <1391689316542-33157.post@n5.nabble.com> <52F3858A.6080405@rabbitmq.com> Message-ID: <1391698508451-33162.post@n5.nabble.com> Thank you a lot! My issue is solved now :) -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/shared-exchange-queue-tp33119p33162.html Sent from the RabbitMQ mailing list archive at Nabble.com. From pat at munkiisoft.com Thu Feb 6 14:58:21 2014 From: pat at munkiisoft.com (Patrick Long) Date: Thu, 6 Feb 2014 14:58:21 +0000 Subject: [rabbitmq-discuss] bad_header,"GET /\r\n\r" In-Reply-To: References: Message-ID: The main change I made recently was rather than doing a channel.close(); I would do channel.Close(200, "RabbitMQ.QueueProvider No Messages on queue"); I was trying to add more info to the reasons for closing connections I am guessing that that is just something I should not be doing. Correct? Would that be causing the error? On 6 February 2014 14:41, Patrick Long wrote: > As of yesterday I am seeing this error in the RabbitMQ logs > > *{bad_header,<<"GET /\r\n\r">>}* > > I have seen a common bad_header issue reported by others but that has very > different content in the error message. > > Does anyone know what might be causing this one? > > Thanks > > -- > Patrick Long - Munkiisoft Ltd > -- Patrick Long - Munkiisoft Ltd -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Thu Feb 6 15:30:46 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 06 Feb 2014 15:30:46 +0000 Subject: [rabbitmq-discuss] bad_header,"GET /\r\n\r" In-Reply-To: References: Message-ID: <52F3AAA6.30803@rabbitmq.com> On 06/02/2014 2:41PM, Patrick Long wrote: > As of yesterday I am seeing this error in the RabbitMQ logs > > *{bad_header,<<"GET /\r\n\r">>}* Something is trying to speak HTTP on the AMQP port. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From marcus.kroeger at gmail.com Thu Feb 6 16:42:51 2014 From: marcus.kroeger at gmail.com (=?ISO-8859-1?Q?Marcus_Kr=F6ger?=) Date: Thu, 6 Feb 2014 17:42:51 +0100 Subject: [rabbitmq-discuss] Set prefix for temporary queue name In-Reply-To: <1391666747115-33135.post@n5.nabble.com> References: <1391602960488-33118.post@n5.nabble.com> <52F24918.2070606@rabbitmq.com> <1391666747115-33135.post@n5.nabble.com> Message-ID: But isn't it possible to set up a policy that only allows queue creation if they start with a specific prefix? Marcus Am 06.02.2014 07:06 schrieb "Haster" : > Simon, thanks for reply > > > > -- > View this message in context: > http://rabbitmq.1065348.n5.nabble.com/Set-prefix-for-temporary-queue-name-tp33118p33135.html > Sent from the RabbitMQ mailing list archive at Nabble.com. > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Thu Feb 6 17:38:47 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Thu, 6 Feb 2014 21:38:47 +0400 Subject: [rabbitmq-discuss] Set prefix for temporary queue name In-Reply-To: References: <1391602960488-33118.post@n5.nabble.com> <52F24918.2070606@rabbitmq.com> <1391666747115-33135.post@n5.nabble.com> Message-ID: 2014-02-06 20:42 GMT+04:00 Marcus Kr?ger : > But isn't it possible to set up a policy that only allows queue creation > if they start with a specific prefix? It is: http://www.rabbitmq.com/access-control.html http://www.rabbitmq.com/man/rabbitmqctl.1.man.html#Access%20control -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From tgvt53 at gmail.com Thu Feb 6 18:07:12 2014 From: tgvt53 at gmail.com (tgv amni) Date: Thu, 6 Feb 2014 13:07:12 -0500 Subject: [rabbitmq-discuss] multiple message listeners on a single reply queue Message-ID: Hi We are beginners in rabbitmq. We use rabbitmq 3.2.2. We use spring amqp. I recently observed an issue with multiple listeners on the same reply queue when performance testing our application. Here is the test scenario: 50 Concurrent users post a request to Service F to create an entity A. The message contains a user id and a timestamp. Each concurrent user posts roughly two messages per second. F publishes this message to a non-durable queue via a topic exchange (using convertSendAndReceive) and waits for the response on a fixed reply queue ReplyQ1. Service A picks up this message and creates this entity (basically an entry in a table) after validating that the user id wihin that message is valid. For the validation, Service A sends this message to another non-durable queue via a topic exchange (convertSendAndReceive) and waits for a response on another fixed reply queue, ReplyQ2. A validating service V picks up this user id, validates it (basically a select from a db table) and then sends the response back to ReplyQ2. Service A picks this up, based on the message, creates the entity and then sends response to ReplyQ1. All messages are non-persistent. No concurrency or prefetch settings configured on the listeners. *CreateEntity A Request -> Service F -> Q1 -> Service A -> Q2 - Service V* *Service V-> ReplyQ2 -> Service A (creates entity A if user valid) -> ReplyQ1 -> Service F* F, A and V all live within the same tomcat instance. When a second tomcat instance was started with service A and V, I started to notice warning messages in tomcat logs: *WARN : org.springframework.amqp.rabbit.core.RabbitTemplate - Reply received after timeout for b3fd4f57-0403-4704-8f16-8c3055ca0cd9* It looked like messages were not picked up by the correct listener from the validation response queues. Rabbitmq logs did not show any errors. From the management console i saw 40-60 messages always staying in ready state in Q1, with a few in unacked state. Response times were very high for this create Entity A request (10 seconds) and only about 5 transactions were processed per second. Tests were run in AWS on m1.large instances. High response time was not caused by network latency. Network latency was really small. On testing with separate reply queues for the user id validation response, (ReplyQ21 and ReplyQ22 instead of ReplyQ2), response times improved (1 second) and more transactions (roughly 70) were processed per second. Is this a good design approach for this scenario? Or is there a better way to handle this ? Please let me know if you need any other information. Thanks. -------------- next part -------------- An HTML attachment was scrubbed... URL: From grussell at gopivotal.com Thu Feb 6 18:22:17 2014 From: grussell at gopivotal.com (Gary Russell) Date: Thu, 6 Feb 2014 13:22:17 -0500 Subject: [rabbitmq-discuss] multiple message listeners on a single reply queue In-Reply-To: References: Message-ID: You cannot share reply queues across instances; unlike JMS, AMQP has no notion of a message selector to choose messages from a queue, so each instance needs its own reply queue. When the reply goes to the wrong instance, the originating instance thread will be suspended for (default) 5 seconds (modifiable by setting replyTimeout). You can increase throughput by increasing the concurrency on the listener containers. The upcoming 1.3 release of spring-AMQP allows the concurrency to vary on demand; with 1.2.x you have to stop/start the container to change the concurrency. On Thu, Feb 6, 2014 at 1:07 PM, tgv amni wrote: > Hi > > We are beginners in rabbitmq. We use rabbitmq 3.2.2. We use spring amqp. > > > I recently observed an issue with multiple listeners on the same reply > queue when performance testing > > our application. > > > > Here is the test scenario: > > 50 Concurrent users post a request to Service F to create an entity A. The > message contains a user id and a timestamp. Each concurrent user posts > roughly two messages per second. > > > > F publishes this message to a non-durable queue via a topic exchange > (using convertSendAndReceive) and waits for the response on a fixed reply > queue ReplyQ1. > > > > Service A picks up this message and creates this entity (basically an > entry in a table) after > > validating that the user id wihin that message is valid. > > > > For the validation, Service A sends this message to another non-durable > queue via a topic exchange (convertSendAndReceive) and waits for a response > on > > another fixed reply queue, ReplyQ2. > > > > A validating service V picks up this user id, validates it (basically a > select from a db table) and then sends the response back to ReplyQ2. > > Service A picks this up, based on the message, creates the entity and then > sends response to ReplyQ1. > > > All messages are non-persistent. No concurrency or prefetch settings > configured on the listeners. > > > > *CreateEntity A Request -> Service F -> Q1 -> Service A -> Q2 - Service V* > > *Service V-> ReplyQ2 -> Service A (creates entity A if user valid) -> > ReplyQ1 -> Service F* > > > > F, A and V all live within the same tomcat instance. When a second tomcat > instance was started with service A and V, I started to notice warning > messages in tomcat logs: > > > > *WARN : org.springframework.amqp.rabbit.core.RabbitTemplate - Reply > received after timeout for b3fd4f57-0403-4704-8f16-8c3055ca0cd9* > > > > It looked like messages were not picked up by the correct listener from > the validation response queues. Rabbitmq logs did not show any errors. From > the management console i saw 40-60 messages always staying in ready state > in Q1, with a few in unacked state. > > > > Response times were very high for this create Entity A request (10 > seconds) and only about 5 transactions were processed per second. Tests > were run in AWS on m1.large instances. > > High response time was not caused by network latency. Network latency was > really small. > > > > On testing with separate reply queues for the user id validation response, > > (ReplyQ21 and ReplyQ22 instead of ReplyQ2), response times improved (1 > second) and more transactions (roughly 70) were processed per second. > > > > Is this a good design approach for this scenario? Or is there a better way > to handle this ? > > > > Please let me know if you need any other information. > > > > Thanks. > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From Thara.Vadakkeveedu at Kronos.com Thu Feb 6 18:27:21 2014 From: Thara.Vadakkeveedu at Kronos.com (Vadakkeveedu, Thara) Date: Thu, 6 Feb 2014 18:27:21 +0000 Subject: [rabbitmq-discuss] multiple message listeners on a single reply queue In-Reply-To: References: Message-ID: <48F1E182B1021B449414C85E713CE82521DA8654@WLT-MBX03.KRONOS.com> Thank you!! Thara Vadakkeveedu | Performance Engineer | Kronos Incorporated tel: +1 978 947 4123 Kronos | Time & Attendance * Scheduling * Absence Management * HR & Payroll * Hiring * Labor Analytics Join Kronos on: kronos.com | Facebook | Twitter | LinkedIn | YouTube From: rabbitmq-discuss [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Gary Russell Sent: Thursday, February 06, 2014 1:22 PM To: Discussions about RabbitMQ Subject: Re: [rabbitmq-discuss] multiple message listeners on a single reply queue You cannot share reply queues across instances; unlike JMS, AMQP has no notion of a message selector to choose messages from a queue, so each instance needs its own reply queue. When the reply goes to the wrong instance, the originating instance thread will be suspended for (default) 5 seconds (modifiable by setting replyTimeout). You can increase throughput by increasing the concurrency on the listener containers. The upcoming 1.3 release of spring-AMQP allows the concurrency to vary on demand; with 1.2.x you have to stop/start the container to change the concurrency. On Thu, Feb 6, 2014 at 1:07 PM, tgv amni > wrote: Hi We are beginners in rabbitmq. We use rabbitmq 3.2.2. We use spring amqp. I recently observed an issue with multiple listeners on the same reply queue when performance testing our application. Here is the test scenario: 50 Concurrent users post a request to Service F to create an entity A. The message contains a user id and a timestamp. Each concurrent user posts roughly two messages per second. F publishes this message to a non-durable queue via a topic exchange (using convertSendAndReceive) and waits for the response on a fixed reply queue ReplyQ1. Service A picks up this message and creates this entity (basically an entry in a table) after validating that the user id wihin that message is valid. For the validation, Service A sends this message to another non-durable queue via a topic exchange (convertSendAndReceive) and waits for a response on another fixed reply queue, ReplyQ2. A validating service V picks up this user id, validates it (basically a select from a db table) and then sends the response back to ReplyQ2. Service A picks this up, based on the message, creates the entity and then sends response to ReplyQ1. All messages are non-persistent. No concurrency or prefetch settings configured on the listeners. CreateEntity A Request -> Service F -> Q1 -> Service A -> Q2 - Service V Service V-> ReplyQ2 -> Service A (creates entity A if user valid) -> ReplyQ1 -> Service F F, A and V all live within the same tomcat instance. When a second tomcat instance was started with service A and V, I started to notice warning messages in tomcat logs: WARN : org.springframework.amqp.rabbit.core.RabbitTemplate - Reply received after timeout for b3fd4f57-0403-4704-8f16-8c3055ca0cd9 It looked like messages were not picked up by the correct listener from the validation response queues. Rabbitmq logs did not show any errors. From the management console i saw 40-60 messages always staying in ready state in Q1, with a few in unacked state. Response times were very high for this create Entity A request (10 seconds) and only about 5 transactions were processed per second. Tests were run in AWS on m1.large instances. High response time was not caused by network latency. Network latency was really small. On testing with separate reply queues for the user id validation response, (ReplyQ21 and ReplyQ22 instead of ReplyQ2), response times improved (1 second) and more transactions (roughly 70) were processed per second. Is this a good design approach for this scenario? Or is there a better way to handle this ? Please let me know if you need any other information. Thanks. _______________________________________________ rabbitmq-discuss mailing list rabbitmq-discuss at lists.rabbitmq.com https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss -------------- next part -------------- An HTML attachment was scrubbed... URL: From marcus.kroeger at gmail.com Thu Feb 6 19:09:46 2014 From: marcus.kroeger at gmail.com (=?ISO-8859-1?Q?Marcus_Kr=F6ger?=) Date: Thu, 06 Feb 2014 20:09:46 +0100 Subject: [rabbitmq-discuss] Rabbitmq upgrade from 2.8.7 version to 3.2.3 version In-Reply-To: <52F349DC.2000303@rabbitmq.com> References: <52F349DC.2000303@rabbitmq.com> Message-ID: <52F3DDFA.2090707@gmail.com> Hi, the only issue I remember of when upgrading from 2.7.1 to 3.x version was when setting a different management listener port in rabbitmq config file didn't work anymore as the naming for defining it changed. The current setting looks like "rabbitmq_management listener [{port,15682}]" as the old one was I think without rabbitmq. cheers Marcus Am 06.02.2014 09:37, schrieb Simon MacMullen: > On 06/02/2014 08:27, sagu prf wrote: >> Hello Team , >> >> Shall we upload the same 2.8.7 rabbit-machine.json config files >> (queue and vhosts information ? to new version 3.2.3 ? >> >> Can you please update whether it break anything ? because 2.8.7 has >> x-ha-policy-all . > > It won't break anything. The queues will have the "x-ha-policy" > argument set, but in 3.x it won't do anything, it'll just be there. > > You could edit the JSON to remove it, but you don't have to. > > Cheers, Simon > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss From engmoh58 at gmail.com Thu Feb 6 09:02:36 2014 From: engmoh58 at gmail.com (Mahitab Farid) Date: Thu, 6 Feb 2014 11:02:36 +0200 Subject: [rabbitmq-discuss] How can I Use RabbitMQ between two application while I can't change one of them? Message-ID: Hi, I have an existing system consisting of two nodes, a client/server model. I want to exchange messages between them using RabbitMQ. I.e. The client would send all its requests to RabbitMQ and the server would listen to the queue indefinitely, consume any messages that arrives and then act upon it. I can change the server as needed, but my problem is, I cannot change the client's behavior. How can I send back the response to the client? The client node understands HTTP request/response, what shall I do after configure the other application server to RabbitMQ instead of my app directly. Regards Mahitab -------------- next part -------------- An HTML attachment was scrubbed... URL: From rahulkj at gmail.com Thu Feb 6 23:07:35 2014 From: rahulkj at gmail.com (Rahul Jain) Date: Thu, 6 Feb 2014 15:07:35 -0800 (PST) Subject: [rabbitmq-discuss] Issue with RabbitMQ 2-way federation setup Message-ID: <9a3404b8-fecd-4994-8299-8d33a6ffb378@googlegroups.com> Hi, I've been trying to setup a 2-way federation for my 2 nodes A and B. I ran the following commands on Node A: sudo rabbitmqctl set_parameter federation-upstream rabbit2 '{"uri":"amqp://"}' sudo rabbitmqctl set_parameter federation local-nodename '"rabbit1"' sudo rabbitmqctl set_policy federate-me "^test\." '{"federation-upstream-set":"test"}' commands on Node B: sudo rabbitmqctl set_parameter federation-upstream rabbit2 '{"uri":"amqp://"}' sudo rabbitmqctl set_parameter federation local-nodename '"rabbit2"' sudo rabbitmqctl set_policy federate-me "^test\." '{"federation-upstream-set":"test"}' Now I created a fanout exchange and queue on Node A, namely test.fanout-Exchange and test.fanout-Queue, using the RabbitMQ console. When I publish a message using RabbitMQ console of Node A, I see the message reaches the queue on Node A alone, and not on Node B. Any clues? -------------- next part -------------- An HTML attachment was scrubbed... URL: From arunrao.seattle at gmail.com Fri Feb 7 00:16:37 2014 From: arunrao.seattle at gmail.com (Arun Rao) Date: Thu, 6 Feb 2014 16:16:37 -0800 Subject: [rabbitmq-discuss] Issue with RabbitMQ 2-way federation setup In-Reply-To: <9a3404b8-fecd-4994-8299-8d33a6ffb378@googlegroups.com> References: <9a3404b8-fecd-4994-8299-8d33a6ffb378@googlegroups.com> Message-ID: try using this definition on your policy, '{"federation-upstream-set":"all"}' Thanks! On Thu, Feb 6, 2014 at 3:07 PM, Rahul Jain wrote: > Hi, > > I've been trying to setup a 2-way federation for my 2 nodes A and B. > > I ran the following commands on Node A: > > sudo rabbitmqctl set_parameter federation-upstream rabbit2 '{"uri":"amqp://"}' > sudo rabbitmqctl set_parameter federation local-nodename '"rabbit1"' > sudo rabbitmqctl set_policy federate-me "^test\." '{"federation-upstream-set":"test"}' > > > commands on Node B: > > sudo rabbitmqctl set_parameter federation-upstream rabbit2 '{"uri":"amqp://"}' > sudo rabbitmqctl set_parameter federation local-nodename '"rabbit2"' > sudo rabbitmqctl set_policy federate-me "^test\." '{"federation-upstream-set":"test"}' > > > Now I created a fanout exchange and queue on Node A, namely > test.fanout-Exchange and test.fanout-Queue, using the RabbitMQ console. > > When I publish a message using RabbitMQ console of Node A, I see the > message reaches the queue on Node A alone, and not on Node B. > > Any clues? > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From rahulkj at gmail.com Fri Feb 7 00:56:20 2014 From: rahulkj at gmail.com (Rahul) Date: Thu, 6 Feb 2014 18:56:20 -0600 Subject: [rabbitmq-discuss] Issue with RabbitMQ 2-way federation setup In-Reply-To: References: <9a3404b8-fecd-4994-8299-8d33a6ffb378@googlegroups.com> Message-ID: That doesn't do the trick. Is the configuration of federation correct? On node A I configure Node B as upstream, and viceversa on Node B. Also does federation work for all Exchange types (Direct/Topic/Fanout/Headers) I'm new to this concept and trying to get the 2-way communication work. On Thu, Feb 6, 2014 at 6:16 PM, Arun Rao wrote: > try using this definition on your policy, > > > '{"federation-upstream-set":"all"}' > > Thanks! > > > On Thu, Feb 6, 2014 at 3:07 PM, Rahul Jain wrote: > >> Hi, >> >> I've been trying to setup a 2-way federation for my 2 nodes A and B. >> >> I ran the following commands on Node A: >> >> sudo rabbitmqctl set_parameter federation-upstream rabbit2 '{"uri":"amqp://"}' >> sudo rabbitmqctl set_parameter federation local-nodename '"rabbit1"' >> sudo rabbitmqctl set_policy federate-me "^test\." '{"federation-upstream-set":"test"}' >> >> >> commands on Node B: >> >> sudo rabbitmqctl set_parameter federation-upstream rabbit2 '{"uri":"amqp://"}' >> sudo rabbitmqctl set_parameter federation local-nodename '"rabbit2"' >> sudo rabbitmqctl set_policy federate-me "^test\." '{"federation-upstream-set":"test"}' >> >> >> Now I created a fanout exchange and queue on Node A, namely >> test.fanout-Exchange and test.fanout-Queue, using the RabbitMQ console. >> >> When I publish a message using RabbitMQ console of Node A, I see the >> message reaches the queue on Node A alone, and not on Node B. >> >> Any clues? >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> >> > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -- Regards, Rahul -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Fri Feb 7 01:00:21 2014 From: cwstorm at gmail.com (cw storm) Date: Thu, 6 Feb 2014 20:00:21 -0500 Subject: [rabbitmq-discuss] Callback - handleDelivery Message-ID: I have a service which looks like below. For some reason, I get a NullPointerException error when it tries to perform the "doInvoke". How can I have the doInvoke service execute successfully without going to the catch block. It has to be done inside the "handleDelivery". It works if I perform the "doInvoke" outside of the "handleDelivery". try { channel.basicConsume(strQueueName, false, new DefaultConsumer(channel) { @Override public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties props, byte[] body) throws IOException { try { Service.doInvoke(NSName, pipeline); } catch (Exception e) { } } }); } catch (Exception e1) { } -------------- next part -------------- An HTML attachment was scrubbed... URL: From arunrao.seattle at gmail.com Fri Feb 7 01:09:03 2014 From: arunrao.seattle at gmail.com (Arun Rao) Date: Thu, 6 Feb 2014 17:09:03 -0800 Subject: [rabbitmq-discuss] Issue with RabbitMQ 2-way federation setup In-Reply-To: References: <9a3404b8-fecd-4994-8299-8d33a6ffb378@googlegroups.com> Message-ID: Yes, I got this working for a topic exchange. Can you first try to do one way federation? I had some issues with using a different virtual host name from the upstream cluster. I am using you are using "/" default vhost. What does it say as federation status on web UI? Also, what is your rabbitmq version? Thanks! -arun. On Thu, Feb 6, 2014 at 4:56 PM, Rahul wrote: > That doesn't do the trick. > Is the configuration of federation correct? > > On node A I configure Node B as upstream, and viceversa on Node B. > > Also does federation work for all Exchange types > (Direct/Topic/Fanout/Headers) > > I'm new to this concept and trying to get the 2-way communication work. > > > On Thu, Feb 6, 2014 at 6:16 PM, Arun Rao wrote: > >> try using this definition on your policy, >> >> >> '{"federation-upstream-set":"all"}' >> >> Thanks! >> >> >> On Thu, Feb 6, 2014 at 3:07 PM, Rahul Jain wrote: >> >>> Hi, >>> >>> I've been trying to setup a 2-way federation for my 2 nodes A and B. >>> >>> I ran the following commands on Node A: >>> >>> sudo rabbitmqctl set_parameter federation-upstream rabbit2 '{"uri":"amqp://"}' >>> sudo rabbitmqctl set_parameter federation local-nodename '"rabbit1"' >>> sudo rabbitmqctl set_policy federate-me "^test\." '{"federation-upstream-set":"test"}' >>> >>> >>> commands on Node B: >>> >>> sudo rabbitmqctl set_parameter federation-upstream rabbit2 '{"uri":"amqp://"}' >>> sudo rabbitmqctl set_parameter federation local-nodename '"rabbit2"' >>> sudo rabbitmqctl set_policy federate-me "^test\." '{"federation-upstream-set":"test"}' >>> >>> >>> Now I created a fanout exchange and queue on Node A, namely >>> test.fanout-Exchange and test.fanout-Queue, using the RabbitMQ console. >>> >>> When I publish a message using RabbitMQ console of Node A, I see the >>> message reaches the queue on Node A alone, and not on Node B. >>> >>> Any clues? >>> >>> _______________________________________________ >>> rabbitmq-discuss mailing list >>> rabbitmq-discuss at lists.rabbitmq.com >>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >>> >>> >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> >> > > > -- > Regards, > Rahul > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From rahulkj at gmail.com Fri Feb 7 01:28:41 2014 From: rahulkj at gmail.com (Rahul) Date: Thu, 6 Feb 2014 19:28:41 -0600 Subject: [rabbitmq-discuss] Issue with RabbitMQ 2-way federation setup In-Reply-To: References: <9a3404b8-fecd-4994-8299-8d33a6ffb378@googlegroups.com> Message-ID: I am using the latest RabbitMQ version 3.2.3 and as learning I'm using the deafult vhost which is "/" My one way federation is working as I can see the messages posted from Node B reaches the queue that was created on Node A So one behavior that I've seen is, the message once published, reaches the queue where it was created. Can you post your steps/configuration? Not sure what I'm missing. I assume with 2 way federation, messages posted on a exchange that was created on Node A, will be available on Node A and Node B? On Thu, Feb 6, 2014 at 7:09 PM, Arun Rao wrote: > Yes, I got this working for a topic exchange. Can you first try to do one > way federation? > > I had some issues with using a different virtual host name from the > upstream cluster. > > I am using you are using "/" default vhost. > > What does it say as federation status on web UI? Also, what is your > rabbitmq version? > > Thanks! > -arun. > > > On Thu, Feb 6, 2014 at 4:56 PM, Rahul wrote: > >> That doesn't do the trick. >> Is the configuration of federation correct? >> >> On node A I configure Node B as upstream, and viceversa on Node B. >> >> Also does federation work for all Exchange types >> (Direct/Topic/Fanout/Headers) >> >> I'm new to this concept and trying to get the 2-way communication work. >> >> >> On Thu, Feb 6, 2014 at 6:16 PM, Arun Rao wrote: >> >>> try using this definition on your policy, >>> >>> >>> '{"federation-upstream-set":"all"}' >>> >>> Thanks! >>> >>> >>> On Thu, Feb 6, 2014 at 3:07 PM, Rahul Jain wrote: >>> >>>> Hi, >>>> >>>> I've been trying to setup a 2-way federation for my 2 nodes A and B. >>>> >>>> I ran the following commands on Node A: >>>> >>>> sudo rabbitmqctl set_parameter federation-upstream rabbit2 '{"uri":"amqp://"}' >>>> sudo rabbitmqctl set_parameter federation local-nodename '"rabbit1"' >>>> sudo rabbitmqctl set_policy federate-me "^test\." '{"federation-upstream-set":"test"}' >>>> >>>> >>>> commands on Node B: >>>> >>>> sudo rabbitmqctl set_parameter federation-upstream rabbit2 '{"uri":"amqp://"}' >>>> sudo rabbitmqctl set_parameter federation local-nodename '"rabbit2"' >>>> sudo rabbitmqctl set_policy federate-me "^test\." '{"federation-upstream-set":"test"}' >>>> >>>> >>>> Now I created a fanout exchange and queue on Node A, namely >>>> test.fanout-Exchange and test.fanout-Queue, using the RabbitMQ console. >>>> >>>> When I publish a message using RabbitMQ console of Node A, I see the >>>> message reaches the queue on Node A alone, and not on Node B. >>>> >>>> Any clues? >>>> >>>> _______________________________________________ >>>> rabbitmq-discuss mailing list >>>> rabbitmq-discuss at lists.rabbitmq.com >>>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >>>> >>>> >>> >>> _______________________________________________ >>> rabbitmq-discuss mailing list >>> rabbitmq-discuss at lists.rabbitmq.com >>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >>> >>> >> >> >> -- >> Regards, >> Rahul >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> >> > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -- Regards, Rahul -------------- next part -------------- An HTML attachment was scrubbed... URL: From ron.cordell at gmail.com Fri Feb 7 03:34:24 2014 From: ron.cordell at gmail.com (Ron Cordell) Date: Thu, 6 Feb 2014 19:34:24 -0800 Subject: [rabbitmq-discuss] RabbitMQ periodic slowness Message-ID: Hello everyone! We are trying to understand RabbitMQ behavior that we see in a highly available cluster and I'm hoping someone here can shed some light on it. We have a 3-node cluster that is exposed to the application via an F5 load balancer by a virtual IP. The majority of the queues that are created are highly available queues in order to prevent message loss from happening in the event of a catastrophic failure of a node. The rabbit instances/nodes are 3.2.2 with Erlang 16B02. The application consists of a series of REST HTTP interfaces which place the incoming messages onto the rabbit queues. When we load test the application we are seeing a periodic delay in writing a message to Rabbit. The delay happens about once every few minutes and lasts up to 30 seconds. We have tested in several scenarios: 3 node load balanced cluster single node, non ha-policy applied machine on Windows Server 2008R2 on Linux (Oracle Linux) on VMWare virtual machines on high speed SAN storage on physical machines with SSD direct connection with no LB to single node We haven't tested every combination in this list but we've tried to isolate I/O, operating system, machine characteristics, etc. But in every test scenario under load we start to see the socket opened to Rabbit on a write operation and no response for 20-30 seconds (with network tracing tools). Has anyone seen any behavior like this? Our concern is that under load some REST interfaces will show periodic slowness; we have SLAs of ~1 second on the interfaces. Thanks for any input! Cheers, Ron Cordell -------------- next part -------------- An HTML attachment was scrubbed... URL: From arunrao.seattle at gmail.com Fri Feb 7 03:51:44 2014 From: arunrao.seattle at gmail.com (Arun Rao) Date: Thu, 6 Feb 2014 19:51:44 -0800 Subject: [rabbitmq-discuss] RabbitMQ periodic slowness In-Reply-To: References: Message-ID: I am using F5 as well but as 2-cluster with 2 nodes each. >But in every test scenario under load we start to see the socket opened to Rabbit on a write operation and no response for 20-30 seconds (with >network tracing tools). Is this no response on the client side? How does the network capture look on the rabbitmq server side? Thanks! On Thu, Feb 6, 2014 at 7:34 PM, Ron Cordell wrote: > Hello everyone! > > We are trying to understand RabbitMQ behavior that we see in a highly > available cluster and I'm hoping someone here can shed some light on it. > > We have a 3-node cluster that is exposed to the application via an F5 load > balancer by a virtual IP. The majority of the queues that are created are > highly available queues in order to prevent message loss from happening in > the event of a catastrophic failure of a node. > > The rabbit instances/nodes are 3.2.2 with Erlang 16B02. > > The application consists of a series of REST HTTP interfaces which place > the incoming messages onto the rabbit queues. > > When we load test the application we are seeing a periodic delay in > writing a message to Rabbit. The delay happens about once every few minutes > and lasts up to 30 seconds. > > We have tested in several scenarios: > 3 node load balanced cluster > single node, non ha-policy applied machine > on Windows Server 2008R2 > on Linux (Oracle Linux) > on VMWare virtual machines on high speed SAN storage > on physical machines with SSD > direct connection with no LB to single node > > We haven't tested every combination in this list but we've tried to > isolate I/O, operating system, machine characteristics, etc. > > But in every test scenario under load we start to see the socket opened to > Rabbit on a write operation and no response for 20-30 seconds (with network > tracing tools). > > Has anyone seen any behavior like this? > > Our concern is that under load some REST interfaces will show periodic > slowness; we have SLAs of ~1 second on the interfaces. > > Thanks for any input! > > Cheers, > > Ron Cordell > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Fri Feb 7 07:29:01 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Fri, 7 Feb 2014 11:29:01 +0400 Subject: [rabbitmq-discuss] Callback - handleDelivery In-Reply-To: References: Message-ID: <4099850B-3F28-4939-80A0-D384773E0090@rabbitmq.com> On 7 Feb 2014, at 05:00, cw storm wrote: > It has to be done inside the "handleDelivery". It works if I perform the "doInvoke" outside of the "handleDelivery". > > try { > channel.basicConsume(strQueueName, false, > new DefaultConsumer(channel) { > @Override > public void handleDelivery(String consumerTag, > Envelope envelope, > AMQP.BasicProperties props, > byte[] body) > throws IOException > { > > try > { > Service.doInvoke(NSName, pipeline); > } > catch (Exception e) { > } > } > }); > } catch (Exception e1) { > } Deliveries are dispatched to a thread pool (j.u.c. executor service). Make sure your code is prepared for that. Also, posting a stack trace would help. MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Fri Feb 7 07:30:07 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Fri, 7 Feb 2014 11:30:07 +0400 Subject: [rabbitmq-discuss] RabbitMQ periodic slowness In-Reply-To: References: Message-ID: <5F5702AD-04DF-46F9-B4E2-7D9E39435126@rabbitmq.com> On 7 Feb 2014, at 07:34, Ron Cordell wrote: > But in every test scenario under load we start to see the socket opened to Rabbit on a write operation and no response for 20-30 seconds (with network tracing tools). > > Has anyone seen any behavior like this? Sounds like your publishers are being blocked. See http://rabbitmq.com/memory.html. RabbitMQ log will mention alarms if that?s the case. MK Software Engineer, Pivotal/RabbitMQ From tomas.tulka at atos.net Fri Feb 7 08:26:06 2014 From: tomas.tulka at atos.net (Tomas Tulka) Date: Fri, 7 Feb 2014 00:26:06 -0800 (PST) Subject: [rabbitmq-discuss] Durable subscriptions in Java Message-ID: <1391761565996-33183.post@n5.nabble.com> Hi, I'd like to create a durable subscription as known from JMS (http://docs.oracle.com/cd/E19798-01/821-1841/bncgd/index.html) I have followed the article: http://rabbitmq.1065348.n5.nabble.com/One-producer-multiple-subscribers-td8705.html and create this code: channel.exchangeDeclare(exchangeName, "fanout", durable, false, null); // I tried with "topic" as well // for the customerA channel.queueDeclare(queueNameA, durable, false, false, null); channel.queueBind(queueNameA, exchangeName, "#"); // for the customerB channel.queueDeclare(queueNameB, durable, false, false, null); channel.queueBind(queueNameB, exchangeName, "#"); // in parallel: // produce for a while channel.basicPublish(exchangeName, "test", null, message); // run comsumers QueueingConsumer consumerA = new QueueingConsumer(channel); channel.basicConsume(queueNameA, true, consumerA); QueueingConsumer consumerB = new QueueingConsumer(channel); channel.basicConsume(queueNameB, true, consumerB); Producer produces for a while and stop meanwhile consumers consume and then consumers died. Afterwards consumers are re-created but don't consume anything. I have read something about durable subscriptions in STOMP plugin, but this seems to be very low-level for java solution: http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2012-October/023164.html Thank you in advance! -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Durable-subscriptions-in-Java-tp33183.html Sent from the RabbitMQ mailing list archive at Nabble.com. From mklishin at gopivotal.com Fri Feb 7 08:53:35 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Fri, 7 Feb 2014 12:53:35 +0400 Subject: [rabbitmq-discuss] Durable subscriptions in Java In-Reply-To: <1391761565996-33183.post@n5.nabble.com> References: <1391761565996-33183.post@n5.nabble.com> Message-ID: <4BCA19FA-CA68-4EC6-832F-F900AF08E5F2@rabbitmq.com> On 7 Feb 2014, at 12:26, Tomas Tulka wrote: > // run comsumers > QueueingConsumer consumerA = new QueueingConsumer(channel); > channel.basicConsume(queueNameA, true, consumerA); > QueueingConsumer consumerB = new QueueingConsumer(channel); > channel.basicConsume(queueNameB, true, consumerB); > > Producer produces for a while and stop meanwhile consumers consume and then > consumers died. Afterwards consumers are re-created but don't consume > anything. If the queue still has messages when a consumer is added, it should get deliveries. if the queue is durable and messages are published as persistent, this should hold true for broker restarts. Use management UI to find our if there are any messages. Also, you consume with automatic acknowledgement mode. This means that RabbitMQ will remove messages as soon as it sends them out to consumers. If by the time consumer recovers there is no incoming message flow to the queue, there will be nothing for RabbitMQ to deliver. MK Software Engineer, Pivotal/RabbitMQ From rahulkj at gmail.com Thu Feb 6 23:04:18 2014 From: rahulkj at gmail.com (Rahul) Date: Thu, 6 Feb 2014 17:04:18 -0600 Subject: [rabbitmq-discuss] Issue with RabbitMQ 2-way federation setup Message-ID: Hi, I've been trying to setup a 2-way federation for my 2 nodes A and B. I ran the following commands on Node A: sudo rabbitmqctl set_parameter federation-upstream rabbit2 '{"uri":"amqp://"}' sudo rabbitmqctl set_parameter federation local-nodename '"rabbit1"' sudo rabbitmqctl set_policy federate-me "^test\." '{"federation-upstream-set":"test"}' commands on Node B: sudo rabbitmqctl set_parameter federation-upstream rabbit2 '{"uri":"amqp://"}' sudo rabbitmqctl set_parameter federation local-nodename '"rabbit2"' sudo rabbitmqctl set_policy federate-me "^test\." '{"federation-upstream-set":"test"}' Now I created a fanout exchange and queue on Node A, namely test.fanout-Exchange and test.fanout-Queue, using the RabbitMQ console. When I publish a message using RabbitMQ console of Node A, I see the message reaches the queue on Node A alone, and not on Node B. Any clues? -- Regards, Rahul -------------- next part -------------- An HTML attachment was scrubbed... URL: From tomas.tulka at atos.net Fri Feb 7 09:16:17 2014 From: tomas.tulka at atos.net (Tomas Tulka) Date: Fri, 7 Feb 2014 01:16:17 -0800 (PST) Subject: [rabbitmq-discuss] Durable subscriptions in Java In-Reply-To: <4BCA19FA-CA68-4EC6-832F-F900AF08E5F2@rabbitmq.com> References: <1391761565996-33183.post@n5.nabble.com> <4BCA19FA-CA68-4EC6-832F-F900AF08E5F2@rabbitmq.com> Message-ID: <1391764577830-33186.post@n5.nabble.com> > Use management UI to find our if there are any messages. While producer producing there are message (0 unacted). > Also, you consume with automatic acknowledgement mode. I changed the flag to false and in the Management UI I see unacted messages while the producer is producing. But in both cases when the producer stops producing, any consumer can't consume anything no longer. It means when the producer and the consumer are not parallel (but in the sequence) no messages are delivered. Some trouble in the ex or queue setting? -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Durable-subscriptions-in-Java-tp33183p33186.html Sent from the RabbitMQ mailing list archive at Nabble.com. From mklishin at gopivotal.com Fri Feb 7 09:45:45 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Fri, 7 Feb 2014 13:45:45 +0400 Subject: [rabbitmq-discuss] Durable subscriptions in Java In-Reply-To: <1391764577830-33186.post@n5.nabble.com> References: <1391761565996-33183.post@n5.nabble.com> <4BCA19FA-CA68-4EC6-832F-F900AF08E5F2@rabbitmq.com> <1391764577830-33186.post@n5.nabble.com> Message-ID: On 7 Feb 2014, at 13:16, Tomas Tulka wrote: > But in both cases when the producer stops producing, any consumer can't > consume anything no longer. If there are no more messages in the queue, this is expected (consumer keeps up with the producer). > It means when the producer and the consumer are not parallel (but in the > sequence) no messages are delivered. Do they run in the same JVM? It?s impossible to tell what the issue is without seeing your code. RabbitMQ Java client dispatches delivered messages to a thread pool. It should not affect publishers. MK Software Engineer, Pivotal/RabbitMQ From dmcintyre at gopivotal.com Fri Feb 7 09:51:53 2014 From: dmcintyre at gopivotal.com (Duncan McIntyre) Date: Fri, 7 Feb 2014 09:51:53 +0000 Subject: [rabbitmq-discuss] How can I Use RabbitMQ between two application while I can't change one of them? In-Reply-To: References: Message-ID: Sounds like you need a proxy between the client and RabbitMQ. The proxy would accept an incoming http request: - create a temporary reply queue - send a message - the server consumes the message and sends a reply to the reply queue - the proxy consumes the reply and returns it to the client as the http response Depending on performance requirements, you may need to replace this with a fixed reply queue and use correlation ids. You would then have a thread pool of http listeners and (e.g.) a single threaded reply queue consumer which would examine the correlation id to determine to which http listener thread a reply should be dispatched. --- Duncan -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Fri Feb 7 10:19:04 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Fri, 07 Feb 2014 10:19:04 +0000 Subject: [rabbitmq-discuss] Issue with RabbitMQ 2-way federation setup In-Reply-To: <9a3404b8-fecd-4994-8299-8d33a6ffb378@googlegroups.com> References: <9a3404b8-fecd-4994-8299-8d33a6ffb378@googlegroups.com> Message-ID: <52F4B318.5090104@rabbitmq.com> So with the configuration you have described, you will be federating both your exchange and queue. That might not be what you want. Federated exchanges *copy* messages across the network, one per binding. Federated queues *move* messages to where the consumers are. It's possible that what you've done is created a federated exchange and a federated queue, and only bound them together at one of the nodes? If you want messages to end up on both nodes then you want to only federate the exchange, not the queue; create queues at each node and bind them to the federated exchange. Also as Arun said, the config you've given references an upstream-set "test" which doesn't appear to exist - create it or use "all". And yes, federation works for all exchange types. Checking federation status (http://www.rabbitmq.com/federation-reference.html#status) is likely to prove illuminating. Cheers, Simon On 06/02/2014 11:07PM, Rahul Jain wrote: > Hi, > > I've been trying to setup a 2-way federation for my 2 nodes A and B. > > I ran the following commands on Node A: > > |sudo rabbitmqctl set_parameter federation-upstream rabbit2 '{"uri":"amqp://"}' > sudo rabbitmqctl set_parameter federation local-nodename '"rabbit1"' > sudo rabbitmqctl set_policy federate-me "^test\." '{"federation-upstream-set":"test"}'| > > > commands on Node B: > > |sudo rabbitmqctl set_parameter federation-upstream rabbit2 '{"uri":"amqp://"}' > sudo rabbitmqctl set_parameter federation local-nodename '"rabbit2"' > sudo rabbitmqctl set_policy federate-me "^test\." '{"federation-upstream-set":"test"}'| > > > Now I created a fanout exchange and queue on Node A, namely > test.fanout-Exchange and test.fanout-Queue, using the RabbitMQ console. > > When I publish a message using RabbitMQ console of Node A, I see the > message reaches the queue on Node A alone, and not on Node B. > > Any clues? > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -- Simon MacMullen RabbitMQ, Pivotal From tomas.tulka at atos.net Fri Feb 7 10:42:03 2014 From: tomas.tulka at atos.net (Tomas Tulka) Date: Fri, 7 Feb 2014 02:42:03 -0800 (PST) Subject: [rabbitmq-discuss] Durable subscriptions in Java In-Reply-To: References: <1391761565996-33183.post@n5.nabble.com> <4BCA19FA-CA68-4EC6-832F-F900AF08E5F2@rabbitmq.com> <1391764577830-33186.post@n5.nabble.com> Message-ID: <1391769723114-33190.post@n5.nabble.com> > If there are no more messages in the queue Yes, but the point is to have a durable subscription. > Do they run in the same JVM? Sure, one program run. > It?s impossible to tell what the issue is without seeing your code. Please see the whole class code. RabbitMqDurable.java -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Durable-subscriptions-in-Java-tp33183p33190.html Sent from the RabbitMQ mailing list archive at Nabble.com. From matwey.kornilov at gmail.com Fri Feb 7 10:56:38 2014 From: matwey.kornilov at gmail.com (Matwey V. Kornilov) Date: Fri, 07 Feb 2014 14:56:38 +0400 Subject: [rabbitmq-discuss] e2e bindings Message-ID: Hi, Is it guaranteed that the exchange_name field of basic.delivery of the message will persists when the message passed through several exchanges? Example 1: Exchange(A) -> binding -> Queue(Q) then exchange equals A for every message sent to A Example 2: Exchange(A) -> binding -> Exchange(B) -> binding -> Queue(Q) ? From mklishin at gopivotal.com Fri Feb 7 11:03:51 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Fri, 7 Feb 2014 15:03:51 +0400 Subject: [rabbitmq-discuss] Durable subscriptions in Java In-Reply-To: <1391769723114-33190.post@n5.nabble.com> References: <1391761565996-33183.post@n5.nabble.com> <4BCA19FA-CA68-4EC6-832F-F900AF08E5F2@rabbitmq.com> <1391764577830-33186.post@n5.nabble.com> <1391769723114-33190.post@n5.nabble.com> Message-ID: <24DA5680-28D4-4F77-B824-AB637369D415@rabbitmq.com> On 7 Feb 2014, at 14:42, Tomas Tulka wrote: >> If there are no more messages in the queue > > Yes, but the point is to have a durable subscription. In AMQP 0-9-1, queues and messages are durable. Consumers are not. http://www.rabbitmq.com/tutorials/amqp-concepts.html explains this in more detail. Try leaving your publisher on while consumers are down and watch the queue grow. Then add a consumer. It should start getting deliveries. >> It?s impossible to tell what the issue is without seeing your code. > > Please see the whole class code. RabbitMqDurable.java > https://gist.github.com/michaelklishin/0082745ddf31fa951221 You?re using QueueingConsumer and no prefetch limit. This means RabbitMQ indeed will push messages to the client as fast as possible, and the client will enqueue them internally in a blocking queue. Your way to ?kill? the consumer only kill the while loop. The consumer still keeps getting deliveries. In addition, you don?t reset the timer so the "2nd consumer? will be ?killed? immediately. Cancel your consumer properly with Channel#basicCancel and create a new one every time. Use JDK scheduled executors to periodically cancel and re-add consumers: http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ScheduledExecutorService.html To learn about basic.qos/prefetch, see tutorial 2: http://www.rabbitmq.com/tutorials/tutorial-two-java.html MK Software Engineer, Pivotal/RabbitMQ From simon at rabbitmq.com Fri Feb 7 11:04:40 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Fri, 07 Feb 2014 11:04:40 +0000 Subject: [rabbitmq-discuss] e2e bindings In-Reply-To: References: Message-ID: <52F4BDC8.5060500@rabbitmq.com> On 07/02/2014 10:56AM, Matwey V. Kornilov wrote: > Is it guaranteed that the exchange_name field of basic.delivery of the > message will persists when the message passed through several exchanges? Yes. It's the exchange the message was published to. > Example 1: Exchange(A) -> binding -> Queue(Q) > > then exchange equals A for every message sent to A > > Example 2: Exchange(A) -> binding -> Exchange(B) -> binding -> Queue(Q) > > ? Still A. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From tomas.tulka at atos.net Fri Feb 7 12:22:08 2014 From: tomas.tulka at atos.net (Tomas Tulka) Date: Fri, 7 Feb 2014 04:22:08 -0800 (PST) Subject: [rabbitmq-discuss] Durable subscriptions in Java In-Reply-To: <24DA5680-28D4-4F77-B824-AB637369D415@rabbitmq.com> References: <1391761565996-33183.post@n5.nabble.com> <4BCA19FA-CA68-4EC6-832F-F900AF08E5F2@rabbitmq.com> <1391764577830-33186.post@n5.nabble.com> <1391769723114-33190.post@n5.nabble.com> <24DA5680-28D4-4F77-B824-AB637369D415@rabbitmq.com> Message-ID: <1391775728608-33194.post@n5.nabble.com> > http://www.rabbitmq.com/tutorials/amqp-concepts.html explains this in more detail. Thank you a lot, Michael! This really helped me to understand! -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Durable-subscriptions-in-Java-tp33183p33194.html Sent from the RabbitMQ mailing list archive at Nabble.com. From 1006798382 at qq.com Fri Feb 7 13:04:53 2014 From: 1006798382 at qq.com (=?gb18030?B?0qy35w==?=) Date: Fri, 7 Feb 2014 21:04:53 +0800 Subject: [rabbitmq-discuss] Why consumer become slow if publish faster? Message-ID: I've made a matrix about publish and consum cases. publish consum backlog message <=2000/s 2000/s No <=4000/s 1200/s 1,500,000(approximately) =0/s(finished) 4000/s 0(take about 10 minutes) Why the speed of the consumer reduced to 1200/s when speed of the publish grown to 4000/s? In my opinion , the consumer speed shoud not affected by publish or should not reduced in the whole period. The consumer set the no_ack to true. The diagram of the monitor is in attachment. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 968E17D3 at AF154557.F5D9F452.jpg Type: image/jpeg Size: 132055 bytes Desc: not available URL: From simon at rabbitmq.com Fri Feb 7 13:27:08 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Fri, 07 Feb 2014 13:27:08 +0000 Subject: [rabbitmq-discuss] Why consumer become slow if publish faster? In-Reply-To: References: Message-ID: <52F4DF2C.700@rabbitmq.com> On 07/02/2014 1:04PM, ?? wrote: > Why the speed of the consumer reduced to 1200/s when speed of the > publish grown to 4000/s? Each queue can only use a single CPU core. Therefore as the publish rate goes up, the maximum consume rate goes down. At the moment, the queue does not make any effort to prioritise consumers over publishers in this situation, leading to backlogs as you have seen. In 3.3.0 we will be introducing a prioritisation feature so that when a queue is CPU-bound it will attempt to deliver messages 10% faster than it accepts them, leading it to tend towards being empty rather than growing uncontrollably. (Historical note: we had a simpler prioritisation scheme from 1.7.0 to 2.8.2 inclusive, which "infinitely" prioritised consuming when the queue was CPU bound. The trouble was you could get into situations where a large queue which gained some fast consumers would refuse to accept even a single publish until it was completely drained.) Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From cwstorm at gmail.com Fri Feb 7 13:55:00 2014 From: cwstorm at gmail.com (cw storm) Date: Fri, 7 Feb 2014 08:55:00 -0500 Subject: [rabbitmq-discuss] Callback - handleDelivery In-Reply-To: <4099850B-3F28-4939-80A0-D384773E0090@rabbitmq.com> References: <4099850B-3F28-4939-80A0-D384773E0090@rabbitmq.com> Message-ID: MK, Not sure I understand. "Make sure your code is prepared for that." What do you mean by that. Also, if thread pool, will it close once the broker receive a "basicAck"? On Fri, Feb 7, 2014 at 2:29 AM, Michael Klishin wrote: > > On 7 Feb 2014, at 05:00, cw storm wrote: > > > It has to be done inside the "handleDelivery". It works if I perform > the "doInvoke" outside of the "handleDelivery". > > > > try { > > channel.basicConsume(strQueueName, false, > > new DefaultConsumer(channel) { > > @Override > > public void handleDelivery(String consumerTag, > > Envelope envelope, > > > AMQP.BasicProperties props, > > byte[] body) > > throws IOException > > { > > > > try > > { > > Service.doInvoke(NSName, > pipeline); > > } > > catch (Exception e) { > > } > > } > > }); > > } catch (Exception e1) { > > } > > Deliveries are dispatched to a thread pool (j.u.c. executor service). Make > sure your code > is prepared for that. Also, posting a stack trace would help. > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From rahulkj at gmail.com Fri Feb 7 15:29:09 2014 From: rahulkj at gmail.com (Rahul) Date: Fri, 7 Feb 2014 09:29:09 -0600 Subject: [rabbitmq-discuss] Issue with RabbitMQ 2-way federation setup In-Reply-To: <52F4B318.5090104@rabbitmq.com> References: <9a3404b8-fecd-4994-8299-8d33a6ffb378@googlegroups.com> <52F4B318.5090104@rabbitmq.com> Message-ID: Thanks Simon for this info. What I was trying to achieve is, ensure the messages are available in the queues on both Node A and B. So what I understand from the description is, federation does not simulate the mirrored queues behavior. I need to create queue with the same name/different name and bind them to the same exchange. That way when a message is published to the exchange, and if I've set the exchange federation policy, then the message will be routed to respective queues. Mirroring ensures the same message is available on all cluster nodes. Is there a way I can simulate mirroring using federation? On Fri, Feb 7, 2014 at 4:19 AM, Simon MacMullen wrote: > So with the configuration you have described, you will be federating both > your exchange and queue. That might not be what you want. > > Federated exchanges *copy* messages across the network, one per binding. > > Federated queues *move* messages to where the consumers are. > > It's possible that what you've done is created a federated exchange and a > federated queue, and only bound them together at one of the nodes? > > If you want messages to end up on both nodes then you want to only > federate the exchange, not the queue; create queues at each node and bind > them to the federated exchange. > > Also as Arun said, the config you've given references an upstream-set > "test" which doesn't appear to exist - create it or use "all". > > And yes, federation works for all exchange types. > > Checking federation status (http://www.rabbitmq.com/ > federation-reference.html#status) is likely to prove illuminating. > > Cheers, Simon > > > On 06/02/2014 11:07PM, Rahul Jain wrote: > >> Hi, >> >> I've been trying to setup a 2-way federation for my 2 nodes A and B. >> >> I ran the following commands on Node A: >> >> |sudo rabbitmqctl set_parameter federation-upstream rabbit2 >> '{"uri":"amqp://"}' >> sudo rabbitmqctl set_parameter federation local-nodename '"rabbit1"' >> sudo rabbitmqctl set_policy federate-me "^test\." >> '{"federation-upstream-set":"test"}'| >> >> >> commands on Node B: >> >> |sudo rabbitmqctl set_parameter federation-upstream rabbit2 >> '{"uri":"amqp://"}' >> sudo rabbitmqctl set_parameter federation local-nodename '"rabbit2"' >> sudo rabbitmqctl set_policy federate-me "^test\." >> '{"federation-upstream-set":"test"}'| >> >> >> Now I created a fanout exchange and queue on Node A, namely >> test.fanout-Exchange and test.fanout-Queue, using the RabbitMQ console. >> >> When I publish a message using RabbitMQ console of Node A, I see the >> message reaches the queue on Node A alone, and not on Node B. >> >> Any clues? >> >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> >> > -- > Simon MacMullen > RabbitMQ, Pivotal > -- Regards, Rahul -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Fri Feb 7 17:05:53 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Fri, 7 Feb 2014 21:05:53 +0400 Subject: [rabbitmq-discuss] Callback - handleDelivery In-Reply-To: References: <4099850B-3F28-4939-80A0-D384773E0090@rabbitmq.com> Message-ID: 2014-02-07 17:55 GMT+04:00 cw storm : > Not sure I understand. "Make sure your code is prepared for that." What > do you mean by that. You instantiate Connection and Channel in one thread (often the main thread) but incoming messages are dispatched from a different thread ("main loop" or "network I/O thread") into a pool every connection has. You need to make sure that the objects used in handleDelivery are initialized in a thread safe manner (e.g. not lazily). A null pointer exception coming from handleDelivery suggests the problem is with one of the objects you use there. > Also, if thread pool, will it close once the broker receive a "basicAck"? If you did not provide a custom executor service to ConnectionFactory#newConnection, it will be shut down when connection is closed. Otherwise it's up to you to shut it down on application shutdown. -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Fri Feb 7 17:28:25 2014 From: cwstorm at gmail.com (cw storm) Date: Fri, 7 Feb 2014 12:28:25 -0500 Subject: [rabbitmq-discuss] Callback - handleDelivery In-Reply-To: References: <4099850B-3F28-4939-80A0-D384773E0090@rabbitmq.com> Message-ID: MK, Thank you so much for your response. I'm the amqp java api and create my service. In my service, my main try/catch blockI establish the ConnectionFactory and Channel. Then I assigned an executor service: channel.queueDeclare(QueueName, true, false, false, null); channel.basicConsume(strQueueName, false, new DefaultConsumer(channel) { @Override public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties props, byte[] body) throws IOException {} If I understand it correctly, is the "handleDelivery" is like a listener on the queue. Whenever a message arrives in the queue, everything inside the "handleDelivery" gets executed. So, I have an object which invokes another service residing on the client application. Based on your explaination, I have to ensure that the object is threaded because that's how the message is being dispatched to the client application. The the object that I'm using isn't thread supported, then that'll explain the NPE(NullPointerException) within the "handleDelivery", right? On Fri, Feb 7, 2014 at 12:05 PM, Michael Klishin < michael.s.klishin at gmail.com> wrote: > 2014-02-07 17:55 GMT+04:00 cw storm : > > Not sure I understand. "Make sure your code is prepared for that." What >> do you mean by that. > > > You instantiate Connection and Channel in one thread (often the main > thread) but incoming messages > are dispatched from a different thread ("main loop" or "network I/O > thread") into a pool every connection > has. > > You need to make sure that the objects used in handleDelivery are > initialized in a thread safe > manner (e.g. not lazily). A null pointer exception coming from > handleDelivery suggests the problem > is with one of the objects you use there. > > >> Also, if thread pool, will it close once the broker receive a "basicAck"? > > > If you did not provide a custom executor service to > ConnectionFactory#newConnection, it will be > shut down when connection is closed. Otherwise it's up to you to shut it > down on application > shutdown. > -- > MK > > http://github.com/michaelklishin > http://twitter.com/michaelklishin > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Fri Feb 7 17:32:23 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Fri, 7 Feb 2014 21:32:23 +0400 Subject: [rabbitmq-discuss] Callback - handleDelivery In-Reply-To: References: <4099850B-3F28-4939-80A0-D384773E0090@rabbitmq.com> Message-ID: On 7 Feb 2014, at 21:28, cw storm wrote: > Based on your explaination, I have to ensure that the object is threaded because that's how the message is being dispatched to the client application. Not ?threaded?, just not null in all threads. > The the object that I'm using isn't thread supported, then that'll explain the NPE(NullPointerException) within the "handleDelivery", right? That?s just one possible reason. In any case, that?s an NPE in your own code. MK Software Engineer, Pivotal/RabbitMQ From simon at rabbitmq.com Fri Feb 7 17:36:40 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Fri, 07 Feb 2014 17:36:40 +0000 Subject: [rabbitmq-discuss] Issue with RabbitMQ 2-way federation setup In-Reply-To: References: <9a3404b8-fecd-4994-8299-8d33a6ffb378@googlegroups.com> <52F4B318.5090104@rabbitmq.com> Message-ID: <52F519A8.4070905@rabbitmq.com> On 07/02/2014 3:29PM, Rahul wrote: > So what I understand from the description is, federation does not > simulate the mirrored queues behavior. That's correct. Indeed, it's hard to see how it could; you'd need to coordinate to make sure that each message was only consumed from one node of the federation, so you need Consistency, so you sacrifice Partition tolerance and before you know it you're back at clustering. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From mpietrek at skytap.com Fri Feb 7 19:42:57 2014 From: mpietrek at skytap.com (Matt Pietrek) Date: Fri, 7 Feb 2014 11:42:57 -0800 Subject: [rabbitmq-discuss] Regex expression to exclude certain queues in the "Queue" tab? Message-ID: OK, I've given this the college try, dug into regex docs, and still haven't come across anything that works. In the Queues tab, there's the helpful "Filter" option. I want to set the filter to exclude a set of queues, say... all queues that start with "web-rpc". What's the magic expression to do this? I'm on 3.2.2, FWIW. Thanks, Matt -------------- next part -------------- An HTML attachment was scrubbed... URL: From arunrao.seattle at gmail.com Fri Feb 7 20:02:27 2014 From: arunrao.seattle at gmail.com (Arun Rao) Date: Fri, 7 Feb 2014 12:02:27 -0800 Subject: [rabbitmq-discuss] Regex expression to exclude certain queues in the "Queue" tab? In-Reply-To: References: Message-ID: Hi Matt - Try, ^web-rpc.# Thanks! On Fri, Feb 7, 2014 at 11:42 AM, Matt Pietrek wrote: > OK, I've given this the college try, dug into regex docs, and still > haven't come across anything that works. > > In the Queues tab, there's the helpful "Filter" option. > > I want to set the filter to exclude a set of queues, say... all queues > that start with "web-rpc". > > What's the magic expression to do this? > > I'm on 3.2.2, FWIW. > > Thanks, > > Matt > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From rahulkj at gmail.com Fri Feb 7 17:39:39 2014 From: rahulkj at gmail.com (Rahul) Date: Fri, 7 Feb 2014 11:39:39 -0600 Subject: [rabbitmq-discuss] Issue with RabbitMQ 2-way federation setup In-Reply-To: <52F519A8.4070905@rabbitmq.com> References: <9a3404b8-fecd-4994-8299-8d33a6ffb378@googlegroups.com> <52F4B318.5090104@rabbitmq.com> <52F519A8.4070905@rabbitmq.com> Message-ID: That's right.. Infact I did start from clustering and thought of federation. But in my use case it looks like clustering is the way to go. Thanks for all the help!! On Fri, Feb 7, 2014 at 11:36 AM, Simon MacMullen wrote: > On 07/02/2014 3:29PM, Rahul wrote: > >> So what I understand from the description is, federation does not >> simulate the mirrored queues behavior. >> > > That's correct. > > Indeed, it's hard to see how it could; you'd need to coordinate to make > sure that each message was only consumed from one node of the federation, > so you need Consistency, so you sacrifice Partition tolerance and before > you know it you're back at clustering. > > Cheers, Simon > > > -- > Simon MacMullen > RabbitMQ, Pivotal > -- Regards, Rahul -------------- next part -------------- An HTML attachment was scrubbed... URL: From sagu.prf1 at gmail.com Sun Feb 9 03:19:42 2014 From: sagu.prf1 at gmail.com (sagu prf) Date: Sat, 8 Feb 2014 19:19:42 -0800 Subject: [rabbitmq-discuss] Rabbitmq upgrade from 2.8.7 version to 3.2.3 version In-Reply-To: <52F349DC.2000303@rabbitmq.com> References: <52F349DC.2000303@rabbitmq.com> Message-ID: Hello Team , I am facing following issue on mirror queue policy . rabbitmqctl set_policy -p "VHOST1" ha-all "^DataService\." '{"ha-mode":"all"}' --priority "1" rabbitmqctl set_policy -p "HOST1" ha-all "^CarrierService\." '{"ha-mode":"all"}' --priority "1" First command , set mirror policy for DataService queues . second command , set mirror policy for CarrierService and it's removed first command mirrored policy . i have 20 queues start with DataService prefix and 20 queues start with CarrierService on same vhost VHOST1 . Regards sagu. On Thu, Feb 6, 2014 at 12:37 AM, Simon MacMullen wrote: > On 06/02/2014 08:27, sagu prf wrote: >> >> Hello Team , >> >> Shall we upload the same 2.8.7 rabbit-machine.json config files >> (queue and vhosts information ? to new version 3.2.3 ? >> >> Can you please update whether it break anything ? because 2.8.7 has >> x-ha-policy-all . > > > It won't break anything. The queues will have the "x-ha-policy" argument > set, but in 3.x it won't do anything, it'll just be there. > > You could edit the JSON to remove it, but you don't have to. > > Cheers, Simon > From keks9n at gmail.com Sun Feb 9 09:05:38 2014 From: keks9n at gmail.com (Nikita Tsukanov) Date: Sun, 9 Feb 2014 13:05:38 +0400 Subject: [rabbitmq-discuss] Web STOMP hangs after a while Message-ID: I see a lot of messages like this =ERROR REPORT==== 9-Feb-2014::07:24:04 === ** Generic server <0.30556.119> terminating ** Last message in was session_timeout ** When Server state == {session,undefined, {[],[]}, undefined,#Ref<0.0.112.43426>,300000,undefined, 25000,connecting,undefined, #Fun,{}, {sockjs_session, {<0.30556.119>, [{peername,{{127,0,0,1},49363}}, {sockname,{{127,0,0,1},8080}}, {path,"/stomp/276/x1z4pu8e/websocket"}, {headers,[]}]}}} ** Reason for termination == ** {function_clause,[{gen_server,cast, [{},sockjs_closed], [{file,"gen_server.erl"},{line,194}]}, {rabbit_ws_sockjs,service_stomp,3,[]}, {sockjs_session,emit,2,[]}, {sockjs_session,terminate,2,[]}, {gen_server,terminate,6, [{file,"gen_server.erl"},{line,719}]}, {proc_lib,init_p_do_apply,3, [{file,"proc_lib.erl"},{line,239}]}]} in RabbitMQ log and then even stomp/info stops responding to HTTP requests. It happens after several hours under load of about 100-150 connections. RabbitMQ itself and regular STOMP (that one on port 61613) continue working without any issues. Ubuntu 13.10, RabbitMQ 3.2.3, Erlang R16B03 -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Sun Feb 9 09:34:16 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Sun, 9 Feb 2014 13:34:16 +0400 Subject: [rabbitmq-discuss] Web STOMP hangs after a while In-Reply-To: References: Message-ID: 2014-02-09 13:05 GMT+04:00 Nikita Tsukanov : > in RabbitMQ log and then even stomp/info stops responding to HTTP > requests. It happens after several hours under load of about 100-150 > connections. > > RabbitMQ itself and regular STOMP (that one on port 61613) continue > working without any issues. > Nikita, Thanks for reporting. Do you have a small script or something that reproduces the issue most of the time? -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From keks9n at gmail.com Sun Feb 9 12:49:57 2014 From: keks9n at gmail.com (Nikita Tsukanov) Date: Sun, 9 Feb 2014 16:49:57 +0400 Subject: [rabbitmq-discuss] Web STOMP hangs after a while In-Reply-To: References: Message-ID: Oh, I figured it out. 1) We're using nginx to proxy websocket connections (we need HTTPS) 2) For some reason connections get leaked in that case (nginx bug? dunno) 3) cowboy by default allows only limited amount of connections So after a while the number of opened connections reaches the limit and then it hangs Now I've applied https patches from https://github.com/jshiell/rabbitmq-web-stomp (I hope it will be merged to upstream) and web-stomp serves connections directly. No any leaks, works like a charm. Regards, Nikita 2014-02-09 13:34 GMT+04:00 Michael Klishin : > > 2014-02-09 13:05 GMT+04:00 Nikita Tsukanov : > >> in RabbitMQ log and then even stomp/info stops responding to HTTP >> requests. It happens after several hours under load of about 100-150 >> connections. >> >> RabbitMQ itself and regular STOMP (that one on port 61613) continue >> working without any issues. >> > > Nikita, > > Thanks for reporting. > > Do you have a small script or something that reproduces the issue most of > the time? > -- > MK > > http://github.com/michaelklishin > http://twitter.com/michaelklishin > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From sagu.prf1 at gmail.com Sun Feb 9 20:02:10 2014 From: sagu.prf1 at gmail.com (sagu prf) Date: Sun, 9 Feb 2014 12:02:10 -0800 Subject: [rabbitmq-discuss] Rabbitmq 3.2.3 upgrade .. Message-ID: Hello Team , I am facing following issue on mirror queue policy . MIRROR QUEUE : rabbitmqctl set_policy -p "VHOST1" ha-all "^DataService\." '{"ha-mode":"all"}' --priority "1" rabbitmqctl set_policy -p "HOST1" ha-all "^CarrierService\." '{"ha-mode":"all"}' --priority "1" how does priority value works in mirror queue ? . First command , set mirror policy for DataService prefixed name queues . second command , set mirror policy for CarrierService and it's removed first command mirrored policy . i have 20 queues start with DataService prefix and 20 queues start with CarrierService on same vhost VHOST1 . SHOVEL : We are running shovel on one rabbtimq host ( on same cluster ) . shovel start with rabbit2 at hostname . Cluster rabbitmq services start with rabbit at hostname Please note our environment will support only the mirrored queue and cluster running behind the LB . Regards sagu. From michael.s.klishin at gmail.com Sun Feb 9 20:45:24 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Mon, 10 Feb 2014 00:45:24 +0400 Subject: [rabbitmq-discuss] Rabbitmq 3.2.3 upgrade .. In-Reply-To: References: Message-ID: 2014-02-10 0:02 GMT+04:00 sagu prf : > how does priority value works in mirror queue ? . It helps break ties between multiple policies that match a queue (or exchange, or whatever). >From https://www.rabbitmq.com/parameters.html: In the event that more than one policy can match a given exchange or queue, the policy with the greatest priority applies. -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From ravichandra at tanla.com Sun Feb 9 13:45:50 2014 From: ravichandra at tanla.com (Ravichandra Kanuparthi) Date: Sun, 9 Feb 2014 19:15:50 +0530 Subject: [rabbitmq-discuss] RabbitMQ server suddenly crashing Message-ID: <7585F713-4DC4-40BE-846F-3BF77D341062@tanla.com> Hi, We are facing problem with RabbitMQ on our production system. Server is suddenly crash and not able to find the reason for the same. Kindly do the needful on the same. OS : Cent OS 64 Bit Kernel : 2.6.18-194.el5 RabbitMQ : 2.7.0 Erlang : R14B04 Regards, Ravichandra. ***************************************************************************************************************** "This e-mail is intended only for the addressee. If you are not the intended recipient, then dissemination, distribution or copying of this email is strictly prohibited. If received in error, please destroy the e-mail and notify the sender immediately. This mail has been checked for viruses. However recipients should undertake their own virus check. Tanla Solutions Limited and its subsidiaries will not be liable for any losses." ****************************************************************************************************************** From michael.s.klishin at gmail.com Mon Feb 10 09:12:21 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Mon, 10 Feb 2014 13:12:21 +0400 Subject: [rabbitmq-discuss] RabbitMQ server suddenly crashing In-Reply-To: <7585F713-4DC4-40BE-846F-3BF77D341062@tanla.com> References: <7585F713-4DC4-40BE-846F-3BF77D341062@tanla.com> Message-ID: 2014-02-09 17:45 GMT+04:00 Ravichandra Kanuparthi : > We are facing problem with RabbitMQ on our production system. Server is > suddenly crash and not able to find the reason for the same. What is in RabbitMQ logs? -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Mon Feb 10 09:28:09 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Mon, 10 Feb 2014 09:28:09 +0000 Subject: [rabbitmq-discuss] Rabbitmq upgrade from 2.8.7 version to 3.2.3 version In-Reply-To: References: <52F349DC.2000303@rabbitmq.com> Message-ID: <52F89BA9.3050208@rabbitmq.com> On 09/02/2014 03:19, sagu prf wrote: > I am facing following issue on mirror queue policy . > > rabbitmqctl set_policy -p "VHOST1" ha-all "^DataService\." > '{"ha-mode":"all"}' --priority "1" > rabbitmqctl set_policy -p "HOST1" ha-all "^CarrierService\." > '{"ha-mode":"all"}' --priority "1" > > > First command , set mirror policy for DataService queues . > > second command , set mirror policy for CarrierService and it's removed > first command mirrored policy . You can't have two policies in the same vhost with the same name (I assume "VHOST1" vs "HOST1" is a typo). So the second command redefines the "ha-all" policy. Prevent the name clash and you'll be good. Cheers, Simon From vitor.cardoso.09 at gmail.com Mon Feb 10 09:32:56 2014 From: vitor.cardoso.09 at gmail.com (Vitor Cardoso) Date: Mon, 10 Feb 2014 01:32:56 -0800 (PST) Subject: [rabbitmq-discuss] RPC over Shovel or Federation Message-ID: <54cb0fdc-5c43-4bc4-bc88-55bd48a8840e@googlegroups.com> Hi, I?m Vitor Cardoso, i am a software developer and a i have started work with RabbitMq a few months ago. I think you can help me on this: RabbitMq ?local? - L RabbitMQ ?external?- E I have this scenario, ?n? instances of RabbitMq locally installed isolated from each other, one RabbitMQ for each server,them i have one server ?external? that contains a RabbitMQ server and other software using it. So in certain point i need to send a message (an RPC) from my E to one of this L, so i have a rabbitmq.config file in L that consumes from a queue ?X? of E and publish to exchange ?Y of L. It work?s, but like message is an RPC, it is created a dynamic queue for response in E and this context don?t is passed to my L, so my L consumes the message and can?t send the response. It?s possible do this by this way? Can i pass context of a RPC throw shovel or federation? Thanked for your help, VItor Cardoso -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Mon Feb 10 09:55:31 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Mon, 10 Feb 2014 09:55:31 +0000 Subject: [rabbitmq-discuss] Regex expression to exclude certain queues in the "Queue" tab? In-Reply-To: References: Message-ID: <52F8A213.5040704@rabbitmq.com> On 07/02/2014 19:42, Matt Pietrek wrote: > I want to set the filter to exclude a set of queues, say... all queues > that start with "web-rpc". Try: ^(?!web-rpc)(.+)$ This can be generalised: ^(?!bad-prefix|another-bad-prefix|etc)(.+)$ > I'm on 3.2.2, FWIW. Are you sure? Is there a "Regex" checkbox? Because the regex checkbox is only in nightly builds ATM; if you are really running 3.2.2 then you just get simple string matching and excluding prefixes is not possible. Cheers, Simon From simon at rabbitmq.com Mon Feb 10 09:57:50 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Mon, 10 Feb 2014 09:57:50 +0000 Subject: [rabbitmq-discuss] Regex expression to exclude certain queues in the "Queue" tab? In-Reply-To: References: Message-ID: <52F8A29E.3090509@rabbitmq.com> On 07/02/2014 20:02, Arun Rao wrote: > Try, ^web-rpc.# OP was looking for a way to *exclude* prefixes though, not match them. Also I'm not sure what that # is doing there; you want '.*' to match anything. Cheers, Simon From simon at rabbitmq.com Mon Feb 10 10:11:09 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Mon, 10 Feb 2014 10:11:09 +0000 Subject: [rabbitmq-discuss] RPC over Shovel or Federation In-Reply-To: <54cb0fdc-5c43-4bc4-bc88-55bd48a8840e@googlegroups.com> References: <54cb0fdc-5c43-4bc4-bc88-55bd48a8840e@googlegroups.com> Message-ID: <52F8A5BD.9040803@rabbitmq.com> Hi Vitor. Neither shovel nor federation is particularly designed for RPC with dynamic reply queues. So you have a few options: 1) Redesign your clients to use fixed queues for replies. This is the highest performance solution (even with a single broker) since creating a new queue for each RPC is orders of magnitude more expensive than sending and receiving a message. You can then use either shovel or federation for your reply queues (federation is probably simpler). 2) Declare dynamic reply queues and use queue federation on them. The problem is that queue federation doesn't attempt to federate queue deletion; and since the federation mechanism uses consume / cancel for flow control, autodelete queues might get autodeleted at the wrong time. So the only option you have to prevent a leak of reply queues is to give them an x-expires argument. In the future we hope to make the default exchange federatable, in effect giving global queue addressing across a federation. Not sure when we'll have the time to work on that though... Cheers, Simon On 10/02/2014 09:32, Vitor Cardoso wrote: >> Hi, >> >> I?m Vitor Cardoso, i am a software developer and a i have started work >> with RabbitMq a few months ago. >> >> I think you can help me on this: >> >> RabbitMq ?local? - L >> RabbitMQ ?external?- E >> >> I have this scenario, ?n? instances of RabbitMq locally installed >> isolated from each other, one RabbitMQ for each server,them i have one >> server ?external? that contains a RabbitMQ server and other software >> using it. >> >> So in certain point i need to send a message (an RPC) from my E to one >> of this L, so i have a rabbitmq.config file in L that consumes from a >> queue ?X? of E and publish to exchange ?Y of L. It work?s, but like >> message is an RPC, it is created a dynamic queue for response in E and >> this context don?t is passed to my L, so my L consumes the message and >> can?t send the response. >> >> It?s possible do this by this way? Can i pass context of a RPC throw >> shovel or federation? >> >> Thanked for your help, >> >> VItor Cardoso > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > From pat at munkiisoft.com Mon Feb 10 11:36:18 2014 From: pat at munkiisoft.com (Patrick Long) Date: Mon, 10 Feb 2014 11:36:18 +0000 Subject: [rabbitmq-discuss] Diagnosing Network partition false positives Message-ID: When I checked our testing environments this morning I saw that one of them was reporting a Suspected Network Partition. Both nodes are virtual machines on the same network so I don't think "network partition" is a valid error. I have the log files from both nodes. Nothing had happened on either servers all weekend and then on sunday morning *NODE1 log* 01:00:04 NODE1 logged that NODE2 was down 01:00:14 NODE1 logged Mnesia(rabbit at NODE1): ** ERROR ** mnesia_event got {inconsistent_database, running_partitioned_network, rabbit at NODE2} global: Name conflict terminating {rabbit_mgmt_db,<8059.336.0>} *NODE2 log* 01:00:56 NODE2 logged that NODE1 was down 01:01:01 NODE2 logged Mnesia(rabbit at NODE2): ** ERROR ** mnesia_event got {inconsistent_database, running_partitioned_network, rabbit at NODE1} NODE1 went on to log a full error report I tried stop_app and start_app on NODE2 and both commands errored. Then I ran the same thing on NODE1. Both commands succeeded and the cluster was no longer reporting a suspected network partition. Any suggestions on how best to look into this? Shouldn't the aliveness test flag up on one of the nodes that there is a problem? During this time both reported {200:OK} Thanks -- Patrick Long - Munkiisoft Ltd -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Mon Feb 10 11:54:15 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Mon, 10 Feb 2014 11:54:15 +0000 Subject: [rabbitmq-discuss] Diagnosing Network partition false positives In-Reply-To: References: Message-ID: <52F8BDE7.7000707@rabbitmq.com> On 10/02/14 11:36, Patrick Long wrote: > When I checked our testing environments this morning I saw that one of > them was reporting a Suspected Network Partition. > > Both nodes are virtual machines on the same network so I don't think > "network partition" is a valid error. As far as RabbitMQ is concerned, it's a real network partition. The two nodes did lose contact with each other. In a virtualised environment it might be possible to provoke this error by (for example) suspending one of the machines. > Any suggestions on how best to look into this? Future releases of RabbitMQ (3.3.0, currently in the nightly builds) will log the reason why one node decided another was down. Unfortunately that's not available in 3.2.x, so I am afraid RabbitMQ is not going to help you determine what caused the partition. I am suspicious though that the partition lasted about 10 seconds, and happened at almost exactly 1AM. 1AM is the sort of time when scheduled tasks happen - it might be worth looking at what was happening around then. > Shouldn't the aliveness test flag up on one of the nodes that there is a > problem? During this time both reported {200:OK} The aliveness test is just there to check that the node is alive, not that there are no problems with the cluster. You can check for network partitions via the HTTP API by looking at /api/nodes and checking if any node has a non-empty 'partitions' list. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From stammailbox at gmail.com Mon Feb 10 13:19:05 2014 From: stammailbox at gmail.com (rails) Date: Mon, 10 Feb 2014 15:19:05 +0200 Subject: [rabbitmq-discuss] Using Message Broker for database replications (currently RabbitMQ ) Message-ID: When my system's data changes I publish every single change to at least 4 different consumers (around 3000 messages a second) so I want to use a message broker. Most of the consumers are responsible to update their database tables with the change. (The DBs are different - couch, mysql, etc therefor solutions such as using their own replication mechanism or using db triggers is not possible) questions 1. Does anyone have an experience with data replication between DBs using a message broker? is it a good practice? 2. What do I do in case of failures? Let's say, using RabbitMQ, the client removed 10,000 messages from the queue, acked, and threw an exception each time before handling them. Now they are lost. Is there a way to go back in the queue? (re-queueing them will mess their order ). 3. Is using rabbitMQ a good practice? Isn't the ability to go back in the queue as in Kafka important to fail scenarios? Thanks. -------------- next part -------------- An HTML attachment was scrubbed... URL: From stammailbox at gmail.com Mon Feb 10 13:32:09 2014 From: stammailbox at gmail.com (rails) Date: Mon, 10 Feb 2014 15:32:09 +0200 Subject: [rabbitmq-discuss] RabbitMQ - Is there a way to go back to old messages in a queue Message-ID: Lets say my consumer acked and due to some strange reason did not handle the message well. Is there a technic to go over message again? Requirements : 1. same order. 2. continue receiving new messages and placing them last in the queue? therefor, not re-queieng them (messing order), something like moving the index back (as in kafka )? Thanks. -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Mon Feb 10 13:35:58 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Mon, 10 Feb 2014 13:35:58 +0000 Subject: [rabbitmq-discuss] RabbitMQ - Is there a way to go back to old messages in a queue In-Reply-To: References: Message-ID: <52F8D5BE.3020408@rabbitmq.com> On 10/02/14 13:32, rails wrote: > Lets say my consumer acked and due to some strange reason did not handle > the message well. Is there a technic to go over message again? Your consumer should not ack messages until it has handled them - that's what explicit acking is for; not just to say "I got this message" but "I got this message and have handled it". > Requirements : > 1. same order. > 2. continue receiving new messages and placing them last in the queue? Unacked messages are returned to the queue in order. So your consumer will always receive messages in order, regardless of failures, as long as: * It is the only consumer on the queue * It always acknowledges messages in order That will making acking behave the same as moving the consumer index thing back in kafka. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From cwstorm at gmail.com Mon Feb 10 15:12:57 2014 From: cwstorm at gmail.com (cw storm) Date: Mon, 10 Feb 2014 10:12:57 -0500 Subject: [rabbitmq-discuss] How to code the handleCancel call back service in an event of the consumer cancel notification occur Message-ID: I'm having trouble understanding how to properly code the "handleCancel" call back service in case of an event of a consumer cancel notification occurs. I'm using Java client. First, I have a service that invokes the structure below. I have several services that invokes the below service based on how many queues I have setup on the broker. In my understanding, the "handleCancel" service will be invoke when the master node fails. I'm trying to understand what I need to code in the "handleCancel" service. In the "handleCancel" service, I only have the "consumerTag" information. How will I know the queue that it's associated with so that I can pass this information to the invoking service that'll "re-subscribe" to the queue. try { ConnectionFactory factory = new ConnectionFactory(); factory.setUri(strFactoryURI); Connection conn = factory.newConnection(); Channel channel = conn.createChannel(); channel.queueDeclare(strQueueName, true, false, false, null); //Callback to handle unexpected issue with the Broker Consumer consumer = new QueueingConsumer(channel) { @Override public void handleCancel(String consumerTag) throws IOException { // how to handle unexpected cancellation from broker } }; // Dispatch the message channel.basicConsume(strQueueName, false, new DefaultConsumer(channel) { @Override public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties props, byte[] body) throws IOException { // execute code to invoke service on 1.0 to persiste the message } }); } thanks, Phil -------------- next part -------------- An HTML attachment was scrubbed... URL: From akmartin at gmail.com Mon Feb 10 15:58:07 2014 From: akmartin at gmail.com (Andy Martin) Date: Mon, 10 Feb 2014 07:58:07 -0800 (PST) Subject: [rabbitmq-discuss] OutOfMemoryException Message-ID: One of my consumers threw the following error while running over the weekend. What are the possible causes for this and how can it be avoided? None of the specified endpoints were reachable Endpoints attempted: ------------------------------------------------ endpoint=amqp-0-9://rabbitmq.example.com:5672, attempts=1 System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown. at System.Threading.Thread.StartInternal(IPrincipal principal, StackCrawlMark& stackMark) at System.Threading.Thread.Start(StackCrawlMark& stackMark) at System.Threading.Thread.Start() at RabbitMQ.Client.Impl.ConnectionBase.StartMainLoop() at RabbitMQ.Client.Impl.ConnectionBase..ctor(ConnectionFactory factory, Boolean insist, IFrameHandler frameHandler) at RabbitMQ.Client.Framing.Impl.v0_9_1.ProtocolBase.CreateConnection(ConnectionFactory factory, Boolean insist, IFrameHandler frameHandler) at RabbitMQ.Client.ConnectionFactory.FollowRedirectChain(Int32 maxRedirects, IDictionary`2 connectionAttempts, IDictionary`2 connectionErrors, AmqpTcpEndpoint[]& mostRecentKnownHosts, AmqpTcpEndpoint endpoint) ================================================ Stack trace: at RabbitMQ.Client.ConnectionFactory.CreateConnection(Int32 maxRedirects) at RabbitMQ.Client.ConnectionFactory.CreateConnection() at Fabric.Core.Queueing.RabbitMq.RabbitMqSyncRpcQueue.CreateConnection() at Fabric.Core.Queueing.RabbitMq.RabbitMqSyncRpcQueue.SendAndWaitImpl[TParam,TResult](TParam param, String topicSuffix) at Fabric.Core.Queueing.RabbitMq.RabbitMqSyncRpcQueue.<>c__DisplayClass1`2.b__0() at Fabric.Core.Queueing.RabbitMq.RabbitMqQueueBase.QueueActionWithRetry[T](Func`1 action) -------------- next part -------------- An HTML attachment was scrubbed... URL: From jeremy at fluxlabs.net Mon Feb 10 16:05:28 2014 From: jeremy at fluxlabs.net (Jeremy McSpadden) Date: Mon, 10 Feb 2014 16:05:28 +0000 Subject: [rabbitmq-discuss] OutOfMemoryException In-Reply-To: References: Message-ID: Possible causes are not enough memory. It can be avoided by giving the system more memory. -- Jeremy McSpadden Flux Labs, Inc | http://www.fluxlabs.net | Endless Solutions Office : 850-250-5590x101 | Cell : 850-890-2543 | Fax : 850-254-2955 On Feb 10, 2014, at 9:58 AM, "Andy Martin" > wrote: One of my consumers threw the following error while running over the weekend. What are the possible causes for this and how can it be avoided? None of the specified endpoints were reachable Endpoints attempted: ------------------------------------------------ endpoint=amqp-0-9://rabbitmq.example.com:5672, attempts=1 System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown. at System.Threading.Thread.StartInternal(IPrincipal principal, StackCrawlMark& stackMark) at System.Threading.Thread.Start(StackCrawlMark& stackMark) at System.Threading.Thread.Start() at RabbitMQ.Client.Impl.ConnectionBase.StartMainLoop() at RabbitMQ.Client.Impl.ConnectionBase..ctor(ConnectionFactory factory, Boolean insist, IFrameHandler frameHandler) at RabbitMQ.Client.Framing.Impl.v0_9_1.ProtocolBase.CreateConnection(ConnectionFactory factory, Boolean insist, IFrameHandler frameHandler) at RabbitMQ.Client.ConnectionFactory.FollowRedirectChain(Int32 maxRedirects, IDictionary`2 connectionAttempts, IDictionary`2 connectionErrors, AmqpTcpEndpoint[]& mostRecentKnownHosts, AmqpTcpEndpoint endpoint) ================================================ Stack trace: at RabbitMQ.Client.ConnectionFactory.CreateConnection(Int32 maxRedirects) at RabbitMQ.Client.ConnectionFactory.CreateConnection() at Fabric.Core.Queueing.RabbitMq.RabbitMqSyncRpcQueue.CreateConnection() at Fabric.Core.Queueing.RabbitMq.RabbitMqSyncRpcQueue.SendAndWaitImpl[TParam,TResult](TParam param, String topicSuffix) at Fabric.Core.Queueing.RabbitMq.RabbitMqSyncRpcQueue.<>c__DisplayClass1`2.b__0() at Fabric.Core.Queueing.RabbitMq.RabbitMqQueueBase.QueueActionWithRetry[T](Func`1 action) _______________________________________________ rabbitmq-discuss mailing list rabbitmq-discuss at lists.rabbitmq.com https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss -------------- next part -------------- An HTML attachment was scrubbed... URL: From ron.cordell at gmail.com Mon Feb 10 17:23:37 2014 From: ron.cordell at gmail.com (Ron Cordell) Date: Mon, 10 Feb 2014 09:23:37 -0800 Subject: [rabbitmq-discuss] RabbitMQ periodic slowness In-Reply-To: <5F5702AD-04DF-46F9-B4E2-7D9E39435126@rabbitmq.com> References: <5F5702AD-04DF-46F9-B4E2-7D9E39435126@rabbitmq.com> Message-ID: Apologies for the delay in responding. I will dig through the logs to see if I can find any indication of flow control happening. Cheers, -ronc On Thu, Feb 6, 2014 at 11:30 PM, Michael Klishin wrote: > > On 7 Feb 2014, at 07:34, Ron Cordell wrote: > > > But in every test scenario under load we start to see the socket opened > to Rabbit on a write operation and no response for 20-30 seconds (with > network tracing tools). > > > > Has anyone seen any behavior like this? > > Sounds like your publishers are being blocked. > See http://rabbitmq.com/memory.html. > > RabbitMQ log will mention alarms if that's the case. > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From darren at ontrenet.com Mon Feb 10 17:47:02 2014 From: darren at ontrenet.com (Darren Govoni) Date: Mon, 10 Feb 2014 12:47:02 -0500 Subject: [rabbitmq-discuss] Pika Client error/disconnect Message-ID: <52F91096.5010408@ontrenet.com> An HTML attachment was scrubbed... URL: From michael.laing at nytimes.com Mon Feb 10 17:53:46 2014 From: michael.laing at nytimes.com (Laing, Michael) Date: Mon, 10 Feb 2014 12:53:46 -0500 Subject: [rabbitmq-discuss] Pika Client error/disconnect In-Reply-To: <52F91096.5010408@ontrenet.com> References: <52F91096.5010408@ontrenet.com> Message-ID: what's the pika version? -ml On Mon, Feb 10, 2014 at 12:47 PM, Darren Govoni wrote: > Hi, > I'm using python celery with RabbitMQ and AMQP. Pika occasionally gives > this bizarre > error, from which, there is no recovery. > > [2014-02-10 17:16:25,189: ERROR/Worker-20] Socket Error on fd 9: 32 > [2014-02-10 17:16:25,190: WARNING/Worker-20] Traceback (most recent call > last): > File "/home/ubuntu/software/code/gridwave/matrix/bundles/nlp/engine.py", > line 160, in process_bid > workflow.construct(_workflow['workflow']) > File > "/home/ubuntu/software/code/gridwave/matrix/bundles/workflow/celery/__init__.py", > line 920, in construct > self.workflow_broker.publish(wfdoc) > File > "/home/ubuntu/software/code/gridwave/matrix/bundles/messaging/rabbitmq/__init__.py", > line 131, in publish > > self.channel.basic_publish(exchange=self.exchange,routing_key=self.key,body=message) > File > "/usr/local/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", > line 540, in basic_publish > (properties, body), False) > File > "/usr/local/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", > line 1121, in _send_method > self.connection.send_method(self.channel_number, method_frame, content) > File > "/usr/local/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", > line 249, in send_method > self._send_method(channel_number, method_frame, content) > File "/usr/local/lib/python2.7/dist-packages/pika/connection.py", line > 1489, in _send_method > self._send_frame(frame.Method(channel_number, method_frame)) > File > "/usr/local/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", > line 388, in _send_frame > super(BlockingConnection, self)._send_frame(frame_value) > File "/usr/local/lib/python2.7/dist-packages/pika/connection.py", line > 1476, in _send_frame > self._flush_outbound() > File > "/usr/local/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", > line 348, in _flush_outbound > if self._handle_write(): > File > "/usr/local/lib/python2.7/dist-packages/pika/adapters/base_connection.py", > line 338, in _handle_write > return self._handle_error(error) > File > "/usr/local/lib/python2.7/dist-packages/pika/adapters/base_connection.py", > line 282, in _handle_error > self._handle_disconnect() > File > "/usr/local/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", > line 318, in _handle_disconnect > self.disconnect() > AttributeError: 'BlockingConnection' object has no attribute 'disconnect' > > Any clues I can look for? > > Ubuntu 13.10, 64bit. > > thanks, > Darren > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From videlalvaro at gmail.com Mon Feb 10 17:59:55 2014 From: videlalvaro at gmail.com (Alvaro Videla) Date: Mon, 10 Feb 2014 18:59:55 +0100 Subject: [rabbitmq-discuss] Using Message Broker for database replications (currently RabbitMQ ) In-Reply-To: References: Message-ID: Hi, 1. One of the main uses of RabbitMQ is to spread events in a system, so this seems to fit your use case. 2. When you consume messages from a RabbitMQ queue you can tell the broker that you want to "acknowledge" each message once you are done with it. So RabbitMQ will delete the message once the consumer sends the "ack". So if your consumer crashes before sending the ack, then the messages will be put back in the queue. Some notes: - You can actually send more than one ack at the same time, i.e: ack a set of messages instead of one by one, so you reduce roundtrips. - Messages are put back in the queue in order, so you don't lose ordering here. That is, messages are back in the queue at the same position where it was before being delivered to the consumer. 3. I'm not sure what you mean here, but RabbitMQ is definitely used in the way you ask. Regards, Alvaro On Mon, Feb 10, 2014 at 2:19 PM, rails wrote: > When my system's data changes I publish every single change to at least 4 > different consumers (around 3000 messages a second) so I want to use a > message broker. > Most of the consumers are responsible to update their database tables with > the change. > > (The DBs are different - couch, mysql, etc therefor solutions such as using > their own replication mechanism or using db triggers is not possible) > questions > > Does anyone have an experience with data replication between DBs using a > message broker? > is it a good practice? > > What do I do in case of failures? > Let's say, using RabbitMQ, the client removed 10,000 messages from the > queue, acked, and threw an exception each time before handling them. Now > they are lost. Is there a way to go back in the queue? > > (re-queueing them will mess their order ). > > Is using rabbitMQ a good practice? Isn't the ability to go back in the queue > as in Kafka important to fail scenarios? > > Thanks. > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > From mklishin at gopivotal.com Mon Feb 10 19:45:33 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Mon, 10 Feb 2014 23:45:33 +0400 Subject: [rabbitmq-discuss] OutOfMemoryException In-Reply-To: References: Message-ID: <62F3BA81-94F2-463E-B827-8F49FD8D864E@rabbitmq.com> On 10 Feb 2014, at 19:58, Andy Martin wrote: > None of the specified endpoints were reachable > Endpoints attempted: > ------------------------------------------------ > endpoint=amqp-0-9://rabbitmq.example.com:5672, attempts=1 > System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown. > at System.Threading.Thread.StartInternal(IPrincipal principal, StackCrawlMark& stackMark) > at System.Threading.Thread.Start(StackCrawlMark& stackMark) > at System.Threading.Thread.Start() > at RabbitMQ.Client.Impl.ConnectionBase.StartMainLoop() Your app may be constantly opening new connections without closing them. You got an OOME when instantiating a new connection, which is only reasonably likely if you create them often. MK Software Engineer, Pivotal/RabbitMQ From sagu.prf1 at gmail.com Mon Feb 10 21:50:13 2014 From: sagu.prf1 at gmail.com (sagu prf) Date: Mon, 10 Feb 2014 13:50:13 -0800 Subject: [rabbitmq-discuss] Rabbitmq upgrade from 2.8.7 version to 3.2.3 version In-Reply-To: <52F89BA9.3050208@rabbitmq.com> References: <52F349DC.2000303@rabbitmq.com> <52F89BA9.3050208@rabbitmq.com> Message-ID: Thank you , Simon . Regards seenivasan On Mon, Feb 10, 2014 at 1:28 AM, Simon MacMullen wrote: > On 09/02/2014 03:19, sagu prf wrote: >> >> I am facing following issue on mirror queue policy . >> >> rabbitmqctl set_policy -p "VHOST1" ha-all "^DataService\." >> '{"ha-mode":"all"}' --priority "1" >> rabbitmqctl set_policy -p "HOST1" ha-all "^CarrierService\." >> '{"ha-mode":"all"}' --priority "1" >> >> >> First command , set mirror policy for DataService queues . >> >> second command , set mirror policy for CarrierService and it's removed >> first command mirrored policy . > > > You can't have two policies in the same vhost with the same name (I assume > "VHOST1" vs "HOST1" is a typo). > > So the second command redefines the "ha-all" policy. > > Prevent the name clash and you'll be good. > > Cheers, Simon From mpietrek at skytap.com Tue Feb 11 01:33:53 2014 From: mpietrek at skytap.com (Matt Pietrek) Date: Mon, 10 Feb 2014 17:33:53 -0800 Subject: [rabbitmq-discuss] Autoheal failure Message-ID: Recently we started running a two node HA cluster of Rabbit 3.2.2, with autoheal enabled. After a network partition, I noticed that autoheal didn't appear to work, although the logs indicate it was tried. The first time it happened, the UI in both brokers indicated the other broker was missing from the cluster. The second time this happened, the management plugin seemed to not function afterwards. Most of the Web UI was unusable, i.e it wouldn't tell me which nodes were running, what queues were declared, and so forth. I'm wondering if what I'm seeing below is a known issue rings any bells. Also, is their any other log output I should look at to determine success/failure? On the "winning" side, the logs look like this. The "ignoring" part in particular is suspicious. -------- =ERROR REPORT==== 3-Feb-2014::09:48:56 === Mnesia(rabbit at goodnessmq1): ** ERROR ** mnesia_event got {inconsistent_database, running_partitioned_network, rabbit at goodnessmq2} =INFO REPORT==== 3-Feb-2014::09:48:56 === Autoheal request received from rabbit at goodnessmq2 when in state {winner_waiting, [rabbit at goodnessmq2], [rabbit at goodnessmq2]}; ignoring =INFO REPORT==== 3-Feb-2014::09:48:56 === global: Name conflict terminating {rabbit_mgmt_db,<2783.10073.5>} -------- On the "losing" side, the logs look like this: -------- =ERROR REPORT==== 3-Feb-2014::09:48:56 === Mnesia(rabbit at goodnessmq2): ** ERROR ** mnesia_event got {inconsistent_database, running_partitioned_network, rabbit at goodnessmq1} =INFO REPORT==== 3-Feb-2014::09:48:56 === Autoheal request sent to rabbit at goodnessmq1 =WARNING REPORT==== 3-Feb-2014::09:48:56 === Federation exchange 'skytap' in vhost '/' did not connect to exchange 'skytap' in vhost '/' on amqp://something else.foo.bar.com:5672 {error,unknown_host} =INFO REPORT==== 3-Feb-2014::09:48:56 === Statistics database started. =WARNING REPORT==== 3-Feb-2014::09:48:58 === Federation exchange 'skytap' in vhost '/' did not connect to exchange 'skytap' in vhost '/' on amqp://somethingelse.foo.bar.com:5672 {error,unknown_host} -------- -------------- next part -------------- An HTML attachment was scrubbed... URL: From ron.cordell at gmail.com Tue Feb 11 02:45:33 2014 From: ron.cordell at gmail.com (Ron) Date: Mon, 10 Feb 2014 18:45:33 -0800 Subject: [rabbitmq-discuss] Autoheal failure In-Reply-To: References: Message-ID: We have seen the same behavior but don't have a fix for it. In a 3 node HA cluster we sometimes see node 1 out as seen by node 2, node 2 out as seen by node 1, and node 3 thinks everything is ok. Pivotal Labs was working with us at one point and they didn't have an explanation, either. That being said we have had numerous issues getting a stable and reliable 3 node cluster working on Windows Server 2008R2. We don't see the stability issues in our tests with Linux but we won't be running production on Linux rabbit nodes for a couple more weeks. Cheers, Ron Sent from my iPad > On Feb 10, 2014, at 5:33 PM, Matt Pietrek wrote: > > Recently we started running a two node HA cluster of Rabbit 3.2.2, with autoheal enabled. > > After a network partition, I noticed that autoheal didn't appear to work, although the logs indicate it was tried. The first time it happened, the UI in both brokers indicated the other broker was missing from the cluster. > > The second time this happened, the management plugin seemed to not function afterwards. Most of the Web UI was unusable, i.e it wouldn't tell me which nodes were running, what queues were declared, and so forth. > > > I'm wondering if what I'm seeing below is a known issue rings any bells. Also, is their any other log output I should look at to determine success/failure? > > On the "winning" side, the logs look like this. The "ignoring" part in particular is suspicious. > > -------- > =ERROR REPORT==== 3-Feb-2014::09:48:56 === > > Mnesia(rabbit at goodnessmq1): ** ERROR ** mnesia_event got {inconsistent_database, running_partitioned_network, rabbit at goodnessmq2} > > > > =INFO REPORT==== 3-Feb-2014::09:48:56 === > > Autoheal request received from rabbit at goodnessmq2 when in state {winner_waiting, > > [rabbit at goodnessmq2], > > [rabbit at goodnessmq2]}; ignoring > > > > =INFO REPORT==== 3-Feb-2014::09:48:56 === > > global: Name conflict terminating {rabbit_mgmt_db,<2783.10073.5>} > > -------- > > > > On the "losing" side, the logs look like this: > > -------- > > =ERROR REPORT==== 3-Feb-2014::09:48:56 === > > Mnesia(rabbit at goodnessmq2): ** ERROR ** mnesia_event got {inconsistent_database, running_partitioned_network, rabbit at goodnessmq1} > > > > =INFO REPORT==== 3-Feb-2014::09:48:56 === > > Autoheal request sent to rabbit at goodnessmq1 > > > > =WARNING REPORT==== 3-Feb-2014::09:48:56 === > > Federation exchange 'skytap' in vhost '/' did not connect to exchange 'skytap' in vhost '/' on amqp://something else.foo.bar.com:5672 > > {error,unknown_host} > > =INFO REPORT==== 3-Feb-2014::09:48:56 === > > Statistics database started. > > > > =WARNING REPORT==== 3-Feb-2014::09:48:58 === > > Federation exchange 'skytap' in vhost '/' did not connect to exchange 'skytap' in vhost '/' on amqp://somethingelse.foo.bar.com:5672 > > {error,unknown_host} > > -------- > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss -------------- next part -------------- An HTML attachment was scrubbed... URL: From otnateos at gmail.com Tue Feb 11 04:14:02 2014 From: otnateos at gmail.com (Johanes Soetanto) Date: Tue, 11 Feb 2014 15:14:02 +1100 Subject: [rabbitmq-discuss] Autoheal failure In-Reply-To: References: Message-ID: On 11 February 2014 13:45, Ron wrote: > We have seen the same behavior but don't have a fix for it. In a 3 node HA > cluster we sometimes see node 1 out as seen by node 2, node 2 out as seen > by node 1, and node 3 thinks everything is ok. Pivotal Labs was working > with us at one point and they didn't have an explanation, either. > > That being said we have had numerous issues getting a stable and reliable > 3 node cluster working on Windows Server 2008R2. We don't see the stability > issues in our tests with Linux but we won't be running production on Linux > rabbit nodes for a couple more weeks. > > Cheers, > > Ron > > Sent from my iPad > > On Feb 10, 2014, at 5:33 PM, Matt Pietrek wrote: > > Recently we started running a two node HA cluster of Rabbit 3.2.2, with > autoheal enabled. > > After a network partition, I noticed that autoheal didn't appear to work, > although the logs indicate it was tried. The first time it happened, the UI > in both brokers indicated the other broker was missing from the cluster. > > The second time this happened, the management plugin seemed to not > function afterwards. Most of the Web UI was unusable, i.e it wouldn't tell > me which nodes were running, what queues were declared, and so forth. > > One thing i learned from the one of the similar discussion in this mailing list you can start up the web ui using sudo rabbitmqctl eval 'application:start(rabbitmq_management).' or sudo rabbitmqctl eval 'application:stop(rabbitmq_management).' At least that will give you management UI back > > > I'm wondering if what I'm seeing below is a known issue rings any bells. > Also, is their any other log output I should look at to determine > success/failure? > > On the "winning" side, the logs look like this. The "ignoring" part in > particular is suspicious. > > -------- > > =ERROR REPORT==== 3-Feb-2014::09:48:56 === > > Mnesia(rabbit at goodnessmq1): ** ERROR ** mnesia_event got > {inconsistent_database, running_partitioned_network, rabbit at goodnessmq2} > > > =INFO REPORT==== 3-Feb-2014::09:48:56 === > > Autoheal request received from rabbit at goodnessmq2 when in state > {winner_waiting, > > > [rabbit at goodnessmq2], > > > [rabbit at goodnessmq2]}; ignoring > > > =INFO REPORT==== 3-Feb-2014::09:48:56 === > > global: Name conflict terminating {rabbit_mgmt_db,<2783.10073.5>} > > -------- > > > On the "losing" side, the logs look like this: > > -------- > > =ERROR REPORT==== 3-Feb-2014::09:48:56 === > > Mnesia(rabbit at goodnessmq2): ** ERROR ** mnesia_event got > {inconsistent_database, running_partitioned_network, rabbit at goodnessmq1} > > > =INFO REPORT==== 3-Feb-2014::09:48:56 === > > Autoheal request sent to rabbit at goodnessmq1 > > > =WARNING REPORT==== 3-Feb-2014::09:48:56 === > > Federation exchange 'skytap' in vhost '/' did not connect to exchange > 'skytap' in vhost '/' on amqp://something else.foo.bar.com:5672 > > {error,unknown_host} > > =INFO REPORT==== 3-Feb-2014::09:48:56 === > > Statistics database started. > > > =WARNING REPORT==== 3-Feb-2014::09:48:58 === > > Federation exchange 'skytap' in vhost '/' did not connect to exchange > 'skytap' in vhost '/' on amqp://somethingelse.foo.bar.com:5672 > > {error,unknown_host} > > -------- > > Not quite sure what's going on there since we are not using federation, but have you checked if the "losing side" can connect to the somethingelse.foo.bar.com at that port ? I remembered when I was playing around with federation and clustering I had issue because one of the node couldn't resolve the other host because it didn't exist in the /etc/hosts or due to firewall issue > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From Rohit.Patle at techmahindra.com Tue Feb 11 05:01:41 2014 From: Rohit.Patle at techmahindra.com (Rohit Patle) Date: Tue, 11 Feb 2014 05:01:41 +0000 Subject: [rabbitmq-discuss] [rabbitmq-c-master] memory leakink while reconnect. Message-ID: <27E054594442884E9A46DBCF9AE7408164FC93@BSDMSATMBX001.mahindrasatyam.ad> Hi, I am using rabbitmq-c client library v0.4.1. Here is the condition that, I need to pole for the connection re-establishment in the interval of every 30 sec, if there is a network failure or my RMQ is down. While performing this I am observing that there is some memory leak with my rabbitmq client library, which is gradually increases and the library is not returns back the amount of memory acquired by it to the system. Due to the reason after certain period of time the system is unable to allocate memory for amqp_new_connection(). To over come the issue I tried with amqp_connection_close() if in case I got "opening SSL/TLS connection", but it is of no use as it is not helping me to release back the acquired memory by rabitmq library to system. Also I am not able to do amqp_destroy_connection() because the connection is not establish yet successfully. Is there is any way to avoid the this kind of memory leak from the rabbitmq-c library? Thanks & Regards, Rohit ________________________________ DISCLAIMER: This email (including any attachments) is intended for the sole use of the intended recipient/s and may contain material that is CONFIDENTIAL AND PRIVATE COMPANY INFORMATION. Any review or reliance by others or copying or distribution or forwarding of any or all of the contents in this message is STRICTLY PROHIBITED. If you are not the intended recipient, please contact the sender by email and delete all copies; your cooperation in this regard is appreciated. -------------- next part -------------- An HTML attachment was scrubbed... URL: From alan.antonuk at gmail.com Tue Feb 11 05:42:33 2014 From: alan.antonuk at gmail.com (Alan Antonuk) Date: Mon, 10 Feb 2014 21:42:33 -0800 Subject: [rabbitmq-discuss] [rabbitmq-c-master] memory leakink while reconnect. In-Reply-To: <27E054594442884E9A46DBCF9AE7408164FC93@BSDMSATMBX001.mahindrasatyam.ad> References: <27E054594442884E9A46DBCF9AE7408164FC93@BSDMSATMBX001.mahindrasatyam.ad> Message-ID: Rohit; Rohit; You do not need to address your emails to rabbitmq-discuss-owner@ or rabbitmq-discuss-request@ when posting to the discussion list. rabbitmq-discuss@ is sufficient. On Mon, Feb 10, 2014 at 9:01 PM, Rohit Patle wrote: > Hi, > > I am using rabbitmq-c client library v0.4.1. > > Here is the condition that, I need to pole for the connection > re-establishment in the interval of every 30 sec, if there is a network > failure or my RMQ is down. While performing this I am observing that there > is some memory leak with my rabbitmq client library, which is gradually > increases and the library is not returns back the amount of memory acquired > by it to the system. Due to the reason after certain period of time the > system is unable to allocate memory for amqp_new_connection(). > > To over come the issue I tried with amqp_connection_close() if in case I > got "opening SSL/TLS connection", but it is of no use as it is not helping > me to release back the acquired memory by rabitmq library to system. Also I > am not able to do amqp_destroy_connection() because the connection is not > establish yet successfully. > I'm confused as to what you're doing. amqp_destroy_connection() should be called for every amqp_connection_state_t you create with amqp_new_connection(). It doesn't matter if you're able to successfully connect to the broker or not, you will need to destroy the amqp_connection_state_t object. -Alan -------------- next part -------------- An HTML attachment was scrubbed... URL: From stammailbox at gmail.com Tue Feb 11 07:20:01 2014 From: stammailbox at gmail.com (rails) Date: Tue, 11 Feb 2014 09:20:01 +0200 Subject: [rabbitmq-discuss] Using Message Broker for database replications (currently RabbitMQ ) In-Reply-To: References: Message-ID: Thanks. "Messages are put back in the queue in order, so you don't lose ordering here. That is, messages are back in the queue at the same position where it was before being delivered to the consumer." Do you mean un-acked messages? Or when do messages are put back in the Queue? On Mon, Feb 10, 2014 at 7:59 PM, Alvaro Videla wrote: > Hi, > > 1. One of the main uses of RabbitMQ is to spread events in a system, > so this seems to fit your use case. > > 2. When you consume messages from a RabbitMQ queue you can tell the > broker that you want to "acknowledge" each message once you are done > with it. So RabbitMQ will delete the message once the consumer sends > the "ack". So if your consumer crashes before sending the ack, then > the messages will be put back in the queue. > > Some notes: > > - You can actually send more than one ack at the same time, i.e: ack a > set of messages instead of one by one, so you reduce roundtrips. > - Messages are put back in the queue in order, so you don't lose > ordering here. That is, messages are back in the queue at the same > position where it was before being delivered to the consumer. > > 3. I'm not sure what you mean here, but RabbitMQ is definitely used in > the way you ask. > > Regards, > > Alvaro > > On Mon, Feb 10, 2014 at 2:19 PM, rails wrote: > > When my system's data changes I publish every single change to at least 4 > > different consumers (around 3000 messages a second) so I want to use a > > message broker. > > Most of the consumers are responsible to update their database tables > with > > the change. > > > > (The DBs are different - couch, mysql, etc therefor solutions such as > using > > their own replication mechanism or using db triggers is not possible) > > questions > > > > Does anyone have an experience with data replication between DBs using a > > message broker? > > is it a good practice? > > > > What do I do in case of failures? > > Let's say, using RabbitMQ, the client removed 10,000 messages from the > > queue, acked, and threw an exception each time before handling them. Now > > they are lost. Is there a way to go back in the queue? > > > > (re-queueing them will mess their order ). > > > > Is using rabbitMQ a good practice? Isn't the ability to go back in the > queue > > as in Kafka important to fail scenarios? > > > > Thanks. > > > > > > _______________________________________________ > > rabbitmq-discuss mailing list > > rabbitmq-discuss at lists.rabbitmq.com > > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From stammailbox at gmail.com Tue Feb 11 07:23:31 2014 From: stammailbox at gmail.com (rails) Date: Tue, 11 Feb 2014 09:23:31 +0200 Subject: [rabbitmq-discuss] RabbitMQ - Is there a way to go back to old messages in a queue In-Reply-To: <52F8D5BE.3020408@rabbitmq.com> References: <52F8D5BE.3020408@rabbitmq.com> Message-ID: hmm, Got it. The only thing I am confused about is regarding \ " making acking behave the same as moving the consumer index thing back in kafka." How exactly? Thanks. On Mon, Feb 10, 2014 at 3:35 PM, Simon MacMullen wrote: > On 10/02/14 13:32, rails wrote: > >> Lets say my consumer acked and due to some strange reason did not handle >> the message well. Is there a technic to go over message again? >> > > Your consumer should not ack messages until it has handled them - that's > what explicit acking is for; not just to say "I got this message" but "I > got this message and have handled it". > > > Requirements : >> 1. same order. >> 2. continue receiving new messages and placing them last in the queue? >> > > Unacked messages are returned to the queue in order. So your consumer will > always receive messages in order, regardless of failures, as long as: > > * It is the only consumer on the queue > * It always acknowledges messages in order > > That will making acking behave the same as moving the consumer index thing > back in kafka. > > Cheers, Simon > > -- > Simon MacMullen > RabbitMQ, Pivotal > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Tue Feb 11 07:26:17 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 11 Feb 2014 11:26:17 +0400 Subject: [rabbitmq-discuss] Using Message Broker for database replications (currently RabbitMQ ) In-Reply-To: References: Message-ID: <859270E7-FBA0-471D-AD5B-26205E68BE44@rabbitmq.com> On 11 Feb 2014, at 11:20, rails wrote: > Do you mean un-acked messages? Or when do messages are put back in the Queue? Either manually with basic.{reject,nack} with requeue = true or when the channel delivery was on is closed. MK Software Engineer, Pivotal/RabbitMQ From simon at rabbitmq.com Tue Feb 11 10:15:00 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Tue, 11 Feb 2014 10:15:00 +0000 Subject: [rabbitmq-discuss] Autoheal failure In-Reply-To: References: Message-ID: <52F9F824.1010801@rabbitmq.com> On 11/02/14 01:33, Matt Pietrek wrote: > Recently we started running a two node HA cluster of Rabbit 3.2.2, with > autoheal enabled. > > After a network partition, I noticed that autoheal didn't appear to > work, although the logs indicate it was tried. The first time it > happened, the UI in both brokers indicated the other broker was missing > from the cluster. So the log indicates that the winning node ignored a request to start autohealing because it was already autohealing. It's possible that there is a problem if a network partition occurs while autoheal is already happening. I'll file a bug to look into this, but it would help if you can show me any previous logs from this node - I assume that earlier (probably not much earlier) in the logs there were some more partition warnings and autoheal events? > The second time this happened, the management plugin seemed to not > function afterwards. Most of the Web UI was unusable, i.e it wouldn't > tell me which nodes were running, what queues were declared, and so forth. Separately there is an issue where the management database might fail to recover after a network partition. I just replicated that yesterday; note that it's not connected to autoheal. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From xeonmailinglist at gmail.com Tue Feb 11 15:10:41 2014 From: xeonmailinglist at gmail.com (xeon Mailinglist) Date: Tue, 11 Feb 2014 15:10:41 +0000 Subject: [rabbitmq-discuss] Internal IP address conflict, gives channel the same name Message-ID: Hi, I know that RabbitMQ use the IP to identify a channel by default. But my problem is that, the 4 hosts use the internal IP address as a channel name, and are registered in the rabbitMQ with the external IP address. Therefore, when I send a message to the external IP address of one host, the message is not relay to the correct channel. Also, the internal IP address is the same in the 4 hosts, because they are running in different domains, and the domains use the same internal IP address, but different external IPs. How I set a channel to each external IP address to send messages? Thanks, -------------- next part -------------- An HTML attachment was scrubbed... URL: From xeonmailinglist at gmail.com Tue Feb 11 15:15:26 2014 From: xeonmailinglist at gmail.com (xeon Mailinglist) Date: Tue, 11 Feb 2014 15:15:26 +0000 Subject: [rabbitmq-discuss] Internal IP address conflict, gives channel the same name In-Reply-To: References: Message-ID: Maybe I used channel instead of queues. What I want to say is that the queues of the host use the internal IP address for RabbitMQ. The 4 hosts have as hostname the internal IP address. The external IP address is registered as channel in the rabbitMQ. All hosts have this queue set: [queue] 172.16.100.1 exchange=172.16.100.1(direct) key=172.16.100.1 How I set queue that I can know to which host I am sending a message? On Tue, Feb 11, 2014 at 3:10 PM, xeon Mailinglist wrote: > Hi, > > I know that RabbitMQ use the IP to identify a channel by default. But my > problem is that, the 4 hosts use the internal IP address as a channel name, > and are registered in the rabbitMQ with the external IP address. Therefore, > when I send a message to the external IP address of one host, the message > is not relay to the correct channel. Also, the internal IP address is the > same in the 4 hosts, because they are running in different domains, and > the domains use the same internal IP address, but different external IPs. > > How I set a channel to each external IP address to send messages? > > > Thanks, > -------------- next part -------------- An HTML attachment was scrubbed... URL: From xeonmailinglist at gmail.com Tue Feb 11 15:28:18 2014 From: xeonmailinglist at gmail.com (xeon Mailinglist) Date: Tue, 11 Feb 2014 15:28:18 +0000 Subject: [rabbitmq-discuss] Internal IP address conflict, gives channel the same name In-Reply-To: References: Message-ID: When I run celery, all 4 host register to RabbitMQ with this configuration. -------------- celery at 172.16.100.1 v3.1.9 (Cipater) ---- **** ----- --- * *** * -- Linux-2.6.32-5-amd64-x86_64-with-debian-jessie-sid -- * - **** --- - ** ---------- [config] - ** ---------- .> app: default:0x2ab7150 (.default.Loader) - ** ---------- .> transport: amqp://celeryuser at myhost:5672/celeryvhost - ** ---------- .> results: amqp - *** --- * --- .> concurrency: 1 (prefork) -- ******* ---- --- ***** ----- [queues] -------------- .> 172.16.100.1 exchange=172.16.100.1(direct) key=172.16.100.1 On Tue, Feb 11, 2014 at 3:15 PM, xeon Mailinglist wrote: > Maybe I used channel instead of queues. What I want to say is that the > queues of the host use the internal IP address for RabbitMQ. The 4 hosts > have as hostname the internal IP address. The external IP address is > registered as channel in the rabbitMQ. > > All hosts have this queue set: > [queue] 172.16.100.1 exchange=172.16.100.1(direct) key=172.16.100.1 > > How I set queue that I can know to which host I am sending a message? > > > > > On Tue, Feb 11, 2014 at 3:10 PM, xeon Mailinglist < > xeonmailinglist at gmail.com> wrote: > >> Hi, >> >> I know that RabbitMQ use the IP to identify a channel by default. But my >> problem is that, the 4 hosts use the internal IP address as a channel name, >> and are registered in the rabbitMQ with the external IP address. Therefore, >> when I send a message to the external IP address of one host, the message >> is not relay to the correct channel. Also, the internal IP address is the >> same in the 4 hosts, because they are running in different domains, and >> the domains use the same internal IP address, but different external IPs. >> >> How I set a channel to each external IP address to send messages? >> >> >> Thanks, >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From Vyacheslav.Artyukhov at MegaFon.ru Tue Feb 11 15:29:11 2014 From: Vyacheslav.Artyukhov at MegaFon.ru (Vyacheslav Artyukhov) Date: Tue, 11 Feb 2014 15:29:11 +0000 Subject: [rabbitmq-discuss] Metric egress/ingress rates Message-ID: <88C56380720FB647938FC81ECFD3267433A04AC7@vlg-mail04.Megafon.ru> Good day! What does the metrics 'avg_ack_ingress_rate' and 'avg_ack_egress_rate' exactly means? I have an idle queue that has these metrics of values about '164'. I have no idea why.. ________________________________ ?????????? ? ???? ????????? ????????????? ????????????? ??? ?????????? ???, ??????? ??? ??????????. ? ????????? ????? ??????????? ???????????????? ??????????, ??????? ?? ????? ???? ???????? ??? ???????????? ???-????, ????? ?????????. ???? ?? ?? ??????? ????? ?????????, ?? ?????????????, ?????????????, ??????????? ??? ??????????????? ?????????? ????????? ??? ??? ????? ????????? ? ?????????. ???? ?? ???????? ??? ????????? ????????, ??????????, ??????????????? ???????? ??????????? ?? ???? ? ??????? ?? ???? ?????????? ???? ????????? ? ????? ????????? ??? ????? ? ??????????. The information contained in this communication is intended solely for the use of the individual or entity to whom it is addressed and others authorized to receive it. It may contain confidential or legally privileged information. The contents may not be disclosed or used by anyone other than the addressee. If you are not the intended recipient(s), any use, disclosure, copying, distribution or any action taken or omitted to be taken in reliance on it is prohibited and may be unlawful. If you have received this communication in error please notify us immediately by responding to this email and then delete the e-mail and all attachments and any copies thereof. (c)20mf50 -------------- next part -------------- An HTML attachment was scrubbed... URL: From ask at rabbitmq.com Tue Feb 11 15:39:12 2014 From: ask at rabbitmq.com (Ask Solem) Date: Tue, 11 Feb 2014 15:39:12 +0000 Subject: [rabbitmq-discuss] Internal IP address conflict, gives channel the same name In-Reply-To: References: Message-ID: <7FB66B45-AE6C-4CCC-BDDA-E51CCD3B6D81@rabbitmq.com> On Feb 11, 2014, at 3:28 PM, xeon Mailinglist wrote: > --- ***** ----- [queues] > -------------- .> 172.16.100.1 exchange=172.16.100.1(direct) key=172.16.100.1 > Where does that queue named after an IP address come from? Celery does not use such a naming scheme, so it must be something you have set up? From simon at rabbitmq.com Tue Feb 11 16:19:54 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Tue, 11 Feb 2014 16:19:54 +0000 Subject: [rabbitmq-discuss] Metric egress/ingress rates In-Reply-To: <88C56380720FB647938FC81ECFD3267433A04AC7@vlg-mail04.Megafon.ru> References: <88C56380720FB647938FC81ECFD3267433A04AC7@vlg-mail04.Megafon.ru> Message-ID: <52FA4DAA.1000104@rabbitmq.com> On 11/02/14 15:29, Vyacheslav Artyukhov wrote: > What does the metrics 'avg_ack_ingress_rate' and 'avg_ack_egress_rate' > exactly means? I have an idle queue that has these metrics of values > about '164'. I have no idea why.. They are part of backing_queue_status, about which we don't make many guarantees of consistency. It's mostly there for debugging. In particular, the management plugin will report the backing_queue_status the queue had at the moment it went idle. This means the fields ending in '_rates' do not need to be 0 if the queue is idle. Their specific meaning is "rate at which the queue added messages to its internal structure for unacknowledged messages" and "rate at which the queue forgot messages from the same structure". Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From cwstorm at gmail.com Tue Feb 11 16:43:00 2014 From: cwstorm at gmail.com (cw storm) Date: Tue, 11 Feb 2014 11:43:00 -0500 Subject: [rabbitmq-discuss] basicAck Message-ID: I've created a service that'll perform the "basicAck" method. The input signature are the "channel" object and "deliveryTag". Is it possible to ack a message from the downstream service? -Phil -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Tue Feb 11 16:45:46 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Tue, 11 Feb 2014 20:45:46 +0400 Subject: [rabbitmq-discuss] basicAck In-Reply-To: References: Message-ID: 2014-02-11 20:43 GMT+04:00 cw storm : > I've created a service that'll perform the "basicAck" method. The input > signature are the "channel" object and "deliveryTag". Is it possible to > ack a message from the downstream service? Define "downstream service"? You can only ack deliveries on the same channel. -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From mpietrek at skytap.com Tue Feb 11 17:30:55 2014 From: mpietrek at skytap.com (Matt Pietrek) Date: Tue, 11 Feb 2014 09:30:55 -0800 Subject: [rabbitmq-discuss] Autoheal failure In-Reply-To: <52F9F824.1010801@rabbitmq.com> References: <52F9F824.1010801@rabbitmq.com> Message-ID: Simon, Glad you were able to repro mgmt database thing. As for the prior Autoheal activity, here's a sanitized version of what I've got by grepping for "Autoheal", with a little bit of extra context (-C 10). Let me know if you need something else in particular. On the "winning" side ("goodnessmq1") --------------------------------- =INFO REPORT==== 2-Feb-2014::07:28:18 === closing AMQP connection <0.25083.0> (goodness2mq1.foo.bar.com:36360 -> goodnessmqvip1.foo.bar.com:5672) =WARNING REPORT==== 2-Feb-2014::07:28:18 === closing AMQP connection <0.19158.0> (goodnessawsd1.foo.bar.com:52133 -> goodnessmqvip1.foo.bar.com:5672): connection_closed_abruptly =INFO REPORT==== 2-Feb-2014::07:28:20 === Autoheal request received from rabbit at goodnessmq2 =ERROR REPORT==== 2-Feb-2014::07:28:20 === Mnesia(rabbit at goodnessmq1): ** ERROR ** mnesia_event got {inconsistent_database, running_partitioned_network, rabbit at goodnessmq2} =INFO REPORT==== 2-Feb-2014::07:28:20 === Autoheal decision * Partitions: [[rabbit at goodnessmq2],[rabbit at goodnessmq1]] * Winner: rabbit at goodnessmq1 * Losers: [rabbit at goodnessmq2] =INFO REPORT==== 2-Feb-2014::07:28:20 === Autoheal request sent to rabbit at goodnessmq1 =INFO REPORT==== 2-Feb-2014::07:28:20 === Autoheal: I am the winner, waiting for [rabbit at goodnessmq2] to stop =INFO REPORT==== 2-Feb-2014::07:28:20 === Autoheal request received from rabbit at goodnessmq1 when in state {winner_waiting, [rabbit at goodnessmq2], [rabbit at goodnessmq2]}; ignoring =INFO REPORT==== 2-Feb-2014::07:28:20 === accepting AMQP connection <0.25103.0> (goodness1mq1.foo.bar.com:57781 -> goodnessmqvip1.foo.bar.com:5672) =ERROR REPORT==== 2-Feb-2014::07:28:20 === connection <0.25103.0>, channel 1 - soft error: {amqp_error,not_found, "home node 'rabbit at goodnessmq2' of durable queue 'federation: skytap -> mq_prod/goodness1' in vhost '/' is down or inaccessible", -- "home node 'rabbit at goodnessmq2' of durable queue 'federation: skytap -> mq_prod/goodness2' in vhost '/' is down or inaccessible", 'queue.declare'} =INFO REPORT==== 2-Feb-2014::07:28:24 === closing AMQP connection <0.25176.0> (goodness2mq1.foo.bar.com:59858 -> goodnessmqvip1.foo.bar.com:5672) =INFO REPORT==== 2-Feb-2014::07:28:25 === rabbit on node rabbit at goodnessmq2 down =INFO REPORT==== 2-Feb-2014::07:28:25 === Autoheal: final node has stopped, starting... =INFO REPORT==== 2-Feb-2014::07:28:25 === rabbit on node rabbit at goodnessmq2 up =INFO REPORT==== 2-Feb-2014::07:28:25 === accepting AMQP connection <0.25238.0> (goodnessawsd1.foo.bar.com:52215 -> goodnessmqvip1.foo.bar.com:5672) =INFO REPORT==== 2-Feb-2014::07:28:26 === accepting AMQP connection <0.25266.0> (goodness1mq1.foo.bar.com:36928 -> goodnessmqvip1.foo.bar.com:5672) -- =INFO REPORT==== 2-Feb-2014::08:55:06 === rabbit on node rabbit at goodnessmq2 down =ERROR REPORT==== 2-Feb-2014::08:55:06 === Mnesia(rabbit at goodnessmq1): ** ERROR ** mnesia_event got {inconsistent_database, running_partitioned_network, rabbit at goodnessmq2} =INFO REPORT==== 2-Feb-2014::08:55:06 === closing AMQP connection <0.530.4> (goodnessawsd2.foo.bar.com:37902 -> goodnessmqvip1.foo.bar.com:5672) =INFO REPORT==== 2-Feb-2014::08:55:06 === Autoheal request sent to rabbit at goodnessmq1 =INFO REPORT==== 2-Feb-2014::08:55:06 === Autoheal request received from rabbit at goodnessmq2 =INFO REPORT==== 2-Feb-2014::08:55:06 === closing AMQP connection <0.777.4> (goodnessawsd2.foo.bar.com:37917 -> goodnessmqvip1.foo.bar.com:5672) =INFO REPORT==== 2-Feb-2014::08:55:06 === Mirrored-queue (queue 'ConfigurationManager' in vhost '/'): Master saw deaths of mirrors =INFO REPORT==== 2-Feb-2014::08:55:06 === Mirrored-queue (queue 'accounting' in vhost '/'): Master saw deaths of mirrors =INFO REPORT==== 2-Feb-2014::08:55:06 === Mirrored-queue (queue 'awsdriver_cron' in vhost '/'): Master saw deaths of mirrors =INFO REPORT==== 2-Feb-2014::08:55:06 === Mirrored-queue (queue 'mqcmd' in vhost '/'): Master saw deaths of mirrors =INFO REPORT==== 2-Feb-2014::08:55:06 === Autoheal decision * Partitions: [[rabbit at goodnessmq1],[rabbit at goodnessmq2]] * Winner: rabbit at goodnessmq1 * Losers: [rabbit at goodnessmq2] =INFO REPORT==== 2-Feb-2014::08:55:06 === Autoheal request received from rabbit at goodnessmq1 =INFO REPORT==== 2-Feb-2014::08:55:06 === Mirrored-queue (queue 'system_test' in vhost '/'): Master saw deaths of mirrors =INFO REPORT==== 2-Feb-2014::08:55:06 === Mirrored-queue (queue 'atropos' in vhost '/'): Master saw deaths of mirrors =INFO REPORT==== 2-Feb-2014::08:55:06 === Mirrored-queue (queue 'cmcmd' in vhost '/'): Master saw deaths of mirrors =INFO REPORT==== 2-Feb-2014::08:55:06 === Mirrored-queue (queue 'greenbox' in vhost '/'): Master saw deaths of mirrors =INFO REPORT==== 2-Feb-2014::08:55:06 === Mirrored-queue (queue 'web-tasks-prod' in vhost '/'): Master saw deaths of mirrors =INFO REPORT==== 2-Feb-2014::08:55:06 === Mirrored-queue (queue 'quota_inspector' in vhost '/'): Master saw deaths of mirrors =INFO REPORT==== 2-Feb-2014::08:55:06 === Autoheal decision * Partitions: [[rabbit at goodnessmq1],[rabbit at goodnessmq2]] * Winner: rabbit at goodnessmq1 * Losers: [rabbit at goodnessmq2] =INFO REPORT==== 2-Feb-2014::08:55:06 === Autoheal: I am the winner, waiting for [rabbit at goodnessmq2] to stop =INFO REPORT==== 2-Feb-2014::08:55:06 === Autoheal: I am the winner, waiting additionally for [rabbit at goodnessmq2] to stop =INFO REPORT==== 2-Feb-2014::08:55:06 === Mirrored-queue (queue 'awsdriver' in vhost '/'): Master saw deaths of mirrors =INFO REPORT==== 2-Feb-2014::08:55:06 === closing AMQP connection <0.998.4> (goodnessawsd2.foo.bar.com:37932 -> goodnessmqvip1.foo.bar.com:5672) =INFO REPORT==== 2-Feb-2014::08:55:06 === accepting AMQP connection <0.1025.4> (goodnessawsd2.foo.bar.com:37933 -> goodnessmqvip1.foo.bar.com:5672) -- {error,unknown_host} =ERROR REPORT==== 3-Feb-2014::09:48:55 === closing AMQP connection <0.25414.14> (goodnesswfe2.foo.bar.com:37330 -> goodnessmqvip1.foo.bar.com:5672): {heartbeat_timeout,running} =ERROR REPORT==== 3-Feb-2014::09:48:56 === Mnesia(rabbit at goodnessmq1): ** ERROR ** mnesia_event got {inconsistent_database, running_partitioned_network, rabbit at goodnessmq2} =INFO REPORT==== 3-Feb-2014::09:48:56 === Autoheal request received from rabbit at goodnessmq2 when in state {winner_waiting, [rabbit at goodnessmq2], [rabbit at goodnessmq2]}; ignoring =INFO REPORT==== 3-Feb-2014::09:48:56 === global: Name conflict terminating {rabbit_mgmt_db,<2783.10073.5>} =WARNING REPORT==== 3-Feb-2014::09:48:56 === Federation exchange 'skytap' in vhost '/' did not connect to exchange 'skytap' in vhost '/' on amqp://goodness1mqvip1.foo.bar.com:5672 {error,unknown_host} -- {error,unknown_host} =WARNING REPORT==== 3-Feb-2014::13:14:20 === Federation exchange 'skytap' in vhost '/' did not connect to exchange 'skytap' in vhost '/' on amqp://goodness1mqvip1.foo.bar.com:5672 {error,unknown_host} =ERROR REPORT==== 3-Feb-2014::13:14:24 === Mnesia(rabbit at goodnessmq1): ** ERROR ** mnesia_event got {inconsistent_database, running_partitioned_network, rabbit at goodnessmq2} =INFO REPORT==== 3-Feb-2014::13:14:24 === Autoheal request received from rabbit at goodnessmq2 when in state {winner_waiting, [rabbit at goodnessmq2], [rabbit at goodnessmq2]}; ignoring =WARNING REPORT==== 3-Feb-2014::13:14:25 === Federation exchange 'skytap' in vhost '/' did not connect to exchange 'skytap' in vhost '/' on amqp://goodness2mqvip1.foo.bar.com:5672 {error,unknown_host} =WARNING REPORT==== 3-Feb-2014::13:14:25 === Federation exchange 'skytap' in vhost '/' did not connect to exchange 'skytap' in vhost '/' on amqp://sgp1r1mqvip1.foo.bar.com:5672 {error,unknown_host} 17:19 PROD highland at goodnessmq1:~/logs/goodnessmq1.foo.bar.com$ --------------------------------- And on the losing side ("goodnessmq2"): --------------------------------- =WARNING REPORT==== 2-Feb-2014::07:28:08 === Federation exchange 'skytap' in vhost '/' did not connect to exchange 'skytap' in vhost '/' on amqp://sgp1r1mqvip1.foo.bar.com:5672 {error,unknown_host} =ERROR REPORT==== 2-Feb-2014::07:28:20 === Mnesia(rabbit at goodnessmq2): ** ERROR ** mnesia_event got {inconsistent_database, running_partitioned_network, rabbit at goodnessmq1} =INFO REPORT==== 2-Feb-2014::07:28:20 === Autoheal request sent to rabbit at goodnessmq1 =WARNING REPORT==== 2-Feb-2014::07:28:20 === Autoheal: we were selected to restart; winner is rabbit at goodnessmq1 =INFO REPORT==== 2-Feb-2014::07:28:20 === Stopping RabbitMQ =INFO REPORT==== 2-Feb-2014::07:28:20 === stopped TCP Listener on 0.0.0.0:5672 =WARNING REPORT==== 2-Feb-2014::07:28:21 === Federation exchange 'skytap' in vhost '/' did not connect to exchange 'skytap' in vhost '/' on amqp://sgp1r1mqvip1.foo.bar.com:5672 {error,unknown_host} -- =INFO REPORT==== 2-Feb-2014::08:55:06 === Mirrored-queue (queue 'ConfigurationManager' in vhost '/'): Slave saw deaths of mirrors =INFO REPORT==== 2-Feb-2014::08:55:06 === Mirrored-queue (queue 'ConfigurationManager' in vhost '/'): Promoting slave to master =INFO REPORT==== 2-Feb-2014::08:55:06 === Statistics database started. =INFO REPORT==== 2-Feb-2014::08:55:06 === Autoheal request sent to rabbit at goodnessmq1 =INFO REPORT==== 2-Feb-2014::08:55:06 === Mirrored-queue (queue 'awsdriver_cron' in vhost '/'): Slave saw deaths of mirrors =INFO REPORT==== 2-Feb-2014::08:55:06 === Mirrored-queue (queue 'awsdriver_cron' in vhost '/'): Promoting slave to master =WARNING REPORT==== 2-Feb-2014::08:55:06 === Autoheal: we were selected to restart; winner is rabbit at goodnessmq1 =INFO REPORT==== 2-Feb-2014::08:55:06 === Stopping RabbitMQ =INFO REPORT==== 2-Feb-2014::08:55:06 === Federation exchange 'skytap' in vhost '/' connected to exchange 'skytap' in vhost '/' on amqp://goodnessmqvip1.foo.bar.com:5672 =INFO REPORT==== 2-Feb-2014::08:55:07 === Federation exchange 'skytap' in vhost '/' connected to exchange 'skytap' in vhost '/' on amqp://goodnessmqvip1.foo.bar.com:5672 -- {error,unknown_host} =WARNING REPORT==== 3-Feb-2014::09:48:55 === Federation exchange 'skytap' in vhost '/' did not connect to exchange 'skytap' in vhost '/' on amqp://goodnessmqvip1.foo.bar.com:5672 {error,unknown_host} =ERROR REPORT==== 3-Feb-2014::09:48:56 === Mnesia(rabbit at goodnessmq2): ** ERROR ** mnesia_event got {inconsistent_database, running_partitioned_network, rabbit at goodnessmq1} =INFO REPORT==== 3-Feb-2014::09:48:56 === Autoheal request sent to rabbit at goodnessmq1 =WARNING REPORT==== 3-Feb-2014::09:48:56 === Federation exchange 'skytap' in vhost '/' did not connect to exchange 'skytap' in vhost '/' on amqp://goodnessmqvip1.foo.bar.com:5672 {error,unknown_host} =INFO REPORT==== 3-Feb-2014::09:48:56 === Statistics database started. =WARNING REPORT==== 3-Feb-2014::09:48:58 === Federation exchange 'skytap' in vhost '/' did not connect to exchange 'skytap' in vhost '/' on amqp://goodnessmqvip1.foo.bar.com:5672 -- {error,unknown_host} =WARNING REPORT==== 3-Feb-2014::13:14:24 === Federation exchange 'skytap' in vhost '/' did not connect to exchange 'skytap' in vhost '/' on amqp://goodnessmqvip1.foo.bar.com:5672 {error,ehostunreach} =ERROR REPORT==== 3-Feb-2014::13:14:24 === Mnesia(rabbit at goodnessmq2): ** ERROR ** mnesia_event got {inconsistent_database, running_partitioned_network, rabbit at goodnessmq1} =INFO REPORT==== 3-Feb-2014::13:14:24 === Autoheal request sent to rabbit at goodnessmq1 =WARNING REPORT==== 3-Feb-2014::13:14:25 === Federation exchange 'skytap' in vhost '/' did not connect to exchange 'skytap' in vhost '/' on amqp://goodnessmqvip1.foo.bar.com:5672 {{shutdown, {server_initiated_close,404, <<"NOT_FOUND - no exchange 'federation: skytap -> mq_prod B' in vhost '/'">>}}, {gen_server,call, [<0.6585.1>, {call, {'exchange.bind',0,<<"federation: skytap -> mq_prod B">>, --------------------------------- On Tue, Feb 11, 2014 at 2:15 AM, Simon MacMullen wrote: > On 11/02/14 01:33, Matt Pietrek wrote: > >> Recently we started running a two node HA cluster of Rabbit 3.2.2, with >> autoheal enabled. >> >> After a network partition, I noticed that autoheal didn't appear to >> work, although the logs indicate it was tried. The first time it >> happened, the UI in both brokers indicated the other broker was missing >> from the cluster. >> > > So the log indicates that the winning node ignored a request to start > autohealing because it was already autohealing. > > It's possible that there is a problem if a network partition occurs while > autoheal is already happening. I'll file a bug to look into this, but it > would help if you can show me any previous logs from this node - I assume > that earlier (probably not much earlier) in the logs there were some more > partition warnings and autoheal events? > > > The second time this happened, the management plugin seemed to not >> function afterwards. Most of the Web UI was unusable, i.e it wouldn't >> tell me which nodes were running, what queues were declared, and so forth. >> > > Separately there is an issue where the management database might fail to > recover after a network partition. I just replicated that yesterday; note > that it's not connected to autoheal. > > Cheers, Simon > > -- > Simon MacMullen > RabbitMQ, Pivotal > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Tue Feb 11 18:43:35 2014 From: cwstorm at gmail.com (cw storm) Date: Tue, 11 Feb 2014 13:43:35 -0500 Subject: [rabbitmq-discuss] basicAck In-Reply-To: References: Message-ID: I think you might already have answered my concern. I have another service that performs the "basicConsume" on the queue. In the callback service, the "handleDelivery" invokes another service on the client. I'm passing the "channel" object and "deliveryTag" in the pipeline to that invoking service. That invoking service will issue the "basicAck" when it's done processing. However, it's not working. I'm thinking that the channel has been lost because it spawn a separate thread when invoking the service in the "handleDelivery". On Tue, Feb 11, 2014 at 11:45 AM, Michael Klishin < michael.s.klishin at gmail.com> wrote: > > 2014-02-11 20:43 GMT+04:00 cw storm : > > I've created a service that'll perform the "basicAck" method. The input >> signature are the "channel" object and "deliveryTag". Is it possible to >> ack a message from the downstream service? > > > Define "downstream service"? > > You can only ack deliveries on the same channel. > -- > MK > > http://github.com/michaelklishin > http://twitter.com/michaelklishin > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From gdo at leader.it Tue Feb 11 18:25:22 2014 From: gdo at leader.it (Guido Brugnara) Date: Tue, 11 Feb 2014 10:25:22 -0800 (PST) Subject: [rabbitmq-discuss] STOMP perl headers-example-[recv|send].pl don't work - all messages are routed Message-ID: I tried scripts that I have found in this archive: http://hg.rabbitmq.com/rabbitmq-stomp/file/78462030c75a/examples/perl but the test scripts perl headers-example-recv.pl and perl headers-example-send.pl do not work properly! With different parameters, however, the messages are always routed. I use RabbitMQ 3.2.3 A few suggestions? Guido Brugnara -------------- next part -------------- An HTML attachment was scrubbed... URL: From gonzalez.mariano.gabriel at gmail.com Tue Feb 11 19:52:16 2014 From: gonzalez.mariano.gabriel at gmail.com (=?ISO-8859-1?Q?Mariano_Gonz=E1lez?=) Date: Tue, 11 Feb 2014 17:52:16 -0200 Subject: [rabbitmq-discuss] {bad_header, <<"GET /api">>} when trying to run plugin for get rabbitmq queue metrics Message-ID: Hi there. I'm trying to run this plugin: https://github.com/sensu/sensu-community-plugins/blob/master/plugins/rabbitmq/rabbitmq-queue-metrics.rb Getting this error: https://gist.github.com/Mariano-gon/8942731 I do have the rabbitmq mgmt plugin (as seen in other thread) and I can connect to rabbitmq server:port with these same credentials. Any ideas why could this be falling? Thanks!! -- Mariano Gabriel Gonz?lez -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Tue Feb 11 19:52:26 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 11 Feb 2014 23:52:26 +0400 Subject: [rabbitmq-discuss] STOMP perl headers-example-[recv|send].pl don't work - all messages are routed In-Reply-To: References: Message-ID: On 11 Feb 2014, at 22:25, Guido Brugnara wrote: > headers-example-recv.pl and perl headers-example-send.pl do not work properly! > With different parameters, however, the messages are always routed. Can you please be more specific? What exactly does ?do not work properly? mean? How do you alter the parameters? MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Tue Feb 11 19:55:51 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 11 Feb 2014 23:55:51 +0400 Subject: [rabbitmq-discuss] {bad_header, <<"GET /api">>} when trying to run plugin for get rabbitmq queue metrics In-Reply-To: References: Message-ID: <9FF5E363-EB4D-4A2B-9A48-A09344DFC4AF@rabbitmq.com> On 11 Feb 2014, at 23:52, Mariano Gonz?lez wrote: > Getting this error: https://gist.github.com/Mariano-gon/8942731 > > I do have the rabbitmq mgmt plugin (as seen in other thread) and I can connect to rabbitmq server:port with these same credentials. > > Any ideas why could this be falling? Something tries to use HTTP on RabbitMQ?s AMQP 0.9.1 port (5672). HTTP API uses a separate port (15672 by default). MK Software Engineer, Pivotal/RabbitMQ From gonzalez.mariano.gabriel at gmail.com Tue Feb 11 20:01:07 2014 From: gonzalez.mariano.gabriel at gmail.com (=?ISO-8859-1?Q?Mariano_Gonz=E1lez?=) Date: Tue, 11 Feb 2014 18:01:07 -0200 Subject: [rabbitmq-discuss] {bad_header, <<"GET /api">>} when trying to run plugin for get rabbitmq queue metrics In-Reply-To: <9FF5E363-EB4D-4A2B-9A48-A09344DFC4AF@rabbitmq.com> References: <9FF5E363-EB4D-4A2B-9A48-A09344DFC4AF@rabbitmq.com> Message-ID: Hi Michael Thanks for your quick answer. Tried using port 15672, got "check failed to run: 401 unauthorized. In .log: =ERROR REPORT==== 11-Feb-2014::19:58:29 === webmachine error: path="/api/queues" "Unauthorized" On 11 February 2014 16:55, Michael Klishin wrote: > > On 11 Feb 2014, at 23:52, Mariano Gonz?lez < > gonzalez.mariano.gabriel at gmail.com> wrote: > > > Getting this error: https://gist.github.com/Mariano-gon/8942731 > > > > I do have the rabbitmq mgmt plugin (as seen in other thread) and I can > connect to rabbitmq server:port with these same credentials. > > > > Any ideas why could this be falling? > > Something tries to use HTTP on RabbitMQ's AMQP 0.9.1 port (5672). HTTP API > uses a separate port (15672 by default). > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -- Mariano Gabriel Gonz?lez -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Tue Feb 11 20:05:12 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 12 Feb 2014 00:05:12 +0400 Subject: [rabbitmq-discuss] {bad_header, <<"GET /api">>} when trying to run plugin for get rabbitmq queue metrics In-Reply-To: References: <9FF5E363-EB4D-4A2B-9A48-A09344DFC4AF@rabbitmq.com> Message-ID: <7F7B50A6-4AB4-4328-94A7-803C7FB1F9A8@rabbitmq.com> On 12 Feb 2014, at 00:01, Mariano Gonz?lez wrote: > Tried using port 15672, got "check failed to run: 401 unauthorized. In .log: > > =ERROR REPORT==== 11-Feb-2014::19:58:29 === > webmachine error: path="/api/queues" > "Unauthorized" You need to provide credentials of a user that has ?management?, ?monitoring" or ?administrator? tags. http://hg.rabbitmq.com/rabbitmq-management/raw-file/rabbitmq_v3_2_3/priv/www/api/index.html http://www.rabbitmq.com/management.html MK Software Engineer, Pivotal/RabbitMQ From dann.ormond at gmail.com Tue Feb 11 20:41:33 2014 From: dann.ormond at gmail.com (Dann) Date: Tue, 11 Feb 2014 13:41:33 -0700 Subject: [rabbitmq-discuss] RabbitMQ Documentation Message-ID: Is there a way to create a snapshot of the RabbitMQ documentation for offline use? Ideally, I would like to build an offline version of the website to be used when I don't have Internet access. Thanks, Dann Ormond -------------- next part -------------- An HTML attachment was scrubbed... URL: From videlalvaro at gmail.com Tue Feb 11 21:59:20 2014 From: videlalvaro at gmail.com (Alvaro Videla) Date: Tue, 11 Feb 2014 22:59:20 +0100 Subject: [rabbitmq-discuss] RabbitMQ Documentation In-Reply-To: References: Message-ID: Hi Dann, The website content is not open source. Regards, Alvaro On Tue, Feb 11, 2014 at 9:41 PM, Dann wrote: > Is there a way to create a snapshot of the RabbitMQ documentation for > offline use? Ideally, I would like to build an offline version of the > website to be used when I don't have Internet access. > > Thanks, > > Dann Ormond > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > From ron.cordell at gmail.com Tue Feb 11 23:42:50 2014 From: ron.cordell at gmail.com (Ron Cordell) Date: Tue, 11 Feb 2014 15:42:50 -0800 Subject: [rabbitmq-discuss] Performance Observations and Interesting Behavior Message-ID: Hi all -- We've been performance testing RabbitMQ on Linux as we're about to move our RabbitMQ infrastructure from Windows to Linux (as well as other things). I wanted to share some of what we observed and if people have any feedback. All tests were done using a 3-node cluster where most queues are HA, with an F5 configured to provide a virtual IP to the application. There is a single vHost. 1. On the same hardware the Linux installation easily outperforms the Windows installation. It also uses fewer resources for the same throughput. 2. The Windows cluster becomes unstable and nodes start dropping out/partitioning at around 1/3 max tested volume. The Linux cluster showed no instability whatsoever up to maximum throughput. 3. Creating a cluster with 2 RAM nodes and 1 Disc node has the same disk I/O requirements as 3 disc nodes. (This makes sense because as I believe the RAM nodes will persist to disk for HA queues). 4. (here is the interesting one) When the F5 is configured to load balance across the 3 nodes as a round-robin load balancer, maximum throughput is significantly less than if the F5 sends all traffic to a single node. I'd love any feedback, especially on #4. Cheers! -ronc -------------- next part -------------- An HTML attachment was scrubbed... URL: From videlalvaro at gmail.com Tue Feb 11 23:47:12 2014 From: videlalvaro at gmail.com (Alvaro Videla) Date: Wed, 12 Feb 2014 00:47:12 +0100 Subject: [rabbitmq-discuss] Performance Observations and Interesting Behavior In-Reply-To: References: Message-ID: Hi Ron, About #3, the disc vs ram node difference is for RabbitMQ's metadata database, called Mnesia, it's not related on how messages are stored/persisted to disk. Regards, Alvaro On Wed, Feb 12, 2014 at 12:42 AM, Ron Cordell wrote: > Hi all -- > > We've been performance testing RabbitMQ on Linux as we're about to move our > RabbitMQ infrastructure from Windows to Linux (as well as other things). I > wanted to share some of what we observed and if people have any feedback. > All tests were done using a 3-node cluster where most queues are HA, with an > F5 configured to provide a virtual IP to the application. There is a single > vHost. > > 1. On the same hardware the Linux installation easily outperforms the > Windows installation. It also uses fewer resources for the same throughput. > > 2. The Windows cluster becomes unstable and nodes start dropping > out/partitioning at around 1/3 max tested volume. The Linux cluster showed > no instability whatsoever up to maximum throughput. > > 3. Creating a cluster with 2 RAM nodes and 1 Disc node has the same disk I/O > requirements as 3 disc nodes. (This makes sense because as I believe the RAM > nodes will persist to disk for HA queues). > > 4. (here is the interesting one) When the F5 is configured to load balance > across the 3 nodes as a round-robin load balancer, maximum throughput is > significantly less than if the F5 sends all traffic to a single node. > > I'd love any feedback, especially on #4. > > Cheers! > > -ronc > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > From michael.laing at nytimes.com Wed Feb 12 00:05:28 2014 From: michael.laing at nytimes.com (Laing, Michael) Date: Tue, 11 Feb 2014 19:05:28 -0500 Subject: [rabbitmq-discuss] Performance Observations and Interesting Behavior In-Reply-To: References: Message-ID: That's interesting! We have removed all the load balancers from our core configurations in Amazon EC2 because we found they added no value, and, in fact provided troublesome additional points of failure. (We do use ELBs to find websocket endpoints in the client-facing retail layer) Our core clusters in Oregon and Dublin each have 50 - 100 non-local connections, randomly distributed, and are very stable. We use DNS with health checks for internal client connections in lieu of load balancers. Simple and rugged. Michael Laing NYTimes On Tue, Feb 11, 2014 at 6:42 PM, Ron Cordell wrote: > Hi all -- > > We've been performance testing RabbitMQ on Linux as we're about to move > our RabbitMQ infrastructure from Windows to Linux (as well as other > things). I wanted to share some of what we observed and if people have any > feedback. All tests were done using a 3-node cluster where most queues are > HA, with an F5 configured to provide a virtual IP to the application. There > is a single vHost. > > 1. On the same hardware the Linux installation easily outperforms the > Windows installation. It also uses fewer resources for the same throughput. > > 2. The Windows cluster becomes unstable and nodes start dropping > out/partitioning at around 1/3 max tested volume. The Linux cluster showed > no instability whatsoever up to maximum throughput. > > 3. Creating a cluster with 2 RAM nodes and 1 Disc node has the same disk > I/O requirements as 3 disc nodes. (This makes sense because as I believe > the RAM nodes will persist to disk for HA queues). > > 4. (here is the interesting one) When the F5 is configured to load balance > across the 3 nodes as a round-robin load balancer, maximum throughput is > significantly less than if the F5 sends all traffic to a single node. > > I'd love any feedback, especially on #4. > > Cheers! > > -ronc > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ron.cordell at gmail.com Wed Feb 12 00:32:23 2014 From: ron.cordell at gmail.com (Ron Cordell) Date: Tue, 11 Feb 2014 16:32:23 -0800 Subject: [rabbitmq-discuss] Performance Observations and Interesting Behavior In-Reply-To: References: Message-ID: That's interesting - the speculation was that if we have X IOPs with 3 disc nodes and all HA queues the messages would be replicated across all nodes, so if we went to 2 RAM nodes we would see at least some drop in IOPs, but we see none. On Tue, Feb 11, 2014 at 3:47 PM, Alvaro Videla wrote: > Hi Ron, > > About #3, the disc vs ram node difference is for RabbitMQ's metadata > database, called Mnesia, it's not related on how messages are > stored/persisted to disk. > > Regards, > > Alvaro > > On Wed, Feb 12, 2014 at 12:42 AM, Ron Cordell > wrote: > > Hi all -- > > > > We've been performance testing RabbitMQ on Linux as we're about to move > our > > RabbitMQ infrastructure from Windows to Linux (as well as other things). > I > > wanted to share some of what we observed and if people have any feedback. > > All tests were done using a 3-node cluster where most queues are HA, > with an > > F5 configured to provide a virtual IP to the application. There is a > single > > vHost. > > > > 1. On the same hardware the Linux installation easily outperforms the > > Windows installation. It also uses fewer resources for the same > throughput. > > > > 2. The Windows cluster becomes unstable and nodes start dropping > > out/partitioning at around 1/3 max tested volume. The Linux cluster > showed > > no instability whatsoever up to maximum throughput. > > > > 3. Creating a cluster with 2 RAM nodes and 1 Disc node has the same disk > I/O > > requirements as 3 disc nodes. (This makes sense because as I believe the > RAM > > nodes will persist to disk for HA queues). > > > > 4. (here is the interesting one) When the F5 is configured to load > balance > > across the 3 nodes as a round-robin load balancer, maximum throughput is > > significantly less than if the F5 sends all traffic to a single node. > > > > I'd love any feedback, especially on #4. > > > > Cheers! > > > > -ronc > > > > _______________________________________________ > > rabbitmq-discuss mailing list > > rabbitmq-discuss at lists.rabbitmq.com > > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From Rohit.Patle at techmahindra.com Wed Feb 12 06:02:27 2014 From: Rohit.Patle at techmahindra.com (Rohit Patle) Date: Wed, 12 Feb 2014 06:02:27 +0000 Subject: [rabbitmq-discuss] [rabbitmq-c-master] memory leakinkg while reconnect. Message-ID: <27E054594442884E9A46DBCF9AE7408164FCD4@BSDMSATMBX001.mahindrasatyam.ad> Hi Alan, Thank you for your reply. Sure I will take care of addressing my mail to rabbitmq-discuss only. Here is our observation. 1. Network cable is pulled off from my system. 2. The listener program is in a while loop trying to reconnect to RMQ broker. 3. Following are the set of APIs called in this while loop. while(1) { conn = amqp_new_connection(); socket = amqp_ssl_socket_new(conn); if (!socket) { printf("creating SSL/TLS socket"); exit (0); } if (argc > 5) { status = amqp_ssl_socket_set_cacert(socket, argv[5]); if (status) { printf("setting CA certificate"); exit (0); } } if (argc > 7) { status = amqp_ssl_socket_set_key(socket, argv[7], argv[6]); if (status) { printf("setting client cert"); exit (0); } } amqp_ssl_socket_set_verify(socket, 0); status = amqp_socket_open(socket, hostname, port); if (status) { printf("opening SSL/TLS connection"); amqp_destroy_connection(conn); } else break; } 4. As network cable is removed from my system before running this test program, I getting "opening SSL/TLS connection" which is a valid error (status value -9). However amqp_destroy_connection() API is not releasing the resources allocated during amqp_new_connection() API call. Could you please confirm the behaviour of amqp_destroy_connection() API when there is no network cable attached to the system? There is memory leak happening due to this API. How to destroy the amqp_connection_state_t object created during amqp_new_connection()? Please suggest. Thanks & Regards, Rohit ________________________________ DISCLAIMER: This email (including any attachments) is intended for the sole use of the intended recipient/s and may contain material that is CONFIDENTIAL AND PRIVATE COMPANY INFORMATION. Any review or reliance by others or copying or distribution or forwarding of any or all of the contents in this message is STRICTLY PROHIBITED. If you are not the intended recipient, please contact the sender by email and delete all copies; your cooperation in this regard is appreciated. -------------- next part -------------- An HTML attachment was scrubbed... URL: From gdo at leader.it Wed Feb 12 06:03:26 2014 From: gdo at leader.it (Guido Brugnara) Date: Wed, 12 Feb 2014 07:03:26 +0100 Subject: [rabbitmq-discuss] STOMP perl headers-example-[recv|send].pl don't work - all messages are routed In-Reply-To: References: Message-ID: <52FB0EAE.50808@leader.it> Il 11/02/2014 20:52, Michael Klishin ha scritto: > On 11 Feb 2014, at 22:25, Guido Brugnara wrote: > >> headers-example-recv.pl and perl headers-example-send.pl do not work properly! >> With different parameters, however, the messages are always routed. > Can you please be more specific? What exactly does ?do not work properly? mean? The test was run on Ubuntu 12.04 with packages taken from "deb http://www.rabbitmq.com/debian/ testing main" without without any configuration (as is from installation): apt-get install rabbitmq-server libnet-stomp-perl rabbitmq-plugins enable rabbitmq_stomp /etc/init.d/rabbitmq-server restart And the scripts taken without modifications [*] were performed in two separate consoles on the same machine as the server: # Console 1 gdo at srv3:~/Desktop$ ./headers-example-send.pl red gdo at srv3:~/Desktop$ ./headers-example-send.pl white gdo at srv3:~/Desktop$ # Console2 gdo at srv3:~/Desktop$ ./headers-example-recv.pl red Receiving from amq.headers with header1 = red test message 1392184354 test message 1392184358 The second message was not to be routed because X-header1='white' in sent is different to X-B-header1='red' in subscribe! to destination '/exchange/amq.headers'. Or am I that I did not understand the use of 'exchange' of type 'headers'? regards Guido [*] http://hg.rabbitmq.com/rabbitmq-stomp/file/78462030c75a/examples/perl/headers-example-recv.pl http://hg.rabbitmq.com/rabbitmq-stomp/file/78462030c75a/examples/perl/headers-example-send.pl > How do you alter the parameters? > > MK > > Software Engineer, Pivotal/RabbitMQ > > From simon at rabbitmq.com Wed Feb 12 11:10:57 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 12 Feb 2014 11:10:57 +0000 Subject: [rabbitmq-discuss] Performance Observations and Interesting Behavior In-Reply-To: References: Message-ID: <52FB56C1.20607@rabbitmq.com> On 11/02/14 23:42, Ron Cordell wrote: > 4. (here is the interesting one) When the F5 is configured to load > balance across the 3 nodes as a round-robin load balancer, maximum > throughput is significantly less than if the F5 sends all traffic to a > single node. > > I'd love any feedback, especially on #4. Depends exactly what your tests are doing. If your tests are running through a single queue then it will be faster to publish and consume on the node which hosts that queue since you can avoid sending messages across the cluster. [This effect is particularly pronounced if using basic.qos or mandatory=true, since those currently involve synchronous request-response across the cluster. This will get fixed in 3.3.0.] Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Wed Feb 12 11:16:29 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 12 Feb 2014 11:16:29 +0000 Subject: [rabbitmq-discuss] RabbitMQ Documentation In-Reply-To: References: Message-ID: <52FB580D.7090100@rabbitmq.com> On 11/02/14 20:41, Dann wrote: > Is there a way to create a snapshot of the RabbitMQ documentation for > offline use? Ideally, I would like to build an offline version of the > website to be used when I don't have Internet access. As Alvaro said, you can't get the source code to it. But something like: $ wget --recursive --convert-links --page-requisites --level=1 http://www.rabbitmq.com/sitemap.html will download all the main documentation without wandering off into the blog etc. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From cwstorm at gmail.com Wed Feb 12 14:59:51 2014 From: cwstorm at gmail.com (cw storm) Date: Wed, 12 Feb 2014 09:59:51 -0500 Subject: [rabbitmq-discuss] How check for existing queue consumer Message-ID: Hi, I have a situation where someone executed the service that calls the "basicConsume" which basically assigns a queue consumer to that queue on a different channel. This cause multiple queue consumer for that queue. Is there someway in that service where I can check to see if an existing queue consumer already exist for that queue before issue'ing the "basicConsume"? -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Wed Feb 12 15:03:37 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 12 Feb 2014 19:03:37 +0400 Subject: [rabbitmq-discuss] How check for existing queue consumer In-Reply-To: References: Message-ID: <35E6F5C9-D039-4867-9B31-94F4C7178942@rabbitmq.com> On 12 Feb 2014, at 18:59, cw storm wrote: > Is there someway in that service where I can check to see if an existing queue consumer already exist for that queue before issue'ing the "basicConsume"? queue.declare (with passive = true, for example) and see consumer count field on the response (queue.declare-ok) MK Software Engineer, Pivotal/RabbitMQ From videlalvaro at gmail.com Wed Feb 12 15:04:12 2014 From: videlalvaro at gmail.com (Alvaro Videla) Date: Wed, 12 Feb 2014 16:04:12 +0100 Subject: [rabbitmq-discuss] How check for existing queue consumer In-Reply-To: References: Message-ID: Hi, If you need to have just one consumer per queue, then declare the queue as exclusive. If you want to check if there are consumers attached to a particular queue, then inspect the return values of issuing a passive queueDeclare. Regards, Alvaro On Wed, Feb 12, 2014 at 3:59 PM, cw storm wrote: > Hi, > > I have a situation where someone executed the service that calls the > "basicConsume" which basically assigns a queue consumer to that queue on a > different channel. This cause multiple queue consumer for that queue. Is > there someway in that service where I can check to see if an existing queue > consumer already exist for that queue before issue'ing the "basicConsume"? > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > From simon at rabbitmq.com Wed Feb 12 15:03:54 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 12 Feb 2014 15:03:54 +0000 Subject: [rabbitmq-discuss] How check for existing queue consumer In-Reply-To: References: Message-ID: <52FB8D5A.8090000@rabbitmq.com> On 12/02/14 14:59, cw storm wrote: > I have a situation where someone executed the service that calls the > "basicConsume" which basically assigns a queue consumer to that queue on > a different channel. This cause multiple queue consumer for that queue. > Is there someway in that service where I can check to see if an > existing queue consumer already exist for that queue before issue'ing > the "basicConsume"? You can invoke queue.declare. The queue.declare-ok that comes back will include a count of the messages in the queue, and the number of consumers. e.g. in Java: Channel channel = ...; int consumers = channel.queueDeclarePassive("my-queue").getConsumerCount(); Note that RabbitMQ before 3.1.0 returned the number of "active" consumers here, which is a rather difficult concept. HOWEVER: This approach is racy. If what you really want is to ensure that a queue only ever has at most one consumer, the best thing to do is set the "exclusive" flag when invoking basic.consume: Channel channel = ...; channel.basicConsume("my-queue", autoAck, null, false, true, null, consumer); Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Wed Feb 12 15:06:35 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 12 Feb 2014 15:06:35 +0000 Subject: [rabbitmq-discuss] How check for existing queue consumer In-Reply-To: References: Message-ID: <52FB8DFB.60807@rabbitmq.com> On 12/02/14 15:04, Alvaro Videla wrote: > If you need to have just one consumer per queue, then declare the > queue as exclusive. Note that exclusive *queues* and exclusive *consumers* are two different things. An exclusive *queue* can only be accessed by the connection that created it. An exclusive *consumer* prevents anyone else from consuming from the queue. Exclusive consumers are less well known than exclusive queues, so it's important not to get them mixed up. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From cwstorm at gmail.com Wed Feb 12 15:14:00 2014 From: cwstorm at gmail.com (cw storm) Date: Wed, 12 Feb 2014 10:14:00 -0500 Subject: [rabbitmq-discuss] How check for existing queue consumer In-Reply-To: References: Message-ID: Thanks guys. If I declare the queue exclusive, then my other server won't be able to register the queue consumer right? We have two ESB servers for load balancing. That means, two queue consumer for that queue. However, if someone accidentally execute the service, then it'll create a new channel/connection and queue consumer for that queue. That I don't want to happen. On Wed, Feb 12, 2014 at 10:04 AM, Alvaro Videla wrote: > Hi, > > If you need to have just one consumer per queue, then declare the > queue as exclusive. > > If you want to check if there are consumers attached to a particular > queue, then inspect the return values of issuing a passive > queueDeclare. > > Regards, > > Alvaro > > On Wed, Feb 12, 2014 at 3:59 PM, cw storm wrote: > > Hi, > > > > I have a situation where someone executed the service that calls the > > "basicConsume" which basically assigns a queue consumer to that queue on > a > > different channel. This cause multiple queue consumer for that queue. > Is > > there someway in that service where I can check to see if an existing > queue > > consumer already exist for that queue before issue'ing the > "basicConsume"? > > > > _______________________________________________ > > rabbitmq-discuss mailing list > > rabbitmq-discuss at lists.rabbitmq.com > > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Wed Feb 12 15:23:08 2014 From: cwstorm at gmail.com (cw storm) Date: Wed, 12 Feb 2014 10:23:08 -0500 Subject: [rabbitmq-discuss] Best practice for naming consumer tag Message-ID: We were thinking of naming a consumer tag that's meaningful to us. Just checking the community if that's best practice or not. Thanks, Phil -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Wed Feb 12 15:43:34 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 12 Feb 2014 19:43:34 +0400 Subject: [rabbitmq-discuss] Best practice for naming consumer tag In-Reply-To: References: Message-ID: <70BCF7A8-14E1-410B-8300-B163AC9EC1BD@rabbitmq.com> On 12 Feb 2014, at 19:23, cw storm wrote: > We were thinking of naming a consumer tag that's meaningful to us. Just checking the community if that's best practice or not. As long as you make sure the names are unique, that?s fine. Note that you can pass an empty string and RabbitMQ will generate a consumer tag for you (will be returned on basic.consume-ok). It won?t be meaningful but will be guaranteed to be unique. MK Software Engineer, Pivotal/RabbitMQ From cwstorm at gmail.com Wed Feb 12 15:48:26 2014 From: cwstorm at gmail.com (cw storm) Date: Wed, 12 Feb 2014 10:48:26 -0500 Subject: [rabbitmq-discuss] How check for existing queue consumer In-Reply-To: References: Message-ID: Thanks guys. The "int consumers = channel.queueDeclarePassive(strQueueName).getConsumerCount();" will meet my requirement. In my service, I will check to see if that number is greater than 0 or not. If not, then issue "basicConsume". But if my other server need to also register the queue consumer as well, then maybe I need to check if the number equals 2 instead. I'm just wondering if you have two servers, do you have both of your server create a queue consumer to the queue? On Wed, Feb 12, 2014 at 10:14 AM, cw storm wrote: > Thanks guys. > > If I declare the queue exclusive, then my other server won't be able to > register the queue consumer right? We have two ESB servers for load > balancing. That means, two queue consumer for that queue. However, if > someone accidentally execute the service, then it'll create a new > channel/connection and queue consumer for that queue. That I don't want to > happen. > > > On Wed, Feb 12, 2014 at 10:04 AM, Alvaro Videla wrote: > >> Hi, >> >> If you need to have just one consumer per queue, then declare the >> queue as exclusive. >> >> If you want to check if there are consumers attached to a particular >> queue, then inspect the return values of issuing a passive >> queueDeclare. >> >> Regards, >> >> Alvaro >> >> On Wed, Feb 12, 2014 at 3:59 PM, cw storm wrote: >> > Hi, >> > >> > I have a situation where someone executed the service that calls the >> > "basicConsume" which basically assigns a queue consumer to that queue >> on a >> > different channel. This cause multiple queue consumer for that queue. >> Is >> > there someway in that service where I can check to see if an existing >> queue >> > consumer already exist for that queue before issue'ing the >> "basicConsume"? >> > >> > _______________________________________________ >> > rabbitmq-discuss mailing list >> > rabbitmq-discuss at lists.rabbitmq.com >> > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> > >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Wed Feb 12 15:50:35 2014 From: cwstorm at gmail.com (cw storm) Date: Wed, 12 Feb 2014 10:50:35 -0500 Subject: [rabbitmq-discuss] Best practice for naming consumer tag In-Reply-To: <70BCF7A8-14E1-410B-8300-B163AC9EC1BD@rabbitmq.com> References: <70BCF7A8-14E1-410B-8300-B163AC9EC1BD@rabbitmq.com> Message-ID: It has to be unique on the same channel, right? On Wed, Feb 12, 2014 at 10:43 AM, Michael Klishin wrote: > On 12 Feb 2014, at 19:23, cw storm wrote: > > > We were thinking of naming a consumer tag that's meaningful to us. Just > checking the community if that's best practice or not. > > As long as you make sure the names are unique, that's fine. Note that you > can pass an empty string > and RabbitMQ will generate a consumer tag for you (will be returned on > basic.consume-ok). It won't > be meaningful but will be guaranteed to be unique. > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Wed Feb 12 16:02:15 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 12 Feb 2014 16:02:15 +0000 Subject: [rabbitmq-discuss] STOMP perl headers-example-[recv|send].pl don't work - all messages are routed In-Reply-To: <52FB0EAE.50808@leader.it> References: <52FB0EAE.50808@leader.it> Message-ID: <52FB9B07.1020003@rabbitmq.com> On 12/02/14 06:03, Guido Brugnara wrote: > The second message was not to be routed because X-header1='white' in > sent is different to X-B-header1='red' in subscribe! to destination > '/exchange/amq.headers'. > > Or am I that I did not understand the use of 'exchange' of type 'headers'? Hi. You understand the headers exchange type fine. However, this example is badly out of date. STOMP says very little about broker semantics. Prior to RabbitMQ 2.2.0, the STOMP adapter implemented a very AMQP-ish set of semantics. This allowed you to use all the flexibility of AMQP over STOMP, but it was badly incompatible with what the other STOMP brokers (in particular ActiveMQ) were doing. In RabbitMQ 2.2.0 we rewrote the STOMP adapter to use semantics that were much more similar to what other brokers do. Unfortunately this meant you could not longer bind a queue to an exchange with binding arguments via STOMP. This makes the headers exchange type rather less useful over STOMP. You can predeclare queues and bind them using AMQP or HTTP, and then SUBSCRIBE via STOMP, but that's obviously not ideal. Unfortunately this example predates this change. We should probably just remove it. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From alan.antonuk at gmail.com Wed Feb 12 16:36:08 2014 From: alan.antonuk at gmail.com (Alan Antonuk) Date: Wed, 12 Feb 2014 08:36:08 -0800 Subject: [rabbitmq-discuss] [rabbitmq-c-master] memory leakinkg while reconnect. In-Reply-To: <27E054594442884E9A46DBCF9AE7408164FCD4@BSDMSATMBX001.mahindrasatyam.ad> References: <27E054594442884E9A46DBCF9AE7408164FCD4@BSDMSATMBX001.mahindrasatyam.ad> Message-ID: You appear to be doing things correctly. Could you try running your program under valgrind to see if it reports anything? -Alan On Tue, Feb 11, 2014 at 10:02 PM, Rohit Patle wrote: > Hi Alan, > > Thank you for your reply. Sure I will take care of addressing my mail to rabbitmq-discuss > only. > > Here is our observation. > 1. Network cable is pulled off from my system. > 2. The listener program is in a while loop trying to reconnect to RMQ > broker. > 3. Following are the set of APIs called in this while loop. > > while(1) > { > conn = amqp_new_connection(); > > socket = amqp_ssl_socket_new(conn); > if (!socket) { > printf("creating SSL/TLS socket"); > exit (0); > } > > if (argc > 5) { > status = amqp_ssl_socket_set_cacert(socket, argv[5]); > if (status) { > printf("setting CA certificate"); > exit (0); > } > } > > if (argc > 7) { > status = amqp_ssl_socket_set_key(socket, argv[7], argv[6]); > if (status) { > printf("setting client cert"); > exit (0); > } > } > amqp_ssl_socket_set_verify(socket, 0); > status = amqp_socket_open(socket, hostname, port); > if (status) { > printf("opening SSL/TLS connection"); > amqp_destroy_connection(conn); > } > else > break; > } > > 4. As network cable is removed from my system before running this test > program, I getting "opening SSL/TLS connection" which is a valid error > (status value -9). However amqp_destroy_connection() API is not releasing > the resources allocated during amqp_new_connection() API call. Could you > please confirm the behaviour of amqp_destroy_connection() API when there > is no network cable attached to the system? There is memory leak > happening due to this API. > > How to destroy the amqp_connection_state_t object created during > amqp_new_connection()? > > Please suggest. > > Thanks & Regards, > Rohit > > ------------------------------ > > DISCLAIMER: > This email (including any attachments) is intended for the sole use of the > intended recipient/s and may contain material that is CONFIDENTIAL AND > PRIVATE COMPANY INFORMATION. Any review or reliance by others or copying or > distribution or forwarding of any or all of the contents in this message is > STRICTLY PROHIBITED. If you are not the intended recipient, please contact > the sender by email and delete all copies; your cooperation in this regard > is appreciated. > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Wed Feb 12 17:20:12 2014 From: cwstorm at gmail.com (cw storm) Date: Wed, 12 Feb 2014 12:20:12 -0500 Subject: [rabbitmq-discuss] How check for existing queue consumer In-Reply-To: References: Message-ID: Hi Simon and team, Besides the number of active queue consumer, can I get the actual name or value that's in the consumer tag? On Wed, Feb 12, 2014 at 10:48 AM, cw storm wrote: > Thanks guys. The "int consumers = > channel.queueDeclarePassive(strQueueName).getConsumerCount();" will meet my > requirement. In my service, I will check to see if that number is greater > than 0 or not. If not, then issue "basicConsume". But if my other server > need to also register the queue consumer as well, then maybe I need to > check if the number equals 2 instead. > > I'm just wondering if you have two servers, do you have both of your > server create a queue consumer to the queue? > > > On Wed, Feb 12, 2014 at 10:14 AM, cw storm wrote: > >> Thanks guys. >> >> If I declare the queue exclusive, then my other server won't be able to >> register the queue consumer right? We have two ESB servers for load >> balancing. That means, two queue consumer for that queue. However, if >> someone accidentally execute the service, then it'll create a new >> channel/connection and queue consumer for that queue. That I don't want to >> happen. >> >> >> On Wed, Feb 12, 2014 at 10:04 AM, Alvaro Videla wrote: >> >>> Hi, >>> >>> If you need to have just one consumer per queue, then declare the >>> queue as exclusive. >>> >>> If you want to check if there are consumers attached to a particular >>> queue, then inspect the return values of issuing a passive >>> queueDeclare. >>> >>> Regards, >>> >>> Alvaro >>> >>> On Wed, Feb 12, 2014 at 3:59 PM, cw storm wrote: >>> > Hi, >>> > >>> > I have a situation where someone executed the service that calls the >>> > "basicConsume" which basically assigns a queue consumer to that queue >>> on a >>> > different channel. This cause multiple queue consumer for that queue. >>> Is >>> > there someway in that service where I can check to see if an existing >>> queue >>> > consumer already exist for that queue before issue'ing the >>> "basicConsume"? >>> > >>> > _______________________________________________ >>> > rabbitmq-discuss mailing list >>> > rabbitmq-discuss at lists.rabbitmq.com >>> > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >>> > >>> _______________________________________________ >>> rabbitmq-discuss mailing list >>> rabbitmq-discuss at lists.rabbitmq.com >>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >>> >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ron.cordell at gmail.com Wed Feb 12 17:20:51 2014 From: ron.cordell at gmail.com (Ron Cordell) Date: Wed, 12 Feb 2014 09:20:51 -0800 Subject: [rabbitmq-discuss] Performance Observations and Interesting Behavior In-Reply-To: <52FB56C1.20607@rabbitmq.com> References: <52FB56C1.20607@rabbitmq.com> Message-ID: We are testing the application against the RabbitMQ cluster, so there are many queues involved, all of which are HA. Most of the queues present the work or results of an activity, where each activity is part of a larger finite state machine. The application processes incoming messages via these state machines, and we drive the application and RabbitMQ testing by pushing through levels of messages. In this case there are about 100 queues, but only 15 of those are actively used; the remainder represent error states or other "non-happy path" activities. All of this is accomplished using the MassTransit libraries, which manages sagas and message retry/reprocessing as well as other things on top of an AMQP messaging system. So... all that being said - we pump through about 100K messages/hour, each message is ~5K in size, and messages are real in the sense that the application under test will process them successfully into the system using RabbitMQ. We're not just testing raw performance of RabbitMQ but the performance of RabbitMQ in the context of the application. This increases the number of variables when testing but we can observe the Rabbit cluster under test and still draw conclusions. Hope this helps and if you have any other feedback it would be welcome! Cheers, -ronc On Wed, Feb 12, 2014 at 3:10 AM, Simon MacMullen wrote: > On 11/02/14 23:42, Ron Cordell wrote: > >> 4. (here is the interesting one) When the F5 is configured to load >> balance across the 3 nodes as a round-robin load balancer, maximum >> throughput is significantly less than if the F5 sends all traffic to a >> single node. >> >> I'd love any feedback, especially on #4. >> > > Depends exactly what your tests are doing. > > If your tests are running through a single queue then it will be faster to > publish and consume on the node which hosts that queue since you can avoid > sending messages across the cluster. > > [This effect is particularly pronounced if using basic.qos or > mandatory=true, since those currently involve synchronous request-response > across the cluster. This will get fixed in 3.3.0.] > > Cheers, Simon > > -- > Simon MacMullen > RabbitMQ, Pivotal > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Wed Feb 12 17:25:49 2014 From: cwstorm at gmail.com (cw storm) Date: Wed, 12 Feb 2014 12:25:49 -0500 Subject: [rabbitmq-discuss] How check for existing queue consumer In-Reply-To: References: Message-ID: I suppose i can do "String consumerTag = channel.queueDeclarePassive(strQueueName).getConsumerTag();" On Wed, Feb 12, 2014 at 12:20 PM, cw storm wrote: > Hi Simon and team, > > Besides the number of active queue consumer, can I get the actual name or > value that's in the consumer tag? > > > On Wed, Feb 12, 2014 at 10:48 AM, cw storm wrote: > >> Thanks guys. The "int consumers = >> channel.queueDeclarePassive(strQueueName).getConsumerCount();" will meet my >> requirement. In my service, I will check to see if that number is greater >> than 0 or not. If not, then issue "basicConsume". But if my other server >> need to also register the queue consumer as well, then maybe I need to >> check if the number equals 2 instead. >> >> I'm just wondering if you have two servers, do you have both of your >> server create a queue consumer to the queue? >> >> >> On Wed, Feb 12, 2014 at 10:14 AM, cw storm wrote: >> >>> Thanks guys. >>> >>> If I declare the queue exclusive, then my other server won't be able to >>> register the queue consumer right? We have two ESB servers for load >>> balancing. That means, two queue consumer for that queue. However, if >>> someone accidentally execute the service, then it'll create a new >>> channel/connection and queue consumer for that queue. That I don't want to >>> happen. >>> >>> >>> On Wed, Feb 12, 2014 at 10:04 AM, Alvaro Videla wrote: >>> >>>> Hi, >>>> >>>> If you need to have just one consumer per queue, then declare the >>>> queue as exclusive. >>>> >>>> If you want to check if there are consumers attached to a particular >>>> queue, then inspect the return values of issuing a passive >>>> queueDeclare. >>>> >>>> Regards, >>>> >>>> Alvaro >>>> >>>> On Wed, Feb 12, 2014 at 3:59 PM, cw storm wrote: >>>> > Hi, >>>> > >>>> > I have a situation where someone executed the service that calls the >>>> > "basicConsume" which basically assigns a queue consumer to that queue >>>> on a >>>> > different channel. This cause multiple queue consumer for that >>>> queue. Is >>>> > there someway in that service where I can check to see if an existing >>>> queue >>>> > consumer already exist for that queue before issue'ing the >>>> "basicConsume"? >>>> > >>>> > _______________________________________________ >>>> > rabbitmq-discuss mailing list >>>> > rabbitmq-discuss at lists.rabbitmq.com >>>> > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >>>> > >>>> _______________________________________________ >>>> rabbitmq-discuss mailing list >>>> rabbitmq-discuss at lists.rabbitmq.com >>>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >>>> >>> >>> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Wed Feb 12 17:21:43 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 12 Feb 2014 17:21:43 +0000 Subject: [rabbitmq-discuss] How check for existing queue consumer In-Reply-To: References: Message-ID: <52FBADA7.50404@rabbitmq.com> On 12/02/14 17:20, cw storm wrote: > Besides the number of active queue consumer, can I get the actual name > or value that's in the consumer tag? Only via the mgmt API: $ curl -i -u guest:guest http://localhost:15672/api/queues/%2f/test?columns=name,consumer_details.consumer_tag HTTP/1.1 200 OK Server: MochiWeb/1.1 WebMachine/1.10.0 (never breaks eye contact) Date: Wed, 12 Feb 2014 17:21:09 GMT Content-Type: application/json Content-Length: 87 Cache-Control: no-cache {"consumer_details":[{"consumer_tag":"amq.ctag-shNahmeVJHaF-kS-OwgirA"}],"name":"test"} Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From cwstorm at gmail.com Wed Feb 12 17:30:20 2014 From: cwstorm at gmail.com (cw storm) Date: Wed, 12 Feb 2014 12:30:20 -0500 Subject: [rabbitmq-discuss] How check for existing queue consumer In-Reply-To: <52FBADA7.50404@rabbitmq.com> References: <52FBADA7.50404@rabbitmq.com> Message-ID: What about the getConsumerTag() method? On Wed, Feb 12, 2014 at 12:21 PM, Simon MacMullen wrote: > On 12/02/14 17:20, cw storm wrote: > >> Besides the number of active queue consumer, can I get the actual name >> or value that's in the consumer tag? >> > > Only via the mgmt API: > > $ curl -i -u guest:guest http://localhost:15672/api/ > queues/%2f/test?columns=name,consumer_details.consumer_tag > > HTTP/1.1 200 OK > Server: MochiWeb/1.1 WebMachine/1.10.0 (never breaks eye contact) > Date: Wed, 12 Feb 2014 17:21:09 GMT > Content-Type: application/json > Content-Length: 87 > Cache-Control: no-cache > > {"consumer_details":[{"consumer_tag":"amq.ctag-shNahmeVJHaF-kS-OwgirA"}]," > name":"test"} > > > Cheers, Simon > > -- > Simon MacMullen > RabbitMQ, Pivotal > -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Wed Feb 12 17:41:52 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Wed, 12 Feb 2014 21:41:52 +0400 Subject: [rabbitmq-discuss] How check for existing queue consumer In-Reply-To: References: Message-ID: 2014-02-12 21:25 GMT+04:00 cw storm : > I suppose i can do "String consumerTag = > channel.queueDeclarePassive(strQueueName).getConsumerTag();" > Channel#queueDeclarePassive returns AMQP.Queue.DeclareOk which does not have a consumer tag field. In fact, it can't: there can be multiple consumers per queue. -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Wed Feb 12 17:47:01 2014 From: cwstorm at gmail.com (cw storm) Date: Wed, 12 Feb 2014 12:47:01 -0500 Subject: [rabbitmq-discuss] How check for existing queue consumer In-Reply-To: References: Message-ID: So, can I achieve this through code or not? Simon mentioned that one can get the info via curl command line but not sure how to implement this in my java code. I want to be able to check the value of the consumer tag before performing to the next step of registering the queue consumer. Is this possible? On Wed, Feb 12, 2014 at 12:41 PM, Michael Klishin < michael.s.klishin at gmail.com> wrote: > > 2014-02-12 21:25 GMT+04:00 cw storm : > > I suppose i can do "String consumerTag = >> channel.queueDeclarePassive(strQueueName).getConsumerTag();" >> > > Channel#queueDeclarePassive returns AMQP.Queue.DeclareOk which does not > have > a consumer tag field. In fact, it can't: there can be multiple consumers > per queue. > > > -- > MK > > http://github.com/michaelklishin > http://twitter.com/michaelklishin > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Wed Feb 12 17:55:45 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Wed, 12 Feb 2014 21:55:45 +0400 Subject: [rabbitmq-discuss] How check for existing queue consumer In-Reply-To: References: Message-ID: 2014-02-12 21:47 GMT+04:00 cw storm : > Simon mentioned that one can get the info via curl command line but not > sure how to implement this in my java code. I want to be able to check the > value of the consumer tag before performing to the next step of registering > the queue consumer. Is this possible? curl is a command line HTTP client. RabbitMQ HTTP API returns JSON responses. There is no dedicated HTTP API client in Java, so you'll have to use an HTTP client library + JSON parser. API reference is at http://hg.rabbitmq.com/rabbitmq-management/raw-file/rabbitmq_v3_2_3/priv/www/api/index.html . -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Wed Feb 12 18:17:43 2014 From: cwstorm at gmail.com (cw storm) Date: Wed, 12 Feb 2014 13:17:43 -0500 Subject: [rabbitmq-discuss] How check for existing queue consumer In-Reply-To: References: Message-ID: So I'm guessing the "getConsumerTag()" is not going to meet my requirement, right? On Wed, Feb 12, 2014 at 12:55 PM, Michael Klishin < michael.s.klishin at gmail.com> wrote: > > 2014-02-12 21:47 GMT+04:00 cw storm : > > Simon mentioned that one can get the info via curl command line but not >> sure how to implement this in my java code. I want to be able to check the >> value of the consumer tag before performing to the next step of registering >> the queue consumer. Is this possible? > > > curl is a command line HTTP client. RabbitMQ HTTP API returns JSON > responses. > There is no dedicated HTTP API client in Java, so you'll have to use an > HTTP client library + JSON parser. > > API reference is at > http://hg.rabbitmq.com/rabbitmq-management/raw-file/rabbitmq_v3_2_3/priv/www/api/index.html > . > > -- > MK > > http://github.com/michaelklishin > http://twitter.com/michaelklishin > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ron.cordell at gmail.com Wed Feb 12 18:20:34 2014 From: ron.cordell at gmail.com (Ron Cordell) Date: Wed, 12 Feb 2014 10:20:34 -0800 Subject: [rabbitmq-discuss] Performance Observations and Interesting Behavior In-Reply-To: References: Message-ID: Michael, Thanks for the response - that's very interesting. We were quite interested in your setup when you posted to the rabbit list about the setup for the NYT :) How exactly do you distribute the connections? Does the rabbit driver do that for you by choosing from a list, or do you use some other method? Cheers, Ron On Tue, Feb 11, 2014 at 4:05 PM, Laing, Michael wrote: > That's interesting! > > We have removed all the load balancers from our core configurations in > Amazon EC2 because we found they added no value, and, in fact provided > troublesome additional points of failure. (We do use ELBs to find websocket > endpoints in the client-facing retail layer) > > Our core clusters in Oregon and Dublin each have 50 - 100 non-local > connections, randomly distributed, and are very stable. > > We use DNS with health checks for internal client connections in lieu of > load balancers. Simple and rugged. > > Michael Laing > NYTimes > > > On Tue, Feb 11, 2014 at 6:42 PM, Ron Cordell wrote: > >> Hi all -- >> >> We've been performance testing RabbitMQ on Linux as we're about to move >> our RabbitMQ infrastructure from Windows to Linux (as well as other >> things). I wanted to share some of what we observed and if people have any >> feedback. All tests were done using a 3-node cluster where most queues are >> HA, with an F5 configured to provide a virtual IP to the application. There >> is a single vHost. >> >> 1. On the same hardware the Linux installation easily outperforms the >> Windows installation. It also uses fewer resources for the same throughput. >> >> 2. The Windows cluster becomes unstable and nodes start dropping >> out/partitioning at around 1/3 max tested volume. The Linux cluster showed >> no instability whatsoever up to maximum throughput. >> >> 3. Creating a cluster with 2 RAM nodes and 1 Disc node has the same disk >> I/O requirements as 3 disc nodes. (This makes sense because as I believe >> the RAM nodes will persist to disk for HA queues). >> >> 4. (here is the interesting one) When the F5 is configured to load >> balance across the 3 nodes as a round-robin load balancer, maximum >> throughput is significantly less than if the F5 sends all traffic to a >> single node. >> >> I'd love any feedback, especially on #4. >> >> Cheers! >> >> -ronc >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> >> > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Wed Feb 12 19:00:29 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Wed, 12 Feb 2014 23:00:29 +0400 Subject: [rabbitmq-discuss] How check for existing queue consumer In-Reply-To: References: Message-ID: 2014-02-12 22:17 GMT+04:00 cw storm : > So I'm guessing the "getConsumerTag()" is not going to meet my > requirement, right? there is no getConsumerTag on queue.declare-ok -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.laing at nytimes.com Wed Feb 12 19:12:45 2014 From: michael.laing at nytimes.com (Laing, Michael) Date: Wed, 12 Feb 2014 14:12:45 -0500 Subject: [rabbitmq-discuss] Performance Observations and Interesting Behavior In-Reply-To: References: Message-ID: All of our inter-cluster connections use shovels, both within and between regions. A cluster picks one of its nodes to run the shovel on. That node takes the configured list of nodes in a remote cluster and picks one to connect to. When local or remote nodes go down, things adjust. Mostly we see this during rolling restarts. We have found it very rugged in production. External clients connect via a DNS name which will round-robin to one of the cluster nodes. We use Route 53 health checks to insure nodes are in service. Our external clients use PHP, Java, node.js, and whatever else to connect - possibly some of them are using clients smart enough to fail over by themselves... so we also expose the DNS name of each node in the cluster as an option. Best, Michael On Wed, Feb 12, 2014 at 1:20 PM, Ron Cordell wrote: > Michael, > > Thanks for the response - that's very interesting. We were quite > interested in your setup when you posted to the rabbit list about the setup > for the NYT :) > > How exactly do you distribute the connections? Does the rabbit driver do > that for you by choosing from a list, or do you use some other method? > > Cheers, > > Ron > > > On Tue, Feb 11, 2014 at 4:05 PM, Laing, Michael > wrote: > >> That's interesting! >> >> We have removed all the load balancers from our core configurations in >> Amazon EC2 because we found they added no value, and, in fact provided >> troublesome additional points of failure. (We do use ELBs to find websocket >> endpoints in the client-facing retail layer) >> >> Our core clusters in Oregon and Dublin each have 50 - 100 non-local >> connections, randomly distributed, and are very stable. >> >> We use DNS with health checks for internal client connections in lieu of >> load balancers. Simple and rugged. >> >> Michael Laing >> NYTimes >> >> >> On Tue, Feb 11, 2014 at 6:42 PM, Ron Cordell wrote: >> >>> Hi all -- >>> >>> We've been performance testing RabbitMQ on Linux as we're about to move >>> our RabbitMQ infrastructure from Windows to Linux (as well as other >>> things). I wanted to share some of what we observed and if people have any >>> feedback. All tests were done using a 3-node cluster where most queues are >>> HA, with an F5 configured to provide a virtual IP to the application. There >>> is a single vHost. >>> >>> 1. On the same hardware the Linux installation easily outperforms the >>> Windows installation. It also uses fewer resources for the same throughput. >>> >>> 2. The Windows cluster becomes unstable and nodes start dropping >>> out/partitioning at around 1/3 max tested volume. The Linux cluster showed >>> no instability whatsoever up to maximum throughput. >>> >>> 3. Creating a cluster with 2 RAM nodes and 1 Disc node has the same disk >>> I/O requirements as 3 disc nodes. (This makes sense because as I believe >>> the RAM nodes will persist to disk for HA queues). >>> >>> 4. (here is the interesting one) When the F5 is configured to load >>> balance across the 3 nodes as a round-robin load balancer, maximum >>> throughput is significantly less than if the F5 sends all traffic to a >>> single node. >>> >>> I'd love any feedback, especially on #4. >>> >>> Cheers! >>> >>> -ronc >>> >>> _______________________________________________ >>> rabbitmq-discuss mailing list >>> rabbitmq-discuss at lists.rabbitmq.com >>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >>> >>> >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> >> > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Wed Feb 12 20:06:48 2014 From: cwstorm at gmail.com (cw storm) Date: Wed, 12 Feb 2014 15:06:48 -0500 Subject: [rabbitmq-discuss] How check for existing queue consumer In-Reply-To: References: Message-ID: Can I use getConsumerTag in some way to see if the queue consumer that I want exist or not before calling the basicConsume? On Wed, Feb 12, 2014 at 2:00 PM, Michael Klishin < michael.s.klishin at gmail.com> wrote: > > 2014-02-12 22:17 GMT+04:00 cw storm : > > So I'm guessing the "getConsumerTag()" is not going to meet my >> requirement, right? > > > there is no getConsumerTag on queue.declare-ok > > > > -- > MK > > http://github.com/michaelklishin > http://twitter.com/michaelklishin > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Wed Feb 12 20:11:31 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Thu, 13 Feb 2014 00:11:31 +0400 Subject: [rabbitmq-discuss] How check for existing queue consumer In-Reply-To: References: Message-ID: 2014-02-13 0:06 GMT+04:00 cw storm : > Can I use getConsumerTag in some way to see if the queue consumer that I > want exist or not before calling the basicConsume? This exact question was already answered with an example: http://markmail.org/thread/hkrbdpah3it2nlzx Use RabbitMQ HTTP API. -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From KGanann at kroll.com Wed Feb 12 21:18:27 2014 From: KGanann at kroll.com (Ganann, Kale) Date: Wed, 12 Feb 2014 21:18:27 +0000 Subject: [rabbitmq-discuss] Federation Issues Message-ID: <6DB033025329784B9280ABD9516177FCA0BE9E9E@usbpx2pmxmbx12> Hi All, We're having a weird issue with our fed vHost in Rabbit 3.2.0. We've got three fed queues, topic, fromfed and tofed. You can publish to tofed and topic, and you can subscribe to topic and fromfed - so, either a direct pattern or a triangle, depending on the route you use. However, we're having an issue where after a couple months of being up, tofed stops publishing. You can set up a temp queue with the same routing key, and it will work as long as you keep the temp queue up, but as soon as you remove the temp queue, tofed dies with it. >From our dev team: The federation appears to be set up correctly with the needed bindings, as do the queues. In order to get messages to go through, we had to make a debug/temp queue on the gemini.test vhost and bind that queue identically to the one bound to the Gemini vhost (they both get bound to e.fed.topic, rk.i.gemini.indexdocs). The temp queue gets two copies of the message because it is on the same vhost, and the index queue gets the message and continues processing. If we take the binding back off of the temp queue the index queue stops receiving messages. Any ideas what might be causing this? Any logs or test I can run to narrow the scope of the field? Thanks, Kale This communication contains information that is confidential, proprietary in nature, and may also be attorney-client privileged and/or work product privileged. It is for the exclusive use of the intended recipient(s). If you are not the intended recipient(s) or the person responsible for delivering it to the intended recipient(s), please note that any form of dissemination, distribution or copying of this communication is strictly prohibited and may be unlawful. If you have received this communication in error, please immediately notify the sender by replying to this message and delete this email immediately. Thank you for your cooperation. Please be advised that neither Altegrity, its affiliates, its employees or agents accept liability for any errors, omissions or damages caused by delays of receipt or by any virus infection in this message or its attachments, or which may otherwise arise as a result of this e-mail transmission. -------------- next part -------------- An HTML attachment was scrubbed... URL: From djacobfeuerborn at gmail.com Wed Feb 12 21:38:04 2014 From: djacobfeuerborn at gmail.com (Dennis Jacobfeuerborn) Date: Wed, 12 Feb 2014 13:38:04 -0800 (PST) Subject: [rabbitmq-discuss] How to deal with untrusted publishers In-Reply-To: <5be96243-11c3-4ff7-9a4e-db578acafa56@googlegroups.com> References: <5be96243-11c3-4ff7-9a4e-db578acafa56@googlegroups.com> Message-ID: <0cb1316c-40d6-4622-990f-f7718a8f83b5@googlegroups.com> Is there no way to accomplish something like this with RabbitMQ? If I can identify who published a message on the consumer end then I could also modify the message there so I really only need a way make the publisher of the messages identifiable. Regards, Dennis On Saturday, December 21, 2013 4:03:48 PM UTC+1, Dennis Jacobfeuerborn wrote: > > Hi, > I'm currently working with a system where a publisher pushed messages to > an exchange which end up in a queue and then get read by a consumer and > stored in a database. The messages are of the form " " and > where in the database the key ist stored is determined by the key. > > Now I want to add another publisher and the information of that publisher > is supposed to be stored in a different table. > > The problem is that technically I need to change the message format to > ". " so the consumer can know where to store the > keys but for security reasons I cannot really rely on the publisher sending > the correct data so I really need to insert the bit on the > broker side based on the username the publisher connects with. For example: > > - Publisher connects with the credentials "publisher1"/(some password) > - Publisher sends message "mykey myvalue" to exchange X > - Exchange X modifies the message and prepends a string containing the > username resulting in the message "publisher1.mykey myvalue" > - Consumer receives the message and can store the data in the appropriate > place > > Is there a way to accomplish this or something similar with rabbitmq? > > Regards, > Dennis > -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Wed Feb 12 21:42:34 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 12 Feb 2014 21:42:34 +0000 Subject: [rabbitmq-discuss] How to deal with untrusted publishers In-Reply-To: <0cb1316c-40d6-4622-990f-f7718a8f83b5@googlegroups.com> References: <5be96243-11c3-4ff7-9a4e-db578acafa56@googlegroups.com> <0cb1316c-40d6-4622-990f-f7718a8f83b5@googlegroups.com> Message-ID: <52FBEACA.5080802@rabbitmq.com> On 12/02/2014 21:38, Dennis Jacobfeuerborn wrote: > Is there no way to accomplish something like this with RabbitMQ? If I > can identify who published a message on the consumer end then I could > also modify the message there so I really only need a way make the > publisher of the messages identifiable. Did you see my response here? http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2014-January/032874.html Cheers, Simon From ron.cordell at gmail.com Wed Feb 12 22:42:05 2014 From: ron.cordell at gmail.com (Ron Cordell) Date: Wed, 12 Feb 2014 14:42:05 -0800 Subject: [rabbitmq-discuss] Performance Observations and Interesting Behavior In-Reply-To: References: Message-ID: Thanks for the detail! Very interesting. I'm even more curious about the client connection via the DNS name. Isn't that essentially the same as exposing a virtual IP to the client and load balancing across the nodes in the cluster? Or did I misunderstand and the client is routed to different clusters... Cheers, -ronc On Wed, Feb 12, 2014 at 11:12 AM, Laing, Michael wrote: > All of our inter-cluster connections use shovels, both within and between > regions. > > A cluster picks one of its nodes to run the shovel on. That node takes the > configured list of nodes in a remote cluster and picks one to connect to. > When local or remote nodes go down, things adjust. Mostly we see this > during rolling restarts. We have found it very rugged in production. > > External clients connect via a DNS name which will round-robin to one of > the cluster nodes. We use Route 53 health checks to insure nodes are in > service. > > Our external clients use PHP, Java, node.js, and whatever else to connect > - possibly some of them are using clients smart enough to fail over by > themselves... so we also expose the DNS name of each node in the cluster as > an option. > > Best, > > Michael > > > On Wed, Feb 12, 2014 at 1:20 PM, Ron Cordell wrote: > >> Michael, >> >> Thanks for the response - that's very interesting. We were quite >> interested in your setup when you posted to the rabbit list about the setup >> for the NYT :) >> >> How exactly do you distribute the connections? Does the rabbit driver do >> that for you by choosing from a list, or do you use some other method? >> >> Cheers, >> >> Ron >> >> >> On Tue, Feb 11, 2014 at 4:05 PM, Laing, Michael < >> michael.laing at nytimes.com> wrote: >> >>> That's interesting! >>> >>> We have removed all the load balancers from our core configurations in >>> Amazon EC2 because we found they added no value, and, in fact provided >>> troublesome additional points of failure. (We do use ELBs to find websocket >>> endpoints in the client-facing retail layer) >>> >>> Our core clusters in Oregon and Dublin each have 50 - 100 non-local >>> connections, randomly distributed, and are very stable. >>> >>> We use DNS with health checks for internal client connections in lieu of >>> load balancers. Simple and rugged. >>> >>> Michael Laing >>> NYTimes >>> >>> >>> On Tue, Feb 11, 2014 at 6:42 PM, Ron Cordell wrote: >>> >>>> Hi all -- >>>> >>>> We've been performance testing RabbitMQ on Linux as we're about to move >>>> our RabbitMQ infrastructure from Windows to Linux (as well as other >>>> things). I wanted to share some of what we observed and if people have any >>>> feedback. All tests were done using a 3-node cluster where most queues are >>>> HA, with an F5 configured to provide a virtual IP to the application. There >>>> is a single vHost. >>>> >>>> 1. On the same hardware the Linux installation easily outperforms the >>>> Windows installation. It also uses fewer resources for the same throughput. >>>> >>>> 2. The Windows cluster becomes unstable and nodes start dropping >>>> out/partitioning at around 1/3 max tested volume. The Linux cluster showed >>>> no instability whatsoever up to maximum throughput. >>>> >>>> 3. Creating a cluster with 2 RAM nodes and 1 Disc node has the same >>>> disk I/O requirements as 3 disc nodes. (This makes sense because as I >>>> believe the RAM nodes will persist to disk for HA queues). >>>> >>>> 4. (here is the interesting one) When the F5 is configured to load >>>> balance across the 3 nodes as a round-robin load balancer, maximum >>>> throughput is significantly less than if the F5 sends all traffic to a >>>> single node. >>>> >>>> I'd love any feedback, especially on #4. >>>> >>>> Cheers! >>>> >>>> -ronc >>>> >>>> _______________________________________________ >>>> rabbitmq-discuss mailing list >>>> rabbitmq-discuss at lists.rabbitmq.com >>>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >>>> >>>> >>> >>> _______________________________________________ >>> rabbitmq-discuss mailing list >>> rabbitmq-discuss at lists.rabbitmq.com >>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >>> >>> >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> >> > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.laing at nytimes.com Wed Feb 12 22:48:11 2014 From: michael.laing at nytimes.com (Laing, Michael) Date: Wed, 12 Feb 2014 17:48:11 -0500 Subject: [rabbitmq-discuss] Performance Observations and Interesting Behavior In-Reply-To: References: Message-ID: I think that's the same - we use R53 DNS for the health checks etc. On Wed, Feb 12, 2014 at 5:42 PM, Ron Cordell wrote: > Thanks for the detail! Very interesting. > > I'm even more curious about the client connection via the DNS name. Isn't > that essentially the same as exposing a virtual IP to the client and load > balancing across the nodes in the cluster? Or did I misunderstand and the > client is routed to different clusters... > > Cheers, > > -ronc > > > On Wed, Feb 12, 2014 at 11:12 AM, Laing, Michael < > michael.laing at nytimes.com> wrote: > >> All of our inter-cluster connections use shovels, both within and between >> regions. >> >> A cluster picks one of its nodes to run the shovel on. That node takes >> the configured list of nodes in a remote cluster and picks one to connect >> to. When local or remote nodes go down, things adjust. Mostly we see this >> during rolling restarts. We have found it very rugged in production. >> >> External clients connect via a DNS name which will round-robin to one of >> the cluster nodes. We use Route 53 health checks to insure nodes are in >> service. >> >> Our external clients use PHP, Java, node.js, and whatever else to connect >> - possibly some of them are using clients smart enough to fail over by >> themselves... so we also expose the DNS name of each node in the cluster as >> an option. >> >> Best, >> >> Michael >> >> >> On Wed, Feb 12, 2014 at 1:20 PM, Ron Cordell wrote: >> >>> Michael, >>> >>> Thanks for the response - that's very interesting. We were quite >>> interested in your setup when you posted to the rabbit list about the setup >>> for the NYT :) >>> >>> How exactly do you distribute the connections? Does the rabbit driver do >>> that for you by choosing from a list, or do you use some other method? >>> >>> Cheers, >>> >>> Ron >>> >>> >>> On Tue, Feb 11, 2014 at 4:05 PM, Laing, Michael < >>> michael.laing at nytimes.com> wrote: >>> >>>> That's interesting! >>>> >>>> We have removed all the load balancers from our core configurations in >>>> Amazon EC2 because we found they added no value, and, in fact provided >>>> troublesome additional points of failure. (We do use ELBs to find websocket >>>> endpoints in the client-facing retail layer) >>>> >>>> Our core clusters in Oregon and Dublin each have 50 - 100 non-local >>>> connections, randomly distributed, and are very stable. >>>> >>>> We use DNS with health checks for internal client connections in lieu >>>> of load balancers. Simple and rugged. >>>> >>>> Michael Laing >>>> NYTimes >>>> >>>> >>>> On Tue, Feb 11, 2014 at 6:42 PM, Ron Cordell wrote: >>>> >>>>> Hi all -- >>>>> >>>>> We've been performance testing RabbitMQ on Linux as we're about to >>>>> move our RabbitMQ infrastructure from Windows to Linux (as well as other >>>>> things). I wanted to share some of what we observed and if people have any >>>>> feedback. All tests were done using a 3-node cluster where most queues are >>>>> HA, with an F5 configured to provide a virtual IP to the application. There >>>>> is a single vHost. >>>>> >>>>> 1. On the same hardware the Linux installation easily outperforms the >>>>> Windows installation. It also uses fewer resources for the same throughput. >>>>> >>>>> 2. The Windows cluster becomes unstable and nodes start dropping >>>>> out/partitioning at around 1/3 max tested volume. The Linux cluster showed >>>>> no instability whatsoever up to maximum throughput. >>>>> >>>>> 3. Creating a cluster with 2 RAM nodes and 1 Disc node has the same >>>>> disk I/O requirements as 3 disc nodes. (This makes sense because as I >>>>> believe the RAM nodes will persist to disk for HA queues). >>>>> >>>>> 4. (here is the interesting one) When the F5 is configured to load >>>>> balance across the 3 nodes as a round-robin load balancer, maximum >>>>> throughput is significantly less than if the F5 sends all traffic to a >>>>> single node. >>>>> >>>>> I'd love any feedback, especially on #4. >>>>> >>>>> Cheers! >>>>> >>>>> -ronc >>>>> >>>>> _______________________________________________ >>>>> rabbitmq-discuss mailing list >>>>> rabbitmq-discuss at lists.rabbitmq.com >>>>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >>>>> >>>>> >>>> >>>> _______________________________________________ >>>> rabbitmq-discuss mailing list >>>> rabbitmq-discuss at lists.rabbitmq.com >>>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >>>> >>>> >>> >>> _______________________________________________ >>> rabbitmq-discuss mailing list >>> rabbitmq-discuss at lists.rabbitmq.com >>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >>> >>> >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> >> > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From djacobfeuerborn at gmail.com Wed Feb 12 23:45:52 2014 From: djacobfeuerborn at gmail.com (Dennis Jacobfeuerborn) Date: Wed, 12 Feb 2014 15:45:52 -0800 (PST) Subject: [rabbitmq-discuss] Receiving messages from multiple queues Message-ID: <0aa7960d-0e54-4585-8a2e-2336101f84b9@googlegroups.com> Hi, I'm trying to understand how I can receive messages from multiple queues. Messages get published to exchange X and which has a binding to queue Q so that's where all messages end up. Now in the consumer I can drain messages from that queue directly but that only allows me to get messages from that single queue. On the web I see examples that create a server-named queue and then use a binding to receive messages but that only seems to work if the consumer is running while messages are published. If I first publish a message and only later start the consumer then I don't get the old messages from the queues the messages where delivered to. How can I get the messages from all the old queues? Regards, Dennis -------------- next part -------------- An HTML attachment was scrubbed... URL: From talktomelance at gmail.com Wed Feb 12 22:03:49 2014 From: talktomelance at gmail.com (talktomelance at gmail.com) Date: Wed, 12 Feb 2014 14:03:49 -0800 (PST) Subject: [rabbitmq-discuss] Monitoring Rabbit MQ deadletter queue and queue counts / rates Message-ID: <1cf43c15-19a3-4d14-8a9a-fedecf8ddb52@googlegroups.com> Hi, Is there a convenient way to monitor queue counts and the rate that messages are being added through the REST API? We would also like to check for messages in a deadletter queue. http://machinename.domain.local:15672/api/queues?columns=name,messages gives me the queues and messages and I can see the deadletter queues and the message count in each. I would have to parse this to find which queue has a deadletter queue associated with it. I have seen the API but not sure how to configure the query string to get counts and rates of all queues and the specific deadletter info. We are wanting to monitor this in microsofts system center operations manager. thanks. -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Thu Feb 13 00:35:56 2014 From: cwstorm at gmail.com (cw storm) Date: Wed, 12 Feb 2014 19:35:56 -0500 Subject: [rabbitmq-discuss] How get detail error message for IOException to a string variable Message-ID: I was performing a negative testing where I was passing an invalid queue name to the basicConsume and in my catch block I have as follows: catch (IOException e) { System.out.println(e.toString()); } For error, all I got was "java.io.IOException" I was hoping I would get a more detail message like "invalid queue name" or something. I even try "getMessage()" but that return null. Am I missing something? -------------- next part -------------- An HTML attachment was scrubbed... URL: From samir.gahirwal at gmail.com Thu Feb 13 01:15:23 2014 From: samir.gahirwal at gmail.com (SamirG) Date: Wed, 12 Feb 2014 17:15:23 -0800 (PST) Subject: [rabbitmq-discuss] RabbitMQ : Management plugin crash server at startup Message-ID: <89173939-6c1c-4b44-bae1-da5aeac15c40@googlegroups.com> Hi, I am trying to bring up new instance of RabbitMQ, but management plugin is crashing server at start up. RabbitMQ v3.2.1, Erlang R16B01 ./sbin/rabbitmq-plugins list [e] amqp_client 3.2.1 [ ] cowboy 0.5.0-rmq3.2.1-git4b93c2d [ ] eldap 3.2.1-gite309de4 [e] mochiweb 2.7.0-rmq3.2.1-git680dba8 [ ] rabbitmq_amqp1_0 3.2.1 [ ] rabbitmq_auth_backend_ldap 3.2.1 [ ] rabbitmq_auth_mechanism_ssl 3.2.1 [ ] rabbitmq_consistent_hash_exchange 3.2.1 [ ] rabbitmq_federation 3.2.1 [ ] rabbitmq_federation_management 3.2.1 [ ] rabbitmq_jsonrpc 3.2.1 [ ] rabbitmq_jsonrpc_channel 3.2.1 [ ] rabbitmq_jsonrpc_channel_examples 3.2.1 [E] rabbitmq_management 3.2.1 [e] rabbitmq_management_agent 3.2.1 [E] rabbitmq_management_visualiser 3.2.1 [ ] rabbitmq_mqtt 3.2.1 [E] rabbitmq_shovel 3.2.1 [E] rabbitmq_shovel_management 3.2.1 [ ] rabbitmq_stomp 3.2.1 [ ] rabbitmq_tracing 3.2.1 [e] rabbitmq_web_dispatch 3.2.1 [ ] rabbitmq_web_stomp 3.2.1 [ ] rabbitmq_web_stomp_examples 3.2.1 [ ] rfc4627_jsonrpc 3.2.1-git5e67120 [ ] sockjs 0.3.4-rmq3.2.1-git3132eb9 [e] webmachine 1.10.3-rmq3.2.1-gite9359c7 Error Log: BOOT FAILED =========== Error description: {could_not_start,rabbitmq_management,undef} Log files (may contain more information): /Local/AS/Logs/rabbitmq-server/broker2.log /Local/AS/Logs/rabbitmq-server/broker2-sasl.log {"init terminating in do_boot",{rabbit,failure_during_boot,{could_not_start,rabbitmq_management,undef}}} Crash dump was written to: erl_crash.dump init terminating in do_boot () This is working fine, if I disable plugins. Has anyone encountered this? Thanks in advance.. --Samir -------------- next part -------------- An HTML attachment was scrubbed... URL: From mgg at giagnocavo.net Thu Feb 13 02:21:28 2014 From: mgg at giagnocavo.net (Michael Giagnocavo) Date: Thu, 13 Feb 2014 02:21:28 +0000 Subject: [rabbitmq-discuss] How to deal with untrusted publishers In-Reply-To: <52FBEACA.5080802@rabbitmq.com> References: <5be96243-11c3-4ff7-9a4e-db578acafa56@googlegroups.com> <0cb1316c-40d6-4622-990f-f7718a8f83b5@googlegroups.com> <52FBEACA.5080802@rabbitmq.com> Message-ID: What about in general, if the client isn't trusted? Is the RabbitMQ threat model designed to encompass malicious clients? -Michael -----Original Message----- From: rabbitmq-discuss [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Simon MacMullen Sent: Wednesday, February 12, 2014 2:43 PM To: Discussions about RabbitMQ; Dennis Jacobfeuerborn Subject: Re: [rabbitmq-discuss] How to deal with untrusted publishers On 12/02/2014 21:38, Dennis Jacobfeuerborn wrote: > Is there no way to accomplish something like this with RabbitMQ? If I > can identify who published a message on the consumer end then I could > also modify the message there so I really only need a way make the > publisher of the messages identifiable. Did you see my response here? http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2014-January/032874.html Cheers, Simon _______________________________________________ rabbitmq-discuss mailing list rabbitmq-discuss at lists.rabbitmq.com https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss From mklishin at gopivotal.com Thu Feb 13 04:32:03 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 13 Feb 2014 08:32:03 +0400 Subject: [rabbitmq-discuss] Receiving messages from multiple queues In-Reply-To: <0aa7960d-0e54-4585-8a2e-2336101f84b9@googlegroups.com> References: <0aa7960d-0e54-4585-8a2e-2336101f84b9@googlegroups.com> Message-ID: <181157D7-8ECF-455B-AA19-78EF682F6A51@rabbitmq.com> On 13 Feb 2014, at 03:45, Dennis Jacobfeuerborn wrote: > On the web I see examples that create a server-named queue and then use a binding to receive messages but that only seems to work if the consumer is running while messages are published. If I first publish a message and only later start the consumer then I don't get the old messages from the queues the messages where delivered to. That?s not correct. Consumers that are added to a queue that already has messages will receive deliveries. Use a topic exchange + N queues and N consumers (or the same consumer can be registered on all queues). See tutorial 5: http://www.rabbitmq.com/getstarted.html MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Thu Feb 13 04:34:32 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 13 Feb 2014 08:34:32 +0400 Subject: [rabbitmq-discuss] Monitoring Rabbit MQ deadletter queue and queue counts / rates In-Reply-To: <1cf43c15-19a3-4d14-8a9a-fedecf8ddb52@googlegroups.com> References: <1cf43c15-19a3-4d14-8a9a-fedecf8ddb52@googlegroups.com> Message-ID: <3B86315D-3EE1-4B73-9525-03CFD663259D@rabbitmq.com> On 13 Feb 2014, at 02:03, talktomelance at gmail.com wrote: > We would also like to check for messages in a deadletter queue. > > http://machinename.domain.local:15672/api/queues?columns=name,messages gives me the queues and messages and I can see the deadletter queues and the message count in each. I would have to parse this to find which queue has a deadletter queue associated with it. > > I have seen the API but not sure how to configure the query string to get counts and rates of all queues and the specific deadletter info. In RabbitMQ, deadlettered messages are published to a deadletter exchange: http://www.rabbitmq.com/dlx.html You can monitor ingress rate for an exchange: > http://machinename.domain.local:15672/api/exchanges or > http://machinename.domain.local:15672/api/exchanges/[name] See http://hg.rabbitmq.com/rabbitmq-management/raw-file/rabbitmq_v3_2_3/priv/www/api/index.html MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Thu Feb 13 04:36:53 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 13 Feb 2014 08:36:53 +0400 Subject: [rabbitmq-discuss] How get detail error message for IOException to a string variable In-Reply-To: References: Message-ID: On 13 Feb 2014, at 04:35, cw storm wrote: > For error, all I got was "java.io.IOException" I was hoping I would get a more detail message like "invalid queue name" or something. I even try "getMessage()" but that return null. > > Am I missing something? The IOException wraps the underlying cause: e.getCause() which often will end up being a com.rabbitmq.client.ShutdownSignalException which has a number of methods of its own: http://www.rabbitmq.com/javadoc/com/rabbitmq/client/ShutdownSignalException.html MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Thu Feb 13 04:45:20 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 13 Feb 2014 08:45:20 +0400 Subject: [rabbitmq-discuss] RabbitMQ : Management plugin crash server at startup In-Reply-To: <89173939-6c1c-4b44-bae1-da5aeac15c40@googlegroups.com> References: <89173939-6c1c-4b44-bae1-da5aeac15c40@googlegroups.com> Message-ID: On 13 Feb 2014, at 05:15, SamirG wrote: > Error description: > {could_not_start,rabbitmq_management,undef} > > Log files (may contain more information): > /Local/AS/Logs/rabbitmq-server/broker2.log > /Local/AS/Logs/rabbitmq-server/broker2-sasl.log > > {"init terminating in do_boot",{rabbit,failure_during_boot,{could_not_start,rabbitmq_management,undef}}} This suggest that management plugin code cannot be loaded, e.g. because a plugin was deleted or RabbitMQ is configured to use an alternative plugins directory: http://rabbitmq.com/relocate.html How did you install RabbitMQ? What Erlang and OS is this on? MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Thu Feb 13 04:48:23 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 13 Feb 2014 08:48:23 +0400 Subject: [rabbitmq-discuss] How to deal with untrusted publishers In-Reply-To: References: <5be96243-11c3-4ff7-9a4e-db578acafa56@googlegroups.com> <0cb1316c-40d6-4622-990f-f7718a8f83b5@googlegroups.com> <52FBEACA.5080802@rabbitmq.com> Message-ID: <8CC634C3-8E4F-41E0-AD38-9F6CB42B78A1@rabbitmq.com> On 13 Feb 2014, at 06:21, Michael Giagnocavo wrote: > What about in general, if the client isn't trusted? Is the RabbitMQ threat model designed to encompass malicious clients? RabbitMQ has a pretty fine grained permissions model, has mandatory authentication and supports TLS. http://www.rabbitmq.com/access-control.html http://www.rabbitmq.com/ssl.html in the case of a rogue publisher that has authenticated, eventually all connections that publish messages will be blocked. There are multiple strategies to avoid this. http://www.rabbitmq.com/memory.html http://www.rabbitmq.com/blog/2014/01/23/preventing-unbounded-buffers-with-rabbitmq/ HTH. MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Thu Feb 13 04:51:52 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 13 Feb 2014 08:51:52 +0400 Subject: [rabbitmq-discuss] Federation Issues In-Reply-To: <6DB033025329784B9280ABD9516177FCA0BE9E9E@usbpx2pmxmbx12> References: <6DB033025329784B9280ABD9516177FCA0BE9E9E@usbpx2pmxmbx12> Message-ID: <67951A82-EDEB-4643-AA4B-FA3DFFA4486F@rabbitmq.com> On 13 Feb 2014, at 01:18, Ganann, Kale wrote: > Any ideas what might be causing this? Any logs or test I can run to narrow the scope of the field? Kale, Having RabbitMQ logs around the time the issue happens would be very helpful. MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Thu Feb 13 05:23:59 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 13 Feb 2014 09:23:59 +0400 Subject: [rabbitmq-discuss] RabbitMQ : Management plugin crash server at startup In-Reply-To: References: <89173939-6c1c-4b44-bae1-da5aeac15c40@googlegroups.com> Message-ID: <421FAD7F-5E6B-4E43-99DF-472D920E3BC4@gopivotal.com> On 13 Feb 2014, at 09:20, Samir Gahirwal wrote: > export RABBITMQ_BASE=/opt/local/rabbitmq What is under $RABBITMQ_BASE/plugins? Also, please keep rabbitmq-discuss in CC. -- MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Thu Feb 13 05:24:46 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 13 Feb 2014 09:24:46 +0400 Subject: [rabbitmq-discuss] Fwd: RabbitMQ : Management plugin crash server at startup References: Message-ID: +rabbitmq-discuss Begin forwarded message: > From: Samir Gahirwal > Subject: Re: [rabbitmq-discuss] RabbitMQ : Management plugin crash server at startup > Date: 13 February 2014 09:20:22 GMT+4 > To: Michael Klishin > > Thanks for getting back Michael. I am using Erlang vR16B01 with RabbitMQ v3.2.1 > > $ uname -a > Linux samirg 3.8.13-16.2.1.el6uek.x86_64 #1 SMP Thu Nov 7 17:01:44 PST 2013 x86_64 x86_64 x86_64 GNU/Linux > $ cat /etc/redhat-release > Red Hat Enterprise Linux Server release 6.5 (Santiago) > > I copied complied MQ setup from different host and modified environment args. > > Here are some setting I am using for plugin. > > StartUp Args: > export RABBITMQ_BASE=/opt/local/rabbitmq > export RABBITMQ_MNESIA_DIR=/opt/local/var/lib/rabbitmq/mnesia > export RABBITMQ_ENABLED_PLUGINS_FILE=/opt/local/etc/rabbitmq/enabled_plugins > export RABBITMQ_LOG_BASE=/opt/local/logs/rabbitmq-server > > Config Template: > {rabbitmq_management, > [ > {listener, [{port, 55672}]}, > {redirect_old_port, false}, > {load_definitions, '/opt/local/rabbitmq/policies.json'} > ] > } > > > --SamirG > > > > On Wed, Feb 12, 2014 at 8:45 PM, Michael Klishin wrote: > On 13 Feb 2014, at 05:15, SamirG wrote: > > > Error description: > > {could_not_start,rabbitmq_management,undef} > > > > Log files (may contain more information): > > /Local/AS/Logs/rabbitmq-server/broker2.log > > /Local/AS/Logs/rabbitmq-server/broker2-sasl.log > > > > {"init terminating in do_boot",{rabbit,failure_during_boot,{could_not_start,rabbitmq_management,undef}}} > > This suggest that management plugin code cannot be loaded, e.g. because > a plugin was deleted or RabbitMQ is configured to use an alternative plugins directory: > http://rabbitmq.com/relocate.html > > How did you install RabbitMQ? What Erlang and OS is this on? > > MK > > Software Engineer, Pivotal/RabbitMQ > > > -- MK Software Engineer, Pivotal/RabbitMQ -------------- next part -------------- An HTML attachment was scrubbed... URL: From samir.gahirwal at gmail.com Thu Feb 13 05:28:55 2014 From: samir.gahirwal at gmail.com (Samir Gahirwal) Date: Wed, 12 Feb 2014 21:28:55 -0800 Subject: [rabbitmq-discuss] RabbitMQ : Management plugin crash server at startup In-Reply-To: <421FAD7F-5E6B-4E43-99DF-472D920E3BC4@gopivotal.com> References: <89173939-6c1c-4b44-bae1-da5aeac15c40@googlegroups.com> <421FAD7F-5E6B-4E43-99DF-472D920E3BC4@gopivotal.com> Message-ID: I see management plugin loaded under location: -rw-r--r-- 1 root root 13239 Dec 4 15:56 rabbitmq_shovel_management-3.2.1.ez -rw-r--r-- 1 root root 32792 Dec 4 15:56 rabbitmq_management_visualiser-3.2.1.ez -rw-r--r-- 1 root root 16464 Dec 4 15:56 rabbitmq_management_agent-3.2.1.ez -rw-r--r-- 1 root root 473401 Dec 4 15:56 rabbitmq_management-3.2.1.ez -rw-r--r-- 1 root root 12519 Dec 4 15:56 rabbitmq_federation_management-3.2.1.ez --SamirG On Wed, Feb 12, 2014 at 9:23 PM, Michael Klishin wrote: > > On 13 Feb 2014, at 09:20, Samir Gahirwal wrote: > > > export RABBITMQ_BASE=/opt/local/rabbitmq > > What is under $RABBITMQ_BASE/plugins? > > Also, please keep rabbitmq-discuss in CC. > -- > MK > > Software Engineer, Pivotal/RabbitMQ > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From samir.gahirwal at gmail.com Thu Feb 13 05:30:52 2014 From: samir.gahirwal at gmail.com (Samir Gahirwal) Date: Wed, 12 Feb 2014 21:30:52 -0800 Subject: [rabbitmq-discuss] RabbitMQ : Management plugin crash server at startup In-Reply-To: References: <89173939-6c1c-4b44-bae1-da5aeac15c40@googlegroups.com> <421FAD7F-5E6B-4E43-99DF-472D920E3BC4@gopivotal.com> Message-ID: Also $ cat /opt/local/etc/rabbitmq/enabled_plugins [rabbitmq_federation,rabbitmq_federation_management,rabbitmq_management,rabbitmq_management_visualiser]. --SamirG On Wed, Feb 12, 2014 at 9:28 PM, Samir Gahirwal wrote: > I see management plugin loaded under location: > > -rw-r--r-- 1 root root 13239 Dec 4 15:56 > rabbitmq_shovel_management-3.2.1.ez > -rw-r--r-- 1 root root 32792 Dec 4 15:56 > rabbitmq_management_visualiser-3.2.1.ez > -rw-r--r-- 1 root root 16464 Dec 4 15:56 > rabbitmq_management_agent-3.2.1.ez > -rw-r--r-- 1 root root 473401 Dec 4 15:56 rabbitmq_management-3.2.1.ez > -rw-r--r-- 1 root root 12519 Dec 4 15:56 > rabbitmq_federation_management-3.2.1.ez > > > --SamirG > > > > On Wed, Feb 12, 2014 at 9:23 PM, Michael Klishin wrote: > >> >> On 13 Feb 2014, at 09:20, Samir Gahirwal >> wrote: >> >> > export RABBITMQ_BASE=/opt/local/rabbitmq >> >> What is under $RABBITMQ_BASE/plugins? >> >> Also, please keep rabbitmq-discuss in CC. >> -- >> MK >> >> Software Engineer, Pivotal/RabbitMQ >> >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Thu Feb 13 05:35:07 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 13 Feb 2014 09:35:07 +0400 Subject: [rabbitmq-discuss] RabbitMQ : Management plugin crash server at startup In-Reply-To: References: <89173939-6c1c-4b44-bae1-da5aeac15c40@googlegroups.com> <421FAD7F-5E6B-4E43-99DF-472D920E3BC4@gopivotal.com> Message-ID: On 13 Feb 2014, at 09:28, Samir Gahirwal wrote: > I see management plugin loaded under location: > > -rw-r--r-- 1 root root 13239 Dec 4 15:56 rabbitmq_shovel_management-3.2.1.ez > -rw-r--r-- 1 root root 32792 Dec 4 15:56 rabbitmq_management_visualiser-3.2.1.ez > -rw-r--r-- 1 root root 16464 Dec 4 15:56 rabbitmq_management_agent-3.2.1.ez > -rw-r--r-- 1 root root 473401 Dec 4 15:56 rabbitmq_management-3.2.1.ez > -rw-r--r-- 1 root root 12519 Dec 4 15:56 rabbitmq_federation_management-3.2.1.ez Is this a complete list? If so, there are management plugin dependencies missing. Here?s what a completely new install lists for me (using generic UNIX tarball): https://gist.github.com/michaelklishin/027790125c2cfded8f53 Have you considered installing an RPM? http://www.rabbitmq.com/install-rpm.html -- MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Thu Feb 13 05:37:27 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 13 Feb 2014 09:37:27 +0400 Subject: [rabbitmq-discuss] RabbitMQ : Management plugin crash server at startup In-Reply-To: References: <89173939-6c1c-4b44-bae1-da5aeac15c40@googlegroups.com> <421FAD7F-5E6B-4E43-99DF-472D920E3BC4@gopivotal.com> Message-ID: On 13 Feb 2014, at 09:30, Samir Gahirwal wrote: > Also > > $ cat /opt/local/etc/rabbitmq/enabled_plugins > [rabbitmq_federation,rabbitmq_federation_management,rabbitmq_management,rabbitmq_management_visualiser]. Thanks. The ./sbin/rabbitmq-plugins list output above suggests that the plugin is enabled but seems to fail load dependencies under $RABBITMQ_BASE/plugins. Please try using an RPM or getting a generic UNIX tarball and trying that with your custom settings: http://www.rabbitmq.com/install-generic-unix.html -- MK Software Engineer, Pivotal/RabbitMQ From arunrao.seattle at gmail.com Thu Feb 13 06:25:30 2014 From: arunrao.seattle at gmail.com (Arun Rao) Date: Wed, 12 Feb 2014 22:25:30 -0800 Subject: [rabbitmq-discuss] Clustering setup - Inputs Message-ID: Hey guys - I am building a high message throughput infrastructure using RabbitMQ. My goal is no queueing :). (Beyond the common understanding that I should have more consumers than producers etc., Please advise if there are any other details.) I am looking for theoretical+practical suggestions please. 1. If I had 10 servers, will I achieve more throughput having 5 clusters (2 nodes each) compared to 2 clusters (5 nodes each)? I get into the grey area when i think if I had 5 servers in a cluster and all servers are taking traffic, then there could be more load syncing traffic across clusters? (I understand that one of the main issues with having 5 clusters (with 2 nodes each) is that the publishers and consumers should have enough connections to use all the clusters.) 2. Will I benefit if I had publishers publishing to 3 servers out of 4 servers (in a cluster) and consumers consuming from all 4 servers. This way the 4th server not in publisher's radar will be more effective in draining clusters queues? 3. Higher QoS Prefetch count and multiple acknowledgements. Thank you so much! -------------- next part -------------- An HTML attachment was scrubbed... URL: From aleiphoenix at gmail.com Thu Feb 13 06:49:45 2014 From: aleiphoenix at gmail.com (AR) Date: Wed, 12 Feb 2014 22:49:45 -0800 (PST) Subject: [rabbitmq-discuss] building rabbitmq-server 1.7.0 Message-ID: <82abe962-ff45-4c59-8539-1aba2325f67d@googlegroups.com> Hi, I'm trying building rabbitmq-server 1.7.0 with erlang R15B03. I'm on a Gentoo Linux box, with Erlang R15B03 (erts-5.9.3.1) [source] [64-bit] But got `src/rabbit_net.erl:56: type ip_address() undefined` error. The full build log is at http://bpaste.net/show/4XYJPyv5EQU7ZW1iTWH2/. I'm not very familiar with erlang, So maybe the erlang version is too new for a rather old version of rabbitmq-server ? TIA. -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Thu Feb 13 07:19:10 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 13 Feb 2014 07:19:10 +0000 Subject: [rabbitmq-discuss] building rabbitmq-server 1.7.0 In-Reply-To: <82abe962-ff45-4c59-8539-1aba2325f67d@googlegroups.com> References: <82abe962-ff45-4c59-8539-1aba2325f67d@googlegroups.com> Message-ID: <52FC71EE.7030207@rabbitmq.com> On 13/02/2014 06:49, AR wrote: > I'm not very familiar with erlang, So maybe the erlang version is too > new for a rather old version of rabbitmq-server ? That certainly sounds plausible. So if you absolutely have to build such an ancient version of RabbitMQ then I might start by trying to build it under Erlang R12B-5. I think that's approximately the right version (although I make no guarantees). Note that http://www.rabbitmq.com/releases/rabbitmq-server/v1.7.0/rabbitmq-server-generic-unix-1.7.0.tar.gz is a tarball containing compiled binaries, so if you download that then at least you don't have to compile the thing. I shall assume you have a good reason for doing whatever you're doing. Cheers, Simon From simon at rabbitmq.com Thu Feb 13 07:23:24 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 13 Feb 2014 07:23:24 +0000 Subject: [rabbitmq-discuss] RabbitMQ : Management plugin crash server at startup In-Reply-To: <89173939-6c1c-4b44-bae1-da5aeac15c40@googlegroups.com> References: <89173939-6c1c-4b44-bae1-da5aeac15c40@googlegroups.com> Message-ID: <52FC72EC.1040406@rabbitmq.com> On 13/02/2014 01:15, SamirG wrote: > Log files (may contain more information): > /Local/AS/Logs/rabbitmq-server/broker2.log > /Local/AS/Logs/rabbitmq-server/broker2-sasl.log Do they? In particular there might be more information about what was 'undef'. Also: it's not very clear from the email thread to date, but it looked like you might be saying that the plugins directory *only* contains plugins with "management" in the name. That won't work; there are dependencies that would be missing if you did that. Cheers, Simon From tuannn225 at gmail.com Thu Feb 13 10:08:10 2014 From: tuannn225 at gmail.com (Tuan Nguyen) Date: Thu, 13 Feb 2014 02:08:10 -0800 (PST) Subject: [rabbitmq-discuss] How to publish message Message-ID: Hi everybody, I have just study RabbitMQ with SimpleAmqpClient, but when I published message using follow code: #include > > #include > #include > > using namespace AmqpClient; > int main() > { > > > char *szBroker = getenv("AMQP_BROKER"); > > > Channel::ptr_t channel; > if (szBroker != NULL) > channel = Channel::Create(szBroker); > else > channel = Channel::Create("127.0.0.1", 5672, "guest", "guest", > "/", 4096); > > channel->DeclareQueue("alanqueue"); > channel->BindQueue("alanqueue", "amq.direct", "alankey"); > > > BasicMessage::ptr_t msg_in = BasicMessage::Create(); > > msg_in->Body("Body massegae."); > > channel->BasicPublish("amq.direct", "alankey", msg_in); > > channel->BasicConsume("alanqueue", "consumertag"); > > BasicMessage::ptr_t msg_out = > channel->BasicConsumeMessage("consumertag")->Message(); > > std::cout << "Message text: " << msg_out->Body() << std::endl; > return 0; > } > I don't see message in alanqueue queue. What wrong in here? Sorry about my English -------------- next part -------------- An HTML attachment was scrubbed... URL: From tuannn225 at gmail.com Thu Feb 13 10:17:36 2014 From: tuannn225 at gmail.com (tuan225) Date: Thu, 13 Feb 2014 02:17:36 -0800 (PST) Subject: [rabbitmq-discuss] How to publish message Message-ID: <1392286656336-33320.post@n5.nabble.com> Hi everybody, I have just study RabbitMQ with SimpleAmqpClient, but when I published message using follow code: #include #include #include using namespace AmqpClient; int main() { char *szBroker = getenv("AMQP_BROKER"); Channel::ptr_t channel; if (szBroker != NULL) channel = Channel::Create(szBroker); else channel = Channel::Create("127.0.0.1", 5672, "guest", "guest", "/", 4096); channel->DeclareQueue("alanqueue"); channel->BindQueue("alanqueue", "amq.direct", "alankey"); BasicMessage::ptr_t msg_in = BasicMessage::Create(); msg_in->Body("Body massegae."); channel->BasicPublish("amq.direct", "alankey", msg_in); channel->BasicConsume("alanqueue", "consumertag"); BasicMessage::ptr_t msg_out = channel->BasicConsumeMessage("consumertag")->Message(); std::cout << "Message text: " << msg_out->Body() << std::endl; return 0; } I don't see message in alanqueue queue. What wrong in here? (Sorry about my English) -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/How-to-publish-message-tp33320.html Sent from the RabbitMQ mailing list archive at Nabble.com. From cwstorm at gmail.com Thu Feb 13 15:10:46 2014 From: cwstorm at gmail.com (cw storm) Date: Thu, 13 Feb 2014 10:10:46 -0500 Subject: [rabbitmq-discuss] handleShutdownSignal consumer callback Message-ID: Hi, I was wondering if it's necessary or best practice to handle consumer callback service for "handleShutdownSignal". For basicConsume, I'm handling "handleDelivery", and "handleCancel". -Phil -------------- next part -------------- An HTML attachment was scrubbed... URL: From Lance_Lyons at onlifehealth.com Thu Feb 13 15:17:49 2014 From: Lance_Lyons at onlifehealth.com (Lance Lyons) Date: Thu, 13 Feb 2014 09:17:49 -0600 Subject: [rabbitmq-discuss] Monitoring Rabbit MQ deadletter queue and queue counts / rates In-Reply-To: <3B86315D-3EE1-4B73-9525-03CFD663259D@rabbitmq.com> References: <1cf43c15-19a3-4d14-8a9a-fedecf8ddb52@googlegroups.com> <3B86315D-3EE1-4B73-9525-03CFD663259D@rabbitmq.com> Message-ID: <657B76DD19B8E746862BC2E8520FEF936CE6FA3AAF@EXCHCLUSTER.ghs> Thanks Michael, Is there anything that describes the json that is returned for each api call. For instance. When I look at a specific queue http://machinename.domain.local:15672/api/queues/%2f/ohq.member.biometrics I get the following. Im not sure how the json return is formatted. {"memory":14456,"message_stats":{"ack":8628,"ack_details":{"rate":0.0},"deliver":8628,"deliver_details":{"rate":0.2},"deliver_get":8628,"deliver_get_details":{"rate":0.2},"publish":8628,"publish_details":{"rate":0.0}},"messages":0,"messages_details":{"rate":0.2},"messages_ready":0,"messages_ready_details":{"rate":0.0},"messages_unacknowledged":0,"messages_unacknowledged_details":{"rate":0.2},"idle_since":"2014-02-13 9:08:36","policy":"","exclusive_consumer_tag":"","consumers":2,"backing_queue_status":{"q1":0,"q2":0,"delta":["delta",0,0,0],"q3":0,"q4":0,"len":0,"pending_acks":0,"target_ram_count":"infinity","ram_msg_count":0,"ram_ack_count":0,"next_seq_id":8628,"persistent_count":0,"avg_ingress_rate":0.040558057784930594,"avg_egress_rate":0.040558057784930594,"avg_ack_ingress_rate":0.040558057784930594,"avg_ack_egress_rate":0.0},"status":"running","incoming":[{"stats":{"publish":8628,"publish_details":{"rate":0.0}},"exchange":{"name":"ohx.notification","vhost":"/"}}],"deliveries":[{"stats":{"deliver_get":4342,"deliver_get_details":{"rate":0.0},"deliver":4342,"deliver_details":{"rate":0.0},"ack":4342,"ack_details":{"rate":0.0}},"channel_details":{"name":"11.1.4.69:60042 -> 11.1.4.64:5672 (2)","number":2,"connection_name":"11.1.4.69:60042 -> 11.1.4.64:5672","peer_port":60042,"peer_host":"11.1.4.69"}},{"stats":{"deliver_get":4286,"deliver_get_details":{"rate":0.2},"deliver":4286,"deliver_details":{"rate":0.2},"ack":4286,"ack_details":{"rate":0.0}},"channel_details":{"name":"11.1.4.68:57698 -> 11.1.4.64:5672 (2)","number":2,"connection_name":"11.1.4.68:57698 -> 11.1.4.64:5672","peer_port":57698,"peer_host":"11.1.4.68"}}],"consumer_details":[{"channel_details":{"name":"11.1.4.68:57698 -> 11.1.4.64:5672 (2)","number":2,"connection_name":"11.1.4.68:57698 -> 11.1.4.64:5672","peer_port":57698,"peer_host":"11.1.4.68"},"queue":{"name":"ohq.member.biometrics","vhost":"/"},"consumer_tag":"ohq.member.biometrics-1391823274000-472244183023","exclusive":false,"ack_required":true},{"channel_details":{"name":"11.1.4.69:60042 -> 11.1.4.64:5672 (2)","number":2,"connection_name":"11.1.4.69:60042 -> 11.1.4.64:5672","peer_port":60042,"peer_host":"11.1.4.69"},"queue":{"name":"ohq.member.biometrics","vhost":"/"},"consumer_tag":"ohq.member.biometrics-1391823324000-377170445325","exclusive":false,"ack_required":true}],"name":"ohq.member.biometrics","vhost":"/","durable":true,"auto_delete":false,"arguments":{"x-dead-letter-exchange":"ohx.deadletter","x-dead-letter-routing-key":"member.biometrics"},"node":"rabbit at Machine01"} -----Original Message----- From: rabbitmq-discuss [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Michael Klishin Sent: Wednesday, February 12, 2014 10:35 PM To: Discussions about RabbitMQ Cc: talktomelance at gmail.com Subject: Re: [rabbitmq-discuss] Monitoring Rabbit MQ deadletter queue and queue counts / rates On 13 Feb 2014, at 02:03, talktomelance at gmail.com wrote: > We would also like to check for messages in a deadletter queue. > > http://machinename.domain.local:15672/api/queues?columns=name,messages gives me the queues and messages and I can see the deadletter queues and the message count in each. I would have to parse this to find which queue has a deadletter queue associated with it. > > I have seen the API but not sure how to configure the query string to get counts and rates of all queues and the specific deadletter info. In RabbitMQ, deadlettered messages are published to a deadletter exchange: http://www.rabbitmq.com/dlx.html You can monitor ingress rate for an exchange: > http://machinename.domain.local:15672/api/exchanges or > http://machinename.domain.local:15672/api/exchanges/[name] See http://hg.rabbitmq.com/rabbitmq-management/raw-file/rabbitmq_v3_2_3/priv/www/api/index.html MK Software Engineer, Pivotal/RabbitMQ _______________________________________________ rabbitmq-discuss mailing list rabbitmq-discuss at lists.rabbitmq.com https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss From Rohit.Patle at techmahindra.com Thu Feb 13 15:05:54 2014 From: Rohit.Patle at techmahindra.com (Rohit Patle) Date: Thu, 13 Feb 2014 15:05:54 +0000 Subject: [rabbitmq-discuss] [rabbitmq-c-master] memory leakinkg while reconnect. Message-ID: <27E054594442884E9A46DBCF9AE7408164FD4D@BSDMSATMBX001.mahindrasatyam.ad> Hi Alan, As suggested by you I run our code with Valgrind and also with GDB bellow is the outcome for your reference. From GDB outcome I can see that the Segmentation fault occurs due to non availability of malloc_consolidate in malloc.c also I am not able to find the file in my downloaded rabbitmq-c-master package. Please suggest. ========================= Valgrind ====================== ==6778== ==6778== Process terminating with default action of signal 2 (SIGINT) ==6778== at 0x414D311: connect (socket.S:64) ==6778== by 0x69682E30: ??? ==6778== ==6778== HEAP SUMMARY: ==6778== in use at exit: 667,319 bytes in 3,295 blocks ==6778== total heap usage: 4,393 allocs, 1,098 frees, 789,240 bytes allocated ==6778== ==6778== Searching for pointers to 3,295 not-freed blocks ==6778== Checked 206,660 bytes ==6778== ==6778== 414,730 (344 direct, 414,386 indirect) bytes in 2 blocks are definitely lost in loss record 378 of 378 ==6778== at 0x402A5E6: calloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) ==6778== by 0x404C623: amqp_new_connection (amqp_connection.c:68) ==6778== by 0x40754D2: (below main) (libc-start.c:226) ==6778== ==6778== LEAK SUMMARY: ==6778== definitely lost: 344 bytes in 2 blocks ==6778== indirectly lost: 414,386 bytes in 372 blocks ==6778== possibly lost: 0 bytes in 0 blocks ==6778== still reachable: 252,589 bytes in 2,921 blocks ==6778== suppressed: 0 bytes in 0 blocks ==6778== Reachable blocks (those to which a pointer was found) are not shown. ==6778== To see them, rerun with: --leak-check=full --show-reachable=yes ==6778== ==6778== Use --track-origins=yes to see where uninitialised values come from ==6778== ERROR SUMMARY: 7 errors from 2 contexts (suppressed: 0 from 0) ==6778== ==6778== 6 errors in context 1 of 2: ==6778== Conditional jump or move depends on uninitialised value(s) ==6778== at 0x4346494: ASN1_STRING_set (asn1_lib.c:382) ==6778== by 0x432FF02: ASN1_mbstring_ncopy (a_mbstr.c:204) ==6778== by 0x433018A: ASN1_mbstring_copy (a_mbstr.c:86) ==6778== by 0x4331258: ASN1_STRING_to_UTF8 (a_strex.c:570) ==6778== by 0x4332F0B: x509_name_canon (x_name.c:408) ==6778== by 0x43335BF: x509_name_ex_d2i (x_name.c:210) ==6778== by 0x433B017: ASN1_item_ex_d2i (tasn_dec.c:239) ==6778== by 0x433BD9E: asn1_template_noexp_d2i (tasn_dec.c:746) ==6778== ==6778== ERROR SUMMARY: 7 errors from 2 contexts (suppressed: 0 from 0) ===============================END================== GDB outcome: ========================== GDB ======================= Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1". creating connection opening SSL/TLS connection Program received signal SIGSEGV, Segmentation fault. 0xb7e80175 in malloc_consolidate (av=0xb7fb0440) at malloc.c:4278 4278 malloc.c: No such file or directory. (gdb) n ===================================================== Thanks & Regards, Rohit ________________________________ DISCLAIMER: This email (including any attachments) is intended for the sole use of the intended recipient/s and may contain material that is CONFIDENTIAL AND PRIVATE COMPANY INFORMATION. Any review or reliance by others or copying or distribution or forwarding of any or all of the contents in this message is STRICTLY PROHIBITED. If you are not the intended recipient, please contact the sender by email and delete all copies; your cooperation in this regard is appreciated. -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Thu Feb 13 15:29:48 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 13 Feb 2014 15:29:48 +0000 Subject: [rabbitmq-discuss] Clustering setup - Inputs In-Reply-To: References: Message-ID: <52FCE4EC.2030504@rabbitmq.com> On 13/02/14 06:25, Arun Rao wrote: > 1. If I had 10 servers, will I achieve more throughput having 5 clusters > (2 nodes each) compared to 2 clusters (5 nodes each)? I get into the > grey area when i think if I had 5 servers in a cluster and all servers > are taking traffic, then there could be more load syncing traffic across > clusters? The key question is really: "Where are your queues?" The question of how you arrange your nodes into clusters is actually quite secondary to this. Any given queue can only be on one node at once (in the case of an HA queue the master can only be on one node and the slaves contribute greater reliability but not greater throughput). And cross cluster traffic is not free. So if you only have one queue, you will get the best results if all publishers and consumers connect directly to that queue. If you have more than one queue, you'll benefit from sharing the queues across nodes. It's still always best if your consumers and producers connect to the same node as the queue is on. Obviously this can't always be arranged :-) but it should be followed as much as possible. > 2. Will I benefit if I had publishers publishing to 3 servers out of 4 > servers (in a cluster) and consumers consuming from all 4 servers. This > way the 4th server not in publisher's radar will be more effective in > draining clusters queues? Again, it depends where the queues are. > 3. Higher QoS Prefetch count and multiple acknowledgements. At the moment, turning off prefetch (either don't use basic.qos or set prefetch_count to 0) is much faster, especially when consuming across a cluster (i.e. with the connection of a different node to the queue). This is because qos is shared between consuming queues on a channel, so we need to do a bit of coordination between cluster nodes just to figure out if we can deliver a message. We will have an improvement to this in 3.3.0. Acknowledgements with multiple=true will help somewhat, if only by reducing the amount of work your consuming connection / channel have to do. But the queue will have to do nearly as much work, so they are no panacea. Hope this helps. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From michael.s.klishin at gmail.com Thu Feb 13 15:39:59 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Thu, 13 Feb 2014 19:39:59 +0400 Subject: [rabbitmq-discuss] Monitoring Rabbit MQ deadletter queue and queue counts / rates In-Reply-To: <657B76DD19B8E746862BC2E8520FEF936CE6FA3AAF@EXCHCLUSTER.ghs> References: <1cf43c15-19a3-4d14-8a9a-fedecf8ddb52@googlegroups.com> <3B86315D-3EE1-4B73-9525-03CFD663259D@rabbitmq.com> <657B76DD19B8E746862BC2E8520FEF936CE6FA3AAF@EXCHCLUSTER.ghs> Message-ID: 2014-02-13 19:17 GMT+04:00 Lance Lyons : > > "message_stats":{"ack":8628,"ack_details":{"rate":0.0},"deliver":8628,"deliver_details":{"rate":0.2},"deliver_get":8628,"deliver_get_details":{"rate":0.2},"publish":8628,"publish_details":{"rate":0.0}} > Formatted: https://gist.github.com/michaelklishin/b07a72c30e67ecad6908 message_stats.publish_details.rate is what you are after. That said, this is a *queue* stats while to get a close enough dead lettering rate, you need a similar rate metric for the exchange you specify as DLX (message_stats.publish_in_details.rate). There is no reference for HTTP API responses but you can get some idea from structures in this client: https://github.com/michaelklishin/rabbit-hole/blob/master/exchanges.go https://github.com/michaelklishin/rabbit-hole/blob/master/common.go -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Thu Feb 13 15:41:39 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Thu, 13 Feb 2014 19:41:39 +0400 Subject: [rabbitmq-discuss] handleShutdownSignal consumer callback In-Reply-To: References: Message-ID: 2014-02-13 19:10 GMT+04:00 cw storm : > I was wondering if it's necessary or best practice to handle consumer > callback service for "handleShutdownSignal". For basicConsume, I'm > handling "handleDelivery", and "handleCancel". Start with handlers for connection and channel shutdown. If your consumers have some state that needs to be reset, handleShutdownSignal should at least do that. -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Thu Feb 13 16:00:38 2014 From: cwstorm at gmail.com (cw storm) Date: Thu, 13 Feb 2014 11:00:38 -0500 Subject: [rabbitmq-discuss] handleShutdownSignal consumer callback In-Reply-To: References: Message-ID: MK, Not sure I understand when you say "If your consumers have some state that needs to be reset, handleShutdownSignal should at least do that." Is there a way to test the "handleShutdownSignal" callback? I would like to see if my code within that block works. What are handler "connection and channel" shutdown you are referring to? On Thu, Feb 13, 2014 at 10:41 AM, Michael Klishin < michael.s.klishin at gmail.com> wrote: > > 2014-02-13 19:10 GMT+04:00 cw storm : > > I was wondering if it's necessary or best practice to handle consumer >> callback service for "handleShutdownSignal". For basicConsume, I'm >> handling "handleDelivery", and "handleCancel". > > > Start with handlers for connection and channel shutdown. If your consumers > have some state > that needs to be reset, handleShutdownSignal should at least do that. > > -- > MK > > http://github.com/michaelklishin > http://twitter.com/michaelklishin > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Thu Feb 13 16:03:45 2014 From: cwstorm at gmail.com (cw storm) Date: Thu, 13 Feb 2014 11:03:45 -0500 Subject: [rabbitmq-discuss] handleShutdownSignal consumer callback In-Reply-To: References: Message-ID: Also, I was wondering, on the RMQ web console, when I manually force a close connection, is there any callback function/service being issue at all? On Thu, Feb 13, 2014 at 11:00 AM, cw storm wrote: > MK, > > Not sure I understand when you say "If your consumers have some state that > needs to be reset, handleShutdownSignal should at least do that." Is there > a way to test the "handleShutdownSignal" callback? I would like to see if > my code within that block works. What are handler "connection and channel" > shutdown you are referring to? > > > On Thu, Feb 13, 2014 at 10:41 AM, Michael Klishin < > michael.s.klishin at gmail.com> wrote: > >> >> 2014-02-13 19:10 GMT+04:00 cw storm : >> >> I was wondering if it's necessary or best practice to handle consumer >>> callback service for "handleShutdownSignal". For basicConsume, I'm >>> handling "handleDelivery", and "handleCancel". >> >> >> Start with handlers for connection and channel shutdown. If your >> consumers have some state >> that needs to be reset, handleShutdownSignal should at least do that. >> >> -- >> MK >> >> http://github.com/michaelklishin >> http://twitter.com/michaelklishin >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Thu Feb 13 16:06:34 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 13 Feb 2014 20:06:34 +0400 Subject: [rabbitmq-discuss] handleShutdownSignal consumer callback In-Reply-To: References: Message-ID: On 13 Feb 2014, at 20:00, cw storm wrote: > I would like to see if my code within that block works. What are handler "connection and channel" shutdown you are referring to? Shutdown listeners can be registered on connections and channels. See http://www.rabbitmq.com/api-guide.html#shutdown. MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Thu Feb 13 16:07:11 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 13 Feb 2014 20:07:11 +0400 Subject: [rabbitmq-discuss] handleShutdownSignal consumer callback In-Reply-To: References: Message-ID: <3FA2E17C-9F00-49B4-8B67-B93A25D8E264@rabbitmq.com> On 13 Feb 2014, at 20:03, cw storm wrote: > Also, I was wondering, on the RMQ web console, when I manually force a close connection, is there any callback function/service being issue at all? RabbitMQ will use connection.close which in the Java client will cause a shutdown sequence. MK Software Engineer, Pivotal/RabbitMQ From alan.antonuk at gmail.com Thu Feb 13 16:07:32 2014 From: alan.antonuk at gmail.com (Alan Antonuk) Date: Thu, 13 Feb 2014 08:07:32 -0800 Subject: [rabbitmq-discuss] [rabbitmq-c-master] memory leakinkg while reconnect. In-Reply-To: <27E054594442884E9A46DBCF9AE7408164FD4D@BSDMSATMBX001.mahindrasatyam.ad> References: <27E054594442884E9A46DBCF9AE7408164FD4D@BSDMSATMBX001.mahindrasatyam.ad> Message-ID: Rohit; On Thu, Feb 13, 2014 at 7:05 AM, Rohit Patle wrote: > Hi Alan, > > As suggested by you I run our code with Valgrind and also with GDB bellow > is the outcome for your reference. > For your valgrind run could you modify your program to exit the program after doing a couple runs of your loop (instead of using ^C to break out of the program)? The leak that valgrind is showing is because the program is being terminated in the middle of the loop, so the amqp_connection_state_t object isn't freed. When I tried to reproduce your situation last night by repeatedly failing to connect to a broker in a tight loop (you should really consider having some kind of exponential back-off or a limit on the number of retries in this case too...) I was unable to reproduce the runaway memory consumption you were seeing. > From GDB outcome I can see that the Segmentation fault occurs due to non > availability of malloc_consolidate in malloc.c also I am not able to find > the file in my downloaded rabbitmq-c-master package. > malloc.c is part of the C standard library, probably glibc. The fact that gdb cannot find is is not surprising (and not really of too much concern in this case - gdb is just looking for it to print out the line that thinks the segfault occurred on). The segfault however is concerning - when you get these you should do a 'bt' command in gdb which will give you a backtrace. Its easier to then to figure out what call into malloc() or free() is causing the error. -Alan > Please suggest. > > ========================= Valgrind ====================== > ==6778== > ==6778== Process terminating with default action of signal 2 (SIGINT) > ==6778== at 0x414D311: connect (socket.S:64) > ==6778== by 0x69682E30: ??? > ==6778== > ==6778== HEAP SUMMARY: > ==6778== in use at exit: 667,319 bytes in 3,295 blocks > ==6778== total heap usage: 4,393 allocs, 1,098 frees, 789,240 bytes > allocated > ==6778== > ==6778== Searching for pointers to 3,295 not-freed blocks > ==6778== Checked 206,660 bytes > ==6778== > ==6778== 414,730 (344 direct, 414,386 indirect) bytes in 2 blocks are > definitely lost in loss record 378 of 378 > ==6778== at 0x402A5E6: calloc (in > /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) > ==6778== by 0x404C623: amqp_new_connection (amqp_connection.c:68) > ==6778== by 0x40754D2: (below main) (libc-start.c:226) > ==6778== > ==6778== LEAK SUMMARY: > ==6778== definitely lost: 344 bytes in 2 blocks > ==6778== indirectly lost: 414,386 bytes in 372 blocks > ==6778== possibly lost: 0 bytes in 0 blocks > ==6778== still reachable: 252,589 bytes in 2,921 blocks > ==6778== suppressed: 0 bytes in 0 blocks > ==6778== Reachable blocks (those to which a pointer was found) are not > shown. > ==6778== To see them, rerun with: --leak-check=full --show-reachable=yes > ==6778== > ==6778== Use --track-origins=yes to see where uninitialised values come > from > ==6778== ERROR SUMMARY: 7 errors from 2 contexts (suppressed: 0 from 0) > ==6778== > ==6778== 6 errors in context 1 of 2: > ==6778== Conditional jump or move depends on uninitialised value(s) > ==6778== at 0x4346494: ASN1_STRING_set (asn1_lib.c:382) > ==6778== by 0x432FF02: ASN1_mbstring_ncopy (a_mbstr.c:204) > ==6778== by 0x433018A: ASN1_mbstring_copy (a_mbstr.c:86) > ==6778== by 0x4331258: ASN1_STRING_to_UTF8 (a_strex.c:570) > ==6778== by 0x4332F0B: x509_name_canon (x_name.c:408) > ==6778== by 0x43335BF: x509_name_ex_d2i (x_name.c:210) > ==6778== by 0x433B017: ASN1_item_ex_d2i (tasn_dec.c:239) > ==6778== by 0x433BD9E: asn1_template_noexp_d2i (tasn_dec.c:746) > ==6778== > ==6778== ERROR SUMMARY: 7 errors from 2 contexts (suppressed: 0 from 0) > ===============================END================== > > GDB outcome: > > ========================== GDB ======================= > Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1". > creating connection > opening SSL/TLS connection > > Program received signal SIGSEGV, Segmentation fault. > 0xb7e80175 in malloc_consolidate (av=0xb7fb0440) at malloc.c:4278 > 4278 malloc.c: No such file or directory. > (gdb) n > ===================================================== > > Thanks & Regards, > Rohit > > > > ------------------------------ > > DISCLAIMER: > This email (including any attachments) is intended for the sole use of the > intended recipient/s and may contain material that is CONFIDENTIAL AND > PRIVATE COMPANY INFORMATION. Any review or reliance by others or copying or > distribution or forwarding of any or all of the contents in this message is > STRICTLY PROHIBITED. If you are not the intended recipient, please contact > the sender by email and delete all copies; your cooperation in this regard > is appreciated. > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Thu Feb 13 16:19:10 2014 From: cwstorm at gmail.com (cw storm) Date: Thu, 13 Feb 2014 11:19:10 -0500 Subject: [rabbitmq-discuss] handleShutdownSignal consumer callback In-Reply-To: <3FA2E17C-9F00-49B4-8B67-B93A25D8E264@rabbitmq.com> References: <3FA2E17C-9F00-49B4-8B67-B93A25D8E264@rabbitmq.com> Message-ID: Thanks MK. So, by implementing this block of code in my java service, whenever I perform a force close connection via the web console, the below block code will be executed, right? connection.addShutdownListener(new ShutdownListener() { public void shutdownCompleted(ShutdownSignalException cause) { ... } }); On Thu, Feb 13, 2014 at 11:07 AM, Michael Klishin wrote: > > On 13 Feb 2014, at 20:03, cw storm wrote: > > > Also, I was wondering, on the RMQ web console, when I manually force a > close connection, is there any callback function/service being issue at all? > > RabbitMQ will use connection.close which in the Java client will cause a > shutdown sequence. > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Thu Feb 13 16:28:17 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 13 Feb 2014 16:28:17 +0000 Subject: [rabbitmq-discuss] Federation Issues In-Reply-To: <67951A82-EDEB-4643-AA4B-FA3DFFA4486F@rabbitmq.com> References: <6DB033025329784B9280ABD9516177FCA0BE9E9E@usbpx2pmxmbx12> <67951A82-EDEB-4643-AA4B-FA3DFFA4486F@rabbitmq.com> Message-ID: <52FCF2A1.8000604@rabbitmq.com> On 13/02/2014 04:51, Michael Klishin wrote: >> Any ideas what might be causing this? Any logs or test I can run to narrow the scope of the field? > > Kale, > > Having RabbitMQ logs around the time the issue happens would be very helpful. The output of "rabbitmqctl report" would also be useful (from each node in the federation). Also it would be good to understand whether you are talking about federated queues or exchanges. You say queues, but then you mention bindings and routing keys so I wonder if you mean exchanges? Cheers, Simon From cwstorm at gmail.com Thu Feb 13 16:31:00 2014 From: cwstorm at gmail.com (cw storm) Date: Thu, 13 Feb 2014 11:31:00 -0500 Subject: [rabbitmq-discuss] handleShutdownSignal consumer callback In-Reply-To: References: <3FA2E17C-9F00-49B4-8B67-B93A25D8E264@rabbitmq.com> Message-ID: Thanks MK. That worked. On Thu, Feb 13, 2014 at 11:19 AM, cw storm wrote: > Thanks MK. > > So, by implementing this block of code in my java service, whenever I > perform a force close connection via the web console, the below block code > will be executed, right? > > connection.addShutdownListener(new ShutdownListener() { > public void shutdownCompleted(ShutdownSignalException cause) > { > ... > } > }); > > > > On Thu, Feb 13, 2014 at 11:07 AM, Michael Klishin wrote: > >> >> On 13 Feb 2014, at 20:03, cw storm wrote: >> >> > Also, I was wondering, on the RMQ web console, when I manually force a >> close connection, is there any callback function/service being issue at all? >> >> RabbitMQ will use connection.close which in the Java client will cause a >> shutdown sequence. >> >> MK >> >> Software Engineer, Pivotal/RabbitMQ >> >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Thu Feb 13 16:44:44 2014 From: cwstorm at gmail.com (cw storm) Date: Thu, 13 Feb 2014 11:44:44 -0500 Subject: [rabbitmq-discuss] Which listener or callback service is perform in event rabbit server shutdown Message-ID: I'm trying to best handle from the client side in the event our rabbit server goes down. When that happens, I assume the client will need to establish a subscription to the queue for consumption. I assume the broker will issue a cancel on the consumer which will perform the "handleCancel" callback function. Is it possible to test this scenario? -Phil -------------- next part -------------- An HTML attachment was scrubbed... URL: From arunrao.seattle at gmail.com Thu Feb 13 17:07:46 2014 From: arunrao.seattle at gmail.com (Arun Rao) Date: Thu, 13 Feb 2014 09:07:46 -0800 Subject: [rabbitmq-discuss] Clustering setup - Inputs In-Reply-To: <52FCE4EC.2030504@rabbitmq.com> References: <52FCE4EC.2030504@rabbitmq.com> Message-ID: Thank you so much, Simon, as always! I learnt from the documentation that queues are single threaded resource. What does this mean to delivering and acknowledging messages? If prefetch_count=10. Cross cluster traffic are they asynchronous? Thanks! On Thu, Feb 13, 2014 at 7:29 AM, Simon MacMullen wrote: > On 13/02/14 06:25, Arun Rao wrote: > >> 1. If I had 10 servers, will I achieve more throughput having 5 clusters >> (2 nodes each) compared to 2 clusters (5 nodes each)? I get into the >> grey area when i think if I had 5 servers in a cluster and all servers >> are taking traffic, then there could be more load syncing traffic across >> clusters? >> > > The key question is really: "Where are your queues?" The question of how > you arrange your nodes into clusters is actually quite secondary to this. > > Any given queue can only be on one node at once (in the case of an HA > queue the master can only be on one node and the slaves contribute greater > reliability but not greater throughput). And cross cluster traffic is not > free. > > So if you only have one queue, you will get the best results if all > publishers and consumers connect directly to that queue. > > If you have more than one queue, you'll benefit from sharing the queues > across nodes. It's still always best if your consumers and producers > connect to the same node as the queue is on. Obviously this can't always be > arranged :-) but it should be followed as much as possible. > > > 2. Will I benefit if I had publishers publishing to 3 servers out of 4 >> servers (in a cluster) and consumers consuming from all 4 servers. This >> way the 4th server not in publisher's radar will be more effective in >> draining clusters queues? >> > > Again, it depends where the queues are. > > > 3. Higher QoS Prefetch count and multiple acknowledgements. >> > > At the moment, turning off prefetch (either don't use basic.qos or set > prefetch_count to 0) is much faster, especially when consuming across a > cluster (i.e. with the connection of a different node to the queue). This > is because qos is shared between consuming queues on a channel, so we need > to do a bit of coordination between cluster nodes just to figure out if we > can deliver a message. > > We will have an improvement to this in 3.3.0. > > Acknowledgements with multiple=true will help somewhat, if only by > reducing the amount of work your consuming connection / channel have to do. > But the queue will have to do nearly as much work, so they are no panacea. > > Hope this helps. > > Cheers, Simon > > > -- > Simon MacMullen > RabbitMQ, Pivotal > -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Thu Feb 13 18:07:53 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 13 Feb 2014 18:07:53 +0000 Subject: [rabbitmq-discuss] Clustering setup - Inputs In-Reply-To: References: <52FCE4EC.2030504@rabbitmq.com> Message-ID: <52FD09F9.9020109@rabbitmq.com> On 13/02/2014 17:07, Arun Rao wrote: > Thank you so much, Simon, as always! > > I learnt from the documentation that queues are single threaded > resource. What does this mean to delivering and acknowledging messages? > If prefetch_count=10. Queues are single processes, but they don't get involved with any of the work of communicating AMQP, they just accept and dole out messages to channel processes (possibly not on the same node) which do that. > Cross cluster traffic are they asynchronous? The general pattern is: if something is asynchronous in AMQP, then any cross-cluster traffic associated with it is also asynchronous. So publishing a messsage across a cluster is asynchronous, but starting a consumer up with basic.consume is not. However, there are a couple of exceptions to that: publishing with mandatory=true (which is synchronous for [publishing channel] -> [queue] inside the cluster) and setting basic.qos (which causes message delivery [queue] -> [consuming channel] to be synchronous inside the cluster). So both of these can have nasty performance in clusters. With regard to mandatory publishing, it's just that way for historical reasons, and it will become async in 3.3.0 anyway. With regard to delivery when basic.qos is set, this is a painful one. As I said in the previous mail, turning on basic.qos means that the prefetch count is associated with the channel and hence could be shared between multiple queues. That means that each queue needs to synchronously check with the channel each time it wants to deliver a message, to see if some other queue has used up the prefetch count. It can't just keep a counter. We're exploring ways to improve this situation in 3.3.x; one option which we already have working is to provide a per-consumer prefetch option separate from basic.qos; another is to optimise the common case when basic.qos is used with a single consumer (although the transitions are a bit painful there). Cheers, Simon From michael.s.klishin at gmail.com Thu Feb 13 18:39:24 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Thu, 13 Feb 2014 22:39:24 +0400 Subject: [rabbitmq-discuss] Which listener or callback service is perform in event rabbit server shutdown In-Reply-To: References: Message-ID: 2014-02-13 20:44 GMT+04:00 cw storm : > I'm trying to best handle from the client side in the event our rabbit > server goes down. When that happens, I assume the client will need to > establish a subscription to the queue for consumption. I assume the broker > will issue a cancel on the consumer which will perform the "handleCancel" > callback function. Is it possible to test this scenario? You will get the regular shutdown sequence. If RabbitMQ goes down or the node becomes inaccessible, you can't get cancel notification but an I/O exception will trigger a shutdown. Future RabbitMQ Java client versions may include an automatic recovery feature like Ruby and Clojure clients have (e.g. http://clojurerabbitmq.info/articles/error_handling.html). -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From yousifmasoud at ymasoud.com Thu Feb 13 18:51:09 2014 From: yousifmasoud at ymasoud.com (Yousif Masoud) Date: Thu, 13 Feb 2014 18:51:09 +0000 Subject: [rabbitmq-discuss] PHP Documentation Report Message-ID: <1392317469.32337.31.camel@debian-bx1.ymasoud.com> Hello everyone, I have been reading the PHP documentation and noticed that there is a paragraph in the "Hello World" tutorial that refers to the Java client. In https://www.rabbitmq.com/tutorials/tutorial-one-php.html I believe the paragraph: "We're about to tell the server to deliver us the messages from the queue. Since it will push us messages asynchronously, we provide a callback in the form of an object that will buffer the messages until we're ready to use them. That is what QueueingConsumer does." does not apply to PHP and may cause confusion. The callback in the PHP code snippet below is not an object and QueueingConsumer is part of the Java client. Many thanks for the great project! Regards, Yousif From KGanann at kroll.com Thu Feb 13 18:51:02 2014 From: KGanann at kroll.com (Ganann, Kale) Date: Thu, 13 Feb 2014 18:51:02 +0000 Subject: [rabbitmq-discuss] Federation Issues In-Reply-To: <52FCF2A1.8000604@rabbitmq.com> References: <6DB033025329784B9280ABD9516177FCA0BE9E9E@usbpx2pmxmbx12> <67951A82-EDEB-4643-AA4B-FA3DFFA4486F@rabbitmq.com> <52FCF2A1.8000604@rabbitmq.com> Message-ID: <6DB033025329784B9280ABD9516177FCA0BEA9F5@usbpx2pmxmbx12> I've attached the rabbitmqctl report for both nodes in this cluster. You're right, Simon, I meant exchanges. Pardon the slip. I'm trolling through the logs now looking for anything that might be relevant to throw your way. Thanks, guys. Kale Thanks, Kale -----Original Message----- From: Simon MacMullen [mailto:simon at rabbitmq.com] Sent: Thursday, February 13, 2014 10:28 AM To: Discussions about RabbitMQ Cc: Ganann, Kale Subject: Re: [rabbitmq-discuss] Federation Issues On 13/02/2014 04:51, Michael Klishin wrote: >> Any ideas what might be causing this? Any logs or test I can run to narrow the scope of the field? > > Kale, > > Having RabbitMQ logs around the time the issue happens would be very helpful. The output of "rabbitmqctl report" would also be useful (from each node in the federation). Also it would be good to understand whether you are talking about federated queues or exchanges. You say queues, but then you mention bindings and routing keys so I wonder if you mean exchanges? Cheers, Simon This communication contains information that is confidential, proprietary in nature, and may also be attorney-client privileged and/or work product privileged. It is for the exclusive use of the intended recipient(s). If you are not the intended recipient(s) or the person responsible for delivering it to the intended recipient(s), please note that any form of dissemination, distribution or copying of this communication is strictly prohibited and may be unlawful. If you have received this communication in error, please immediately notify the sender by replying to this message and delete this email immediately. Thank you for your cooperation. Please be advised that neither Altegrity, its affiliates, its employees or agents accept liability for any errors, omissions or damages caused by delays of receipt or by any virus infection in this message or its attachments, or which may otherwise arise as a result of this e-mail transmission. -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: MSPP2PMQMSG001.txt URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: MSPP2PMQMSG002.txt URL: From videlalvaro at gmail.com Thu Feb 13 19:03:42 2014 From: videlalvaro at gmail.com (Alvaro Videla) Date: Thu, 13 Feb 2014 20:03:42 +0100 Subject: [rabbitmq-discuss] PHP Documentation Report In-Reply-To: <1392317469.32337.31.camel@debian-bx1.ymasoud.com> References: <1392317469.32337.31.camel@debian-bx1.ymasoud.com> Message-ID: Hi, Thanks for the report. We'll fix it soon. Regards, Alvaro On Thu, Feb 13, 2014 at 7:51 PM, Yousif Masoud wrote: > Hello everyone, > I have been reading the PHP documentation and noticed that there is a > paragraph in the "Hello World" tutorial that refers to the Java client. > > In https://www.rabbitmq.com/tutorials/tutorial-one-php.html I believe > the paragraph: > > "We're about to tell the server to deliver us the messages from the > queue. Since it will push us messages asynchronously, we provide a > callback in the form of an object that will buffer the messages until > we're ready to use them. That is what QueueingConsumer does." > > does not apply to PHP and may cause confusion. The callback in the PHP > code snippet below is not an object and QueueingConsumer is part of the > Java client. > > Many thanks for the great project! > > Regards, > Yousif > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss From cwstorm at gmail.com Thu Feb 13 19:32:39 2014 From: cwstorm at gmail.com (cw storm) Date: Thu, 13 Feb 2014 14:32:39 -0500 Subject: [rabbitmq-discuss] Which listener or callback service is perform in event rabbit server shutdown In-Reply-To: References: Message-ID: What "regular shutdown sequence" are you referring to? The "ShutdownListener"? On Thu, Feb 13, 2014 at 1:39 PM, Michael Klishin < michael.s.klishin at gmail.com> wrote: > > 2014-02-13 20:44 GMT+04:00 cw storm : > > I'm trying to best handle from the client side in the event our rabbit >> server goes down. When that happens, I assume the client will need to >> establish a subscription to the queue for consumption. I assume the broker >> will issue a cancel on the consumer which will perform the "handleCancel" >> callback function. Is it possible to test this scenario? > > > You will get the regular shutdown sequence. > > If RabbitMQ goes down or the node becomes inaccessible, you can't get > cancel notification but an I/O exception will trigger a shutdown. > > Future RabbitMQ Java client versions may include an automatic recovery > feature like > Ruby and Clojure clients have (e.g. > http://clojurerabbitmq.info/articles/error_handling.html). > -- > MK > > http://github.com/michaelklishin > http://twitter.com/michaelklishin > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From joseph.silverman at autodesk.com Thu Feb 13 19:51:23 2014 From: joseph.silverman at autodesk.com (yossie) Date: Thu, 13 Feb 2014 11:51:23 -0800 (PST) Subject: [rabbitmq-discuss] Using rabbitmq (v3) clusters in AWS.. Message-ID: <1392321083734-33344.post@n5.nabble.com> Currently I have an application that uses rabbitmq. There are one or more web servers in a given amazon zone that are configured to talk to a matching rabbitmq cluster in their own zone through a ELB (one per zone.) The web servers in all zones are all accessed through a single multizone ELB. This works. We are using "auto-discovery" which is good when instances don't move or are added/deleted. We would like to switch to an autoscaled model. This means we can't automatically link up rabbitmq clusters via config files and, instead, have to do so using the command line tools. My plan is: 1) new instance starting up will use an IAM account with limited access to find it's own zone (can do from metadata), then figure out the name of it's elb, then figure out other instances on the same elb, and from those get the ip address, and do a join_cluster to one of them. 2) a cron job will wake up periodically and using a similar technique, get a list of any instances that are no longer around but are referenced in the cluster and issue forget_cluster_node on their behalf. I note that disk vs ram rabbitmq (we are disk right now) difficultywill present difficulty but I think the general idea outlined above will do the job. I am relatively new (OK, brand new) to rabbitmq so it is likely that I am not entirely clear on the concepts. I am seeking advice on how best to handle this use case. Thank you in advance for all help - Yossie -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Using-rabbitmq-v3-clusters-in-AWS-tp33344.html Sent from the RabbitMQ mailing list archive at Nabble.com. From samir.gahirwal at gmail.com Fri Feb 14 00:16:25 2014 From: samir.gahirwal at gmail.com (Samir Gahirwal) Date: Thu, 13 Feb 2014 16:16:25 -0800 Subject: [rabbitmq-discuss] RabbitMQ : Management plugin crash server at startup In-Reply-To: <52FC72EC.1040406@rabbitmq.com> References: <89173939-6c1c-4b44-bae1-da5aeac15c40@googlegroups.com> <52FC72EC.1040406@rabbitmq.com> Message-ID: I tried installing new copy of RabbitMQ, but still seeing same error. BOOT FAILED =========== Error description: {could_not_start,rabbitmq_management,undef} Log files (may contain more information): /opt/local/Logs/rabbitmq-server/broker2.log /opt/local/Logs/rabbitmq-server/broker2-sasl.log {"init terminating in do_boot",{rabbit,failure_during_boot,{could_not_start,rabbitmq_management,undef}}} Crash dump was written to: erl_crash.dump init terminating in do_boot () Here is list of plugins: :/opt/local/rabbitmq/plugins 640 $ ls -lrt total 2504 -rw-r--r-- 1 root root 161574 Nov 7 05:54 webmachine-1.10.3-rmq3.2.1-gite9359c7.ez -rw-r--r-- 1 root root 89361 Nov 7 05:54 sockjs-0.3.4-rmq3.2.1-git3132eb9.ez -rw-r--r-- 1 root root 45448 Nov 7 05:54 rfc4627_jsonrpc-3.2.1-git5e67120.ez -rw-r--r-- 1 root root 51552 Nov 7 05:54 rabbitmq_web_stomp_examples-3.2.1.ez -rw-r--r-- 1 root root 18378 Nov 7 05:54 rabbitmq_web_stomp-3.2.1.ez -rw-r--r-- 1 root root 23167 Nov 7 05:54 rabbitmq_web_dispatch-3.2.1.ez -rw-r--r-- 1 root root 42907 Nov 7 05:54 rabbitmq_tracing-3.2.1.ez -rw-r--r-- 1 root root 85871 Nov 7 05:54 rabbitmq_stomp-3.2.1.ez -rw-r--r-- 1 root root 13239 Nov 7 05:54 rabbitmq_shovel_management-3.2.1.ez -rw-r--r-- 1 root root 40787 Nov 7 05:54 rabbitmq_shovel-3.2.1.ez -rw-r--r-- 1 root root 57227 Nov 7 05:54 rabbitmq_mqtt-3.2.1.ez -rw-r--r-- 1 root root 32792 Nov 7 05:54 rabbitmq_management_visualiser-3.2.1.ez -rw-r--r-- 1 root root 16464 Nov 7 05:54 rabbitmq_management_agent-3.2.1.ez -rw-r--r-- 1 root root 473401 Nov 7 05:54 rabbitmq_management-3.2.1.ez -rw-r--r-- 1 root root 53134 Nov 7 05:54 rabbitmq_jsonrpc_channel_examples-3.2.1.ez -rw-r--r-- 1 root root 70055 Nov 7 05:54 rabbitmq_jsonrpc_channel-3.2.1.ez -rw-r--r-- 1 root root 3842 Nov 7 05:54 rabbitmq_jsonrpc-3.2.1.ez -rw-r--r-- 1 root root 12519 Nov 7 05:54 rabbitmq_federation_management-3.2.1.ez -rw-r--r-- 1 root root 142034 Nov 7 05:54 rabbitmq_federation-3.2.1.ez -rw-r--r-- 1 root root 8217 Nov 7 05:54 rabbitmq_consistent_hash_exchange-3.2.1.ez -rw-r--r-- 1 root root 10516 Nov 7 05:54 rabbitmq_auth_mechanism_ssl-3.2.1.ez -rw-r--r-- 1 root root 22437 Nov 7 05:54 rabbitmq_auth_backend_ldap-3.2.1.ez -rw-r--r-- 1 root root 197452 Nov 7 05:54 rabbitmq_amqp1_0-3.2.1.ez -rw-r--r-- 1 root root 264601 Nov 7 05:54 mochiweb-2.7.0-rmq3.2.1-git680dba8.ez -rw-r--r-- 1 root root 98754 Nov 7 05:54 eldap-3.2.1-gite309de4.ez -rw-r--r-- 1 root root 222555 Nov 7 05:54 cowboy-0.5.0-rmq3.2.1-git4b93c2d.ez -rw-r--r-- 1 root root 242521 Nov 7 05:54 amqp_client-3.2.1.ez -rw-r--r-- 1 root root 59 Nov 7 05:54 README Following directory was created when I tried to start MQ server. /opt/local/rabbitmq/var/lib/rabbitmq/mnesia/broker2-plugins-expand 586 $ ls -lrt total 28 drwxr-xr-x 4 root root 4096 Feb 13 23:32 webmachine-1.10.3-rmq3.2.1-gite9359c7 drwxr-xr-x 3 root root 4096 Feb 13 23:32 rabbitmq_web_dispatch-3.2.1 drwxr-xr-x 4 root root 4096 Feb 13 23:32 rabbitmq_management_visualiser-3.2.1 drwxr-xr-x 3 root root 4096 Feb 13 23:32 rabbitmq_management_agent-3.2.1 drwxr-xr-x 5 root root 4096 Feb 13 23:32 rabbitmq_management-3.2.1 drwxr-xr-x 4 root root 4096 Feb 13 23:32 mochiweb-2.7.0-rmq3.2.1-git680dba8 drwxr-xr-x 4 root root 4096 Feb 13 23:32 amqp_client-3.2.1 >From broker2.log logs: =ERROR REPORT==== 13-Feb-2014::23:13:37 === Unable to load crypto library. Failed with error: "load_failed, Failed to load NIF library /opt/local/Erlang/lib/erlang/lib/crypto-3.0/priv/lib/crypto: 'libcrypto.so.6: cannot open shared object file: No such file or directory'" OpenSSL might not be installed on this system. =WARNING REPORT==== 13-Feb-2014::23:13:37 === The on_load function for module crypto returned {error, {load_failed, "Failed to load NIF library /opt/local/Erlang/lib/erlang/lib/crypto-3.0/priv/lib/crypto: 'libcrypto.so.6: cannot open shared object file: No such file or directory'"}} =INFO REPORT==== 13-Feb-2014::23:13:37 === stopped SSL Listener on [::]:5673 =INFO REPORT==== 13-Feb-2014::23:13:37 === stopped TCP Listener on [::]:5672 >From broker2-sasl.log logs: =CRASH REPORT==== 13-Feb-2014::23:13:37 === crasher: initial call: application_master:init/4 pid: <0.268.0> registered_name: [] exception exit: {bad_return, {{rabbit_mgmt_app,start,[normal,[]]}, {'EXIT', {undef, [{crypto,module_info,[attributes],[]}, {rabbit_misc,module_attributes,1,[]}, {rabbit_misc, '-all_module_attributes/1-fun-0-',3,[]}, {lists,foldl,3, [{file,"lists.erl"},{line,1248}]}, {rabbit_mgmt_dispatcher,modules,0,[]}, {rabbit_mgmt_dispatcher,build_dispatcher,0, []}, {rabbit_mgmt_app,make_loop,0,[]}, {rabbit_mgmt_app,register_context,1,[]}]}}}} in function application_master:init/4 (application_master.erl, line 133) ancestors: [<0.267.0>] messages: [{'EXIT',<0.269.0>,normal}] links: [<0.267.0>,<0.7.0>] dictionary: [] trap_exit: true status: running heap_size: 376 stack_size: 27 reductions: 133 neighbours: OpenSSL is also installed on VM. $ openssl OpenSSL> version OpenSSL 1.0.1e-fips 11 Feb 2013 OpenSSL> Thanks! --SamirG On Wed, Feb 12, 2014 at 11:23 PM, Simon MacMullen wrote: > On 13/02/2014 01:15, SamirG wrote: > >> Log files (may contain more information): >> /Local/AS/Logs/rabbitmq-server/broker2.log >> /Local/AS/Logs/rabbitmq-server/broker2-sasl.log >> > > Do they? In particular there might be more information about what was > 'undef'. > > Also: it's not very clear from the email thread to date, but it looked > like you might be saying that the plugins directory *only* contains plugins > with "management" in the name. That won't work; there are dependencies that > would be missing if you did that. > > Cheers, Simon > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Fri Feb 14 02:42:39 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Fri, 14 Feb 2014 06:42:39 +0400 Subject: [rabbitmq-discuss] Which listener or callback service is perform in event rabbit server shutdown In-Reply-To: References: Message-ID: <9B569754-4B61-462A-8185-DEF941D18699@rabbitmq.com> On 13 Feb 2014, at 23:32, cw storm wrote: > What "regular shutdown sequence" are you referring to? The "ShutdownListener"? The process described in http://www.rabbitmq.com/api-guide.html#shutdown MK Software Engineer, Pivotal/RabbitMQ From ambatinr at hotmail.com Fri Feb 14 02:50:08 2014 From: ambatinr at hotmail.com (anate) Date: Thu, 13 Feb 2014 18:50:08 -0800 (PST) Subject: [rabbitmq-discuss] Install php-amqplib client on windows Message-ID: <1392346208811-33349.post@n5.nabble.com> I am trying configure and run sample publish to RabbitMQ queue using PHP client. I downloaded php-amqplib to my local folder. I created composr.JSON file in this folder and tried to install using composer. This is not getting installed. Could you please let me know what steps do I need to follow to install and run the sample program? I am trying to follow the steps from RabbitMQ site tutorials. I appreciate any help. { "require": { "videlalvaro/php-amqplib": "v2.1.0" } } -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Install-php-amqplib-client-on-windows-tp33349.html Sent from the RabbitMQ mailing list archive at Nabble.com. From mklishin at gopivotal.com Fri Feb 14 02:53:32 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Fri, 14 Feb 2014 06:53:32 +0400 Subject: [rabbitmq-discuss] Install php-amqplib client on windows In-Reply-To: <1392346208811-33349.post@n5.nabble.com> References: <1392346208811-33349.post@n5.nabble.com> Message-ID: <12DBFB27-444C-42FE-9716-EBC884167D07@rabbitmq.com> On 14 Feb 2014, at 06:50, anate wrote: > This is not getting > installed. Can you please be more specific? Post Composer output and how you verified that the dependency is not installed. Composer installs php-amqplib for tutorials during CI runs, for example: https://github.com/rabbitmq/rabbitmq-tutorials/blob/master/Makefile#L103 MK Software Engineer, Pivotal/RabbitMQ From videlalvaro at gmail.com Fri Feb 14 03:32:06 2014 From: videlalvaro at gmail.com (Alvaro Videla) Date: Fri, 14 Feb 2014 04:32:06 +0100 Subject: [rabbitmq-discuss] Install php-amqplib client on windows In-Reply-To: <12DBFB27-444C-42FE-9716-EBC884167D07@rabbitmq.com> References: <1392346208811-33349.post@n5.nabble.com> <12DBFB27-444C-42FE-9716-EBC884167D07@rabbitmq.com> Message-ID: Hi, You need to add the composer.json to your project file. Then run composer.phar install on that folder. It's not necessary to download php-amqplib on it's own folder, composer would take care of that. See more here: https://getcomposer.org/doc/00-intro.md Regards, Alvaro On Fri, Feb 14, 2014 at 3:53 AM, Michael Klishin wrote: > > On 14 Feb 2014, at 06:50, anate wrote: > >> This is not getting >> installed. > > Can you please be more specific? Post Composer output and how you > verified that the dependency is not installed. > > Composer installs php-amqplib for tutorials during CI runs, for example: > https://github.com/rabbitmq/rabbitmq-tutorials/blob/master/Makefile#L103 > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss From mklishin at gopivotal.com Fri Feb 14 06:27:06 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Fri, 14 Feb 2014 10:27:06 +0400 Subject: [rabbitmq-discuss] ANN Hutch 0.8.0 is released Message-ID: <0D322C1C-6966-4120-AB53-6CA8F66A3722@rabbitmq.com> Hutch [1] is a framework for processing messages from RabbitMQ built on top of Bunny [2]. 0.8.0 is a minor feature release. Release notes: http://blog.rubyrabbitmq.info/blog/2014/02/14/hutch-0-dot-8-0-is-released/ 1. https://github.com/gocardless/hutch 2. http://rubybunny.info MK Software Engineer, Pivotal/RabbitMQ From simon at rabbitmq.com Fri Feb 14 10:30:02 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Fri, 14 Feb 2014 10:30:02 +0000 Subject: [rabbitmq-discuss] RabbitMQ : Management plugin crash server at startup In-Reply-To: References: <89173939-6c1c-4b44-bae1-da5aeac15c40@googlegroups.com> <52FC72EC.1040406@rabbitmq.com> Message-ID: <52FDF02A.40104@rabbitmq.com> On 14/02/2014 12:16AM, Samir Gahirwal wrote: > =ERROR REPORT==== 13-Feb-2014::23:13:37 === > Unable to load crypto library. Failed with error: > "load_failed, Failed to load NIF library > /opt/local/Erlang/lib/erlang/lib/crypto-3.0/priv/lib/crypto: > 'libcrypto.so.6: cannot open shared object file: No such file or directory'" > OpenSSL might not be installed on this system. > OpenSSL is also installed on VM. Well, however you've installed it the openssl(1) binary, Erlang is not finding libcrypto. I strongly recommend you install Erlang and RabbitMQ using your operating system's package manager. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Fri Feb 14 11:06:46 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Fri, 14 Feb 2014 11:06:46 +0000 Subject: [rabbitmq-discuss] Federation Issues In-Reply-To: <6DB033025329784B9280ABD9516177FCA0BEA9F5@usbpx2pmxmbx12> References: <6DB033025329784B9280ABD9516177FCA0BE9E9E@usbpx2pmxmbx12> <67951A82-EDEB-4643-AA4B-FA3DFFA4486F@rabbitmq.com> <52FCF2A1.8000604@rabbitmq.com> <6DB033025329784B9280ABD9516177FCA0BEA9F5@usbpx2pmxmbx12> Message-ID: <52FDF8C6.9040405@rabbitmq.com> I'm having trouble understanding exactly what problem you're describing. However, one thing leaps out at me: you've managed to (accidentally) make some of the queues used internally by federated exchanges *themselves* be federated with each other. This is likely to lead to odd behaviour. I can't guarantee that this is the problem you're describing, but it's certainly *a* problem. You can either: a) Rework your policies so that no policy which matches queues beginning with "^federation:" enables federation. (The policy "federation enabled" in the vhosts ControlCenter, MediaManager and Review could be changed to apply to "exchanges" rather than "all") or b) Upgrade to RabbitMQ 3.2.3, which prevents this confusing and unhelpful behaviour from happening. Cheers, Simon On 13/02/2014 6:51PM, Ganann, Kale wrote: > I've attached the rabbitmqctl report for both nodes in this cluster. > You're right, Simon, I meant exchanges. Pardon the slip. I'm > trolling through the logs now looking for anything that might be > relevant to throw your way. Thanks, guys. > > Kale > > > Thanks, Kale > > -----Original Message----- From: Simon MacMullen > [mailto:simon at rabbitmq.com] Sent: Thursday, February 13, 2014 10:28 > AM To: Discussions about RabbitMQ Cc: Ganann, Kale Subject: Re: > [rabbitmq-discuss] Federation Issues > > On 13/02/2014 04:51, Michael Klishin wrote: >>> Any ideas what might be causing this? Any logs or test I can run >>> to narrow the scope of the field? >> >> Kale, >> >> Having RabbitMQ logs around the time the issue happens would be >> very helpful. > > The output of "rabbitmqctl report" would also be useful (from each > node in the federation). > > Also it would be good to understand whether you are talking about > federated queues or exchanges. You say queues, but then you mention > bindings and routing keys so I wonder if you mean exchanges? > > Cheers, Simon This communication contains information that is > confidential, proprietary in nature, and may also be attorney-client > privileged and/or work product privileged. It is for the exclusive > use of the intended recipient(s). If you are not the intended > recipient(s) or the person responsible for delivering it to the > intended recipient(s), please note that any form of dissemination, > distribution or copying of this communication is strictly prohibited > and may be unlawful. If you have received this communication in > error, please immediately notify the sender by replying to this > message and delete this email immediately. Thank you for your > cooperation. > > Please be advised that neither Altegrity, its affiliates, its > employees or agents accept liability for any errors, omissions or > damages caused by delays of receipt or by any virus infection in > this message or its attachments, or which may otherwise arise as a > result of this e-mail transmission. > -- Simon MacMullen RabbitMQ, Pivotal From Rohit.Patle at techmahindra.com Fri Feb 14 14:15:32 2014 From: Rohit.Patle at techmahindra.com (Rohit Patle) Date: Fri, 14 Feb 2014 14:15:32 +0000 Subject: [rabbitmq-discuss] [rabbitmq-c-master] memory leakinkg while reconnect. Message-ID: <27E054594442884E9A46DBCF9AE7408164FD75@BSDMSATMBX001.mahindrasatyam.ad> Hi Alan, Thank you for your suggestions. As guided I run my simulation code in for() loop of 5 iterations. A. Here in case of Valgrind I could not called amqp_destroy_connection() API after getting "opening SSL/TLS connection ERROR" because as network cable is plugged out It will produce the seg fault. I could see the memory leak there in this case. B. In other case when I am trying to do amqp_destroy_connection() after getting "opening SSL/TLS connection ERROR". In this I am getting Seg fault as expected. I trace out the execution through GDB here is the bt you asked for. Please suggest. ======================Valgrind=========================== ==25028== HEAP SUMMARY: ==25028== in use at exit: 1,287,798 bytes in 3,852 blocks ==25028== total heap usage: 5,390 allocs, 1,538 frees, 1,509,595 bytes allocated ==25028== ==25028== Searching for pointers to 3,852 not-freed blocks ==25028== Checked 8,592,032 bytes ==25028== ==25028== Thread 1: ==25028== 136 bytes in 1 blocks are possibly lost in loss record 266 of 382 ==25028== at 0x402A5E6: calloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) ==25028== by 0x4011304: allocate_dtv (dl-tls.c:297) ==25028== by 0x4011AAB: _dl_allocate_tls (dl-tls.c:461) ==25028== by 0x420D470: pthread_create@@GLIBC_2.1 (allocatestack.c:571) ==25028== by 0x8048C74: main (in /home/adminhu/amqps_listen) ==25028== ==25028== 65,536 bytes in 1 blocks are possibly lost in loss record 376 of 382 ==25028== at 0x402BE68: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) ==25028== by 0x402C007: realloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) ==25028== by 0x404C5C1: amqp_tune_connection (amqp_connection.c:152) ==25028== by 0x404C649: amqp_new_connection (amqp_connection.c:75) ==25028== by 0x420CD4B: start_thread (pthread_create.c:308) ==25028== by 0x414BBAD: clone (clone.S:130) ==25028== ==25028== 131,072 bytes in 1 blocks are possibly lost in loss record 378 of 382 ==25028== at 0x402BE68: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) ==25028== by 0x404C67B: amqp_new_connection (amqp_connection.c:89) ==25028== by 0x420CD4B: start_thread (pthread_create.c:308) ==25028== by 0x414BBAD: clone (clone.S:130) ==25028== ==25028== 632,852 (688 direct, 632,164 indirect) bytes in 4 blocks are definitely lost in loss record 382 of 382 ==25028== at 0x402A5E6: calloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) ==25028== by 0x404C623: amqp_new_connection (amqp_connection.c:68) ==25028== by 0x420CD4B: start_thread (pthread_create.c:308) ==25028== by 0x414BBAD: clone (clone.S:130) ==25028== ==25028== LEAK SUMMARY: ==25028== definitely lost: 688 bytes in 4 blocks ==25028== indirectly lost: 632,164 bytes in 742 blocks ==25028== possibly lost: 196,744 bytes in 3 blocks ==25028== still reachable: 458,202 bytes in 3,103 blocks ==25028== suppressed: 0 bytes in 0 blocks ==25028== Reachable blocks (those to which a pointer was found) are not shown. ==25028== To see them, rerun with: --leak-check=full --show-reachable=yes ==25028== ==25028== Use --track-origins=yes to see where uninitialised values come from ==25028== ERROR SUMMARY: 17 errors from 6 contexts (suppressed: 0 from 0) ==25028== ==25028== 1 errors in context 1 of 6: ==25028== Thread 2: ==25028== Invalid read of size 4 ==25028== at 0x4253643: SSL_write (ssl_lib.c:988) ==25028== by 0x8049AC3: ??? (in /home/adminhu/amqps_listen) ==25028== Address 0x4dff5b8 is 32 bytes inside a block of size 468 free'd ==25028== at 0x402B06C: free (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) ==25028== by 0x42B2919: CRYPTO_free (mem.c:397) ==25028== by 0x4256C80: SSL_free (ssl_lib.c:603) ==25028== by 0x4056318: amqp_ssl_socket_open (amqp_openssl.c:295) ==25028== by 0x404D8B4: amqp_socket_open (amqp_socket.c:185) ==25028== by 0x420CD4B: start_thread (pthread_create.c:308) ==25028== by 0x414BBAD: clone (clone.S:130) ==25028== ==25028== ==25028== 12 errors in context 2 of 6: ==25028== Conditional jump or move depends on uninitialised value(s) ==25028== at 0x4361494: ASN1_STRING_set (asn1_lib.c:382) ==25028== by 0x434AF02: ASN1_mbstring_ncopy (a_mbstr.c:204) ==25028== by 0x434B18A: ASN1_mbstring_copy (a_mbstr.c:86) ==25028== by 0x434C258: ASN1_STRING_to_UTF8 (a_strex.c:570) ==25028== by 0x434DF0B: x509_name_canon (x_name.c:408) ==25028== by 0x434E5BF: x509_name_ex_d2i (x_name.c:210) ==25028== by 0x4356017: ASN1_item_ex_d2i (tasn_dec.c:239) ==25028== by 0x4356D9E: asn1_template_noexp_d2i (tasn_dec.c:746) ==25028== ==25028== ERROR SUMMARY: 17 errors from 6 contexts (suppressed: 0 from 0) ============================END Valgrind============== GDB: =============================GDB=================== opening SSL/TLS connection Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0xb7bc4b40 (LWP 25343)] doall_util_fn (arg=0xb7bc4194, func_arg=0xb7dcdf80 , func=0, use_arg=1, lh=0xb721e090) at lhash.c:290 290 lhash.c: No such file or directory. (gdb) bt #0 doall_util_fn (arg=0xb7bc4194, func_arg=0xb7dcdf80 , func=0, use_arg=1, lh=0xb721e090) at lhash.c:290 #1 lh_doall_arg (lh=0xb721e090, func=0xb7dcdf80 , arg=0xb7bc4194) at lhash.c:307 #2 0xb7dcf1f3 in SSL_CTX_flush_sessions (s=0xb721de38, t=0) at ssl_sess.c:997 #3 0xb7dc93b1 in SSL_CTX_free (a=0xb721de38) at ssl_lib.c:1929 #4 SSL_CTX_free (a=0xb721de38) at ssl_lib.c:1897 #5 0xb7dcbc55 in SSL_free (s=0xb7220ac0) at ssl_lib.c:588 #6 0xb7fc1814 in amqp_ssl_socket_close (base=0xb7210520) at librabbitmq/amqp_openssl.c:306 #7 0xb7fc1870 in amqp_ssl_socket_delete (base=0xb7210520) at librabbitmq/amqp_openssl.c:334 #8 0xb7fb89b5 in amqp_socket_delete (self=0xb7210520) at librabbitmq/amqp_socket.c:201 #9 0xb7fb7740 in amqp_destroy_connection (state=0xb7200468) at librabbitmq/amqp_connection.c:183 #10 0x08049068 in Init () #11 0xb7df4d4c in start_thread (arg=0xb7bc4b40) at pthread_create.c:308 #12 0xb7ef9bae in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130 =====================END GDB========================= Thanks & Regards, Rohit ________________________________ DISCLAIMER: This email (including any attachments) is intended for the sole use of the intended recipient/s and may contain material that is CONFIDENTIAL AND PRIVATE COMPANY INFORMATION. Any review or reliance by others or copying or distribution or forwarding of any or all of the contents in this message is STRICTLY PROHIBITED. If you are not the intended recipient, please contact the sender by email and delete all copies; your cooperation in this regard is appreciated. -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Fri Feb 14 15:05:27 2014 From: cwstorm at gmail.com (cw storm) Date: Fri, 14 Feb 2014 10:05:27 -0500 Subject: [rabbitmq-discuss] basicReject vs basicNack Message-ID: Hi, I would like know when you would use basicReject over basicNack. Which is prefer. -Phil -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Fri Feb 14 15:14:16 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Fri, 14 Feb 2014 15:14:16 +0000 Subject: [rabbitmq-discuss] basicReject vs basicNack In-Reply-To: References: Message-ID: <52FE32C8.50004@rabbitmq.com> On 14/02/2014 3:05PM, cw storm wrote: > I would like know when you would use basicReject over basicNack. Which > is prefer. They're nearly identical. basic.reject was in the original AMQP spec, and we introduced basic.nack as an extension - but the only difference between them is that basic.nack has a "multiple" flag that works like the one in basic.ack. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From matthias at rabbitmq.com Fri Feb 14 15:16:35 2014 From: matthias at rabbitmq.com (Matthias Radestock) Date: Fri, 14 Feb 2014 15:16:35 +0000 Subject: [rabbitmq-discuss] basicReject vs basicNack In-Reply-To: <52FE32C8.50004@rabbitmq.com> References: <52FE32C8.50004@rabbitmq.com> Message-ID: <52FE3353.2050804@rabbitmq.com> On 14/02/14 15:14, Simon MacMullen wrote: > On 14/02/2014 3:05PM, cw storm wrote: >> I would like know when you would use basicReject over basicNack. Which >> is prefer. > > They're nearly identical. basic.reject was in the original AMQP spec, > and we introduced basic.nack as an extension - but the only difference > between them is that basic.nack has a "multiple" flag that works like > the one in basic.ack. See also http://www.rabbitmq.com/nack.html, which says pretty much the same thing, and is the first hit when searching on our web site for 'basic.nack' ;) Matthias From cwstorm at gmail.com Fri Feb 14 15:17:07 2014 From: cwstorm at gmail.com (cw storm) Date: Fri, 14 Feb 2014 10:17:07 -0500 Subject: [rabbitmq-discuss] basicReject vs basicNack In-Reply-To: <52FE32C8.50004@rabbitmq.com> References: <52FE32C8.50004@rabbitmq.com> Message-ID: Thanks Simon. So, basicReject is not one of those deprecated service. On Fri, Feb 14, 2014 at 10:14 AM, Simon MacMullen wrote: > On 14/02/2014 3:05PM, cw storm wrote: > >> I would like know when you would use basicReject over basicNack. Which >> is prefer. >> > > They're nearly identical. basic.reject was in the original AMQP spec, and > we introduced basic.nack as an extension - but the only difference between > them is that basic.nack has a "multiple" flag that works like the one in > basic.ack. > > Cheers, Simon > > -- > Simon MacMullen > RabbitMQ, Pivotal > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mcintoshj at gmail.com Fri Feb 14 15:43:46 2014 From: mcintoshj at gmail.com (Jason McIntosh) Date: Fri, 14 Feb 2014 09:43:46 -0600 Subject: [rabbitmq-discuss] Queue failure, potential loss of data. Message-ID: RabbitMQ 3.2.0 Erlang R16B02-1 We have a queue that basically stopped doing anything intelligent. Here are the results. What's bad about this - it appears that messages continued to publish and didn't hit the dead letter exchange - they just disappeared. In this architecture, we've got a fanout exchange that publishes to two queues. One of the queues is working fine still. Our second queue though is what dropped off. Publishing though hasn't failed so I'm worried we've lost data for the last data. Any input would be welcome on this. Here's the second queues information from the management gui: cluster at rabbitmqm10pDLX DLK D ArgsActive???0.00/s When I try and select the queue, I just get an error message: TypeError: Cannot read property 'ram_msg_count' of undefined Any help/advice here? Is there some way I can change this queue so I do NOT lose messages and publishes fail?? I thought publisher confirms (need to verify they're on) would have taken care of this situation - that the message would have had to have been consumed or persisted to disk for all queues or publishing would have been rejected. Jason =CRASH REPORT==== 13-Feb-2014::05:14:36 === crasher: initial call: gen:init_it/6 pid: <0.367.0> registered_name: [] exception exit: {{badmatch,{error,not_found}}, [{rabbit_mirror_queue_master,stop_all_slaves,2,[]}, {rabbit_mirror_queue_master,delete_and_terminate,2,[]}, {rabbit_amqqueue_process,'-terminate_delete/3-fun-1-', 6,[]}, {rabbit_amqqueue_process,terminate_shutdown,2,[]}, {gen_server2,terminate,3,[]}, {proc_lib,wake_up,3, [{file,"proc_lib.erl"},{line,249}]}]} in function gen_server2:terminate/3 ancestors: [rabbit_amqqueue_sup,rabbit_sup,<0.154.0>] messages: [] links: [<0.250.0>,#Port<0.17147>] dictionary: [{{ch,<17654.9226.6150>}, {cr,<17654.9226.6150>,#Ref<0.0.18055.20563>, {[],[26925191]}, 1, {queue, [{<17654.9226.6150>, {consumer,<<"amq.ctag-LPmzPvp2doZ9pYs-cEEcFg">>, true,[]}}], [],1}, {qstate,<17654.21979.6150>,suspended,{0,nil}}, 4}}, {credit_blocked,[]}, {{ch,<17659.4312.6334>}, {cr,<17659.4312.6334>,#Ref<0.0.18273.227308>, {[],[26925208]}, 1, {queue, [{<17659.4312.6334>, {consumer,<<"amq.ctag--3Kwc_Q-QS9kcpZ9U--8-Q">>, true,[]}}], [],1}, {qstate,<17659.2894.6334>,suspended,{0,nil}}, 19}}, {{ch,<17659.3911.6334>}, {cr,<17659.3911.6334>,#Ref<0.0.18273.227286>, {[26925232,26925226],[26925214]}, 1, {queue,[],[],0}, {qstate,<17659.2051.6334>,active,{0,nil}}, 22}}, {{#Ref<0.0.0.36427>,fhc_handle}, {handle, {file_descriptor,prim_file,{#Port<0.17147>,132}}, 118224,false,5136,infinity, [[<<192,0,0,0,1,154,216,155>>], [<<192,0,0,0,1,154,216,151>>], [<<192,0,0,0,1,154,216,150>>], [<<192,0,0,0,1,154,216,149>>], [<<192,0,0,0,1,154,216,148>>], [<<192,0,0,0,1,154,216,147>>], [<<192,0,0,0,1,154,216,146>>], [<<192,0,0,0,1,154,216,144>>], [<<192,0,0,0,1,154,216,142>>], [<<192,0,0,0,1,154,216,143>>], [<<192,0,0,0,1,154,216,141>>], [<<192,0,0,0,1,154,216,140>>], .,... =SUPERVISOR REPORT==== 13-Feb-2014::05:14:36 === Supervisor: {local,rabbit_amqqueue_sup} Context: child_terminated Reason: {{badmatch,{error,not_found}}, [{rabbit_mirror_queue_master,stop_all_slaves,2,[]}, {rabbit_mirror_queue_master,delete_and_terminate,2,[]}, {rabbit_amqqueue_process,'-terminate_delete/3-fun-1-',6,[]}, {rabbit_amqqueue_process,terminate_shutdown,2,[]}, {gen_server2,terminate,3,[]}, {proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,249}]}]} Offender: [{pid,<0.367.0>}, {name,rabbit_amqqueue}, {mfargs,{rabbit_amqqueue_process,start_link,undefined}}, {restart_type,temporary}, {shutdown,4294967295}, {child_type,worker}] =SUPERVISOR REPORT==== 13-Feb-2014::10:59:28 === Supervisor: {<0.19778.5266>, amqp_channel_sup_sup} Context: shutdown_error Reason: shutdown Offender: [{nb_children,1}, {name,channel_sup}, {mfargs, {amqp_channel_sup,start_link,[direct,<0.20460.5266>]}}, {restart_type,temporary}, {shutdown,brutal_kill}, {child_type,supervisor}] =SUPERVISOR REPORT==== 13-Feb-2014::11:02:34 === Supervisor: {<0.852.5267>,amqp_channel_sup_sup} Context: shutdown_error Reason: shutdown Offender: [{nb_children,1}, {name,channel_sup}, {mfargs, {amqp_channel_sup,start_link,[direct,<0.2623.5267>]}}, {restart_type,temporary}, {shutdown,brutal_kill}, {child_type,supervisor}] =SUPERVISOR REPORT==== 13-Feb-2014::11:03:24 === Supervisor: {<0.4628.5267>,amqp_channel_sup_sup} Context: shutdown_error Reason: shutdown Offender: [{nb_children,1}, {name,channel_sup}, {mfargs, {amqp_channel_sup,start_link,[direct,<0.5878.5267>]}}, {restart_type,temporary}, {shutdown,brutal_kill}, {child_type,supervisor}] =CRASH REPORT==== 13-Feb-2014::11:12:31 === crasher: initial call: gen:init_it/6 pid: <0.4699.5268> registered_name: [] exception exit: {{badmatch,true}, [{rabbit_queue_index,init,2,[]}, {rabbit_variable_queue,init,5,[]}, {rabbit_mirror_queue_master,init,3,[]}, {rabbit_amqqueue_process,declare,3,[]}, {gen_server2,handle_msg,2,[]}, {proc_lib,init_p_do_apply,3, [{file,"proc_lib.erl"},{line,239}]}]} in function gen_server2:terminate/3 ancestors: [rabbit_amqqueue_sup,rabbit_sup,<0.154.0>] messages: [] links: [<0.250.0>] dictionary: [{{xtype_to_module,direct},rabbit_exchange_type_direct}] trap_exit: true status: running heap_size: 1598 stack_size: 27 reductions: 1156 neighbours: =SUPERVISOR REPORT==== 13-Feb-2014::11:12:31 === Supervisor: {local,rabbit_amqqueue_sup} Context: child_terminated Reason: {{badmatch,true}, [{rabbit_queue_index,init,2,[]}, {rabbit_variable_queue,init,5,[]}, {rabbit_mirror_queue_master,init,3,[]}, {rabbit_amqqueue_process,declare,3,[]}, {gen_server2,handle_msg,2,[]}, {proc_lib,init_p_do_apply,3, [{file,"proc_lib.erl"},{line,239}]}]} Offender: [{pid,<0.4699.5268>}, {name,rabbit_amqqueue}, {mfargs,{rabbit_amqqueue_process,start_link,undefined}}, {restart_type,temporary}, {shutdown,4294967295}, {child_type,worker}] =SUPERVISOR REPORT==== 13-Feb-2014::11:35:08 === Supervisor: {<0.6708.5271>,amqp_channel_sup_sup} Context: shutdown_error Reason: shutdown Offender: [{nb_children,1}, {name,channel_sup}, {mfargs, {amqp_channel_sup,start_link,[direct,<0.7855.5271>]}}, {restart_type,temporary}, {shutdown,brutal_kill}, {child_type,supervisor}] -- Jason McIntosh https://github.com/jasonmcintosh/ 573-424-7612 -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Fri Feb 14 16:23:45 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Fri, 14 Feb 2014 16:23:45 +0000 Subject: [rabbitmq-discuss] Queue failure, potential loss of data. In-Reply-To: References: Message-ID: <52FE4311.5060702@rabbitmq.com> On 14/02/2014 3:43PM, Jason McIntosh wrote: > exception exit: {{badmatch,{error,not_found}}, > [{rabbit_mirror_queue_master,stop_all_slaves,2,[]}, > > {rabbit_mirror_queue_master,delete_and_terminate,2,[]}, > > {rabbit_amqqueue_process,'-terminate_delete/3-fun-1-', > 6,[]}, > {rabbit_amqqueue_process,terminate_shutdown,2,[]}, > {gen_server2,terminate,3,[]}, > {proc_lib,wake_up,3, > [{file,"proc_lib.erl"},{line,249}]}]} Hi Jason. There was a bug where a crashing slave could take out all other slaves and the master with a stacktrace that looks like what you posted. That bug was fixed in 3.2.1. It would be good to see what was in the log of the slave that crashed actually looks like - it might be another bug we have found and fixed since 3.2.0 but it would be good to be sure. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From mcintoshj at gmail.com Fri Feb 14 16:24:14 2014 From: mcintoshj at gmail.com (Jason McIntosh) Date: Fri, 14 Feb 2014 10:24:14 -0600 Subject: [rabbitmq-discuss] Queue failure, potential loss of data. In-Reply-To: References: Message-ID: BTW, here are the sasl logs from another node in the cluster: =CRASH REPORT==== 13-Feb-2014::05:14:36 === crasher: initial call: gen:init_it/6 pid: <0.987.0> registered_name: [] exception exit: {{badmatch,{error,not_found}}, [{rabbit_amqqueue_process,i,2,[]}, {rabbit_amqqueue_process,'-infos/2-lc$^0/1-0-',2,[]}, {rabbit_amqqueue_process,'-infos/2-lc$^0/1-0-',2,[]}, {rabbit_amqqueue_process,emit_stats,2,[]}, {rabbit_event,if_enabled,3,[]}, {rabbit_amqqueue_process,'-terminate_delete/3-fun-1-', 6,[]}, {rabbit_amqqueue_process,terminate_shutdown,2,[]}, {gen_server2,terminate,3,[]}]} in function gen_server2:terminate/3 ancestors: [rabbit_mirror_queue_slave_sup,rabbit_sup,<0.782.0>] messages: [{'$gen_cast', {run_backing_queue,rabbit_variable_queue, #Fun}}, {'EXIT',<0.988.0>,normal}] links: [<0.954.0>] dictionary: [{{credit_from,<0.944.0>},1671}, {{credit_to,<0.24877.6355>},2}, {credit_blocked,[]}, {delegate,delegate_0}, {fhc_age_tree,{0,nil}}, {guid,{{2283490857,778293189,3964001052,3912480778},1}}] trap_exit: true status: running heap_size: 6772 stack_size: 27 reductions: 28827118159 neighbours: =SUPERVISOR REPORT==== 13-Feb-2014::05:14:36 === Supervisor: {local, rabbit_mirror_queue_slave_sup} Context: child_terminated Reason: {{badmatch,{error,not_found}}, [{rabbit_amqqueue_process,i,2,[]}, {rabbit_amqqueue_process,'-infos/2-lc$^0/1-0-',2,[]}, {rabbit_amqqueue_process,'-infos/2-lc$^0/1-0-',2,[]}, {rabbit_amqqueue_process,emit_stats,2,[]}, {rabbit_event,if_enabled,3,[]}, {rabbit_amqqueue_process,'-terminate_delete/3-fun-1-',6,[]}, {rabbit_amqqueue_process,terminate_shutdown,2,[]}, {gen_server2,terminate,3,[]}]} Offender: [{pid,<0.987.0>}, {name,rabbit_mirror_queue_slave}, {mfargs,{rabbit_mirror_queue_slave,start_link,undefined}}, {restart_type,temporary}, {shutdown,4294967295}, {child_type,worker}] On Fri, Feb 14, 2014 at 9:43 AM, Jason McIntosh wrote: > > RabbitMQ 3.2.0 > Erlang R16B02-1 > > We have a queue that basically stopped doing anything intelligent. Here > are the results. What's bad about this - it appears that messages > continued to publish and didn't hit the dead letter exchange - they just > disappeared. In this architecture, we've got a fanout exchange that > publishes to two queues. One of the queues is working fine still. Our > second queue though is what dropped off. Publishing though hasn't failed > so I'm worried we've lost data for the last data. Any input would be > welcome on this. Here's the second queues information from the management > gui: > cluster at rabbitmqm10p DLX DLK D Args Active ? ? ? 0.00/s > > When I try and select the queue, I just get an error message: > TypeError: Cannot read property 'ram_msg_count' of undefined > > Any help/advice here? Is there some way I can change this queue so I do > NOT lose messages and publishes fail?? I thought publisher confirms (need > to verify they're on) would have taken care of this situation - that the > message would have had to have been consumed or persisted to disk for all > queues or publishing would have been rejected. > Jason > > > > =CRASH REPORT==== 13-Feb-2014::05:14:36 === > crasher: > initial call: gen:init_it/6 > pid: <0.367.0> > registered_name: [] > exception exit: {{badmatch,{error,not_found}}, > [{rabbit_mirror_queue_master,stop_all_slaves,2,[]}, > > {rabbit_mirror_queue_master,delete_and_terminate,2,[]}, > > {rabbit_amqqueue_process,'-terminate_delete/3-fun-1-', > 6,[]}, > {rabbit_amqqueue_process,terminate_shutdown,2,[]}, > {gen_server2,terminate,3,[]}, > {proc_lib,wake_up,3, > [{file,"proc_lib.erl"},{line,249}]}]} > in function gen_server2:terminate/3 > ancestors: [rabbit_amqqueue_sup,rabbit_sup,<0.154.0>] > messages: [] > links: [<0.250.0>,#Port<0.17147>] > dictionary: [{{ch,<17654.9226.6150>}, > {cr,<17654.9226.6150>,#Ref<0.0.18055.20563>, > {[],[26925191]}, > 1, > {queue, > [{<17654.9226.6150>, > > {consumer,<<"amq.ctag-LPmzPvp2doZ9pYs-cEEcFg">>, > true,[]}}], > [],1}, > {qstate,<17654.21979.6150>,suspended,{0,nil}}, > 4}}, > {credit_blocked,[]}, > {{ch,<17659.4312.6334>}, > {cr,<17659.4312.6334>,#Ref<0.0.18273.227308>, > {[],[26925208]}, > 1, > {queue, > [{<17659.4312.6334>, > > {consumer,<<"amq.ctag--3Kwc_Q-QS9kcpZ9U--8-Q">>, > true,[]}}], > [],1}, > {qstate,<17659.2894.6334>,suspended,{0,nil}}, > 19}}, > {{ch,<17659.3911.6334>}, > {cr,<17659.3911.6334>,#Ref<0.0.18273.227286>, > {[26925232,26925226],[26925214]}, > 1, > {queue,[],[],0}, > {qstate,<17659.2051.6334>,active,{0,nil}}, > 22}}, > {{#Ref<0.0.0.36427>,fhc_handle}, > {handle, > {file_descriptor,prim_file,{#Port<0.17147>,132}}, > 118224,false,5136,infinity, > [[<<192,0,0,0,1,154,216,155>>], > [<<192,0,0,0,1,154,216,151>>], > [<<192,0,0,0,1,154,216,150>>], > [<<192,0,0,0,1,154,216,149>>], > [<<192,0,0,0,1,154,216,148>>], > [<<192,0,0,0,1,154,216,147>>], > [<<192,0,0,0,1,154,216,146>>], > [<<192,0,0,0,1,154,216,144>>], > [<<192,0,0,0,1,154,216,142>>], > [<<192,0,0,0,1,154,216,143>>], > [<<192,0,0,0,1,154,216,141>>], > [<<192,0,0,0,1,154,216,140>>], > .,... > > > > =SUPERVISOR REPORT==== 13-Feb-2014::05:14:36 === > Supervisor: {local,rabbit_amqqueue_sup} > Context: child_terminated > Reason: {{badmatch,{error,not_found}}, > [{rabbit_mirror_queue_master,stop_all_slaves,2,[]}, > {rabbit_mirror_queue_master,delete_and_terminate,2,[]}, > > {rabbit_amqqueue_process,'-terminate_delete/3-fun-1-',6,[]}, > {rabbit_amqqueue_process,terminate_shutdown,2,[]}, > {gen_server2,terminate,3,[]}, > > {proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,249}]}]} > Offender: [{pid,<0.367.0>}, > {name,rabbit_amqqueue}, > {mfargs,{rabbit_amqqueue_process,start_link,undefined}}, > {restart_type,temporary}, > {shutdown,4294967295}, > {child_type,worker}] > > > =SUPERVISOR REPORT==== 13-Feb-2014::10:59:28 === > Supervisor: {<0.19778.5266>, > amqp_channel_sup_sup} > Context: shutdown_error > Reason: shutdown > Offender: [{nb_children,1}, > {name,channel_sup}, > {mfargs, > > {amqp_channel_sup,start_link,[direct,<0.20460.5266>]}}, > {restart_type,temporary}, > {shutdown,brutal_kill}, > {child_type,supervisor}] > > > =SUPERVISOR REPORT==== 13-Feb-2014::11:02:34 === > Supervisor: {<0.852.5267>,amqp_channel_sup_sup} > Context: shutdown_error > Reason: shutdown > Offender: [{nb_children,1}, > {name,channel_sup}, > {mfargs, > > {amqp_channel_sup,start_link,[direct,<0.2623.5267>]}}, > {restart_type,temporary}, > {shutdown,brutal_kill}, > {child_type,supervisor}] > > > =SUPERVISOR REPORT==== 13-Feb-2014::11:03:24 === > Supervisor: {<0.4628.5267>,amqp_channel_sup_sup} > Context: shutdown_error > Reason: shutdown > Offender: [{nb_children,1}, > {name,channel_sup}, > {mfargs, > > {amqp_channel_sup,start_link,[direct,<0.5878.5267>]}}, > {restart_type,temporary}, > {shutdown,brutal_kill}, > {child_type,supervisor}] > > > =CRASH REPORT==== 13-Feb-2014::11:12:31 === > crasher: > initial call: gen:init_it/6 > pid: <0.4699.5268> > registered_name: [] > exception exit: {{badmatch,true}, > [{rabbit_queue_index,init,2,[]}, > {rabbit_variable_queue,init,5,[]}, > {rabbit_mirror_queue_master,init,3,[]}, > {rabbit_amqqueue_process,declare,3,[]}, > {gen_server2,handle_msg,2,[]}, > {proc_lib,init_p_do_apply,3, > [{file,"proc_lib.erl"},{line,239}]}]} > in function gen_server2:terminate/3 > ancestors: [rabbit_amqqueue_sup,rabbit_sup,<0.154.0>] > messages: [] > links: [<0.250.0>] > dictionary: [{{xtype_to_module,direct},rabbit_exchange_type_direct}] > trap_exit: true > status: running > heap_size: 1598 > stack_size: 27 > reductions: 1156 > neighbours: > > =SUPERVISOR REPORT==== 13-Feb-2014::11:12:31 === > Supervisor: {local,rabbit_amqqueue_sup} > Context: child_terminated > Reason: {{badmatch,true}, > [{rabbit_queue_index,init,2,[]}, > {rabbit_variable_queue,init,5,[]}, > {rabbit_mirror_queue_master,init,3,[]}, > {rabbit_amqqueue_process,declare,3,[]}, > {gen_server2,handle_msg,2,[]}, > {proc_lib,init_p_do_apply,3, > [{file,"proc_lib.erl"},{line,239}]}]} > Offender: [{pid,<0.4699.5268>}, > {name,rabbit_amqqueue}, > {mfargs,{rabbit_amqqueue_process,start_link,undefined}}, > {restart_type,temporary}, > {shutdown,4294967295}, > {child_type,worker}] > > =SUPERVISOR REPORT==== 13-Feb-2014::11:35:08 === > Supervisor: {<0.6708.5271>,amqp_channel_sup_sup} > Context: shutdown_error > Reason: shutdown > Offender: [{nb_children,1}, > {name,channel_sup}, > {mfargs, > > {amqp_channel_sup,start_link,[direct,<0.7855.5271>]}}, > {restart_type,temporary}, > {shutdown,brutal_kill}, > {child_type,supervisor}] > > > -- > Jason McIntosh > https://github.com/jasonmcintosh/ > 573-424-7612 > -- Jason McIntosh https://github.com/jasonmcintosh/ 573-424-7612 -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Fri Feb 14 16:32:47 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Fri, 14 Feb 2014 16:32:47 +0000 Subject: [rabbitmq-discuss] Queue failure, potential loss of data. In-Reply-To: References: Message-ID: <52FE452F.1070308@rabbitmq.com> Were there more than two nodes in the cluster? That looks like another case of a mirror being taken out by collateral damage from the original slave. Cheers, Simon On 14/02/2014 4:24PM, Jason McIntosh wrote: > BTW, here are the sasl logs from another node in the cluster: > > =CRASH REPORT==== 13-Feb-2014::05:14:36 === > crasher: > initial call: gen:init_it/6 > pid: <0.987.0> > registered_name: [] > exception exit: {{badmatch,{error,not_found}}, > [{rabbit_amqqueue_process,i,2,[]}, > {rabbit_amqqueue_process,'-infos/2-lc$^0/1-0-',2,[]}, > {rabbit_amqqueue_process,'-infos/2-lc$^0/1-0-',2,[]}, > {rabbit_amqqueue_process,emit_stats,2,[]}, > {rabbit_event,if_enabled,3,[]}, > > {rabbit_amqqueue_process,'-terminate_delete/3-fun-1-', > 6,[]}, > {rabbit_amqqueue_process,terminate_shutdown,2,[]}, > {gen_server2,terminate,3,[]}]} > in function gen_server2:terminate/3 > ancestors: [rabbit_mirror_queue_slave_sup,rabbit_sup,<0.782.0>] > messages: [{'$gen_cast', > {run_backing_queue,rabbit_variable_queue, > #Fun}}, > {'EXIT',<0.988.0>,normal}] > links: [<0.954.0>] > dictionary: [{{credit_from,<0.944.0>},1671}, > {{credit_to,<0.24877.6355>},2}, > {credit_blocked,[]}, > {delegate,delegate_0}, > {fhc_age_tree,{0,nil}}, > {guid,{{2283490857 > ,778293189,3964001052,3912480778},1}}] > trap_exit: true > status: running > heap_size: 6772 > stack_size: 27 > reductions: 28827118159 > neighbours: > > =SUPERVISOR REPORT==== 13-Feb-2014::05:14:36 === > Supervisor: {local, > rabbit_mirror_queue_slave_sup} > Context: child_terminated > Reason: {{badmatch,{error,not_found}}, > [{rabbit_amqqueue_process,i,2,[]}, > {rabbit_amqqueue_process,'-infos/2-lc$^0/1-0-',2,[]}, > {rabbit_amqqueue_process,'-infos/2-lc$^0/1-0-',2,[]}, > {rabbit_amqqueue_process,emit_stats,2,[]}, > {rabbit_event,if_enabled,3,[]}, > > {rabbit_amqqueue_process,'-terminate_delete/3-fun-1-',6,[]}, > {rabbit_amqqueue_process,terminate_shutdown,2,[]}, > {gen_server2,terminate,3,[]}]} > Offender: [{pid,<0.987.0>}, > {name,rabbit_mirror_queue_slave}, > > {mfargs,{rabbit_mirror_queue_slave,start_link,undefined}}, > {restart_type,temporary}, > {shutdown,4294967295}, > {child_type,worker}] > > > > > > On Fri, Feb 14, 2014 at 9:43 AM, Jason McIntosh > wrote: > > > RabbitMQ 3.2.0 > Erlang R16B02-1 > > We have a queue that basically stopped doing anything intelligent. > Here are the results. What's bad about this - it appears that > messages continued to publish and didn't hit the dead letter > exchange - they just disappeared. In this architecture, we've got a > fanout exchange that publishes to two queues. One of the queues is > working fine still. Our second queue though is what dropped off. > Publishing though hasn't failed so I'm worried we've lost data for > the last data. Any input would be welcome on this. Here's the > second queues information from the management gui: > cluster at rabbitmqm10p DLX DLK D Args Active ? ? ? 0.00/s > > > When I try and select the queue, I just get an error message: > TypeError: Cannot read property 'ram_msg_count' of undefined > > Any help/advice here? Is there some way I can change this queue so > I do NOT lose messages and publishes fail?? I thought publisher > confirms (need to verify they're on) would have taken care of this > situation - that the message would have had to have been consumed or > persisted to disk for all queues or publishing would have been rejected. > Jason > > > > =CRASH REPORT==== 13-Feb-2014::05:14:36 === > crasher: > initial call: gen:init_it/6 > pid: <0.367.0> > registered_name: [] > exception exit: {{badmatch,{error,not_found}}, > > [{rabbit_mirror_queue_master,stop_all_slaves,2,[]}, > > {rabbit_mirror_queue_master,delete_and_terminate,2,[]}, > > {rabbit_amqqueue_process,'-terminate_delete/3-fun-1-', > 6,[]}, > > {rabbit_amqqueue_process,terminate_shutdown,2,[]}, > {gen_server2,terminate,3,[]}, > {proc_lib,wake_up,3, > [{file,"proc_lib.erl"},{line,249}]}]} > in function gen_server2:terminate/3 > ancestors: [rabbit_amqqueue_sup,rabbit_sup,<0.154.0>] > messages: [] > links: [<0.250.0>,#Port<0.17147>] > dictionary: [{{ch,<17654.9226.6150>}, > {cr,<17654.9226.6150>,#Ref<0.0.18055.20563>, > {[],[26925191]}, > 1, > {queue, > [{<17654.9226.6150>, > > {consumer,<<"amq.ctag-LPmzPvp2doZ9pYs-cEEcFg">>, > true,[]}}], > [],1}, > {qstate,<17654.21979.6150>,suspended,{0,nil}}, > 4}}, > {credit_blocked,[]}, > {{ch,<17659.4312.6334>}, > {cr,<17659.4312.6334>,#Ref<0.0.18273.227308>, > {[],[26925208]}, > 1, > {queue, > [{<17659.4312.6334>, > > {consumer,<<"amq.ctag--3Kwc_Q-QS9kcpZ9U--8-Q">>, > true,[]}}], > [],1}, > {qstate,<17659.2894.6334>,suspended,{0,nil}}, > 19}}, > {{ch,<17659.3911.6334>}, > {cr,<17659.3911.6334>,#Ref<0.0.18273.227286>, > {[26925232,26925226],[26925214]}, > 1, > {queue,[],[],0}, > {qstate,<17659.2051.6334>,active,{0,nil}}, > 22}}, > {{#Ref<0.0.0.36427>,fhc_handle}, > {handle, > > {file_descriptor,prim_file,{#Port<0.17147>,132}}, > 118224,false,5136,infinity, > [[<<192,0,0,0,1,154,216,155>>], > [<<192,0,0,0,1,154,216,151>>], > [<<192,0,0,0,1,154,216,150>>], > [<<192,0,0,0,1,154,216,149>>], > [<<192,0,0,0,1,154,216,148>>], > [<<192,0,0,0,1,154,216,147>>], > [<<192,0,0,0,1,154,216,146>>], > [<<192,0,0,0,1,154,216,144>>], > [<<192,0,0,0,1,154,216,142>>], > [<<192,0,0,0,1,154,216,143>>], > [<<192,0,0,0,1,154,216,141>>], > [<<192,0,0,0,1,154,216,140>>], > .,... > > > > =SUPERVISOR REPORT==== 13-Feb-2014::05:14:36 === > Supervisor: {local,rabbit_amqqueue_sup} > Context: child_terminated > Reason: {{badmatch,{error,not_found}}, > [{rabbit_mirror_queue_master,stop_all_slaves,2,[]}, > > {rabbit_mirror_queue_master,delete_and_terminate,2,[]}, > > {rabbit_amqqueue_process,'-terminate_delete/3-fun-1-',6,[]}, > {rabbit_amqqueue_process,terminate_shutdown,2,[]}, > {gen_server2,terminate,3,[]}, > > {proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,249}]}]} > Offender: [{pid,<0.367.0>}, > {name,rabbit_amqqueue}, > > {mfargs,{rabbit_amqqueue_process,start_link,undefined}}, > {restart_type,temporary}, > {shutdown,4294967295}, > {child_type,worker}] > > > =SUPERVISOR REPORT==== 13-Feb-2014::10:59:28 === > Supervisor: {<0.19778.5266>, > amqp_channel_sup_sup} > Context: shutdown_error > Reason: shutdown > Offender: [{nb_children,1}, > {name,channel_sup}, > {mfargs, > > {amqp_channel_sup,start_link,[direct,<0.20460.5266>]}}, > {restart_type,temporary}, > {shutdown,brutal_kill}, > {child_type,supervisor}] > > > =SUPERVISOR REPORT==== 13-Feb-2014::11:02:34 === > Supervisor: {<0.852.5267>,amqp_channel_sup_sup} > Context: shutdown_error > Reason: shutdown > Offender: [{nb_children,1}, > {name,channel_sup}, > {mfargs, > > {amqp_channel_sup,start_link,[direct,<0.2623.5267>]}}, > {restart_type,temporary}, > {shutdown,brutal_kill}, > {child_type,supervisor}] > > > =SUPERVISOR REPORT==== 13-Feb-2014::11:03:24 === > Supervisor: {<0.4628.5267>,amqp_channel_sup_sup} > Context: shutdown_error > Reason: shutdown > Offender: [{nb_children,1}, > {name,channel_sup}, > {mfargs, > > {amqp_channel_sup,start_link,[direct,<0.5878.5267>]}}, > {restart_type,temporary}, > {shutdown,brutal_kill}, > {child_type,supervisor}] > > > =CRASH REPORT==== 13-Feb-2014::11:12:31 === > crasher: > initial call: gen:init_it/6 > pid: <0.4699.5268> > registered_name: [] > exception exit: {{badmatch,true}, > [{rabbit_queue_index,init,2,[]}, > {rabbit_variable_queue,init,5,[]}, > {rabbit_mirror_queue_master,init,3,[]}, > {rabbit_amqqueue_process,declare,3,[]}, > {gen_server2,handle_msg,2,[]}, > {proc_lib,init_p_do_apply,3, > [{file,"proc_lib.erl"},{line,239}]}]} > in function gen_server2:terminate/3 > ancestors: [rabbit_amqqueue_sup,rabbit_sup,<0.154.0>] > messages: [] > links: [<0.250.0>] > dictionary: > [{{xtype_to_module,direct},rabbit_exchange_type_direct}] > trap_exit: true > status: running > heap_size: 1598 > stack_size: 27 > reductions: 1156 > neighbours: > > =SUPERVISOR REPORT==== 13-Feb-2014::11:12:31 === > Supervisor: {local,rabbit_amqqueue_sup} > Context: child_terminated > Reason: {{badmatch,true}, > [{rabbit_queue_index,init,2,[]}, > {rabbit_variable_queue,init,5,[]}, > {rabbit_mirror_queue_master,init,3,[]}, > {rabbit_amqqueue_process,declare,3,[]}, > {gen_server2,handle_msg,2,[]}, > {proc_lib,init_p_do_apply,3, > [{file,"proc_lib.erl"},{line,239}]}]} > Offender: [{pid,<0.4699.5268>}, > {name,rabbit_amqqueue}, > > {mfargs,{rabbit_amqqueue_process,start_link,undefined}}, > {restart_type,temporary}, > {shutdown,4294967295}, > {child_type,worker}] > > =SUPERVISOR REPORT==== 13-Feb-2014::11:35:08 === > Supervisor: {<0.6708.5271>,amqp_channel_sup_sup} > Context: shutdown_error > Reason: shutdown > Offender: [{nb_children,1}, > {name,channel_sup}, > {mfargs, > > {amqp_channel_sup,start_link,[direct,<0.7855.5271>]}}, > {restart_type,temporary}, > {shutdown,brutal_kill}, > {child_type,supervisor}] > > > -- > Jason McIntosh > https://github.com/jasonmcintosh/ > 573-424-7612 > > > > > -- > Jason McIntosh > https://github.com/jasonmcintosh/ > 573-424-7612 > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -- Simon MacMullen RabbitMQ, Pivotal From alan.antonuk at gmail.com Fri Feb 14 16:53:41 2014 From: alan.antonuk at gmail.com (Alan Antonuk) Date: Fri, 14 Feb 2014 08:53:41 -0800 Subject: [rabbitmq-discuss] [rabbitmq-c-master] memory leakinkg while reconnect. In-Reply-To: <27E054594442884E9A46DBCF9AE7408164FD75@BSDMSATMBX001.mahindrasatyam.ad> References: <27E054594442884E9A46DBCF9AE7408164FD75@BSDMSATMBX001.mahindrasatyam.ad> Message-ID: Rohit; On Fri, Feb 14, 2014 at 6:15 AM, Rohit Patle wrote: > Hi Alan, > > Thank you for your suggestions. > > As guided I run my simulation code in for() loop of 5 iterations. > > A. Here in case of Valgrind I could not called amqp_destroy_connection() > API after getting "opening SSL/TLS connection ERROR" because as network > cable is plugged out It will produce the seg fault. I could see the memory > leak there in this case. > The leaks we see here are consistent with not calling amqp_destroy_connection() on each amqp_connection_state_t object that is created. > > B. In other case when I am trying to do amqp_destroy_connection() after > getting "opening SSL/TLS connection ERROR". In this I am getting Seg fault > as expected. I trace out the execution through GDB here is the bt you asked > for. > It looks like it might be a double-free of some SSL structure, I did have an issue with that pre v0.4.0 (see: https://github.com/alanxz/rabbitmq-c/issues/129). What string is returned from the amqp_version() function? What version of OpenSSL are you compiling against? -Alan -------------- next part -------------- An HTML attachment was scrubbed... URL: From ambatinr at hotmail.com Fri Feb 14 17:52:21 2014 From: ambatinr at hotmail.com (anate) Date: Fri, 14 Feb 2014 09:52:21 -0800 (PST) Subject: [rabbitmq-discuss] Install php-amqplib client on windows In-Reply-To: References: <1392346208811-33349.post@n5.nabble.com> <12DBFB27-444C-42FE-9716-EBC884167D07@rabbitmq.com> Message-ID: <1392400341632-33366.post@n5.nabble.com> Here is the error message. [Composer\Downloader\TransportException] The "https://api.github.com/repos/symfony/Yaml/zipball/bbxxxxx" file could not be downloaded: SSL: An exstablished connection was aborted by the software in your host machine" failed to open stream: HTTP request failed! I right clicked composer.JSON file and selected 'Composer Install' option. Please let me know. Here is composer.JSON file. { "name": "videlalvaro/php-amqplib", "type": "library", "description": "This library is a pure PHP implementation of the AMQP protocol. It's been tested against RabbitMQ.", "keywords": ["rabbitmq", "message", "queue"], "homepage": "https://github.com/videlalvaro/php-amqplib/", "authors": [ { "name" : "Alvaro Videla" } ], "require": { "php": ">=5.3.0", "ext-bcmath": "*" }, "require-dev": { "phpunit/phpunit": "3.7.*" }, "autoload": { "psr-0": {"PhpAmqpLib": ""} }, "license": "LGPL-2.1" } -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Install-php-amqplib-client-on-windows-tp33349p33366.html Sent from the RabbitMQ mailing list archive at Nabble.com. From videlalvaro at gmail.com Fri Feb 14 18:02:43 2014 From: videlalvaro at gmail.com (Alvaro Videla) Date: Fri, 14 Feb 2014 19:02:43 +0100 Subject: [rabbitmq-discuss] Install php-amqplib client on windows In-Reply-To: <1392400341632-33366.post@n5.nabble.com> References: <1392346208811-33349.post@n5.nabble.com> <12DBFB27-444C-42FE-9716-EBC884167D07@rabbitmq.com> <1392400341632-33366.post@n5.nabble.com> Message-ID: Hi, Some people are suggesting that you might have firewall issues: https://twitter.com/old_sound/status/434385978942566400 I'd recommend you ask about this on the #composer IRC channel on freenode. Regards, Alvaro On Fri, Feb 14, 2014 at 6:52 PM, anate wrote: > Here is the error message. > > [Composer\Downloader\TransportException] > The "https://api.github.com/repos/symfony/Yaml/zipball/bbxxxxx" > file could not be downloaded: SSL: An exstablished connection was aborted by > the software in your host machine" > > failed to open stream: HTTP request failed! > > I right clicked composer.JSON file and selected 'Composer Install' option. > Please let me know. > > Here is composer.JSON file. > > { > "name": "videlalvaro/php-amqplib", > "type": "library", > "description": "This library is a pure PHP implementation of the AMQP > protocol. It's been tested against RabbitMQ.", > "keywords": ["rabbitmq", "message", "queue"], > "homepage": "https://github.com/videlalvaro/php-amqplib/", > "authors": [ > { > "name" : "Alvaro Videla" > } > ], > "require": { > "php": ">=5.3.0", > "ext-bcmath": "*" > }, > "require-dev": { > "phpunit/phpunit": "3.7.*" > }, > "autoload": { > "psr-0": {"PhpAmqpLib": ""} > }, > "license": "LGPL-2.1" > } > > > > -- > View this message in context: http://rabbitmq.1065348.n5.nabble.com/Install-php-amqplib-client-on-windows-tp33349p33366.html > Sent from the RabbitMQ mailing list archive at Nabble.com. > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss From ambatinr at hotmail.com Fri Feb 14 18:26:43 2014 From: ambatinr at hotmail.com (anate) Date: Fri, 14 Feb 2014 10:26:43 -0800 (PST) Subject: [rabbitmq-discuss] Install php-amqplib client on windows In-Reply-To: References: <1392346208811-33349.post@n5.nabble.com> <12DBFB27-444C-42FE-9716-EBC884167D07@rabbitmq.com> <1392400341632-33366.post@n5.nabble.com> Message-ID: <1392402403357-33368.post@n5.nabble.com> Is it possible to download the php-amqplib library and configure it on my machine? Could you please let me know if there are any alternative solutions to publish the data to RabbitMQ? -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Install-php-amqplib-client-on-windows-tp33349p33368.html Sent from the RabbitMQ mailing list archive at Nabble.com. From arunrao.seattle at gmail.com Fri Feb 14 20:06:18 2014 From: arunrao.seattle at gmail.com (Arun Rao) Date: Fri, 14 Feb 2014 12:06:18 -0800 Subject: [rabbitmq-discuss] Clustering setup - Inputs In-Reply-To: <52FD09F9.9020109@rabbitmq.com> References: <52FCE4EC.2030504@rabbitmq.com> <52FD09F9.9020109@rabbitmq.com> Message-ID: Hi Simon - That was a wealth of information. I was trying to add this to one of your blogs which would benefit all the readers but I couldnt find a relevant topic. I will see where I can publish this information so it will be useful for everyone. Regarding this discussion - > setting basic.qos (which causes message delivery [queue] -> [consuming channel] to be synchronous inside the cluster). what if the RabbitMQ client defines the channel as used only for Consuming or Publishing or both publishing and consuming. I do not know if there is a provision in AMQP or RabbitMQ can customize that. When a channel from a (RabbitMQ client) consumer is defined as consumer only, then there is no effect of this channel (connected from RabbitMQ client to slave node queue), because replicated queues can only be consumed from Master node. Will this provide async consumer replication? Thanks! On Thu, Feb 13, 2014 at 10:07 AM, Simon MacMullen wrote: > On 13/02/2014 17:07, Arun Rao wrote: > >> Thank you so much, Simon, as always! >> >> I learnt from the documentation that queues are single threaded >> resource. What does this mean to delivering and acknowledging messages? >> If prefetch_count=10. >> > > Queues are single processes, but they don't get involved with any of the > work of communicating AMQP, they just accept and dole out messages to > channel processes (possibly not on the same node) which do that. > > > Cross cluster traffic are they asynchronous? >> > > The general pattern is: if something is asynchronous in AMQP, then any > cross-cluster traffic associated with it is also asynchronous. So > publishing a messsage across a cluster is asynchronous, but starting a > consumer up with basic.consume is not. > > However, there are a couple of exceptions to that: publishing with > mandatory=true (which is synchronous for [publishing channel] -> [queue] > inside the cluster) and setting basic.qos (which causes message delivery > [queue] -> [consuming channel] to be synchronous inside the cluster). > > So both of these can have nasty performance in clusters. > > With regard to mandatory publishing, it's just that way for historical > reasons, and it will become async in 3.3.0 anyway. > > With regard to delivery when basic.qos is set, this is a painful one. As I > said in the previous mail, turning on basic.qos means that the prefetch > count is associated with the channel and hence could be shared between > multiple queues. That means that each queue needs to synchronously check > with the channel each time it wants to deliver a message, to see if some > other queue has used up the prefetch count. It can't just keep a counter. > > We're exploring ways to improve this situation in 3.3.x; one option which > we already have working is to provide a per-consumer prefetch option > separate from basic.qos; another is to optimise the common case when > basic.qos is used with a single consumer (although the transitions are a > bit painful there). > > Cheers, Simon > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From videlalvaro at gmail.com Fri Feb 14 20:32:55 2014 From: videlalvaro at gmail.com (Alvaro Videla) Date: Fri, 14 Feb 2014 21:32:55 +0100 Subject: [rabbitmq-discuss] Install php-amqplib client on windows In-Reply-To: <1392402403357-33368.post@n5.nabble.com> References: <1392346208811-33349.post@n5.nabble.com> <12DBFB27-444C-42FE-9716-EBC884167D07@rabbitmq.com> <1392400341632-33366.post@n5.nabble.com> <1392402403357-33368.post@n5.nabble.com> Message-ID: Hi, It's possible to do that. You just need to download the dependencies inside the vendors folder and then create the proper autoload. Did you had any luck debugging the issues with the SSL connection? You could also try to just git clone that dependency. About other options for windows, I don't know. There's a PECL extension, but I don't have experience with it. Googling for your error yields this: http://superuser.com/questions/630017/error-10053-using-composer which in turn leads to this: http://support.microsoft.com/kb/204594 and the same error can be seen here: http://stackoverflow.com/questions/10757363/an-established-connection-was-aborted-by-the-software-in-your-host-machine-vs-d where it seems to be a firewall issue. Regards, Alvaro On Fri, Feb 14, 2014 at 7:26 PM, anate wrote: > Is it possible to download the php-amqplib library and configure it on my > machine? Could you please let me know if there are any alternative solutions > to publish the data to RabbitMQ? > > > > -- > View this message in context: http://rabbitmq.1065348.n5.nabble.com/Install-php-amqplib-client-on-windows-tp33349p33368.html > Sent from the RabbitMQ mailing list archive at Nabble.com. > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss From cwstorm at gmail.com Fri Feb 14 20:50:14 2014 From: cwstorm at gmail.com (cw storm) Date: Fri, 14 Feb 2014 15:50:14 -0500 Subject: [rabbitmq-discuss] ShutdownListener Message-ID: I issue a "sudo service rabbitmq-server restart" on the rabbit server. I was hoping it'll execute my "ShutdownListener" block but I don't think it. Just need confirmation if the restart will invoke the "ShutdownListener" or not. If not, which function do I need to use to listen for when the rabbit server restart. conn.addShutdownListener(new ShutdownListener() { public void shutdownCompleted(ShutdownSignalException cause) { // handle scenarios } -------------- next part -------------- An HTML attachment was scrubbed... URL: From ambatinr at hotmail.com Fri Feb 14 21:05:51 2014 From: ambatinr at hotmail.com (anate) Date: Fri, 14 Feb 2014 13:05:51 -0800 (PST) Subject: [rabbitmq-discuss] Install php-amqplib client on windows In-Reply-To: References: <1392346208811-33349.post@n5.nabble.com> <12DBFB27-444C-42FE-9716-EBC884167D07@rabbitmq.com> <1392400341632-33366.post@n5.nabble.com> <1392402403357-33368.post@n5.nabble.com> Message-ID: <1392411951283-33372.post@n5.nabble.com> Thanks for your patience. I downloaded .ZIP file from this site to local folder. https://github.com/videlalvaro/php-amqplib/ How to configure autoload? Could you please let me know. Thanks again. -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Install-php-amqplib-client-on-windows-tp33349p33372.html Sent from the RabbitMQ mailing list archive at Nabble.com. From mklishin at gopivotal.com Fri Feb 14 21:11:45 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Sat, 15 Feb 2014 01:11:45 +0400 Subject: [rabbitmq-discuss] ShutdownListener In-Reply-To: References: Message-ID: On 15 Feb 2014, at 00:50, cw storm wrote: > Just need confirmation if the restart will invoke the "ShutdownListener" or not. RabbitMQ will send connection.close with reason = ?Shutdown?, which will trigger a shutdown in the Java client. MK Software Engineer, Pivotal/RabbitMQ From arunrao.seattle at gmail.com Fri Feb 14 21:19:11 2014 From: arunrao.seattle at gmail.com (Arun Rao) Date: Fri, 14 Feb 2014 13:19:11 -0800 Subject: [rabbitmq-discuss] ShutdownListener In-Reply-To: References: Message-ID: Hi Michael - What if you used a TCP loadbalancer and the client cannot talk to a RabbitMQ node? Simply, if the RabbitMQ server crashed, does the Java client code itself catch reason="shutdown" Thanks! On Fri, Feb 14, 2014 at 1:11 PM, Michael Klishin wrote: > > On 15 Feb 2014, at 00:50, cw storm wrote: > > > Just need confirmation if the restart will invoke the "ShutdownListener" > or not. > > RabbitMQ will send connection.close with reason = "Shutdown", which will > trigger a shutdown > in the Java client. > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Fri Feb 14 21:23:47 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Sat, 15 Feb 2014 01:23:47 +0400 Subject: [rabbitmq-discuss] ShutdownListener In-Reply-To: References: Message-ID: <4E37385A-C5B5-4E9B-BCFC-389CEA0E09AE@rabbitmq.com> On 15 Feb 2014, at 01:19, Arun Rao wrote: > What if you used a TCP loadbalancer and the client cannot talk to a RabbitMQ node? Simply, if the RabbitMQ server crashed, does the Java client code itself catch reason=?shutdown" Please read http://www.rabbitmq.com/api-guide.html#shutdown. It says: The AMQP connection and channel share the same general approach to managing network failure, internal failure, and explicit local shutdown. ? Those objects always end up in the closed state, regardless of the reason that casued the closure, like an application request, an internal client library failure, a remote network request or network failure. Connection termination will trigger a shutdown regardless of the reason, whether RabbitMQ had a chance to send clients connection.close or the OS detected a socket operation error. MK Software Engineer, Pivotal/RabbitMQ From cwstorm at gmail.com Fri Feb 14 21:24:56 2014 From: cwstorm at gmail.com (cw storm) Date: Fri, 14 Feb 2014 16:24:56 -0500 Subject: [rabbitmq-discuss] ShutdownListener In-Reply-To: References: Message-ID: "will trigger a shutdown in the Java client." Are you referring to the "ShutDownSignalException" block? On Fri, Feb 14, 2014 at 4:19 PM, Arun Rao wrote: > Hi Michael - > > What if you used a TCP loadbalancer and the client cannot talk to a > RabbitMQ node? Simply, if the RabbitMQ server crashed, does the Java client > code itself catch reason="shutdown" > > Thanks! > > > On Fri, Feb 14, 2014 at 1:11 PM, Michael Klishin wrote: > >> >> On 15 Feb 2014, at 00:50, cw storm wrote: >> >> > Just need confirmation if the restart will invoke the >> "ShutdownListener" or not. >> >> RabbitMQ will send connection.close with reason = "Shutdown", which will >> trigger a shutdown >> in the Java client. >> >> MK >> >> Software Engineer, Pivotal/RabbitMQ >> >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Fri Feb 14 21:28:32 2014 From: cwstorm at gmail.com (cw storm) Date: Fri, 14 Feb 2014 16:28:32 -0500 Subject: [rabbitmq-discuss] ShutdownListener In-Reply-To: References: Message-ID: I'm trying to handle this via code so that the client will establish a channel/connection when the rabbit server comes back online to resume consumption of the messages on the queue. On Fri, Feb 14, 2014 at 4:24 PM, cw storm wrote: > "will trigger a shutdown in the Java client." > > Are you referring to the "ShutDownSignalException" block? > > > On Fri, Feb 14, 2014 at 4:19 PM, Arun Rao wrote: > >> Hi Michael - >> >> What if you used a TCP loadbalancer and the client cannot talk to a >> RabbitMQ node? Simply, if the RabbitMQ server crashed, does the Java client >> code itself catch reason="shutdown" >> >> Thanks! >> >> >> On Fri, Feb 14, 2014 at 1:11 PM, Michael Klishin wrote: >> >>> >>> On 15 Feb 2014, at 00:50, cw storm wrote: >>> >>> > Just need confirmation if the restart will invoke the >>> "ShutdownListener" or not. >>> >>> RabbitMQ will send connection.close with reason = "Shutdown", which will >>> trigger a shutdown >>> in the Java client. >>> >>> MK >>> >>> Software Engineer, Pivotal/RabbitMQ >>> >>> >>> _______________________________________________ >>> rabbitmq-discuss mailing list >>> rabbitmq-discuss at lists.rabbitmq.com >>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >>> >> >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Fri Feb 14 21:28:46 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Sat, 15 Feb 2014 01:28:46 +0400 Subject: [rabbitmq-discuss] ShutdownListener In-Reply-To: References: Message-ID: <79D72F24-3BA4-4D65-88A0-DEAC9294B8F8@rabbitmq.com> On 15 Feb 2014, at 01:24, cw storm wrote: > "will trigger a shutdown in the Java client." > > Are you referring to the "ShutDownSignalException" block? The process described in http://www.rabbitmq.com/api-guide.html#shutdown, which will call shutdown listeners for connections, channels and consumers that have them. MK Software Engineer, Pivotal/RabbitMQ From cwstorm at gmail.com Fri Feb 14 21:38:03 2014 From: cwstorm at gmail.com (cw storm) Date: Fri, 14 Feb 2014 16:38:03 -0500 Subject: [rabbitmq-discuss] ShutdownListener In-Reply-To: <79D72F24-3BA4-4D65-88A0-DEAC9294B8F8@rabbitmq.com> References: <79D72F24-3BA4-4D65-88A0-DEAC9294B8F8@rabbitmq.com> Message-ID: Thanks for the confirmation. So you mean I need to implement the below like this in my consumer: channel.basicConsume(strQueueName, false, strConsumerTag, new DefaultConsumer(channel) { public void shutdownCompleted(ShutdownSignalException cause) { // handle scenarios } On Fri, Feb 14, 2014 at 4:28 PM, Michael Klishin wrote: > > On 15 Feb 2014, at 01:24, cw storm wrote: > > > "will trigger a shutdown in the Java client." > > > > Are you referring to the "ShutDownSignalException" block? > > The process described in http://www.rabbitmq.com/api-guide.html#shutdown, > which will call shutdown listeners for connections, channels and consumers > that > have them. > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Fri Feb 14 21:40:01 2014 From: cwstorm at gmail.com (cw storm) Date: Fri, 14 Feb 2014 16:40:01 -0500 Subject: [rabbitmq-discuss] ShutdownListener In-Reply-To: References: <79D72F24-3BA4-4D65-88A0-DEAC9294B8F8@rabbitmq.com> Message-ID: Actually, it should be "*handleShutdownSignal" not "ShutDownCompleted"* On Fri, Feb 14, 2014 at 4:38 PM, cw storm wrote: > Thanks for the confirmation. So you mean I need to implement the below > like this in my consumer: > > channel.basicConsume(strQueueName, false, strConsumerTag, > new DefaultConsumer(channel) { > public void > shutdownCompleted(ShutdownSignalException cause) > { > // handle scenarios > > } > > > On Fri, Feb 14, 2014 at 4:28 PM, Michael Klishin wrote: > >> >> On 15 Feb 2014, at 01:24, cw storm wrote: >> >> > "will trigger a shutdown in the Java client." >> > >> > Are you referring to the "ShutDownSignalException" block? >> >> The process described in http://www.rabbitmq.com/api-guide.html#shutdown, >> which will call shutdown listeners for connections, channels and >> consumers that >> have them. >> >> MK >> >> Software Engineer, Pivotal/RabbitMQ >> >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Fri Feb 14 22:06:39 2014 From: cwstorm at gmail.com (cw storm) Date: Fri, 14 Feb 2014 17:06:39 -0500 Subject: [rabbitmq-discuss] ShutdownListener In-Reply-To: References: <79D72F24-3BA4-4D65-88A0-DEAC9294B8F8@rabbitmq.com> Message-ID: Does anyone have a good practice to manage subscription to a queue in the event the rabbit server was restarted? On Fri, Feb 14, 2014 at 4:40 PM, cw storm wrote: > Actually, it should be "*handleShutdownSignal" not "ShutDownCompleted"* > > > On Fri, Feb 14, 2014 at 4:38 PM, cw storm wrote: > >> Thanks for the confirmation. So you mean I need to implement the below >> like this in my consumer: >> >> channel.basicConsume(strQueueName, false, strConsumerTag, >> new DefaultConsumer(channel) { >> public void >> shutdownCompleted(ShutdownSignalException cause) >> { >> // handle scenarios >> >> } >> >> >> On Fri, Feb 14, 2014 at 4:28 PM, Michael Klishin wrote: >> >>> >>> On 15 Feb 2014, at 01:24, cw storm wrote: >>> >>> > "will trigger a shutdown in the Java client." >>> > >>> > Are you referring to the "ShutDownSignalException" block? >>> >>> The process described in http://www.rabbitmq.com/api-guide.html#shutdown >>> , >>> which will call shutdown listeners for connections, channels and >>> consumers that >>> have them. >>> >>> MK >>> >>> Software Engineer, Pivotal/RabbitMQ >>> >>> >>> _______________________________________________ >>> rabbitmq-discuss mailing list >>> rabbitmq-discuss at lists.rabbitmq.com >>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >>> >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Fri Feb 14 22:09:57 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Sat, 15 Feb 2014 02:09:57 +0400 Subject: [rabbitmq-discuss] ShutdownListener In-Reply-To: References: <79D72F24-3BA4-4D65-88A0-DEAC9294B8F8@rabbitmq.com> Message-ID: 2014-02-15 2:06 GMT+04:00 cw storm : > Does anyone have a good practice to manage subscription to a queue in the > event the rabbit server was restarted? See branch bug14587 in rabbitmq-java-client. It is briefly outlined in http://clojurerabbitmq.info/articles/error_handling.html. This exact strategy works well in 5 clients in 3 different languages to date. -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Fri Feb 14 22:17:56 2014 From: cwstorm at gmail.com (cw storm) Date: Fri, 14 Feb 2014 17:17:56 -0500 Subject: [rabbitmq-discuss] ShutdownListener In-Reply-To: References: <79D72F24-3BA4-4D65-88A0-DEAC9294B8F8@rabbitmq.com> Message-ID: MK, Please forgive me but not sure how I would implement what you provided, http://clojurerabbitmq.info/articles/error_handling.html. I was hoping I could use the handleShutdownSignal handler to invoke a service I have to re-execute the register service. On Fri, Feb 14, 2014 at 5:09 PM, Michael Klishin < michael.s.klishin at gmail.com> wrote: > > 2014-02-15 2:06 GMT+04:00 cw storm : > > Does anyone have a good practice to manage subscription to a queue in the >> event the rabbit server was restarted? > > > See branch bug14587 in rabbitmq-java-client. > > It is briefly outlined in > http://clojurerabbitmq.info/articles/error_handling.html. > This exact strategy works well in 5 clients in 3 different languages to > date. > -- > MK > > http://github.com/michaelklishin > http://twitter.com/michaelklishin > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Fri Feb 14 22:39:16 2014 From: cwstorm at gmail.com (cw storm) Date: Fri, 14 Feb 2014 17:39:16 -0500 Subject: [rabbitmq-discuss] ShutdownListener In-Reply-To: References: <79D72F24-3BA4-4D65-88A0-DEAC9294B8F8@rabbitmq.com> Message-ID: My silly mistake. It did execute the handleShutDownSignal consumer callback. It was my code that had an error. Sorry for any confusion. Thanks MK for your excellent responses. That goes for the community as well. On Fri, Feb 14, 2014 at 5:17 PM, cw storm wrote: > MK, > > Please forgive me but not sure how I would implement what you provided, > http://clojurerabbitmq.info/articles/error_handling.html. > > I was hoping I could use the handleShutdownSignal handler to invoke a > service I have to re-execute the register service. > > > On Fri, Feb 14, 2014 at 5:09 PM, Michael Klishin < > michael.s.klishin at gmail.com> wrote: > >> >> 2014-02-15 2:06 GMT+04:00 cw storm : >> >> Does anyone have a good practice to manage subscription to a queue in the >>> event the rabbit server was restarted? >> >> >> See branch bug14587 in rabbitmq-java-client. >> >> It is briefly outlined in >> http://clojurerabbitmq.info/articles/error_handling.html. >> This exact strategy works well in 5 clients in 3 different languages to >> date. >> -- >> MK >> >> http://github.com/michaelklishin >> http://twitter.com/michaelklishin >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From Punit.Jain at emc.com Sat Feb 15 15:27:35 2014 From: Punit.Jain at emc.com (Jain, Punit) Date: Sat, 15 Feb 2014 10:27:35 -0500 Subject: [rabbitmq-discuss] Stopping rabbitmq-server: FAILED Message-ID: Hi All, I am using RabbitMQ version 3.1.3 on SuSE. I got following error while trying to stop rabbitmq-server: Stopping rabbitmq-server: FAILED - check /var/log/rabbitmq/shutdown_log, _err /var/log/rabbitmq/shutdown_err: Error: {'EXIT',{error,{could_not_read_pid,{error,enoent}}}} What could be the reason for this? Thanks, Punit -------------- next part -------------- An HTML attachment was scrubbed... URL: From crohling88 at gmail.com Sat Feb 15 22:37:22 2014 From: crohling88 at gmail.com (Christian Rohling) Date: Sat, 15 Feb 2014 17:37:22 -0500 Subject: [rabbitmq-discuss] Stopping rabbitmq-server: FAILED In-Reply-To: References: Message-ID: I think the most likely cause of this is not having permissions for the rabbitmq process in the directory it wants to read/write it's PID to. -Christian On Sat, Feb 15, 2014 at 10:27 AM, Jain, Punit wrote: > Hi All, > > I am using RabbitMQ version 3.1.3 on SuSE. I got following error while > trying to stop rabbitmq-server: > > Stopping rabbitmq-server: FAILED - check /var/log/rabbitmq/shutdown_log, > _err > > > > /var/log/rabbitmq/shutdown_err: > > Error: {'EXIT',{error,{could_not_read_pid,{error,enoent}}}} > > > > What could be the reason for this? > > > > Thanks, > > Punit > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Sun Feb 16 05:09:14 2014 From: cwstorm at gmail.com (cw storm) Date: Sun, 16 Feb 2014 00:09:14 -0500 Subject: [rabbitmq-discuss] Advice on where to reset connection and channel Message-ID: I'm interested in knowing how everyone uses the connection listener "ShutDownListener" and the consumer callback "handleShutDownSignal". Both of these will be executed in an event a connection was close or a restart of the broker server. I don't think I would want to include the function to re-establish the connection/channel in both of the handlers. So, where would I perform the re-connect logic. Maybe I should just pick one. Also, another consumer callback name "handleCancel". This will only be invoke when an unexpected cancellation by the broker. That would also mean I would have to reconsume from the other node by creating another connection/channel. I assume this does not get invoke during a restart of the broker or a force close connection. That would only apply to the two that I mentioned, right? -Phil -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Sun Feb 16 06:44:43 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Sun, 16 Feb 2014 10:44:43 +0400 Subject: [rabbitmq-discuss] Advice on where to reset connection and channel In-Reply-To: References: Message-ID: On 16 Feb 2014, at 09:09, cw storm wrote: > I don't think I would want to include the function to re-establish the connection/channel in both of the handlers. So, where would I perform the re-connect logic. Maybe I should just pick one. JVM language clients that support reconnection, including RabbitMQ Java client itself on branch bug14587, have a wrapper connection that delegates everything to the underlying connection (so, implements com.rabbitmq.client.Connection) and adds a shutdown listener that performs recovery: * Reconnects (creates a new delegate connection) * Reopens all channels (there is a wrapper Channel as well), including various listeners * Recovers queues, exchange, bindings, and consumers (in this order) > Also, another consumer callback name "handleCancel". This will only be invoke when an unexpected cancellation by the broker. That would also mean I would have to reconsume from the other node by creating another connection/channel. I assume this does not get invoke during a restart of the broker or a force close connection. That would only apply to the two that I mentioned, right? Not ?unexpected cancellation? but when the queue is deleted. MK Software Engineer, Pivotal/RabbitMQ From cwstorm at gmail.com Sun Feb 16 15:50:18 2014 From: cwstorm at gmail.com (cw storm) Date: Sun, 16 Feb 2014 10:50:18 -0500 Subject: [rabbitmq-discuss] Advice on where to reset connection and channel In-Reply-To: References: Message-ID: MK, I'm not sure if I understand you correctly. I know I would have to write the logic to reconnect either in the shutdown listener or the consumer callback "handleShutDownSignal" but not both. If I do but, there's a potential I could have multiple consumer subscription on different channel. I was asking which where is the best place to put the reconnect logic, connection shutdown listener or the consumer callback "handleShutDownSignal". On Sun, Feb 16, 2014 at 1:44 AM, Michael Klishin wrote: > > On 16 Feb 2014, at 09:09, cw storm wrote: > > > I don't think I would want to include the function to re-establish the > connection/channel in both of the handlers. So, where would I perform the > re-connect logic. Maybe I should just pick one. > > JVM language clients that support reconnection, including RabbitMQ Java > client itself on branch bug14587, have a wrapper connection that > delegates everything to the underlying connection (so, implements > com.rabbitmq.client.Connection) and adds a shutdown listener > that performs recovery: > > * Reconnects (creates a new delegate connection) > * Reopens all channels (there is a wrapper Channel as well), including > various listeners > * Recovers queues, exchange, bindings, and consumers (in this order) > > > Also, another consumer callback name "handleCancel". This will only be > invoke when an unexpected cancellation by the broker. That would also mean > I would have to reconsume from the other node by creating another > connection/channel. I assume this does not get invoke during a restart of > the broker or a force close connection. That would only apply to the two > that I mentioned, right? > > Not "unexpected cancellation" but when the queue is deleted. > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Sun Feb 16 16:18:12 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Sun, 16 Feb 2014 20:18:12 +0400 Subject: [rabbitmq-discuss] Advice on where to reset connection and channel In-Reply-To: References: Message-ID: 2014-02-16 cw storm : > I was asking which where is the best place to put the reconnect logic, > connection shutdown listener or the consumer callback > "handleShutDownSignal". Connection's shutdown listener. See https://github.com/rabbitmq/rabbitmq-java-client/blob/bug14587/src/com/rabbitmq/client/impl/recovery/AutorecoveringConnection.java#L336 -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From matwey.kornilov at gmail.com Sun Feb 16 18:08:59 2014 From: matwey.kornilov at gmail.com (Matwey V. Kornilov) Date: Sun, 16 Feb 2014 22:08:59 +0400 Subject: [rabbitmq-discuss] amqp_connection:open_channel link channel Message-ID: Hi, Is it a good practice to link the channel to the process going to consume the messages? I do want to close the channel when my consumer crashed, and let the broker to redeliver unacked message. {ok, Channel} = amqp_connection:open_channel(Connection), link(Channel), Why there is no open_channel_link counterpart, as start and start_link? This is for case when channel goes down between open_channel and link. From greg.poirier at opower.com Sun Feb 16 18:26:59 2014 From: greg.poirier at opower.com (Greg Poirier) Date: Sun, 16 Feb 2014 10:26:59 -0800 Subject: [rabbitmq-discuss] Management API hangs after upgrade from 3.1.5 to 3.2.3 Message-ID: This weekend, I upgraded one of our RabbitMQ clusters from 3.1.5 to 3.2.3. After the upgrade, the management API has become somewhat unstable. Somewhere around 20% of the time, requests to the API stall. For example, a simple curl of the aliveness test endopint stalls after the GET request is sent (as seen via tcpdump). The management plugin simply never responds. This is causing our basic aliveness and partition checks to fail on this cluster pretty regularly. -------------- next part -------------- An HTML attachment was scrubbed... URL: From greg.poirier at opower.com Sun Feb 16 18:32:48 2014 From: greg.poirier at opower.com (Greg Poirier) Date: Sun, 16 Feb 2014 10:32:48 -0800 Subject: [rabbitmq-discuss] How to handle extremely large queues Message-ID: We have some scenarios where queues in RabbitMQ can grow to become extremely large... e.g. we currently have multiple queues in one cluster with more than 1 million messages each (currently 7.5 million messages total on this cluster). In our current configuration, we have a 3-node cluster with 2 disc and 1 ram node with HA mirroring to all nodes in the cluster. In periods of high utilization of the cluster, we are noticing frequent partitioning. We have narrowed it down to this particular use case as none of our other clusters (running on the same physical hardware with the same cluster configuration) experience this kind of partitioning. Is there some better way that we can configure RabbitMQ to handle this kind of load pattern? I understand this is perhaps not the best way to use RabbitMQ, but it is unavoidable for the time being. Any suggestions would be appreciated. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jonathan.s.oliver42 at gmail.com Sun Feb 16 18:33:13 2014 From: jonathan.s.oliver42 at gmail.com (Jonathan Oliver) Date: Sun, 16 Feb 2014 10:33:13 -0800 (PST) Subject: [rabbitmq-discuss] RabbitMQ .NET Client Can Hang with SSL Connections Message-ID: <7419510d-2658-46b0-9015-952ae8dafa2f@googlegroups.com> During periods of degraded WAN performance and availability, e.g. lost packets, increased latency, etc. the .NET RabbitMQ connection is destroyed according to the requested heartbeat and works as intended. Our client is observes this and then attempts to reconnect periodically until a connection is re-established with the broker. We've noticed however, that sometimes these reconnection attempts hang *indefinitely/forever* despite a configured RequestedConnectionTimeout value of 30 seconds. After months of seeing this problem every few weeks because of various network hiccups, we were finally able to capture a snapshot and then perform an inspection of the memory dump using WinDbg. Here's the stack trace (which uses the production RabbitMQ .NET client v3.2.1): 000000001adde530 000007fef77ad01a System.Net.Sockets.Socket.Receive(Byte[], Int32, Int32, System.Net.Sockets.SocketFlags, System.Net.Sockets.SocketError ByRef) 000000001adde5d0 000007fef77ace88 System.Net.Sockets.NetworkStream.Read(Byte[], Int32, Int32) 000000001adde650 000007fef777294c System.Net.FixedSizeReader.ReadPacket(Byte[], Int32, Int32) 000000001adde6a0 000007fef77d3803 System.Net.Security.SslState.StartReceiveBlob(Byte[], System.Net.AsyncProtocolRequest) 000000001adde6e0 000007fef77d1f09 System.Net.Security.SslState.StartSendBlob(Byte[], Int32, System.Net.AsyncProtocolRequest) 000000001adde760 000007fef77d3d26 System.Net.Security.SslState.ProcessReceivedBlob(Byte[], Int32, System.Net.AsyncProtocolRequest) 000000001adde7d0 000007fef77d3816 System.Net.Security.SslState.StartReceiveBlob(Byte[], System.Net.AsyncProtocolRequest) 000000001adde810 000007fef77d1f09 System.Net.Security.SslState.StartSendBlob(Byte[], Int32, System.Net.AsyncProtocolRequest) 000000001adde890 000007fef77d1b85 System.Net.Security.SslState.ForceAuthentication(Boolean, Byte[], System.Net.AsyncProtocolRequest) 000000001adde900 000007fef77d1856 System.Net.Security.SslState.ProcessAuthentication(System.Net.LazyAsyncResult) *RabbitMQ.Client.Impl.SocketFrameHandler_0_9..ctor(RabbitMQ.Client.AmqpTcpEndpoint, ObtainSocket, Int32)* 000000001addea00 000007fe9a28c5e1 RabbitMQ.Client.Framing.Impl.v0_9_1.ProtocolBase.CreateFrameHandler(RabbitMQ.Client.AmqpTcpEndpoint, ObtainSocket, Int32) 000000001addea50 000007fe9a28c245 RabbitMQ.Client.ConnectionFactory.FollowRedirectChain(Int32, System.Collections.Generic.IDictionary`2, System.Collections.Generic.IDictionary`2, RabbitMQ.Client.AmqpTcpEndpoint[] ByRef, RabbitMQ.Client.AmqpTcpEndpoint) 000000001addeb50 000007fe9a28c05f RabbitMQ.Client.ConnectionFactory.CreateConnection(Int32, System.Collections.Generic.IDictionary`2, System.Collections.Generic.IDictionary`2, RabbitMQ.Client.AmqpTcpEndpoint[]) 000000001addebe0 000007fe9a28bf51 RabbitMQ.Client.ConnectionFactory.CreateConnection(Int32) 000000001addec70 000007fe9a28bd6f *** ERROR: Module load completed but symbols could not be loaded for Accounting.UsageHost.dll If you follow the stack trace through the .NET client source code, you'll notice that a few of the methods are missing. These have been optimized away by the compiler when using a "Release" build. I have highlighted exactly where the problem is above and if you follow the source code, you'll find the problem right here: *http://hg.rabbitmq.com/rabbitmq-dotnet-client/file/e399c21792d7/projects/client/RabbitMQ.Client/src/client/api/SslHelper.cs#l97* The problem is that there is *no timeout* value configured for SSL connections. This means that the SSL connection attempt will hang indefinitely. And since the connection doesn't exist yet, there's no way for any kind of heartbeat thread to tear things down. The .NET docs also state that the default read/write timeout is set to Infinite by default . The simple fix is as follows: sslStream.ReadTimeout = connectionTimeout; sslStream.WriteTimeout=connectionTimout; -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Sun Feb 16 19:00:10 2014 From: cwstorm at gmail.com (cw storm) Date: Sun, 16 Feb 2014 14:00:10 -0500 Subject: [rabbitmq-discuss] Advice on where to reset connection and channel In-Reply-To: References: Message-ID: MK, In interested in the isInitiatedByApplication() method. If I force the connection to close via the console, would isInitiatedByApplication() be true? On Sun, Feb 16, 2014 at 11:18 AM, Michael Klishin < michael.s.klishin at gmail.com> wrote: > 2014-02-16 cw storm : > > I was asking which where is the best place to put the reconnect logic, >> connection shutdown listener or the consumer callback >> "handleShutDownSignal". > > > > Connection's shutdown listener. See > > https://github.com/rabbitmq/rabbitmq-java-client/blob/bug14587/src/com/rabbitmq/client/impl/recovery/AutorecoveringConnection.java#L336 > -- > MK > > http://github.com/michaelklishin > http://twitter.com/michaelklishin > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Sun Feb 16 19:08:07 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Sun, 16 Feb 2014 23:08:07 +0400 Subject: [rabbitmq-discuss] Advice on where to reset connection and channel In-Reply-To: References: Message-ID: 2014-02-16 23:00 GMT+04:00 cw storm : > If I force the connection to close via the console, would isInitiatedByApplication() > be true? No because it is not *your* application that's initiated the shutdown. If you call Connection#close, then it will be set to true. -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Sun Feb 16 19:09:04 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Sun, 16 Feb 2014 23:09:04 +0400 Subject: [rabbitmq-discuss] RabbitMQ .NET Client Can Hang with SSL Connections In-Reply-To: <7419510d-2658-46b0-9015-952ae8dafa2f@googlegroups.com> References: <7419510d-2658-46b0-9015-952ae8dafa2f@googlegroups.com> Message-ID: 2014-02-16 22:33 GMT+04:00 Jonathan Oliver : > The problem is that there is *no timeout* value configured for SSL > connections. This means that the SSL connection attempt will hang > indefinitely. And since the connection doesn't exist yet, there's no way > for any kind of heartbeat thread to tear things down. > > The .NET docs also state that the default read/write timeout is set to > Infinite by default > . > > The simple fix is as follows: > sslStream.ReadTimeout = connectionTimeout; > sslStream.WriteTimeout=connectionTimout; > That you for reporting, we will file a bug about it. -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Sun Feb 16 19:09:55 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Sun, 16 Feb 2014 23:09:55 +0400 Subject: [rabbitmq-discuss] Management API hangs after upgrade from 3.1.5 to 3.2.3 In-Reply-To: References: Message-ID: 2014-02-16 22:26 GMT+04:00 Greg Poirier : > After the upgrade, the management API has become somewhat unstable. > Somewhere around 20% of the time, requests to the API stall. For example, a > simple curl of the aliveness test endopint stalls after the GET request is > sent (as seen via tcpdump). The management plugin simply never responds. > > This is causing our basic aliveness and partition checks to fail on this > cluster pretty regularly. > What is in RabbitMQ logs? -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Sun Feb 16 19:11:40 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Sun, 16 Feb 2014 23:11:40 +0400 Subject: [rabbitmq-discuss] How to handle extremely large queues In-Reply-To: References: Message-ID: 2014-02-16 22:32 GMT+04:00 Greg Poirier : > In our current configuration, we have a 3-node cluster with 2 disc and 1 > ram node with HA mirroring to all nodes in the cluster. In periods of high > utilization of the cluster, we are noticing frequent partitioning. We have > narrowed it down to this particular use case as none of our other clusters > (running on the same physical hardware with the same cluster configuration) > experience this kind of partitioning. > > Is there some better way that we can configure RabbitMQ to handle this > kind of load pattern? I understand this is perhaps not the best way to use > RabbitMQ, but it is unavoidable for the time being. Any suggestions would > be appreciated. > Short answer is: give it more RAM. Relevant blog posts: http://blog.travis-ci.com/2013-08-08-solving-the-puzzle-of-scalable-log-processing/ http://www.rabbitmq.com/blog/2014/01/23/preventing-unbounded-buffers-with-rabbitmq/ -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Sun Feb 16 19:18:10 2014 From: cwstorm at gmail.com (cw storm) Date: Sun, 16 Feb 2014 14:18:10 -0500 Subject: [rabbitmq-discuss] Advice on where to reset connection and channel In-Reply-To: References: Message-ID: Ok. I was hoping I could use that method or find a way to not re-establish the connection/channel unless I don't add the listener to the connection. Everything is working the way I wanted. However, during development, I want to perform a force close connection via the console so that I can do some debugging or test out the new changes in my code. Everything I have initiated is in memory and I want to execute the java service again to load the new changes into memory. Because I have added the listener to the connection, it'll re-establish the connection/channel. Unless I reload the java package which has the service during startup. On Sun, Feb 16, 2014 at 2:08 PM, Michael Klishin < michael.s.klishin at gmail.com> wrote: > > 2014-02-16 23:00 GMT+04:00 cw storm : > > If I force the connection to close via the console, would isInitiatedByApplication() >> be true? > > > No because it is not *your* application that's initiated the shutdown. > > If you call Connection#close, then it will be set to true. > -- > MK > > http://github.com/michaelklishin > http://twitter.com/michaelklishin > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Sun Feb 16 19:27:31 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Sun, 16 Feb 2014 23:27:31 +0400 Subject: [rabbitmq-discuss] Advice on where to reset connection and channel In-Reply-To: References: Message-ID: 2014-02-16 23:18 GMT+04:00 cw storm : > However, during development, I want to perform a force close connection > via the console so that I can do some debugging or test out the new changes > in my code. Everything I have initiated is in memory and I want to execute > the java service again to load the new changes into memory. Because I have > added the listener to the connection, it'll re-establish the > connection/channel. Unless I reload the java package which has the service > during startup. You can close connections via management UI or rabbitmqctl and it will trigger a shutdown. That's how recovery is tested (besides automated tests) for all JVM-based clients that support recovery. -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From greg.poirier at opower.com Sun Feb 16 19:28:27 2014 From: greg.poirier at opower.com (Greg Poirier) Date: Sun, 16 Feb 2014 11:28:27 -0800 Subject: [rabbitmq-discuss] How to handle extremely large queues In-Reply-To: References: Message-ID: They are many small messages. Each node in the cluster has 8 gigs but is only using maybe 2. Is memory really the problem? On Sunday, February 16, 2014, Michael Klishin wrote: > > 2014-02-16 22:32 GMT+04:00 Greg Poirier > >: > >> In our current configuration, we have a 3-node cluster with 2 disc and 1 >> ram node with HA mirroring to all nodes in the cluster. In periods of high >> utilization of the cluster, we are noticing frequent partitioning. We have >> narrowed it down to this particular use case as none of our other clusters >> (running on the same physical hardware with the same cluster configuration) >> experience this kind of partitioning. >> >> Is there some better way that we can configure RabbitMQ to handle this >> kind of load pattern? I understand this is perhaps not the best way to use >> RabbitMQ, but it is unavoidable for the time being. Any suggestions would >> be appreciated. >> > > Short answer is: give it more RAM. > > Relevant blog posts: > > > http://blog.travis-ci.com/2013-08-08-solving-the-puzzle-of-scalable-log-processing/ > > http://www.rabbitmq.com/blog/2014/01/23/preventing-unbounded-buffers-with-rabbitmq/ > -- > MK > > http://github.com/michaelklishin > http://twitter.com/michaelklishin > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Sun Feb 16 19:36:57 2014 From: cwstorm at gmail.com (cw storm) Date: Sun, 16 Feb 2014 14:36:57 -0500 Subject: [rabbitmq-discuss] Advice on where to reset connection and channel In-Reply-To: References: Message-ID: Yes, I perform close connections via UI but since I have handle the shutdown signal, it's going to create new connection/channel which I don't want to do during development. I thought I could maybe spice up my logic. If it's a close connection via UI, then do this...else...reconnect. Maybe I'm thinking too much and my new changes will be in effect when I force or rabbitmqctl. Thanks again MK. Moving right along.... On Sun, Feb 16, 2014 at 2:27 PM, Michael Klishin < michael.s.klishin at gmail.com> wrote: > > 2014-02-16 23:18 GMT+04:00 cw storm : > > However, during development, I want to perform a force close connection >> via the console so that I can do some debugging or test out the new changes >> in my code. Everything I have initiated is in memory and I want to execute >> the java service again to load the new changes into memory. Because I have >> added the listener to the connection, it'll re-establish the >> connection/channel. Unless I reload the java package which has the service >> during startup. > > > You can close connections via management UI or rabbitmqctl and it will > trigger a shutdown. That's how recovery > is tested (besides automated tests) for all JVM-based clients that support > recovery. > > > > -- > MK > > http://github.com/michaelklishin > http://twitter.com/michaelklishin > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From videlalvaro at gmail.com Sun Feb 16 19:41:16 2014 From: videlalvaro at gmail.com (Alvaro Videla) Date: Sun, 16 Feb 2014 20:41:16 +0100 Subject: [rabbitmq-discuss] How to handle extremely large queues In-Reply-To: References: Message-ID: Hi, Keep in mind that there's small memory footprint per message, even if the message has been paged to disk. Regards, Alvaro On Sun, Feb 16, 2014 at 8:28 PM, Greg Poirier wrote: > They are many small messages. Each node in the cluster has 8 gigs but is > only using maybe 2. Is memory really the problem? > > > On Sunday, February 16, 2014, Michael Klishin > wrote: >> >> >> 2014-02-16 22:32 GMT+04:00 Greg Poirier : >>> >>> In our current configuration, we have a 3-node cluster with 2 disc and 1 >>> ram node with HA mirroring to all nodes in the cluster. In periods of high >>> utilization of the cluster, we are noticing frequent partitioning. We have >>> narrowed it down to this particular use case as none of our other clusters >>> (running on the same physical hardware with the same cluster configuration) >>> experience this kind of partitioning. >>> >>> Is there some better way that we can configure RabbitMQ to handle this >>> kind of load pattern? I understand this is perhaps not the best way to use >>> RabbitMQ, but it is unavoidable for the time being. Any suggestions would be >>> appreciated. >> >> >> Short answer is: give it more RAM. >> >> Relevant blog posts: >> >> >> http://blog.travis-ci.com/2013-08-08-solving-the-puzzle-of-scalable-log-processing/ >> >> http://www.rabbitmq.com/blog/2014/01/23/preventing-unbounded-buffers-with-rabbitmq/ >> -- >> MK >> >> http://github.com/michaelklishin >> http://twitter.com/michaelklishin > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > From greg.poirier at opower.com Sun Feb 16 19:57:37 2014 From: greg.poirier at opower.com (Greg Poirier) Date: Sun, 16 Feb 2014 11:57:37 -0800 Subject: [rabbitmq-discuss] How to handle extremely large queues In-Reply-To: References: Message-ID: If Rabbit inaccurately reports the amount of memory it's using, how are we to provision systems? With some understanding of normal load, however suboptimal the use case may be, we should have an understanding of memory requirements... Particularly when rabbit provided a reporting mechanism to confirm out expected memory usage. I guess I am confused. On Sunday, February 16, 2014, Alvaro Videla wrote: > Hi, > > Keep in mind that there's small memory footprint per message, even if > the message has been paged to disk. > > Regards, > > Alvaro > > On Sun, Feb 16, 2014 at 8:28 PM, Greg Poirier > > wrote: > > They are many small messages. Each node in the cluster has 8 gigs but is > > only using maybe 2. Is memory really the problem? > > > > > > On Sunday, February 16, 2014, Michael Klishin < > michael.s.klishin at gmail.com > > > wrote: > >> > >> > >> 2014-02-16 22:32 GMT+04:00 Greg Poirier > >: > >>> > >>> In our current configuration, we have a 3-node cluster with 2 disc and > 1 > >>> ram node with HA mirroring to all nodes in the cluster. In periods of > high > >>> utilization of the cluster, we are noticing frequent partitioning. We > have > >>> narrowed it down to this particular use case as none of our other > clusters > >>> (running on the same physical hardware with the same cluster > configuration) > >>> experience this kind of partitioning. > >>> > >>> Is there some better way that we can configure RabbitMQ to handle this > >>> kind of load pattern? I understand this is perhaps not the best way to > use > >>> RabbitMQ, but it is unavoidable for the time being. Any suggestions > would be > >>> appreciated. > >> > >> > >> Short answer is: give it more RAM. > >> > >> Relevant blog posts: > >> > >> > >> > http://blog.travis-ci.com/2013-08-08-solving-the-puzzle-of-scalable-log-processing/ > >> > >> > http://www.rabbitmq.com/blog/2014/01/23/preventing-unbounded-buffers-with-rabbitmq/ > >> -- > >> MK > >> > >> http://github.com/michaelklishin > >> http://twitter.com/michaelklishin > > > > > > _______________________________________________ > > rabbitmq-discuss mailing list > > rabbitmq-discuss at lists.rabbitmq.com > > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From videlalvaro at gmail.com Sun Feb 16 20:29:37 2014 From: videlalvaro at gmail.com (Alvaro Videla) Date: Sun, 16 Feb 2014 21:29:37 +0100 Subject: [rabbitmq-discuss] How to handle extremely large queues In-Reply-To: References: Message-ID: What do you mean by RabbitMQ inaccurately reporting the memory that is using? On Sun, Feb 16, 2014 at 8:57 PM, Greg Poirier wrote: > If Rabbit inaccurately reports the amount of memory it's using, how are we > to provision systems? With some understanding of normal load, however > suboptimal the use case may be, we should have an understanding of memory > requirements... Particularly when rabbit provided a reporting mechanism to > confirm out expected memory usage. > > I guess I am confused. > > > On Sunday, February 16, 2014, Alvaro Videla wrote: >> >> Hi, >> >> Keep in mind that there's small memory footprint per message, even if >> the message has been paged to disk. >> >> Regards, >> >> Alvaro >> >> On Sun, Feb 16, 2014 at 8:28 PM, Greg Poirier >> wrote: >> > They are many small messages. Each node in the cluster has 8 gigs but is >> > only using maybe 2. Is memory really the problem? >> > >> > >> > On Sunday, February 16, 2014, Michael Klishin >> > >> > wrote: >> >> >> >> >> >> 2014-02-16 22:32 GMT+04:00 Greg Poirier : >> >>> >> >>> In our current configuration, we have a 3-node cluster with 2 disc and >> >>> 1 >> >>> ram node with HA mirroring to all nodes in the cluster. In periods of >> >>> high >> >>> utilization of the cluster, we are noticing frequent partitioning. We >> >>> have >> >>> narrowed it down to this particular use case as none of our other >> >>> clusters >> >>> (running on the same physical hardware with the same cluster >> >>> configuration) >> >>> experience this kind of partitioning. >> >>> >> >>> Is there some better way that we can configure RabbitMQ to handle this >> >>> kind of load pattern? I understand this is perhaps not the best way to >> >>> use >> >>> RabbitMQ, but it is unavoidable for the time being. Any suggestions >> >>> would be >> >>> appreciated. >> >> >> >> >> >> Short answer is: give it more RAM. >> >> >> >> Relevant blog posts: >> >> >> >> >> >> >> >> http://blog.travis-ci.com/2013-08-08-solving-the-puzzle-of-scalable-log-processing/ >> >> >> >> >> >> http://www.rabbitmq.com/blog/2014/01/23/preventing-unbounded-buffers-with-rabbitmq/ >> >> -- >> >> MK >> >> >> >> http://github.com/michaelklishin >> >> http://twitter.com/michaelklishin >> > >> > >> > _______________________________________________ >> > rabbitmq-discuss mailing list >> > rabbitmq-discuss at lists.rabbitmq.com >> > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> > >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > From greg.poirier at opower.com Sun Feb 16 21:04:03 2014 From: greg.poirier at opower.com (Greg Poirier) Date: Sun, 16 Feb 2014 13:04:03 -0800 Subject: [rabbitmq-discuss] How to handle extremely large queues In-Reply-To: References: Message-ID: So I am using the management interface to verify that the memory utilization is as I expect. We do not page messages to disk (set the paging watermark to 1.1) so the management plugin should be reporting a number similar to message size * number of messages. On Sunday, February 16, 2014, Alvaro Videla wrote: > What do you mean by RabbitMQ inaccurately reporting the memory that is > using? > > On Sun, Feb 16, 2014 at 8:57 PM, Greg Poirier > wrote: > > If Rabbit inaccurately reports the amount of memory it's using, how are > we > > to provision systems? With some understanding of normal load, however > > suboptimal the use case may be, we should have an understanding of memory > > requirements... Particularly when rabbit provided a reporting mechanism > to > > confirm out expected memory usage. > > > > I guess I am confused. > > > > > > On Sunday, February 16, 2014, Alvaro Videla > wrote: > >> > >> Hi, > >> > >> Keep in mind that there's small memory footprint per message, even if > >> the message has been paged to disk. > >> > >> Regards, > >> > >> Alvaro > >> > >> On Sun, Feb 16, 2014 at 8:28 PM, Greg Poirier > >> wrote: > >> > They are many small messages. Each node in the cluster has 8 gigs but > is > >> > only using maybe 2. Is memory really the problem? > >> > > >> > > >> > On Sunday, February 16, 2014, Michael Klishin > >> > > >> > wrote: > >> >> > >> >> > >> >> 2014-02-16 22:32 GMT+04:00 Greg Poirier : > >> >>> > >> >>> In our current configuration, we have a 3-node cluster with 2 disc > and > >> >>> 1 > >> >>> ram node with HA mirroring to all nodes in the cluster. In periods > of > >> >>> high > >> >>> utilization of the cluster, we are noticing frequent partitioning. > We > >> >>> have > >> >>> narrowed it down to this particular use case as none of our other > >> >>> clusters > >> >>> (running on the same physical hardware with the same cluster > >> >>> configuration) > >> >>> experience this kind of partitioning. > >> >>> > >> >>> Is there some better way that we can configure RabbitMQ to handle > this > >> >>> kind of load pattern? I understand this is perhaps not the best way > to > >> >>> use > >> >>> RabbitMQ, but it is unavoidable for the time being. Any suggestions > >> >>> would be > >> >>> appreciated. > >> >> > >> >> > >> >> Short answer is: give it more RAM. > >> >> > >> >> Relevant blog posts: > >> >> > >> >> > >> >> > >> >> > http://blog.travis-ci.com/2013-08-08-solving-the-puzzle-of-scalable-log-processing/ > >> >> > >> >> > >> >> > http://www.rabbitmq.com/blog/2014/01/23/preventing-unbounded-buffers-with-rabbitmq/ > >> >> -- > >> >> MK > >> >> > >> >> http://github.com/michaelklishin > >> >> http://twitter.com/michaelklishin > >> > > >> > > >> > _______________________________________________ > >> > rabbitmq-discuss mailing list > >> > rabbitmq-discuss at lists.rabbitmq.com > >> > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > >> > > >> _______________________________________________ > >> rabbitmq-discuss mailing list > >> rabbitmq-discuss at lists.rabbitmq.com > >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Sun Feb 16 21:39:09 2014 From: cwstorm at gmail.com (cw storm) Date: Sun, 16 Feb 2014 16:39:09 -0500 Subject: [rabbitmq-discuss] Advice on where to reset connection and channel In-Reply-To: References: Message-ID: MK, In the event that a queue was deleted, the consumer callback "handleCancel" is invoke. Are these the steps I need to perform inside the "handleCancel"? 1. Declare the queue 2. Create new connection and channel 3. Issue basicConsume service again On Sun, Feb 16, 2014 at 2:36 PM, cw storm wrote: > Yes, I perform close connections via UI but since I have handle the > shutdown signal, it's going to create new connection/channel which I don't > want to do during development. I thought I could maybe spice up my logic. > If it's a close connection via UI, then do this...else...reconnect. Maybe > I'm thinking too much and my new changes will be in effect when I force or > rabbitmqctl. > > Thanks again MK. Moving right along.... > > > On Sun, Feb 16, 2014 at 2:27 PM, Michael Klishin < > michael.s.klishin at gmail.com> wrote: > >> >> 2014-02-16 23:18 GMT+04:00 cw storm : >> >> However, during development, I want to perform a force close connection >>> via the console so that I can do some debugging or test out the new changes >>> in my code. Everything I have initiated is in memory and I want to execute >>> the java service again to load the new changes into memory. Because I have >>> added the listener to the connection, it'll re-establish the >>> connection/channel. Unless I reload the java package which has the service >>> during startup. >> >> >> You can close connections via management UI or rabbitmqctl and it will >> trigger a shutdown. That's how recovery >> is tested (besides automated tests) for all JVM-based clients that >> support recovery. >> >> >> >> -- >> MK >> >> http://github.com/michaelklishin >> http://twitter.com/michaelklishin >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From videlalvaro at gmail.com Sun Feb 16 22:22:47 2014 From: videlalvaro at gmail.com (Alvaro Videla) Date: Sun, 16 Feb 2014 23:22:47 +0100 Subject: [rabbitmq-discuss] How to handle extremely large queues In-Reply-To: References: Message-ID: Erlang processes also consume memory, atoms consume memory as well, plus a data structure here and there I would say. On Sun, Feb 16, 2014 at 10:04 PM, Greg Poirier wrote: > So I am using the management interface to verify that the memory utilization > is as I expect. We do not page messages to disk (set the paging watermark to > 1.1) so the management plugin should be reporting a number similar to > message size * number of messages. > > > On Sunday, February 16, 2014, Alvaro Videla wrote: >> >> What do you mean by RabbitMQ inaccurately reporting the memory that is >> using? >> >> On Sun, Feb 16, 2014 at 8:57 PM, Greg Poirier >> wrote: >> > If Rabbit inaccurately reports the amount of memory it's using, how are >> > we >> > to provision systems? With some understanding of normal load, however >> > suboptimal the use case may be, we should have an understanding of >> > memory >> > requirements... Particularly when rabbit provided a reporting mechanism >> > to >> > confirm out expected memory usage. >> > >> > I guess I am confused. >> > >> > >> > On Sunday, February 16, 2014, Alvaro Videla >> > wrote: >> >> >> >> Hi, >> >> >> >> Keep in mind that there's small memory footprint per message, even if >> >> the message has been paged to disk. >> >> >> >> Regards, >> >> >> >> Alvaro >> >> >> >> On Sun, Feb 16, 2014 at 8:28 PM, Greg Poirier >> >> wrote: >> >> > They are many small messages. Each node in the cluster has 8 gigs but >> >> > is >> >> > only using maybe 2. Is memory really the problem? >> >> > >> >> > >> >> > On Sunday, February 16, 2014, Michael Klishin >> >> > >> >> > wrote: >> >> >> >> >> >> >> >> >> 2014-02-16 22:32 GMT+04:00 Greg Poirier : >> >> >>> >> >> >>> In our current configuration, we have a 3-node cluster with 2 disc >> >> >>> and >> >> >>> 1 >> >> >>> ram node with HA mirroring to all nodes in the cluster. In periods >> >> >>> of >> >> >>> high >> >> >>> utilization of the cluster, we are noticing frequent partitioning. >> >> >>> We >> >> >>> have >> >> >>> narrowed it down to this particular use case as none of our other >> >> >>> clusters >> >> >>> (running on the same physical hardware with the same cluster >> >> >>> configuration) >> >> >>> experience this kind of partitioning. >> >> >>> >> >> >>> Is there some better way that we can configure RabbitMQ to handle >> >> >>> this >> >> >>> kind of load pattern? I understand this is perhaps not the best way >> >> >>> to >> >> >>> use >> >> >>> RabbitMQ, but it is unavoidable for the time being. Any suggestions >> >> >>> would be >> >> >>> appreciated. >> >> >> >> >> >> >> >> >> Short answer is: give it more RAM. >> >> >> >> >> >> Relevant blog posts: >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> http://blog.travis-ci.com/2013-08-08-solving-the-puzzle-of-scalable-log-processing/ >> >> >> >> >> >> >> >> >> >> >> >> http://www.rabbitmq.com/blog/2014/01/23/preventing-unbounded-buffers-with-rabbitmq/ >> >> >> -- >> >> >> MK >> >> >> >> >> >> http://github.com/michaelklishin >> >> >> http://twitter.com/michaelklishin >> >> > >> >> > >> >> > _______________________________________________ >> >> > rabbitmq-discuss mailing list >> >> > rabbitmq-discuss at lists.rabbitmq.com >> >> > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> >> > >> >> _______________________________________________ >> >> rabbitmq-discuss mailing list >> >> rabbitmq-discuss at lists.rabbitmq.com >> >> > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > From phillip.ho at gmail.com Sun Feb 16 18:23:10 2014 From: phillip.ho at gmail.com (phillip.ho at gmail.com) Date: Sun, 16 Feb 2014 13:23:10 -0500 Subject: [rabbitmq-discuss] Advice on where to reset connection and channel In-Reply-To: References: Message-ID: Thanks MK. On Sun, Feb 16, 2014 at 11:18 AM, Michael Klishin < michael.s.klishin at gmail.com> wrote: > 2014-02-16 cw storm : > > I was asking which where is the best place to put the reconnect logic, >> connection shutdown listener or the consumer callback >> "handleShutDownSignal". > > > > Connection's shutdown listener. See > > https://github.com/rabbitmq/rabbitmq-java-client/blob/bug14587/src/com/rabbitmq/client/impl/recovery/AutorecoveringConnection.java#L336 > -- > MK > > http://github.com/michaelklishin > http://twitter.com/michaelklishin > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -- Regards, Phillip ************************************************ This e-mail, and any attachments thereto, is intended only for use by the addressee(s) named herein and may contain legally privileged and/or confidential information. If you are not the intended recipient of this e-mail (or the person responsible for delivering this documentto the intended recipient), you are hereby notified that any dissemination, distribution, printing or coping of this e-mail, and anyattachment thereto, is strictly prohibited. If you have received this e-mail in error, please respond to the individual sending the message, and permanently delete the original and any copy of any e-mail and printout thereof. ************************************************ -------------- next part -------------- An HTML attachment was scrubbed... URL: From greg.poirier at opower.com Mon Feb 17 00:41:57 2014 From: greg.poirier at opower.com (Greg Poirier) Date: Sun, 16 Feb 2014 16:41:57 -0800 Subject: [rabbitmq-discuss] How to handle extremely large queues In-Reply-To: References: Message-ID: Certainly. There is overhead. But if there is roughly 2 gigs of memory "in use" according to RabbitMQ's management plugin, with some 6 gigs free... and equally as much memory on the system in general... are you suggesting that that 2 gigs of messages is also consuming 6 gigs of overhead? Or that I need more than 6 gigs of free space in RabbitMQ at all times? On Sun, Feb 16, 2014 at 2:22 PM, Alvaro Videla wrote: > Erlang processes also consume memory, atoms consume memory as well, > plus a data structure here and there I would say. > > On Sun, Feb 16, 2014 at 10:04 PM, Greg Poirier > wrote: > > So I am using the management interface to verify that the memory > utilization > > is as I expect. We do not page messages to disk (set the paging > watermark to > > 1.1) so the management plugin should be reporting a number similar to > > message size * number of messages. > > > > > > On Sunday, February 16, 2014, Alvaro Videla > wrote: > >> > >> What do you mean by RabbitMQ inaccurately reporting the memory that is > >> using? > >> > >> On Sun, Feb 16, 2014 at 8:57 PM, Greg Poirier > >> wrote: > >> > If Rabbit inaccurately reports the amount of memory it's using, how > are > >> > we > >> > to provision systems? With some understanding of normal load, however > >> > suboptimal the use case may be, we should have an understanding of > >> > memory > >> > requirements... Particularly when rabbit provided a reporting > mechanism > >> > to > >> > confirm out expected memory usage. > >> > > >> > I guess I am confused. > >> > > >> > > >> > On Sunday, February 16, 2014, Alvaro Videla > >> > wrote: > >> >> > >> >> Hi, > >> >> > >> >> Keep in mind that there's small memory footprint per message, even if > >> >> the message has been paged to disk. > >> >> > >> >> Regards, > >> >> > >> >> Alvaro > >> >> > >> >> On Sun, Feb 16, 2014 at 8:28 PM, Greg Poirier < > greg.poirier at opower.com> > >> >> wrote: > >> >> > They are many small messages. Each node in the cluster has 8 gigs > but > >> >> > is > >> >> > only using maybe 2. Is memory really the problem? > >> >> > > >> >> > > >> >> > On Sunday, February 16, 2014, Michael Klishin > >> >> > > >> >> > wrote: > >> >> >> > >> >> >> > >> >> >> 2014-02-16 22:32 GMT+04:00 Greg Poirier >: > >> >> >>> > >> >> >>> In our current configuration, we have a 3-node cluster with 2 > disc > >> >> >>> and > >> >> >>> 1 > >> >> >>> ram node with HA mirroring to all nodes in the cluster. In > periods > >> >> >>> of > >> >> >>> high > >> >> >>> utilization of the cluster, we are noticing frequent > partitioning. > >> >> >>> We > >> >> >>> have > >> >> >>> narrowed it down to this particular use case as none of our other > >> >> >>> clusters > >> >> >>> (running on the same physical hardware with the same cluster > >> >> >>> configuration) > >> >> >>> experience this kind of partitioning. > >> >> >>> > >> >> >>> Is there some better way that we can configure RabbitMQ to handle > >> >> >>> this > >> >> >>> kind of load pattern? I understand this is perhaps not the best > way > >> >> >>> to > >> >> >>> use > >> >> >>> RabbitMQ, but it is unavoidable for the time being. Any > suggestions > >> >> >>> would be > >> >> >>> appreciated. > >> >> >> > >> >> >> > >> >> >> Short answer is: give it more RAM. > >> >> >> > >> >> >> Relevant blog posts: > >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > http://blog.travis-ci.com/2013-08-08-solving-the-puzzle-of-scalable-log-processing/ > >> >> >> > >> >> >> > >> >> >> > >> >> >> > http://www.rabbitmq.com/blog/2014/01/23/preventing-unbounded-buffers-with-rabbitmq/ > >> >> >> -- > >> >> >> MK > >> >> >> > >> >> >> http://github.com/michaelklishin > >> >> >> http://twitter.com/michaelklishin > >> >> > > >> >> > > >> >> > _______________________________________________ > >> >> > rabbitmq-discuss mailing list > >> >> > rabbitmq-discuss at lists.rabbitmq.com > >> >> > > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > >> >> > > >> >> _______________________________________________ > >> >> rabbitmq-discuss mailing list > >> >> rabbitmq-discuss at lists.rabbitmq.com > >> >> > > > > > > _______________________________________________ > > rabbitmq-discuss mailing list > > rabbitmq-discuss at lists.rabbitmq.com > > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Mon Feb 17 01:46:48 2014 From: cwstorm at gmail.com (cw storm) Date: Sun, 16 Feb 2014 20:46:48 -0500 Subject: [rabbitmq-discuss] Advice on where to reset connection and channel In-Reply-To: References: Message-ID: In my "handleCancel", I was able to perform everything related to creating new connection/channel and recreated the queue. However, my basicConsume did not work. Can I not have basicConsumer inside my "handleCancel"? On Sun, Feb 16, 2014 at 1:23 PM, wrote: > Thanks MK. > > > On Sun, Feb 16, 2014 at 11:18 AM, Michael Klishin < > michael.s.klishin at gmail.com> wrote: > >> 2014-02-16 cw storm : >> >> I was asking which where is the best place to put the reconnect logic, >>> connection shutdown listener or the consumer callback >>> "handleShutDownSignal". >> >> >> >> Connection's shutdown listener. See >> >> https://github.com/rabbitmq/rabbitmq-java-client/blob/bug14587/src/com/rabbitmq/client/impl/recovery/AutorecoveringConnection.java#L336 >> -- >> MK >> >> http://github.com/michaelklishin >> http://twitter.com/michaelklishin >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> >> > > > -- > Regards, > Phillip > > ************************************************ > This e-mail, and any attachments thereto, is intended only for use by the > addressee(s) named herein and may contain legally privileged and/or > confidential information. If you are not the intended recipient of this > e-mail (or the person responsible for delivering this documentto the > intended recipient), you are hereby notified that any dissemination, > distribution, printing or coping of this e-mail, and anyattachment thereto, > is strictly prohibited. If you have received this e-mail in error, please > respond to the individual sending the message, and permanently delete the > original and any copy of any e-mail and printout thereof. > ************************************************ > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From tlhuang at 800best.com Mon Feb 17 04:46:38 2014 From: tlhuang at 800best.com (Huang Tonglang) Date: Mon, 17 Feb 2014 12:46:38 +0800 Subject: [rabbitmq-discuss] Advice on runing mutiple rabbitmq instances in one machine Message-ID: <023CBAD52AC91842B08759362DE8396C0FD5801D27@bestex3.800best.net> Hi there I have a very strong machine with SSD, 64G Mem,32 core CPU, but lots of applications want MQ. It seems I have two options, 1. One MQ instance with more than 9 virtual hosts, or 2.serveral MQ instances, each has about 3 virtual hosts. And I hope there is isolation between those virtual hosts or MQ instances. Could someone advice with option is best, or is there any other option I can choose? Thank you Tonglang Huang -------------- next part -------------- An HTML attachment was scrubbed... URL: From Rohit.Patle at techmahindra.com Mon Feb 17 05:39:05 2014 From: Rohit.Patle at techmahindra.com (Rohit Patle) Date: Mon, 17 Feb 2014 05:39:05 +0000 Subject: [rabbitmq-discuss] [rabbitmq-c-master] memory leakinkg while reconnect. Message-ID: <27E054594442884E9A46DBCF9AE7408164FD99@BSDMSATMBX001.mahindrasatyam.ad> Hi Alan, I rechecked with amqp_version() = v0.4.1 & Openssl version = 1.0.1. The amqp_destroy_connection() works fine and there is no memory leak as well. Earlier I was checking against amqp_version() = v0.3.0 & Openssl version = 1.0.1. which was producing error while doing amqp_destroy_connection() and memory leaks as well. Thanks for your support. Rohit ________________________________ DISCLAIMER: This email (including any attachments) is intended for the sole use of the intended recipient/s and may contain material that is CONFIDENTIAL AND PRIVATE COMPANY INFORMATION. Any review or reliance by others or copying or distribution or forwarding of any or all of the contents in this message is STRICTLY PROHIBITED. If you are not the intended recipient, please contact the sender by email and delete all copies; your cooperation in this regard is appreciated. -------------- next part -------------- An HTML attachment was scrubbed... URL: From wangjunbo924 at gmail.com Mon Feb 17 06:46:43 2014 From: wangjunbo924 at gmail.com (Junius Wang) Date: Mon, 17 Feb 2014 14:46:43 +0800 Subject: [rabbitmq-discuss] RabbitMQ throw 541 internal error when unbind an non-existed binding? Message-ID: <007f01cf2bac$1ce0af50$56a20df0$@gmail.com> Hi all, Our team installed RabbitMQ 3.0.4 and I'm trying to upgrade it to latest 3.2.3. However we encounter an unexpected change from RabbitMQ. In 3.0.4, 404 error thrown when unbind an non-existed binding but if try to unbind an non-existed binding from in RabbitMQ 3.2.3, it throws 541 error. Is this change expected or an issue? In our applications, we may unbind a binding multiple times. The first attempt succeeds and we expect the following attempts throw 404. We catch the 404 exception and do something later. It works well in 3.0.4 but unlucky in 3.2.3. If it's an issue of 3.2.3 I will wait for an newer version. If not ,we will have to change our code or just use 3.0.4. What's more interesting is that only when the exchange type is "topic". When the type is "fanout" or "direct", the expected 404 thrown. I wrote some python test codes today to verify it: #!/usr/bin/env python import pika connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost')) channel = connection.channel() exchange_name = 'py_test_exchange' queue_name = 'py_test_queue' routing_key = 'black' exchange_type='topic' channel.exchange_declare(exchange=exchange_name,type=exchange_type) channel.queue_declare(queue=queue_name) channel.queue_bind(exchange=exchange_name,queue=queue_name,routing_key=routi ng_key) channel.queue_unbind(exchange=exchange_name,queue=queue_name,routing_key=rou ting_key) channel.queue_unbind(exchange=exchange_name,queue=queue_name,routing_key=rou ting_key) channel.queue_delete(queue=queue_name) channel.exchange_delete(exchange=exchange_name) And when I run this code, it says "pika.exceptions.ChannelClosed: (541, 'INTERNAL_ERROR')". And from the RabbitMQ logs(it says 'badmatch' probably because the binding doesn't exist): =ERROR REPORT==== 17-Feb-2014::14:37:54 === AMQP connection <0.12741.0> (running), channel 1 - error: {{error, {{badmatch,{error,[{root,none}],["black"]}}, [{rabbit_exchange_type_topic,follow_down_get_path,2, [{file,"src/rabbit_exchange_type_topic.erl"},{line,139}]}, {rabbit_exchange_type_topic,'-remove_bindings/3-lc$^1/1-1-',1, [{file,"src/rabbit_exchange_type_topic.erl"},{line,81}]}, {rabbit_exchange_type_topic,remove_bindings,3, [{file,"src/rabbit_exchange_type_topic.erl"},{line,79}]}, {rabbit_binding,x_callback,4, [{file,"src/rabbit_binding.erl"},{line,542}]}, {rabbit_binding,'-process_deletions/1-fun-0-',2, [{file,"src/rabbit_binding.erl"},{line,524}]}, {dict,map_bucket,2,[{file,"dict.erl"},{line,460}]}, {dict,map_bkt_list,2,[{file,"dict.erl"},{line,456}]}, {dict,map_bkt_list,2,[{file,"dict.erl"},{line,456}]}]}}, [{rabbit_misc,execute_mnesia_transaction,1, [{file,"src/rabbit_misc.erl"},{line,509}]}, {rabbit_misc,execute_mnesia_tx_with_tail,1, [{file,"src/rabbit_misc.erl"},{line,531}]}, {rabbit_channel,binding_action,9, [{file,"src/rabbit_channel.erl"},{line,1279}]}, {rabbit_channel,handle_cast,2,[{file,"src/rabbit_channel.erl"},{line,274}]}, {gen_server2,handle_msg,2,[{file,"src/gen_server2.erl"},{line,934}]}, {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,239}]}]} Any comment will be appreciated. Thanks Junbo Wang -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Mon Feb 17 08:07:16 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Mon, 17 Feb 2014 12:07:16 +0400 Subject: [rabbitmq-discuss] Advice on where to reset connection and channel In-Reply-To: References: Message-ID: 2014-02-17 1:39 GMT+04:00 cw storm : > 1. Declare the queue > 2. Create new connection and channel > 3. Issue basicConsume service again > You don't need a new connection (and if you do, you can't perform 1 before 2). -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Mon Feb 17 08:18:19 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Mon, 17 Feb 2014 12:18:19 +0400 Subject: [rabbitmq-discuss] Advice on runing mutiple rabbitmq instances in one machine In-Reply-To: <023CBAD52AC91842B08759362DE8396C0FD5801D27@bestex3.800best.net> References: <023CBAD52AC91842B08759362DE8396C0FD5801D27@bestex3.800best.net> Message-ID: 2014-02-17 8:46 GMT+04:00 Huang Tonglang : > I have a very strong machine with SSD, 64G Mem,32 core CPU, but lots of > applications want MQ. It seems I have two options, 1. One MQ instance with > more than 9 virtual hosts, or 2.serveral MQ instances, each has about 3 > virtual hosts. And I hope there is isolation between those virtual hosts or > MQ instances. Could someone advice with option is best, or is there any > other option I can choose? I'd start with just one instance, raise VM watermark, and maybe tweak Erlang VM options to have more schedulers (as you have quite a few cores). What kind of isolation are you looking for? If you need to isolate apps from one another, this is what vhosts are for. -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Mon Feb 17 08:20:00 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Mon, 17 Feb 2014 12:20:00 +0400 Subject: [rabbitmq-discuss] RabbitMQ throw 541 internal error when unbind an non-existed binding? In-Reply-To: <007f01cf2bac$1ce0af50$56a20df0$@gmail.com> References: <007f01cf2bac$1ce0af50$56a20df0$@gmail.com> Message-ID: 2014-02-17 10:46 GMT+04:00 Junius Wang : > In 3.0.4, 404 error thrown when unbind an non-existed binding but if try > to unbind an non-existed binding from in RabbitMQ 3.2.3, it throws 541 > error. Is this change expected or an issue? There should be no error of any kind, unbind and delete operations are now idempotent. This sounds like a bug. -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From matthias at rabbitmq.com Mon Feb 17 08:22:07 2014 From: matthias at rabbitmq.com (Matthias Radestock) Date: Mon, 17 Feb 2014 08:22:07 +0000 Subject: [rabbitmq-discuss] RabbitMQ throw 541 internal error when unbind an non-existed binding? In-Reply-To: References: <007f01cf2bac$1ce0af50$56a20df0$@gmail.com> Message-ID: <5301C6AF.1080807@rabbitmq.com> On 17/02/14 08:20, Michael Klishin wrote: > > 2014-02-17 10:46 GMT+04:00 Junius Wang >: > > In 3.0.4, 404 error thrown when unbind an non-existed binding but if > try to unbind an non-existed binding from in RabbitMQ 3.2.3, it > throws 541 error. Is this change expected or an issue? > > > There should be no error of any kind, unbind and delete operations are > now idempotent. > > This sounds like a bug. It is indeed a bug. Filed. Matthias. From michael.s.klishin at gmail.com Mon Feb 17 08:23:40 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Mon, 17 Feb 2014 12:23:40 +0400 Subject: [rabbitmq-discuss] How to handle extremely large queues In-Reply-To: References: Message-ID: 2014-02-17 4:41 GMT+04:00 Greg Poirier : > But if there is roughly 2 gigs of memory "in use" according to RabbitMQ's > management plugin, with some 6 gigs free... and equally as much memory on > the system in general... are you suggesting that that 2 gigs of messages is > also consuming 6 gigs of overhead? Or that I need more than 6 gigs of free > space in RabbitMQ at all times? Greg, I don't think ?lvaro meant any of that. I didn't mean to say that you need to worry about running out of RAM, although this is by far the most common problem. Just pointed out at two solutions that solve the most common issues with extremely large queues. If you don't run out of RAM and your consumers can keep up even with 1 queue, what issues do you have? -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From matthias at rabbitmq.com Mon Feb 17 08:28:31 2014 From: matthias at rabbitmq.com (Matthias Radestock) Date: Mon, 17 Feb 2014 08:28:31 +0000 Subject: [rabbitmq-discuss] How to handle extremely large queues In-Reply-To: References: Message-ID: <5301C82F.2080808@rabbitmq.com> On 17/02/14 08:23, Michael Klishin wrote: > If you don't run out of RAM and your consumers can keep up even with 1 > queue, what issues do you have? From the original post In periods of high utilization of the cluster, we are noticing frequent partitioning. We have narrowed it down to this particular use case [i.e. extremely large queues] Matthias. From simon at rabbitmq.com Mon Feb 17 08:33:24 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Mon, 17 Feb 2014 08:33:24 +0000 Subject: [rabbitmq-discuss] Clustering setup - Inputs In-Reply-To: References: <52FCE4EC.2030504@rabbitmq.com> <52FD09F9.9020109@rabbitmq.com> Message-ID: <5301C954.4010101@rabbitmq.com> On 14/02/2014 8:06PM, Arun Rao wrote: > Hi Simon - > > That was a wealth of information. I was trying to add this to one of > your blogs which would benefit all the readers but I couldnt find a > relevant topic. I will see where I can publish this information so it > will be useful for everyone. Thanks. I'm intending to write a series of small blog posts on topics like these once 3.3.0 is released, by the way. > Regarding this discussion - > > > setting basic.qos (which causes message delivery [queue] -> > [consuming channel] to be synchronous inside the cluster). > > what if the RabbitMQ client defines the channel as used only for > Consuming or Publishing or both publishing and consuming. I do not know > if there is a provision in AMQP or RabbitMQ can customize that. No, there's no way to make a channel publish-only or consume-only. When I refer to "consuming channel" I just mean "channel that's consuming". > When a channel from a (RabbitMQ client) consumer is defined as consumer > only, then there is no effect of this channel (connected from RabbitMQ > client to slave node queue), because replicated queues can only be > consumed from Master node. Will this provide async consumer replication? Well, there are two different things here - replicating messages from the queue master to the queue slaves (which is always asynchronous) and delivering messages from the master to consumers (which as noted previously is synchronous if basic.qos has been set). Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From pat at munkiisoft.com Mon Feb 17 09:19:28 2014 From: pat at munkiisoft.com (Patrick Long) Date: Mon, 17 Feb 2014 09:19:28 +0000 Subject: [rabbitmq-discuss] Understanding some Event Log entries Message-ID: It is Monday morning and I am trawling the event logs of our pre production environments hoping for a quiet weekend *=ERROR REPORT==== 17-Feb-2014::02:44:15 ===* *closing AMQP connection <0.4748.29> (10.206.20.1:63468 -> 10.206.20.167:5672 ):* *{heartbeat_timeout,running}* One environment reported between 8 - 18 of these a second for a period of 40 seconds and then no more. What is this log entry telling me? Thanks -- Patrick Long - Munkiisoft Ltd -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Mon Feb 17 09:22:15 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Mon, 17 Feb 2014 13:22:15 +0400 Subject: [rabbitmq-discuss] Understanding some Event Log entries In-Reply-To: References: Message-ID: <133E40A8-CE2F-4F2B-AE5D-E44E24256402@rabbitmq.com> On 17 Feb 2014, at 13:19, Patrick Long wrote: > One environment reported between 8 - 18 of these a second for a period of 40 seconds and then no more. What is this log entry telling me? A client connection has missed 2 heartbeats, after which RabbitMQ considers it dead. MK Software Engineer, Pivotal/RabbitMQ From greg.poirier at opower.com Mon Feb 17 09:23:07 2014 From: greg.poirier at opower.com (Greg Poirier) Date: Mon, 17 Feb 2014 01:23:07 -0800 Subject: [rabbitmq-discuss] How to handle extremely large queues In-Reply-To: <5301C82F.2080808@rabbitmq.com> References: <5301C82F.2080808@rabbitmq.com> Message-ID: On Monday, February 17, 2014, Matthias Radestock wrote: > On 17/02/14 08:23, Michael Klishin wrote: > >> If you don't run out of RAM and your consumers can keep up even with 1 >> queue, what issues do you have? >> > > From the original post > > In periods of high utilization of the cluster, we are noticing frequent > partitioning. We have narrowed it down to this particular use case [i.e. > extremely large queues] > > > Matthias > Precisely. Sorry for the tangent. I was obsessing over memory all week. We are seeing multiple clusters both versions 3.2.3 and 3.1.5 partition regularly. We haven't had these issues until we started seeing queues larger than 1 million messages. I realize this is... Not a good use of RabbitMQ but it is somewhat a necessity. We have a three node cluster (2 disk 1 ram). I have disabled paging messages to disk and set vm high memory watermark at around .75. I've chosen a three node configuration simply so I can use pause minority. I have also configured an ha policy with mirroring to all nodes and automatic synchronization. We have a strong requirement for consistency and partition tolerance. This seemed to be the best option. We can tolerate a full RabbitMQ outage but data loss or inconsistency must be avoided. This configuration seemed the safest but we are still experiencing partitions and while they are easily healed, this now leads to queue in availability for long periods of time while the queues sunchronize. If this were attributable to network outages, I would understand, but the machines are in adjacent racks with redundant links to top or rack switches. -------------- next part -------------- An HTML attachment was scrubbed... URL: From wangjunbo924 at gmail.com Mon Feb 17 09:57:02 2014 From: wangjunbo924 at gmail.com (Junius Wang) Date: Mon, 17 Feb 2014 17:57:02 +0800 Subject: [rabbitmq-discuss] RabbitMQ throw 541 internal error when unbind an non-existed binding? In-Reply-To: <5301C6AF.1080807@rabbitmq.com> References: <007f01cf2bac$1ce0af50$56a20df0$@gmail.com> <5301C6AF.1080807@rabbitmq.com> Message-ID: <00e901cf2bc6$9d8e4760$d8aad620$@gmail.com> Thanks for your reply. Does Michael mean that no error including 404 should be thrown in my case? like delete operations RabbitMQ just return OK with doing nothing? That's good news for us, at what time can I expect a fix or a new release? -----Original Message----- From: rabbitmq-discuss [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Matthias Radestock Sent: Monday, February 17, 2014 4:22 PM To: Discussions about RabbitMQ Subject: Re: [rabbitmq-discuss] RabbitMQ throw 541 internal error when unbind an non-existed binding? On 17/02/14 08:20, Michael Klishin wrote: > > 2014-02-17 10:46 GMT+04:00 Junius Wang >: > > In 3.0.4, 404 error thrown when unbind an non-existed binding but if > try to unbind an non-existed binding from in RabbitMQ 3.2.3, it > throws 541 error. Is this change expected or an issue? > > > There should be no error of any kind, unbind and delete operations are > now idempotent. > > This sounds like a bug. It is indeed a bug. Filed. Matthias. _______________________________________________ rabbitmq-discuss mailing list rabbitmq-discuss at lists.rabbitmq.com https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss From mklishin at gopivotal.com Mon Feb 17 10:00:23 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Mon, 17 Feb 2014 14:00:23 +0400 Subject: [rabbitmq-discuss] RabbitMQ throw 541 internal error when unbind an non-existed binding? In-Reply-To: <00e901cf2bc6$9d8e4760$d8aad620$@gmail.com> References: <007f01cf2bac$1ce0af50$56a20df0$@gmail.com> <5301C6AF.1080807@rabbitmq.com> <00e901cf2bc6$9d8e4760$d8aad620$@gmail.com> Message-ID: On 17 Feb 2014, at 13:57, Junius Wang wrote: > Does Michael mean that no error including 404 should > be thrown in my case? like delete operations RabbitMQ just return OK with > doing nothing? Correct. > That's good news for us, at what time can I expect a fix or > a new release? Since this is a bug, it should be in 3.2.4. MK Software Engineer, Pivotal/RabbitMQ From tim at rabbitmq.com Mon Feb 17 13:02:17 2014 From: tim at rabbitmq.com (Tim Watson) Date: Mon, 17 Feb 2014 13:02:17 +0000 Subject: [rabbitmq-discuss] amqp_connection:open_channel link channel In-Reply-To: References: Message-ID: <30F854D1-0A5A-4E2E-B237-79F8DDF2671D@rabbitmq.com> Hi, On 16 Feb 2014, at 18:08, Matwey V. Kornilov wrote: > Is it a good practice to link the channel to the process going to consume the messages? I do want to close the channel when my consumer crashed, and let the broker to redeliver unacked message. > > {ok, Channel} = amqp_connection:open_channel(Connection), > link(Channel), > > Why there is no open_channel_link counterpart, as start and start_link? > The reason is that there is a level of indirection between the channel process(es) and the process that calls open channel, i.e., the channel process is linked to an internal supervisor process, not to the process that calls open_channel. Probably the easiest way to achieve what you want is to open the channel in your process' initialisation phase and close it during the shutdown phase. If your consumer is built on one of the OTP behaviours (such as gen_server) then you can open and close the channel in the respective init/1 and terminate/2 callbacks. HTH! > This is for case when channel goes down between open_channel and link. Indeed, that's a different problem to closing the channel if/when your consumer crashes. The easiest way might seem at first, to use a monitor instead of linking, guaranteeing a 'DOWN' message even if the monitor-ee was dead when the monitor was established. Personally however, I'd suggest looking at the amqp_gen_consumer behaviour instead, since that defines a terminate/2 callback which behaves as follows (from the edocs): %% This callback is invoked by the channel after it has shut down and %% just before its process exits. Cheers, Tim From simon at rabbitmq.com Mon Feb 17 13:17:03 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Mon, 17 Feb 2014 13:17:03 +0000 Subject: [rabbitmq-discuss] Advice on runing mutiple rabbitmq instances in one machine In-Reply-To: References: <023CBAD52AC91842B08759362DE8396C0FD5801D27@bestex3.800best.net> Message-ID: <53020BCF.8090401@rabbitmq.com> On 17/02/2014 08:18, Michael Klishin wrote: > 2014-02-17 8:46 GMT+04:00 Huang Tonglang >: > > I have a very strong machine with SSD, 64G Mem,32 core CPU, but lots > of applications want MQ. It seems I have two options, 1. One MQ > instance with more than 9 virtual hosts, or 2.serveral MQ instances, > each has about 3 virtual hosts. And I hope there is isolation > between those virtual hosts or MQ instances. Could someone advice > with option is best, or is there any other option I can choose? > > I'd start with just one instance, raise VM watermark, and maybe tweak > Erlang VM options to have more schedulers (as you have quite a few cores). You should not need to manually increase the number of schedulers; the Erlang VM should figure that out on startup. > What kind of isolation are you looking for? If you need to isolate apps > from one another this is what vhosts are for. Virtual hosts give a security isolation - they don't do much to enforce any sort of performance isolation though. Although running multiple brokers on the same OS doesn't give you much more in that case, one instance can still eat all the memory, CPU, network bandwidth and disk space. So yes, depends what you want. Cheers, Simon From pat at munkiisoft.com Mon Feb 17 14:11:15 2014 From: pat at munkiisoft.com (Patrick Long) Date: Mon, 17 Feb 2014 14:11:15 +0000 Subject: [rabbitmq-discuss] How do I check what Network Partition Recovery mode I am using Message-ID: The "Clustering and Network Partitions" ( http://www.rabbitmq.com/partitions.html) article says "RabbitMQ also offers two ways to deal with network partitions automatically: *pause-minority* mode and *autoheal* mode. (The default behaviour is referred to as *ignore* mode)." ignore looks the mode we want and it is supposedly the default but I do not think our nodes are ignoring the suspected partitions. Our nodes are VMs on the same network Were can I see what the current cluster_partition_handling setting is for a node? Thanks Patrick -- Patrick Long - Munkiisoft Ltd -------------- next part -------------- An HTML attachment was scrubbed... URL: From emile at rabbitmq.com Mon Feb 17 14:17:33 2014 From: emile at rabbitmq.com (Emile Joubert) Date: Mon, 17 Feb 2014 14:17:33 +0000 Subject: [rabbitmq-discuss] How do I check what Network Partition Recovery mode I am using In-Reply-To: References: Message-ID: <530219FD.1020205@rabbitmq.com> On 17/02/14 14:11, Patrick Long wrote: > Were can I see what the current cluster_partition_handling setting is > for a node? This command will tell you: rabbitmqctl environment and it should contain output that includes {cluster_partition_handling,ignore} (unless you made changes). -Emile From greg.poirier at opower.com Mon Feb 17 16:38:13 2014 From: greg.poirier at opower.com (Greg Poirier) Date: Mon, 17 Feb 2014 08:38:13 -0800 Subject: [rabbitmq-discuss] Management API hangs after upgrade from 3.1.5 to 3.2.3 In-Reply-To: References: Message-ID: On Sun, Feb 16, 2014 at 11:09 AM, Michael Klishin < michael.s.klishin at gmail.com> wrote: > > 2014-02-16 22:26 GMT+04:00 Greg Poirier : > > After the upgrade, the management API has become somewhat unstable. >> Somewhere around 20% of the time, requests to the API stall. For example, a >> simple curl of the aliveness test endopint stalls after the GET request is >> sent (as seen via tcpdump). The management plugin simply never responds. >> >> This is causing our basic aliveness and partition checks to fail on this >> cluster pretty regularly. >> > > What is in RabbitMQ logs? > > There is nothing logged for the connection. -------------- next part -------------- An HTML attachment was scrubbed... URL: From matwey.kornilov at gmail.com Mon Feb 17 17:16:19 2014 From: matwey.kornilov at gmail.com (Matwey V. Kornilov) Date: Mon, 17 Feb 2014 21:16:19 +0400 Subject: [rabbitmq-discuss] amqp_connection:open_channel link channel In-Reply-To: <30F854D1-0A5A-4E2E-B237-79F8DDF2671D@rabbitmq.com> References: <30F854D1-0A5A-4E2E-B237-79F8DDF2671D@rabbitmq.com> Message-ID: 17.02.2014 17:02, Tim Watson ?????: > Hi, > > On 16 Feb 2014, at 18:08, Matwey V. Kornilov wrote: >> Is it a good practice to link the channel to the process going to consume the messages? I do want to close the channel when my consumer crashed, and let the broker to redeliver unacked message. >> >> {ok, Channel} = amqp_connection:open_channel(Connection), >> link(Channel), >> >> Why there is no open_channel_link counterpart, as start and start_link? >> > > The reason is that there is a level of indirection between the channel process(es) and the process that calls open channel, i.e., the channel process is linked to an internal supervisor process, not to the process that calls open_channel. Probably the easiest way to achieve what you want is to open the channel in your process' initialisation phase and close it during the shutdown phase. If your consumer is built on one of the OTP behaviours (such as gen_server) then you can open and close the channel in the respective init/1 and terminate/2 callbacks. HTH! To use terminate, I have not to forget trap_exit and not brutal_kill in supervisor. > >> This is for case when channel goes down between open_channel and link. > > Indeed, that's a different problem to closing the channel if/when your consumer crashes. The easiest way might seem at first, to use a monitor instead of linking, guaranteeing a 'DOWN' message even if the monitor-ee was dead when the monitor was established. Personally however, I'd suggest looking at the amqp_gen_consumer behaviour instead, since that defines a terminate/2 callback which behaves as follows (from the edocs): > > %% This callback is invoked by the channel after it has shut down and > %% just before its process exits. amqp_direct_consumer exits gracefully when my consumer process dies, but it leads to whole connection and all other channels crash. I want to close the one specific channel, when my corresponding consumer process dies or exits. And vice versa, when channel is dead, my consumer process have to shutdown and to be restarted (and reopen new channel) by supervisor. From tlhuang at 800best.com Tue Feb 18 07:28:40 2014 From: tlhuang at 800best.com (Huang Tonglang) Date: Tue, 18 Feb 2014 15:28:40 +0800 Subject: [rabbitmq-discuss] How to bind Rabbitmq and management to specific IP Message-ID: <023CBAD52AC91842B08759362DE8396C0FD5801D33@bestex3.800best.net> Hi there The command I use is: RABBITMQ_NODE_IP_ADDRESS="10.8.9.161? RABBITMQ_NODE_PORT=9672 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,19672},{ip,?10.8.9.161"}]" RABBITMQ_NODENAME=master_4 rabbitmq-server -detached The error I get is: =ERROR REPORT==== 18-Feb-2014::23:27:05 === application_controller: syntax error before: '.': [{port,19672},{ip,10.8.9.161}] =INFO REPORT==== 18-Feb-2014::23:27:05 === Error description: {error,{bad_environment_value,"[{port,19672},{ip,10.8.9.161}]"}} Log files (may contain more information): /var/log/rabbitmq/master_4.log /var/log/rabbitmq/master_4-sasl.log Stack trace: [{app_utils,load_applications,2,[{file,"src/app_utils.erl"},{line,112}]}, {app_utils,load_applications,1,[{file,"src/app_utils.erl"},{line,40}]}, {rabbit,'-boot/0-fun-1-',0,[{file,"src/rabbit.erl"},{line,334}]}, {rabbit,start_it,1,[{file,"src/rabbit.erl"},{line,354}]}, {init,start_it,1,[]}, {init,start_em,1,[]}] Can some one help? ??? ??? -------------- next part -------------- An HTML attachment was scrubbed... URL: From tlhuang at 800best.com Tue Feb 18 07:41:26 2014 From: tlhuang at 800best.com (Huang Tonglang) Date: Tue, 18 Feb 2014 15:41:26 +0800 Subject: [rabbitmq-discuss] How to bind Rabbitmq and management to specific IP In-Reply-To: <023CBAD52AC91842B08759362DE8396C0FD5801D33@bestex3.800best.net> References: <023CBAD52AC91842B08759362DE8396C0FD5801D33@bestex3.800best.net> Message-ID: <023CBAD52AC91842B08759362DE8396C0FD5801D34@bestex3.800best.net> Format my email title. Thank you Tonglang huang ???: Huang Tonglang ????: 2014?2?18? 15:29 ???: Discussions about RabbitMQ ??: How to bind Rabbitmq and management to specific IP Hi there The command I use is: RABBITMQ_NODE_IP_ADDRESS="10.8.9.161? RABBITMQ_NODE_PORT=9672 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,19672},{ip,?10.8.9.161"}]" RABBITMQ_NODENAME=master_4 rabbitmq-server -detached The error I get is: =ERROR REPORT==== 18-Feb-2014::23:27:05 === application_controller: syntax error before: '.': [{port,19672},{ip,10.8.9.161}] =INFO REPORT==== 18-Feb-2014::23:27:05 === Error description: {error,{bad_environment_value,"[{port,19672},{ip,10.8.9.161}]"}} Log files (may contain more information): /var/log/rabbitmq/master_4.log /var/log/rabbitmq/master_4-sasl.log Stack trace: [{app_utils,load_applications,2,[{file,"src/app_utils.erl"},{line,112}]}, {app_utils,load_applications,1,[{file,"src/app_utils.erl"},{line,40}]}, {rabbit,'-boot/0-fun-1-',0,[{file,"src/rabbit.erl"},{line,334}]}, {rabbit,start_it,1,[{file,"src/rabbit.erl"},{line,354}]}, {init,start_it,1,[]}, {init,start_em,1,[]}] Can some one help? ??? ??? -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Tue Feb 18 07:52:53 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 18 Feb 2014 11:52:53 +0400 Subject: [rabbitmq-discuss] How to bind Rabbitmq and management to specific IP In-Reply-To: <023CBAD52AC91842B08759362DE8396C0FD5801D34@bestex3.800best.net> References: <023CBAD52AC91842B08759362DE8396C0FD5801D33@bestex3.800best.net> <023CBAD52AC91842B08759362DE8396C0FD5801D34@bestex3.800best.net> Message-ID: <2173847D-7141-4F70-976D-4DDA403CD020@rabbitmq.com> On 18 Feb 2014, at 11:41, Huang Tonglang wrote: > The command I use is: > RABBITMQ_NODE_IP_ADDRESS="10.8.9.161? RABBITMQ_NODE_PORT=9672 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,19672},{ip,?10.8.9.161"}]" RABBITMQ_NODENAME=master_4 rabbitmq-server -detached > > The error I get is: > > =ERROR REPORT==== 18-Feb-2014::23:27:05 === > application_controller: syntax error before: '.': [{port,19672},{ip,10.8.9.161}] You need to correct quoting. This works for me: RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15672},{ip,\"127.0.0.1\"}]" RABBITMQ_NODE_IP_ADDRESS="127.0.0.1" rabbitmq-server Note that having spaces between port, port number or the port and IP tuples leads to failures. MK Software Engineer, Pivotal/RabbitMQ From carl.hoerberg at gmail.com Tue Feb 18 08:07:32 2014 From: carl.hoerberg at gmail.com (carlhoerberg) Date: Tue, 18 Feb 2014 00:07:32 -0800 (PST) Subject: [rabbitmq-discuss] Server not releasing conns/channels under memory pressure Message-ID: <1392710852303-33437.post@n5.nabble.com> Start a server, connect a client which publish messages, set memory high water mark very low, like 0.01, disconnect the client. The client and its channels are still registered (can still see them in the UI), open more connections/channels and disconnect them, all channels stays after disconnect and the memory just goes up and up. Then restore the high water mark, all channels disappear and the memory usage goes down. Would it make sense to try to remove disconnected connections/channels even in low memory scenarios to make more memory available? -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Server-not-releasing-conns-channels-under-memory-pressure-tp33437.html Sent from the RabbitMQ mailing list archive at Nabble.com. From simon at rabbitmq.com Tue Feb 18 10:07:40 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Tue, 18 Feb 2014 10:07:40 +0000 Subject: [rabbitmq-discuss] Server not releasing conns/channels under memory pressure In-Reply-To: <1392710852303-33437.post@n5.nabble.com> References: <1392710852303-33437.post@n5.nabble.com> Message-ID: <530330EC.1070909@rabbitmq.com> On 18/02/2014 8:07AM, carlhoerberg wrote: > Would it make sense to try to remove disconnected connections/channels even > in low memory scenarios to make more memory available? Oh hell yes. We have spent a long time trying to make this happen. The trouble is that it seems to be basically impossible to determine whether a socket is really open or not when you are not reading from it. And we don't read from sockets which have published when the memory alarm has gone off. I don't know if there is going to be a way around this. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From sampatkumar04 at gmail.com Tue Feb 18 00:40:41 2014 From: sampatkumar04 at gmail.com (Sampat Patle) Date: Tue, 18 Feb 2014 06:10:41 +0530 Subject: [rabbitmq-discuss] Multiple listener over single connection in rabbitmq-c. Message-ID: Hi, I am new to rabbitmq. I would like to know whether is it possible to have multiple channels and multiple listener over single connection using threads. for better understanding please refer the digram attached. I am using rabbitmq-c. Thanks in Advance. Regards, Sampat. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: multiple_listener.odp Type: application/vnd.oasis.opendocument.presentation Size: 15190 bytes Desc: not available URL: From tarun.mistry at gmail.com Tue Feb 18 02:06:05 2014 From: tarun.mistry at gmail.com (Tarun Mistry) Date: Mon, 17 Feb 2014 18:06:05 -0800 (PST) Subject: [rabbitmq-discuss] Exclusive Producers? Message-ID: <7ac296f2-4e7b-40c4-b1ee-a1f4bb3166c2@googlegroups.com> Hi all, i'm new to RabbitMQ/AMQP. I am trying to solve an application level high-availability problem and belive i'm not thinking about things in the right way, I could use some advice! Here is what I would like to achieve, I could use some help understanding the RabbitMQ way of doing it. 1) I have several message producers, only 1 of these is the primary, the remainder as all backups. 2) The primary is defined as the process that controls a single queue and can post messages to it. 3) If the primary process fails, I want a backup to take over immediately. 4) All backups are in a race to get control of the queue (from 2) 5) Once a backup gains control, it is now the primary. Using Rabbit speak, I feel like I need something called an "exclusive producer". Do I need to fudge this by introducing a second queue and having all the processes connect to this using the "exclusive consumer" pattern, and then use this to determine who can control the main queue? Appreciate any advice Cheers TM -------------- next part -------------- An HTML attachment was scrubbed... URL: From james.andrewsmith at gmail.com Tue Feb 18 06:56:47 2014 From: james.andrewsmith at gmail.com (James Andrew-Smith) Date: Mon, 17 Feb 2014 22:56:47 -0800 (PST) Subject: [rabbitmq-discuss] Web Stomp / Sock.JS Message-ID: <07a5cb28-ead2-44e4-b110-7c7bff7a23eb@googlegroups.com> Hi Everyone, I am in the process of setting up Sock.JS/Web Stomp which has been quite painless for something so awesome, normally the pain to awesome ratio is I have the following flow I am trying work out: 1. The user loads the page 2. Rabbit MQ is connected and authenticated via Web Stomp / Sock.JS 3. Subscriptions are created 4. User follows a link initiating a page reload 5. The browser starts reloading the page / webstomp is disconnected 5. A message is received on one of the queues the user subscribed to 6. The server finishes loading the page 7. Connection / Subscription occurs How do I best get the messages sent at step 5 while the page was reloading? Is there a setting for my queue/topic? Is there setting with SockJS? Or do I need to write my own AJAX to pull any outstanding messages when the page loads? I assume I have to write my own AJAX, I just wanted to see if anyone had alternative recommendations. Many thanks. James -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Tue Feb 18 10:14:20 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 18 Feb 2014 14:14:20 +0400 Subject: [rabbitmq-discuss] Multiple listener over single connection in rabbitmq-c. In-Reply-To: References: Message-ID: <2C4703CD-EB0D-4FD1-9BC4-91EE17BE156A@rabbitmq.com> On 18 Feb 2014, at 04:40, Sampat Patle wrote: > I am new to rabbitmq. I would like to know whether is it possible to have multiple channels and multiple listener over single connection using threads. You can have multiple channels per connection (in fact, that?s the whole point of channels) and multiple consumers per connection (or channel). This can be combined with threads. Concurrency safety rule of thumb is: don?t share channels between threads, especially when publishing. Having N threads, 1 per consumer, on the same channel may be safe depending on client implementation. MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Tue Feb 18 10:16:32 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 18 Feb 2014 14:16:32 +0400 Subject: [rabbitmq-discuss] Exclusive Producers? In-Reply-To: <7ac296f2-4e7b-40c4-b1ee-a1f4bb3166c2@googlegroups.com> References: <7ac296f2-4e7b-40c4-b1ee-a1f4bb3166c2@googlegroups.com> Message-ID: <7F6EC747-4630-48BF-83C3-8C951C100C59@rabbitmq.com> On 18 Feb 2014, at 06:06, Tarun Mistry wrote: > 1) I have several message producers, only 1 of these is the primary, the remainder as all backups. > 2) The primary is defined as the process that controls a single queue and can post messages to it. > 3) If the primary process fails, I want a backup to take over immediately. > 4) All backups are in a race to get control of the queue (from 2) > 5) Once a backup gains control, it is now the primary. > > Using Rabbit speak, I feel like I need something called an "exclusive producer?. There is no such feature in RabbitMQ. > Do I need to fudge this by introducing a second queue and having all the processes connect to this using the "exclusive consumer" pattern, and then use this to determine who can control the main queue? This is a distributed coordination problem. I?d recommend using a separate tool (ZooKeeper, Redis, etcd) for coordination. MK Software Engineer, Pivotal/RabbitMQ From simon at rabbitmq.com Tue Feb 18 10:18:30 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Tue, 18 Feb 2014 10:18:30 +0000 Subject: [rabbitmq-discuss] Exclusive Producers? In-Reply-To: <7ac296f2-4e7b-40c4-b1ee-a1f4bb3166c2@googlegroups.com> References: <7ac296f2-4e7b-40c4-b1ee-a1f4bb3166c2@googlegroups.com> Message-ID: <53033376.2060208@rabbitmq.com> On 18/02/2014 2:06AM, Tarun Mistry wrote: > Using Rabbit speak, I feel like I need something called an "exclusive > producer". Yes, that sounds right. Sadly there's not really such a thing as a "producer" in the sense of a client having agreed that it can produce messages - there are just clients that may or may not publish messages. So there's an asymmetry with consumers there. > Do I need to fudge this by introducing a second queue and having all the > processes connect to this using the "exclusive consumer" pattern, and > then use this to determine who can control the main queue? So that's probably your best bet. I can't think of anything better, anyway. It's a bit ugly, but should be workable. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From videlalvaro at gmail.com Tue Feb 18 10:23:27 2014 From: videlalvaro at gmail.com (Alvaro Videla) Date: Tue, 18 Feb 2014 11:23:27 +0100 Subject: [rabbitmq-discuss] Exclusive Producers? In-Reply-To: <7ac296f2-4e7b-40c4-b1ee-a1f4bb3166c2@googlegroups.com> References: <7ac296f2-4e7b-40c4-b1ee-a1f4bb3166c2@googlegroups.com> Message-ID: Hi, Maybe there's an easier solution, but you could try this: - Create a queue called "lock" (or whatever name suits you) and publish just one message to it, which will be the token producers need to obtain in order to publish messages. - Start your producers and make them consume just one message from that queue, ie basic_qos(prefetch-count=1), also tell RabbitMQ that you will ack the messages. The first producer arriving at the queue will grab the "token". The other producers will sit idle, waiting for said token. - When the producer receives the "token", then it can start publishing to the actual queue where you want the messages. - If that consumer crashes or is shut down, then the "token" will be requeued and some other of your backup producers will grab it, so it can start publishing. - if the producer wishes to stop, it can basic_reject(requeue=true) the "token", so another producer can grab it and start publishing. Regards, Alvaro On Tue, Feb 18, 2014 at 3:06 AM, Tarun Mistry wrote: > Hi all, > > i'm new to RabbitMQ/AMQP. I am trying to solve an application level > high-availability problem and belive i'm not thinking about things in the > right way, I could use some advice! > > Here is what I would like to achieve, I could use some help understanding > the RabbitMQ way of doing it. > > 1) I have several message producers, only 1 of these is the primary, the > remainder as all backups. > 2) The primary is defined as the process that controls a single queue and > can post messages to it. > 3) If the primary process fails, I want a backup to take over immediately. > 4) All backups are in a race to get control of the queue (from 2) > 5) Once a backup gains control, it is now the primary. > > Using Rabbit speak, I feel like I need something called an "exclusive > producer". > > Do I need to fudge this by introducing a second queue and having all the > processes connect to this using the "exclusive consumer" pattern, and then > use this to determine who can control the main queue? > > Appreciate any advice > > Cheers > TM > > > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > From simon at rabbitmq.com Tue Feb 18 10:27:23 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Tue, 18 Feb 2014 10:27:23 +0000 Subject: [rabbitmq-discuss] Exclusive Producers? In-Reply-To: References: <7ac296f2-4e7b-40c4-b1ee-a1f4bb3166c2@googlegroups.com> Message-ID: <5303358B.4090105@rabbitmq.com> On 18/02/2014 10:23AM, Alvaro Videla wrote: > Hi, > > Maybe there's an easier solution, but you could try this: OP's suggestion of establishing an exclusive consumer to a lock queue sounds easier :-) Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From matthias at rabbitmq.com Tue Feb 18 10:27:42 2014 From: matthias at rabbitmq.com (Matthias Radestock) Date: Tue, 18 Feb 2014 10:27:42 +0000 Subject: [rabbitmq-discuss] Exclusive Producers? In-Reply-To: <53033376.2060208@rabbitmq.com> References: <7ac296f2-4e7b-40c4-b1ee-a1f4bb3166c2@googlegroups.com> <53033376.2060208@rabbitmq.com> Message-ID: <5303359E.2040704@rabbitmq.com> On 18/02/14 10:18, Simon MacMullen wrote: > On 18/02/2014 2:06AM, Tarun Mistry wrote: >> Using Rabbit speak, I feel like I need something called an "exclusive >> producer". > > Yes, that sounds right. Sadly there's not really such a thing as a > "producer" in the sense of a client having agreed that it can produce > messages - there are just clients that may or may not publish messages. > So there's an asymmetry with consumers there. Moreover, producers are not associated with single queues - messages get published to exchanges and may end up in zero or more queues. >> Do I need to fudge this by introducing a second queue and having all the >> processes connect to this using the "exclusive consumer" pattern, and >> then use this to determine who can control the main queue? > > So that's probably your best bet. I can't think of anything better, > anyway. It's a bit ugly, but should be workable. There *is* a better way. See Alvaro's reply. Matthias. From matthias at rabbitmq.com Tue Feb 18 10:28:25 2014 From: matthias at rabbitmq.com (Matthias Radestock) Date: Tue, 18 Feb 2014 10:28:25 +0000 Subject: [rabbitmq-discuss] Exclusive Producers? In-Reply-To: <5303358B.4090105@rabbitmq.com> References: <7ac296f2-4e7b-40c4-b1ee-a1f4bb3166c2@googlegroups.com> <5303358B.4090105@rabbitmq.com> Message-ID: <530335C9.3050309@rabbitmq.com> On 18/02/14 10:27, Simon MacMullen wrote: > On 18/02/2014 10:23AM, Alvaro Videla wrote: >> Hi, >> >> Maybe there's an easier solution, but you could try this: > > OP's suggestion of establishing an exclusive consumer to a lock queue > sounds easier :-) No, because it requires all other producers to poll, i.e. keep attempting to create an exclusive consumer. Matthias. From gsim at redhat.com Tue Feb 18 10:31:13 2014 From: gsim at redhat.com (Gordon Sim) Date: Tue, 18 Feb 2014 10:31:13 +0000 Subject: [rabbitmq-discuss] Exclusive Producers? In-Reply-To: <53033376.2060208@rabbitmq.com> References: <7ac296f2-4e7b-40c4-b1ee-a1f4bb3166c2@googlegroups.com> <53033376.2060208@rabbitmq.com> Message-ID: <53033671.5010503@redhat.com> On 02/18/2014 10:18 AM, Simon MacMullen wrote: > On 18/02/2014 2:06AM, Tarun Mistry wrote: >> Using Rabbit speak, I feel like I need something called an "exclusive >> producer". > > Yes, that sounds right. Sadly there's not really such a thing as a > "producer" in the sense of a client having agreed that it can produce > messages - there are just clients that may or may not publish messages. > So there's an asymmetry with consumers there. > >> Do I need to fudge this by introducing a second queue and having all the >> processes connect to this using the "exclusive consumer" pattern, and >> then use this to determine who can control the main queue? > > So that's probably your best bet. I can't think of anything better, > anyway. It's a bit ugly, but should be workable. What I often do in cases like that is have the second queue as you suggest, but instead of using an 'exclusive consumer' lock on it, just have a single message in it. The consumer compete to get that one message, when its delivered it indicates that the receiver has control. The receiver doesn't acknowledge the message however. That means if/when the current controller dies, the message will be automatically requeued and redelivered to one of the backups. (Saves the backups having to continually poll for ability to consume). (And just in passing, I'll note that AMQP 1.0 did introduce the concept of 'producer' of incoming messages - i.e. a sending link - analogous to that of consumer of outgoing messages - i.e. a receiving link). From simon at rabbitmq.com Tue Feb 18 10:32:33 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Tue, 18 Feb 2014 10:32:33 +0000 Subject: [rabbitmq-discuss] Exclusive Producers? In-Reply-To: <530335C9.3050309@rabbitmq.com> References: <7ac296f2-4e7b-40c4-b1ee-a1f4bb3166c2@googlegroups.com> <5303358B.4090105@rabbitmq.com> <530335C9.3050309@rabbitmq.com> Message-ID: <530336C1.3080908@rabbitmq.com> On 18/02/2014 10:28AM, Matthias Radestock wrote: > No, because it requires all other producers to poll, i.e. keep > attempting to create an exclusive consumer. Ah, good point. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From mklishin at gopivotal.com Tue Feb 18 10:37:58 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 18 Feb 2014 14:37:58 +0400 Subject: [rabbitmq-discuss] Exclusive Producers? In-Reply-To: <53033671.5010503@redhat.com> References: <7ac296f2-4e7b-40c4-b1ee-a1f4bb3166c2@googlegroups.com> <53033376.2060208@rabbitmq.com> <53033671.5010503@redhat.com> Message-ID: <30B1313E-4836-4862-8961-35EF02396907@rabbitmq.com> On 18 Feb 2014, at 14:31, Gordon Sim wrote: > What I often do in cases like that is have the second queue as you suggest, but instead of using an 'exclusive consumer' lock on it, just have a single message in it. It?s worth mentioning that it is possible to enforce the single message limit: http://www.rabbitmq.com/maxlength.html MK Software Engineer, Pivotal/RabbitMQ From jarmo.myllyvirta at flashnode.com Tue Feb 18 11:59:30 2014 From: jarmo.myllyvirta at flashnode.com (Jarmo Myllyvirta) Date: Tue, 18 Feb 2014 13:59:30 +0200 Subject: [rabbitmq-discuss] Best way to automatically start and stop queue workers? Message-ID: <454909BB627748AB9BA9CF6DB8FF1DC6@pc> Hi, I?m new with RabbitMQ and I working my first production app that uses RabbitMQ. My question is which is the best or the simpliest way to start defined number of listeners (2-5 per queue) to every queue (4 queues)? And how can restart these workers automatically like every hour or so? My workers are currently written in PHP (using php-amqplib). Thanks in advance. Best Regards, Jarmo Myllyvirta Flashnode -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Tue Feb 18 12:04:44 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 18 Feb 2014 16:04:44 +0400 Subject: [rabbitmq-discuss] Best way to automatically start and stop queue workers? In-Reply-To: <454909BB627748AB9BA9CF6DB8FF1DC6@pc> References: <454909BB627748AB9BA9CF6DB8FF1DC6@pc> Message-ID: <33E741EB-1858-49E5-9B02-0191CD2071B8@rabbitmq.com> On 18 Feb 2014, at 15:59, Jarmo Myllyvirta wrote: > My question is which is the best or the simpliest way to start defined number of listeners (2-5 per queue) to every queue (4 queues)? And how can restart these workers automatically like every hour or so? > > My workers are currently written in PHP (using php-amqplib). Monit or similar. MK Software Engineer, Pivotal/RabbitMQ From videlalvaro at gmail.com Tue Feb 18 12:05:49 2014 From: videlalvaro at gmail.com (Alvaro Videla) Date: Tue, 18 Feb 2014 13:05:49 +0100 Subject: [rabbitmq-discuss] Exclusive Producers? In-Reply-To: <30B1313E-4836-4862-8961-35EF02396907@rabbitmq.com> References: <7ac296f2-4e7b-40c4-b1ee-a1f4bb3166c2@googlegroups.com> <53033376.2060208@rabbitmq.com> <53033671.5010503@redhat.com> <30B1313E-4836-4862-8961-35EF02396907@rabbitmq.com> Message-ID: Hi, On Tue, Feb 18, 2014 at 11:37 AM, Michael Klishin wrote: > On 18 Feb 2014, at 14:31, Gordon Sim wrote: > >> What I often do in cases like that is have the second queue as you suggest, but instead of using an 'exclusive consumer' lock on it, just have a single message in it. > > It's worth mentioning that it is possible to enforce the single message limit: > http://www.rabbitmq.com/maxlength.html I'm not sure this will help, because "Queue length is a measure that takes into account ready messages, ignoring unacknowledged messages and message size." So unacked messages, which is what this technique is issuing, won't prevent someone from publishing a new message, thus allowing a second producer to grab that message and start producing when it shouldn't. Regards, Alvaro From ponmuthu at omnesysindia.com Tue Feb 18 12:09:31 2014 From: ponmuthu at omnesysindia.com (PONMUTHU M) Date: Tue, 18 Feb 2014 04:09:31 -0800 (PST) Subject: [rabbitmq-discuss] exchange.bind in erlang Message-ID: <1392725370355-33455.post@n5.nabble.com> hi All, i want to acheive E 2 E in erlang that had been done also. but issue is flow of data between these two exchanges say for naming E1 & E2 ... 1. i want all E2 msg to E1 .. its done with routing_key = <<"#">> 2.few of msg should be come from E1 to E2 . say example : routing_key = #.reply1.# or #.reply2.# am strucking in second point !!!!. when reply1 & reply2 msg recvied from E1 to E2 , that also routed to E1 again using point 1. how to avoid this ... ? kindly help me on this ... !!! regards, PONMUTHU M ponmuthu.m at thomsonreuters.com ----- -- PONMUTHU M -- -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/exchange-bind-in-erlang-tp33455.html Sent from the RabbitMQ mailing list archive at Nabble.com. From ponmuthu at omnesysindia.com Tue Feb 18 12:18:12 2014 From: ponmuthu at omnesysindia.com (PONMUTHU M) Date: Tue, 18 Feb 2014 04:18:12 -0800 (PST) Subject: [rabbitmq-discuss] how to get list of bindings for a node Message-ID: <1392725892064-33456.post@n5.nabble.com> hi all, how to get list of bindings for a node without rabbitmqctl , is it possible to get using amp_connections or amqp_channels ? ----- -- PONMUTHU M -- -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/how-to-get-list-of-bindings-for-a-node-tp33456.html Sent from the RabbitMQ mailing list archive at Nabble.com. From mklishin at gopivotal.com Tue Feb 18 12:39:33 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 18 Feb 2014 16:39:33 +0400 Subject: [rabbitmq-discuss] how to get list of bindings for a node In-Reply-To: <1392725892064-33456.post@n5.nabble.com> References: <1392725892064-33456.post@n5.nabble.com> Message-ID: <046889A2-F62B-40F6-8231-16914EFAE2A3@rabbitmq.com> On 18 Feb 2014, at 16:18, PONMUTHU M wrote: > how to get list of bindings for a node without rabbitmqctl , > > is it possible to get using amp_connections or amqp_channels ? Using HTTP API: http://rabbitmq.com/management.html http://hg.rabbitmq.com/rabbitmq-management/raw-file/rabbitmq_v3_2_3/priv/www/api/index.html MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Tue Feb 18 12:41:18 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 18 Feb 2014 16:41:18 +0400 Subject: [rabbitmq-discuss] exchange.bind in erlang In-Reply-To: <1392725370355-33455.post@n5.nabble.com> References: <1392725370355-33455.post@n5.nabble.com> Message-ID: On 18 Feb 2014, at 16:09, PONMUTHU M wrote: > 1. i want all E2 msg to E1 .. its done with routing_key = <<"#">> > 2.few of msg should be come from E1 to E2 . say example : routing_key = > #.reply1.# or #.reply2.# > > am strucking in second point !!!!. > > when reply1 & reply2 msg recvied from E1 to E2 , that also routed to E1 > again using point 1. > > how to avoid this ... ? A routing key ?#? will match everything. Why don?t you make it requests.# and replies.#reply1.#/replies.#reply2.# to disambiguate. MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Tue Feb 18 12:43:33 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 18 Feb 2014 16:43:33 +0400 Subject: [rabbitmq-discuss] how to get list of bindings for a node In-Reply-To: <046889A2-F62B-40F6-8231-16914EFAE2A3@rabbitmq.com> References: <1392725892064-33456.post@n5.nabble.com> <046889A2-F62B-40F6-8231-16914EFAE2A3@rabbitmq.com> Message-ID: <67A43CF9-C5EF-48F9-8900-6D337FD98CA2@gopivotal.com> On 18 Feb 2014, at 16:39, Michael Klishin wrote: > Using HTTP API: > > http://rabbitmq.com/management.html > http://hg.rabbitmq.com/rabbitmq-management/raw-file/rabbitmq_v3_2_3/priv/www/api/index.html I see in another thread that you use RabbitMQ from Erlang. If Erlang cookie sync between your app and RabbitMQ nodes is possible, you can call rabbit_binding:list/1, rabbit_binding:list_for_source/1 and so on via distributed Erlang. -- MK Software Engineer, Pivotal/RabbitMQ From ponmuthu at omnesysindia.com Tue Feb 18 13:39:11 2014 From: ponmuthu at omnesysindia.com (PONMUTHU M) Date: Tue, 18 Feb 2014 05:39:11 -0800 (PST) Subject: [rabbitmq-discuss] exchange.bind in erlang In-Reply-To: References: <1392725370355-33455.post@n5.nabble.com> Message-ID: <1392730751182-33460.post@n5.nabble.com> hi, from E2 to E1 more routing_keys will be used . so only option to flow msg from E2 -> E1 is my using # is there any way to check same msg received into a Exchnage or not ? or like no of habs ? ----- -- PONMUTHU M -- -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/exchange-bind-in-erlang-tp33455p33460.html Sent from the RabbitMQ mailing list archive at Nabble.com. From jaishreegn at gmail.com Tue Feb 18 14:42:40 2014 From: jaishreegn at gmail.com (jayashree gn) Date: Tue, 18 Feb 2014 07:42:40 -0700 Subject: [rabbitmq-discuss] clustering vs federation Message-ID: Hi All. We currently use clustering for our production environment. we have 3 HA nodes in cluster. Was reading about how to use federation and was hoping to read or get more information about the advantages of using federation in production environment VS clustering. Any pointers in this direction would be very useful in knowing pros and cos of our environment. Thank You! -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Tue Feb 18 15:06:18 2014 From: cwstorm at gmail.com (cw storm) Date: Tue, 18 Feb 2014 10:06:18 -0500 Subject: [rabbitmq-discuss] Curious question about the consumer callback function handleShutDownSignal Message-ID: My my design, both my connection and channel are related. If the connection is force (UI) or restart via the command line, it'll also close the channel. That means if you have handleShutDownSignal implemented, whatever inside that block will be executed. Well, inside that block of code, I establish a new connection/channel. My question is and probably already know the answer but maybe I can determine ahead of time if I should establish a new connection/channel or not. I'm asking because in development, it's annoying that the consumer subscription always re-establish itself when I manually close the connection either via UI or command console. I'm sure I can probably come up with a creative way to handle it but if there's something better, I'm all ears. -------------- next part -------------- An HTML attachment was scrubbed... URL: From pk_basu at hotmail.com Tue Feb 18 17:35:35 2014 From: pk_basu at hotmail.com (pkbasu) Date: Tue, 18 Feb 2014 09:35:35 -0800 (PST) Subject: [rabbitmq-discuss] Duplicate exchange detection Message-ID: <1392744935359-33463.post@n5.nabble.com> Hello, I want to have durable exchanges which stay around even if there are no queues bound to it. One exchange per user. So, the first time an user John connects to a broker (broker1), an exchange, say exchange.john is created for him. All messages sent to john will be sent to that exchange. Now let's say after a few days John connects again and this time connects to a different RabbitMQ broker (broker2) (maybe this one is in a different geographical location). If his client tries to "Declare" the exchange again, will this new broker create a duplicate exchange or will it know that such an exchange already exists and use that exchange (even though it is on broker1). I don't want any duplicates, what should I do in that case. Thanks a lot! -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Duplicate-exchange-detection-tp33463.html Sent from the RabbitMQ mailing list archive at Nabble.com. From simon at rabbitmq.com Tue Feb 18 17:35:54 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Tue, 18 Feb 2014 17:35:54 +0000 Subject: [rabbitmq-discuss] Duplicate exchange detection In-Reply-To: <1392744935359-33463.post@n5.nabble.com> References: <1392744935359-33463.post@n5.nabble.com> Message-ID: <530399FA.4010407@rabbitmq.com> On 18/02/14 17:35, pkbasu wrote: > Now let's say after a few days John connects again and this time connects to > a different RabbitMQ broker (broker2) (maybe this one is in a different > geographical location). If his client tries to "Declare" the exchange again, > will this new broker create a duplicate exchange or will it know that such > an exchange already exists and use that exchange (even though it is on > broker1). I don't want any duplicates, what should I do in that case. If these two brokers are clustered or have exchange federation configured, then the exchange will already be there. If the two brokers are just two separate brokers then... well, they're separate. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From pk_basu at hotmail.com Tue Feb 18 18:24:31 2014 From: pk_basu at hotmail.com (pkbasu) Date: Tue, 18 Feb 2014 10:24:31 -0800 (PST) Subject: [rabbitmq-discuss] Duplicate exchange detection In-Reply-To: <530399FA.4010407@rabbitmq.com> References: <1392744935359-33463.post@n5.nabble.com> <530399FA.4010407@rabbitmq.com> Message-ID: <1392747871927-33465.post@n5.nabble.com> Thanks Simon. Let's say that exchange federation is setup. How does it work now? In the regular federation case exchange1 in broker1 and exchange2 in broker2 are federated and messages sent to exchange1 gets sent to exchange2. But in this case, there is only one exchange, "exchange.john" which is in broker1. How does broker2, where john is connected get the messages sent to "exchange.john" which is in broker1? -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Duplicate-exchange-detection-tp33463p33465.html Sent from the RabbitMQ mailing list archive at Nabble.com. From alan.antonuk at gmail.com Tue Feb 18 18:35:38 2014 From: alan.antonuk at gmail.com (Alan Antonuk) Date: Tue, 18 Feb 2014 10:35:38 -0800 Subject: [rabbitmq-discuss] Multiple listener over single connection in rabbitmq-c. In-Reply-To: <2C4703CD-EB0D-4FD1-9BC4-91EE17BE156A@rabbitmq.com> References: <2C4703CD-EB0D-4FD1-9BC4-91EE17BE156A@rabbitmq.com> Message-ID: On Tue, Feb 18, 2014 at 2:14 AM, Michael Klishin wrote: > > On 18 Feb 2014, at 04:40, Sampat Patle wrote: > > > I am new to rabbitmq. I would like to know whether is it possible to > have multiple channels and multiple listener over single connection using > threads. > > You can have multiple channels per connection (in fact, that's the whole > point of channels) > and multiple consumers per connection (or channel). This can be combined > with threads. > > Concurrency safety rule of thumb is: don't share channels between threads, > especially > when publishing. Having N threads, 1 per consumer, on the same channel may > be safe > depending on client implementation. > For rabbitmq-c: a amqp_connection_state_t (a 'connection') should not be used between different threads without synchronization. If you want to have multiple consumers over a single connection, my suggestion is to have a single thread manage consuming from all of the consumers over one connection, then dispatch the messages to different threads for processing as necessary. -Alan -------------- next part -------------- An HTML attachment was scrubbed... URL: From ejarendt at gmail.com Tue Feb 18 18:52:56 2014 From: ejarendt at gmail.com (Eric Arendt) Date: Tue, 18 Feb 2014 10:52:56 -0800 Subject: [rabbitmq-discuss] Exclusive Producers? In-Reply-To: References: <7ac296f2-4e7b-40c4-b1ee-a1f4bb3166c2@googlegroups.com> Message-ID: You could also use the exclusive queue consuming functionality instead of having to maintain a token message. Make sure you're the exclusive consumer of a queue before you connect as a producer. On Tue, Feb 18, 2014 at 2:23 AM, Alvaro Videla wrote: > Hi, > > Maybe there's an easier solution, but you could try this: > > - Create a queue called "lock" (or whatever name suits you) and > publish just one message to it, which will be the token producers need > to obtain in order to publish messages. > - Start your producers and make them consume just one message from > that queue, ie basic_qos(prefetch-count=1), also tell RabbitMQ that > you will ack the messages. The first producer arriving at the queue > will grab the "token". The other producers will sit idle, waiting for > said token. > - When the producer receives the "token", then it can start publishing > to the actual queue where you want the messages. > - If that consumer crashes or is shut down, then the "token" will be > requeued and some other of your backup producers will grab it, so it > can start publishing. > - if the producer wishes to stop, it can basic_reject(requeue=true) > the "token", so another producer can grab it and start publishing. > > Regards, > > Alvaro > > On Tue, Feb 18, 2014 at 3:06 AM, Tarun Mistry > wrote: > > Hi all, > > > > i'm new to RabbitMQ/AMQP. I am trying to solve an application level > > high-availability problem and belive i'm not thinking about things in the > > right way, I could use some advice! > > > > Here is what I would like to achieve, I could use some help understanding > > the RabbitMQ way of doing it. > > > > 1) I have several message producers, only 1 of these is the primary, the > > remainder as all backups. > > 2) The primary is defined as the process that controls a single queue and > > can post messages to it. > > 3) If the primary process fails, I want a backup to take over > immediately. > > 4) All backups are in a race to get control of the queue (from 2) > > 5) Once a backup gains control, it is now the primary. > > > > Using Rabbit speak, I feel like I need something called an "exclusive > > producer". > > > > Do I need to fudge this by introducing a second queue and having all the > > processes connect to this using the "exclusive consumer" pattern, and > then > > use this to determine who can control the main queue? > > > > Appreciate any advice > > > > Cheers > > TM > > > > > > > > > > _______________________________________________ > > rabbitmq-discuss mailing list > > rabbitmq-discuss at lists.rabbitmq.com > > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > > > -- > You received this message because you are subscribed to the Google Groups > "rabbitmq-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to rabbitmq-discuss+unsubscribe at googlegroups.com. > To post to this group, send email to rabbitmq-discuss at googlegroups.com. > Visit this group at http://groups.google.com/group/rabbitmq-discuss. > For more options, visit https://groups.google.com/groups/opt_out. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From videlalvaro at gmail.com Tue Feb 18 19:08:06 2014 From: videlalvaro at gmail.com (Alvaro Videla) Date: Tue, 18 Feb 2014 20:08:06 +0100 Subject: [rabbitmq-discuss] Exclusive Producers? In-Reply-To: References: <7ac296f2-4e7b-40c4-b1ee-a1f4bb3166c2@googlegroups.com> Message-ID: On Tue, Feb 18, 2014 at 7:52 PM, Eric Arendt wrote: > You could also use the exclusive queue consuming functionality instead of > having to maintain a token message. Make sure you're the exclusive consumer > of a queue before you connect as a producer. As far as I understand the OP is asking for exclusive *producers* not consumers. -Alvaro From farshadfirouzi at gmail.com Tue Feb 18 19:15:19 2014 From: farshadfirouzi at gmail.com (farshad firouzi) Date: Tue, 18 Feb 2014 20:15:19 +0100 Subject: [rabbitmq-discuss] NAT traversal in rabbitmq Message-ID: Hi, I am wondering whats the underlying NAT traversal mechanism in the rabbitmq? is it based on heart-beats and a kind of LUT to keep the the dynamic IP/port of each client behind the NAT. or rabbitmq puts the data in the response of the heart-beats and sends it back to the client. Thanks -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Tue Feb 18 19:18:21 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 18 Feb 2014 23:18:21 +0400 Subject: [rabbitmq-discuss] Curious question about the consumer callback function handleShutDownSignal In-Reply-To: References: Message-ID: On 18 Feb 2014, at 19:06, cw storm wrote: > I'm asking because in development, it's annoying that the consumer subscription always re-establish itself when I manually close the connection either via UI or command console. I'm sure I can probably come up with a creative way to handle it but if there's something better, I'm all ears. If you want to recover some of the time and don?t want some other time, make it configurable for your app (e.g. using a config value, an environment variable). MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Tue Feb 18 19:22:34 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 18 Feb 2014 23:22:34 +0400 Subject: [rabbitmq-discuss] clustering vs federation In-Reply-To: References: Message-ID: <03676ED8-28F8-438A-8291-030864335A1C@rabbitmq.com> On 18 Feb 2014, at 18:42, jayashree gn wrote: > Was reading about how to use federation and was hoping to read or get more information about the advantages of using federation in production environment VS clustering. > > Any pointers in this direction would be very useful in knowing pros and cos of our environment. Clustering is a form of HA: messages are duplicated between queue master and mirrors. Consistency is favoured over availability (CP in CAP). See http://www.rabbitmq.com/clustering.html http://www.rabbitmq.com/partitions.html Federated exchanges replicate messages that are published to them to another node (or cluster), asynchronously. Availability is favoured over consistency: federated exchanges will reconnect and republish messages when downstream is not available. Federated queues distribute (but *not* replicate) messages between multiple nodes (or clusters). So, they are not mutually exclusive and solve different problems. MK Software Engineer, Pivotal/RabbitMQ From ponmuthu at omnesysindia.com Wed Feb 19 07:38:17 2014 From: ponmuthu at omnesysindia.com (PONMUTHU M) Date: Tue, 18 Feb 2014 23:38:17 -0800 (PST) Subject: [rabbitmq-discuss] how to get list of bindings for a node In-Reply-To: <67A43CF9-C5EF-48F9-8900-6D337FD98CA2@gopivotal.com> References: <1392725892064-33456.post@n5.nabble.com> <046889A2-F62B-40F6-8231-16914EFAE2A3@rabbitmq.com> <67A43CF9-C5EF-48F9-8900-6D337FD98CA2@gopivotal.com> Message-ID: <1392795497463-33473.post@n5.nabble.com> I see in another thread that you use RabbitMQ from Erlang. If Erlang cookie sync between your app and RabbitMQ nodes is possible, you can call rabbit_binding:list/1, rabbit_binding:list_for_source/1 and so on via distributed Erlang. kindly share management plugin creation tutorial which connects direct rabbit instead via amqp_connection . ----- -- PONMUTHU M -- -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/how-to-get-list-of-bindings-for-a-node-tp33456p33473.html Sent from the RabbitMQ mailing list archive at Nabble.com. From mklishin at gopivotal.com Wed Feb 19 07:44:57 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 19 Feb 2014 11:44:57 +0400 Subject: [rabbitmq-discuss] how to get list of bindings for a node In-Reply-To: <1392795497463-33473.post@n5.nabble.com> References: <1392725892064-33456.post@n5.nabble.com> <046889A2-F62B-40F6-8231-16914EFAE2A3@rabbitmq.com> <67A43CF9-C5EF-48F9-8900-6D337FD98CA2@gopivotal.com> <1392795497463-33473.post@n5.nabble.com> Message-ID: <75DC32F8-7FEE-4278-950D-F868C14296DA@rabbitmq.com> On 19 Feb 2014, at 11:38, PONMUTHU M wrote: > kindly share management plugin creation tutorial which connects direct > rabbit instead via amqp_connection . There is no special direct management client. If your Erlang app has the permission to talk to RabbitMQ nodes, you can invoke exported functions in rabbit_binding directly. If you want to use the direct Erlang client, pass #amqp_params_direct to amqp_connection:start/1. MK Software Engineer, Pivotal/RabbitMQ From rafiq.ahmed at gmail.com Wed Feb 19 07:12:17 2014 From: rafiq.ahmed at gmail.com (rafiq.ahmed) Date: Tue, 18 Feb 2014 23:12:17 -0800 (PST) Subject: [rabbitmq-discuss] How to detect RabbitMQ mnesia database corruption ? Message-ID: <1392793937121-33472.post@n5.nabble.com> Hi, Is there is way to identify that RabbitMQ is not coming up because of mnesia database corruption ? From rabbitmq log things are not very clear. Is there is particulate or set of error message(s) ,which we get when mnesia is corrupted ?I have gone through many forums and found that only way to recover is deleting mnesia and restart rabbitmq. Is there are any other way(s) to recover, other then deleting mnesia as deletion lead to loss of data.Thanks,Rafiq -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/How-to-detect-RabbitMQ-mnesia-database-corruption-tp33472.html Sent from the RabbitMQ mailing list archive at Nabble.com. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Wed Feb 19 07:51:42 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 19 Feb 2014 11:51:42 +0400 Subject: [rabbitmq-discuss] How to detect RabbitMQ mnesia database corruption ? In-Reply-To: <1392793937121-33472.post@n5.nabble.com> References: <1392793937121-33472.post@n5.nabble.com> Message-ID: On 19 Feb 2014, at 11:12, rafiq.ahmed wrote: > From rabbitmq log things are not very clear. Please post said log. Data corruption can mean different things: from on disk data corruption to inconsistent data. MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Wed Feb 19 08:11:31 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 19 Feb 2014 12:11:31 +0400 Subject: [rabbitmq-discuss] ANN Bunny 1.1.3 is released Message-ID: <325DB48E-C54C-4B6A-9EA0-EB2C1D1F7404@rabbitmq.com> Bunny [1] 1.1.3 is released. This is a bug fix that introduce a nice latency improvement for apps that publish a lot of small messages very frequently: https://f.cloud.github.com/assets/1800798/2175168/ac09c4dc-95ba-11e3-93d9-a28fb25a8327.png Release notes: http://blog.rubyrabbitmq.info/blog/2014/02/15/bunny-1-dot-1-3-is-released/ MK Software Engineer, Pivotal/RabbitMQ From spexxter at gmail.com Wed Feb 19 08:55:12 2014 From: spexxter at gmail.com (Kristian Jensen) Date: Wed, 19 Feb 2014 00:55:12 -0800 (PST) Subject: [rabbitmq-discuss] LDAP backend problem Message-ID: <9bb151c4-e8fa-46d6-8412-78060eb4d48c@googlegroups.com> Hi, We use Active Directory as an LDAP auth backen for Rabbitmq. We have 3 AD servers, and alle 3 are configured in RabbitMQ. But if we shutdown one of them, we are no longer able to access RabbitMQ using an LDAP account. I get the login promt, om the management site(http://host:15672), but if i use a LDAP account, the site is not responding. Why is the LDAP module not robust againt unavailable LDAP backens? - could you intruduce a sort of healtcheck? RabbitMQ 3.2.3, Erlang R15B01 rabbitmq.config [ {rabbit, [{auth_backends, [rabbit_auth_backend_ldap, rabbit_auth_backend_internal]}]}, {rabbitmq_auth_backend_ldap, [ {servers, ["devopsad01.dev.local", "devopsad02.dev.local","devopsad03.dev.local"]}, {dn_lookup_attribute, "userPrincipalName"}, {dn_lookup_base, "DC=dev,DC=local"}, {user_dn_pattern, "${username}@dev.local"}, {use_ssl, false}, {port, 389}, {log, false}, {vhost_access_query, {in_group, "CN=sg_sh_mq_vhost-${vhost},OU=vhosts,OU=MQ,OU=Security Groups,OU=Groups,OU=SharedHosting,OU=eCG,DC=dev,DC=local"}} {resource_access_query, {for, [{permission, configure, {constant, true}}, {permission, write, {for, [{resource, queue, {constant, true}}, {resource, exchange, {constant, true}}]}}, {permission, read, {for, [{resource, exchange, {constant, true}}, {resource, queue, {constant, true}}]}} ] }}, {tag_queries, [{administrator, {in_group, "CN=sg_sh_mq-admin,OU=MQ,OU=Security Groups,OU=Groups,OU=SharedHosting,OU=eCG,DC=dev,DC=local"}}, {management, {constant, true}}]} ] } ]. -------------- next part -------------- An HTML attachment was scrubbed... URL: From Verteiler+rabbitmq-discuss at LuftHans.com Wed Feb 19 09:25:31 2014 From: Verteiler+rabbitmq-discuss at LuftHans.com (der.hans) Date: Wed, 19 Feb 2014 02:25:31 -0700 (MST) Subject: [rabbitmq-discuss] 3.2.2 triple mem Message-ID: moin moin, for one of our applications we have 3 clusters, each with 2 brokers. One cluster was upgraded to 3.2.2, the other two are still running 3.1.5. The brokers in the 3.2.2 cluster are using more memory than they were when running 3.1.5. The 3.2.2 cluster is using 9 GB of memory, but the 3.1.5 clusters are only using about 3 GB. Memory used by the queues on each of the 6 brokers is about 2GB. Is there a known reason for 3.2.2 to use 3x the memory used by 3.1.5 for the same load? ciao, der.hans -- # http://www.LuftHans.com/ http://www.LuftHans.com/Classes/ # If you're not learning, you're not living. - der.hans From krjensen at ebay.com Wed Feb 19 09:34:28 2014 From: krjensen at ebay.com (Jensen, Kristian) Date: Wed, 19 Feb 2014 09:34:28 +0000 Subject: [rabbitmq-discuss] Active Directory as an LDAP auth backen for Rabbitmq Message-ID: <10DB2D69D5617B45AA54F1AA801DE34D2992300F@DUB-EXDDA-S11.corp.ebay.com> Hi, We use Active Directory as an LDAP auth backen for Rabbitmq. We have 3 AD servers, and all 3 are configured in RabbitMQ. But if we shutdown one of them, we are no longer able to access RabbitMQ using an LDAP account. I get the login promt, om the management site(http://host:15672), but if i use a LDAP account, the site is not responding. Why is the LDAP module not robust againt unavailable LDAP backens? - could you intruduce a sort of healtcheck? We need to be able to take down 2/3 LDAP servers, and still be able to use RabbitMQ RabbitMQ 3.2.3, Erlang R15B01 rabbitmq.config [ {rabbit, [{auth_backends, [rabbit_auth_backend_ldap, rabbit_auth_backend_internal]}]}, {rabbitmq_auth_backend_ldap, [ {servers, ["devopsad01.dev.local", "devopsad02.dev.local","devopsad03.dev.local"]}, {dn_lookup_attribute, "userPrincipalName"}, {dn_lookup_base, "DC=dev,DC=local"}, {user_dn_pattern, "${username}@dev.local"}, {use_ssl, false}, {port, 389}, {log, false}, {vhost_access_query, {in_group, "CN=sg_sh_mq_vhost-${vhost},OU=vhosts,OU=MQ,OU=Security Groups,OU=Groups,OU=SharedHosting,OU=eCG,DC=dev,DC=local"}} {resource_access_query, {for, [{permission, configure, {constant, true}}, {permission, write, {for, [{resource, queue, {constant, true}}, {resource, exchange, {constant, true}}]}}, {permission, read, {for, [{resource, exchange, {constant, true}}, {resource, queue, {constant, true}}]}} ] }}, {tag_queries, [{administrator, {in_group, "CN=sg_sh_mq-admin,OU=MQ,OU=Security Groups,OU=Groups,OU=SharedHosting,OU=eCG,DC=dev,DC=local"}}, {management, {constant, true}}]} ] } ]. Med venlig hilsen / Best regards Kristian Jensen System Engineer | Site Operations Denmark | eBay Classifieds Group Phone: +45 40226333 | krjensen at ebay.com [classifiedsGroup] -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.png Type: image/png Size: 3531 bytes Desc: image001.png URL: From Tobias.Gutzmann at ist.com Wed Feb 19 09:35:51 2014 From: Tobias.Gutzmann at ist.com (Tobias Gutzmann) Date: Wed, 19 Feb 2014 09:35:51 +0000 Subject: [rabbitmq-discuss] Advice on where to reset connection and channel In-Reply-To: References: Message-ID: <3CE1D10F927704449D41EF6BCB35373D4DD784@hermes> Hi Michael, I wonder if you have an estimate on when connection recovery (branch bug14587) will make it into the official release. We have connection recovery implemented internally, but we'd like to switch to something official. Regards, Tobias -----Ursprungligt meddelande----- Fr?n: rabbitmq-discuss [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] F?r Michael Klishin Skickat: den 16 februari 2014 07:45 Till: Discussions about RabbitMQ ?mne: Re: [rabbitmq-discuss] Advice on where to reset connection and channel On 16 Feb 2014, at 09:09, cw storm wrote: > I don't think I would want to include the function to re-establish the connection/channel in both of the handlers. So, where would I perform the re-connect logic. Maybe I should just pick one. JVM language clients that support reconnection, including RabbitMQ Java client itself on branch bug14587, have a wrapper connection that delegates everything to the underlying connection (so, implements com.rabbitmq.client.Connection) and adds a shutdown listener that performs recovery: * Reconnects (creates a new delegate connection) * Reopens all channels (there is a wrapper Channel as well), including various listeners * Recovers queues, exchange, bindings, and consumers (in this order) > Also, another consumer callback name "handleCancel". This will only be invoke when an unexpected cancellation by the broker. That would also mean I would have to reconsume from the other node by creating another connection/channel. I assume this does not get invoke during a restart of the broker or a force close connection. That would only apply to the two that I mentioned, right? Not "unexpected cancellation" but when the queue is deleted. MK Software Engineer, Pivotal/RabbitMQ _______________________________________________ rabbitmq-discuss mailing list rabbitmq-discuss at lists.rabbitmq.com https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss From mklishin at gopivotal.com Wed Feb 19 09:40:05 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 19 Feb 2014 13:40:05 +0400 Subject: [rabbitmq-discuss] 3.2.2 triple mem In-Reply-To: References: Message-ID: On 19 Feb 2014, at 13:25, der.hans wrote: > Is there a known reason for 3.2.2 to use 3x the memory used by 3.1.5 for > the same load? There was one memory leak fixed in 3.2.3 (bug 25936): http://www.rabbitmq.com/release-notes/README-3.2.3.txt Please try 3.2.3 and if it does not help, post `rabbitmqctl report` output. MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Wed Feb 19 09:42:35 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 19 Feb 2014 13:42:35 +0400 Subject: [rabbitmq-discuss] Advice on where to reset connection and channel In-Reply-To: <3CE1D10F927704449D41EF6BCB35373D4DD784@hermes> References: <3CE1D10F927704449D41EF6BCB35373D4DD784@hermes> Message-ID: On 19 Feb 2014, at 13:35, Tobias Gutzmann wrote: > I wonder if you have an estimate on when connection recovery (branch bug14587) will make it into the official release. We have connection recovery implemented internally, but we'd like to switch to something official. There is a good chance it will be in 3.3 but no promises. It definitely won?t be in 3.2.x. MK Software Engineer, Pivotal/RabbitMQ From matthias at rabbitmq.com Wed Feb 19 09:53:13 2014 From: matthias at rabbitmq.com (Matthias Radestock) Date: Wed, 19 Feb 2014 09:53:13 +0000 Subject: [rabbitmq-discuss] Advice on where to reset connection and channel In-Reply-To: References: <3CE1D10F927704449D41EF6BCB35373D4DD784@hermes> Message-ID: <53047F09.7000108@rabbitmq.com> On 19/02/14 09:42, Michael Klishin wrote: > There is a good chance it will be in 3.3 but no promises. It > definitely won?t be in 3.2.x. ...and 3.3 currently is 1-2 months away. Again, no promises. Matthias. From simon at rabbitmq.com Wed Feb 19 10:30:19 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 19 Feb 2014 10:30:19 +0000 Subject: [rabbitmq-discuss] 3.2.2 triple mem In-Reply-To: References: Message-ID: <530487BB.9060307@rabbitmq.com> On 19/02/14 09:25, der.hans wrote: > Is there a known reason for 3.2.2 to use 3x the memory used by 3.1.5 for > the same load? Possibly. 3.1.x and earlier would page messages to disk if memory use went above 20% of the vm_memory_high_watermark (i.e. if > 8% memory was used with the default watermark). 3.2.x made this setting configurable (as vm_memory_high_watermark_paging_ratio) and also changed the default value for it from 20% to 50%, so it will start paging once > 20% memory is used. See http://www.rabbitmq.com/memory.html#memsup-paging for information on this setting. In general the default values for vm_memory_high_watermark and vm_memory_high_watermark_paging_ratio are set on the assumption that RabbitMQ is the only significant thing running on the machine, and thus that it's reasonable for it to use all available memory if it will make things go faster. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Wed Feb 19 10:49:46 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 19 Feb 2014 10:49:46 +0000 Subject: [rabbitmq-discuss] LDAP backend problem In-Reply-To: <9bb151c4-e8fa-46d6-8412-78060eb4d48c@googlegroups.com> References: <9bb151c4-e8fa-46d6-8412-78060eb4d48c@googlegroups.com> Message-ID: <53048C4A.1080907@rabbitmq.com> On 19/02/14 08:55, Kristian Jensen wrote: > Why is the LDAP module not robust againt unavailable LDAP backens? - > could you intruduce a sort of healtcheck? We just pass the list of servers down to the underlying Erlang LDAP implementation (eldap). As far as I can see that then attempts to establish a TCP connection to each server in turn; on failure it tries the next one. I assume that attempting to connect to one of your unavailable LDAP servers is taking a long time (i.e. connections are timing out rather than coming back with "connection refused" or "no route to host" or whatever). One thing I notice is that eldap supports the idea of a connection timeout (defaulting to infinity); we don't support changing that from the default. I'll file a bug to fix that. But if LDAP connections are timing out then we are going to struggle to handle that without incurring similar delays in AMQP / HTTP / STOMP / whatever. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Wed Feb 19 10:56:46 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 19 Feb 2014 10:56:46 +0000 Subject: [rabbitmq-discuss] NAT traversal in rabbitmq In-Reply-To: References: Message-ID: <53048DEE.3070408@rabbitmq.com> On 18/02/14 19:15, farshad firouzi wrote: > I am wondering whats the underlying NAT traversal mechanism in the rabbitmq? > is it based on heart-beats and a kind of LUT to keep the the dynamic > IP/port of each client behind the NAT. or rabbitmq puts the data in the > response of the heart-beats and sends it back to the client. RabbitMQ protocols all run on top of TCP/IP. It doesn't get involved in NAT itself. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From krjensen at ebay.com Wed Feb 19 11:01:36 2014 From: krjensen at ebay.com (Jensen, Kristian) Date: Wed, 19 Feb 2014 11:01:36 +0000 Subject: [rabbitmq-discuss] LDAP backend problem In-Reply-To: <53048C4A.1080907@rabbitmq.com> References: <9bb151c4-e8fa-46d6-8412-78060eb4d48c@googlegroups.com> <53048C4A.1080907@rabbitmq.com> Message-ID: <10DB2D69D5617B45AA54F1AA801DE34D299232FB@DUB-EXDDA-S11.corp.ebay.com> You are right, it will try the next one. But the timeout is SO long, that it makes rabbitmq useless, until all LDAP servers is back up. So it would be nice, if we can change the default "infinity" to something like 10ms. Med venlig hilsen / Best regards Kristian Jensen System Engineer | Site Operations Denmark | eBay Classifieds Group? Phone: +45 40226333 | krjensen at ebay.com ? -----Original Message----- From: rabbitmq-discuss [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Simon MacMullen Sent: 19. februar 2014 11:50 To: Discussions about RabbitMQ Cc: Kristian Jensen Subject: Re: [rabbitmq-discuss] LDAP backend problem On 19/02/14 08:55, Kristian Jensen wrote: > Why is the LDAP module not robust againt unavailable LDAP backens? - > could you intruduce a sort of healtcheck? We just pass the list of servers down to the underlying Erlang LDAP implementation (eldap). As far as I can see that then attempts to establish a TCP connection to each server in turn; on failure it tries the next one. I assume that attempting to connect to one of your unavailable LDAP servers is taking a long time (i.e. connections are timing out rather than coming back with "connection refused" or "no route to host" or whatever). One thing I notice is that eldap supports the idea of a connection timeout (defaulting to infinity); we don't support changing that from the default. I'll file a bug to fix that. But if LDAP connections are timing out then we are going to struggle to handle that without incurring similar delays in AMQP / HTTP / STOMP / whatever. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal _______________________________________________ rabbitmq-discuss mailing list rabbitmq-discuss at lists.rabbitmq.com https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss From simon at rabbitmq.com Wed Feb 19 10:58:14 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 19 Feb 2014 10:58:14 +0000 Subject: [rabbitmq-discuss] Duplicate exchange detection In-Reply-To: <1392747871927-33465.post@n5.nabble.com> References: <1392744935359-33463.post@n5.nabble.com> <530399FA.4010407@rabbitmq.com> <1392747871927-33465.post@n5.nabble.com> Message-ID: <53048E46.6010000@rabbitmq.com> On 18/02/14 18:24, pkbasu wrote: > Thanks Simon. Let's say that exchange federation is setup. How does it work > now? In the regular federation case exchange1 in broker1 and exchange2 in > broker2 are federated and messages sent to exchange1 gets sent to exchange2. > But in this case, there is only one exchange, "exchange.john" which is in > broker1. If exchange federation is set up then declaring the exchange on broker1 causes it to be replicated on broker2. What are you really trying to find out here? What problem are you trying to solve? Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Wed Feb 19 11:12:33 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 19 Feb 2014 11:12:33 +0000 Subject: [rabbitmq-discuss] LDAP backend problem In-Reply-To: <10DB2D69D5617B45AA54F1AA801DE34D299232FB@DUB-EXDDA-S11.corp.ebay.com> References: <9bb151c4-e8fa-46d6-8412-78060eb4d48c@googlegroups.com> <53048C4A.1080907@rabbitmq.com> <10DB2D69D5617B45AA54F1AA801DE34D299232FB@DUB-EXDDA-S11.corp.ebay.com> Message-ID: <530491A1.5000007@rabbitmq.com> On 19/02/14 11:01, Jensen, Kristian wrote: > So it would be nice, if we can change the default "infinity" to something like 10ms. Well, OK, since you asked nicely. It'll be in tonight's nightly build and later in 3.3.0. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From pat at munkiisoft.com Wed Feb 19 11:22:10 2014 From: pat at munkiisoft.com (Patrick Long) Date: Wed, 19 Feb 2014 11:22:10 +0000 Subject: [rabbitmq-discuss] Queues declared with "x-ha-policy", "all" but not mirrored Message-ID: I am sure I have misunderstood something. Exchange - Durable Queue - Durable QueueDeclare code looks like this (C#) model.QueueDeclare(workQueueName, true, false, false, new Dictionary() { { "x-ha-policy", "all" } }); What that says to me is make this a highly available queue mirrored across all nodes in the cluster. However if I try and run rabitmqctl sync_queue it says that queue is not mirrored. Whilst on the subject of queue and their location. When I use the Management UI there is a "Node" column. Is that the current master for that queue? Our queues do not appear in the queue list when the node in that column is off. More evidence that they are not mirrored TIA Patrick -- Patrick Long - Munkiisoft Ltd -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Wed Feb 19 11:20:54 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 19 Feb 2014 11:20:54 +0000 Subject: [rabbitmq-discuss] Queues declared with "x-ha-policy", "all" but not mirrored In-Reply-To: References: Message-ID: <53049396.9070308@rabbitmq.com> On 19/02/14 11:22, Patrick Long wrote: > model.QueueDeclare(workQueueName, true, false, false, new > Dictionary() { { "x-ha-policy", "all" } }); > > What that says to me is make this a highly available queue mirrored > across all nodes in the cluster. It does in RabbitMQ 2.x. (see http://previous.rabbitmq.com/v2_8_x/ha.html) In RabbitMQ 3.x this was changed to be configured by policy (see http://www.rabbitmq.com/ha.html) You might also want to read: http://www.rabbitmq.com/blog/2012/11/19/breaking-things-with-rabbitmq-3-0/ Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From rafiq.ahmed at gmail.com Wed Feb 19 11:44:20 2014 From: rafiq.ahmed at gmail.com (Rafiq) Date: Wed, 19 Feb 2014 03:44:20 -0800 (PST) Subject: [rabbitmq-discuss] How to detect RabbitMQ mnesia database corruption ? In-Reply-To: References: <1392793937121-33472.post@n5.nabble.com> Message-ID: <1392810260722-33492.post@n5.nabble.com> We are using rabbitmq for some data-center management application. In past 12 month , I have see 4 to 5 rabbitmq db corruption issues. My point is, if there is any kind of mnesia db corruption (whatever is problem), by seeing rabbitmq log, can we identify that there is something wrong with mnesia database ? There are any log pattern or error code ? What I want to do it , automate the rabbitmq mnesia database deletion process, only and only if there is mnesia db courrupted. And for same I am looking for clue , how to identify (in script) that rabbitmq is actually not starting because of mnesia db corruption. Previously, I have gone through the logs and didn't find any specific point, which say's that db is corrupted. -Rafiq -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/How-to-detect-RabbitMQ-mnesia-database-corruption-tp33472p33492.html Sent from the RabbitMQ mailing list archive at Nabble.com. From Verteiler+rabbitmq-discuss at LuftHans.com Wed Feb 19 15:01:41 2014 From: Verteiler+rabbitmq-discuss at LuftHans.com (der.hans) Date: Wed, 19 Feb 2014 08:01:41 -0700 (MST) Subject: [rabbitmq-discuss] 3.2.2 triple mem In-Reply-To: References: Message-ID: Am 19. Feb, 2014 schw?tzte Michael Klishin so: moin moin, > On 19 Feb 2014, at 13:25, der.hans wrote: > >> Is there a known reason for 3.2.2 to use 3x the memory used by 3.1.5 for >> the same load? > > There was one memory leak fixed in 3.2.3 (bug 25936): > http://www.rabbitmq.com/release-notes/README-3.2.3.txt > > Please try 3.2.3 and if it does not help, post `rabbitmqctl report` output. We'll test 3.2.3 and see if we can move to it. ciao, der.hans > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -- # http://www.LuftHans.com/ http://www.LuftHans.com/Classes/ # "Be in a unit like W, he was in the same national guard unit as bigfoot, # about the same number of sightings." -- Robin Williams, 03Aug2006 From Verteiler+rabbitmq-discuss at LuftHans.com Wed Feb 19 15:11:15 2014 From: Verteiler+rabbitmq-discuss at LuftHans.com (der.hans) Date: Wed, 19 Feb 2014 08:11:15 -0700 (MST) Subject: [rabbitmq-discuss] 3.2.2 triple mem In-Reply-To: <530487BB.9060307@rabbitmq.com> References: <530487BB.9060307@rabbitmq.com> Message-ID: Am 19. Feb, 2014 schw?tzte Simon MacMullen so: moin moin, > On 19/02/14 09:25, der.hans wrote: >> Is there a known reason for 3.2.2 to use 3x the memory used by 3.1.5 for >> the same load? > > Possibly. 3.1.x and earlier would page messages to disk if memory use went > above 20% of the vm_memory_high_watermark (i.e. if > 8% memory was used with > the default watermark). > > 3.2.x made this setting configurable (as > vm_memory_high_watermark_paging_ratio) and also changed the default value for > it from 20% to 50%, so it will start paging once > 20% memory is used. Cool. Sounds like a good feature to me. I'll propose adjusting the setting to prove that's the difference and allay any worries. > See http://www.rabbitmq.com/memory.html#memsup-paging for information on this > setting. Would you add a comment to that page that the default was 20% prior to 3.2.x? > In general the default values for vm_memory_high_watermark and > vm_memory_high_watermark_paging_ratio are set on the assumption that RabbitMQ > is the only significant thing running on the machine, and thus that it's > reasonable for it to use all available memory if it will make things go > faster. A very good presumption in our case :). These machines are dedicated brokers, so I'm in favor of exclusive use configurations. ciao, der.hans -- # http://www.LuftHans.com/ http://www.LuftHans.com/Classes/ # ... make it clear I support "Free Software" and not "Open Source", # and don't imply I agree that there is such a thing as a # "Linux operating system". - rms From mklishin at gopivotal.com Wed Feb 19 15:19:35 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 19 Feb 2014 19:19:35 +0400 Subject: [rabbitmq-discuss] 3.2.2 triple mem In-Reply-To: References: Message-ID: On 19 Feb 2014, at 19:01, der.hans wrote: > We'll test 3.2.3 and see if we can move to it. Note that it is *much* more likely that you are affected by the paging change. See http://www.rabbitmq.com/memory.html#memsup-paging and consider tweaking the config to be closer to 3.1.x default if this is what you want. MK Software Engineer, Pivotal/RabbitMQ From derekejohnston at gmail.com Wed Feb 19 15:21:51 2014 From: derekejohnston at gmail.com (Derek Johnston) Date: Wed, 19 Feb 2014 15:21:51 +0000 Subject: [rabbitmq-discuss] System.ObjectDisposedException Message-ID: Hi keep getting this error System.ObjectDisposedException was unhandled Message: An unhandled exception of type 'System.ObjectDisposedException' occurred in System.dll here is my code taken from here http://freshbrewedcode.com/davidneal/2011/11/30/scale-windows-services-with-rabbitmq/ static void Main() { // Set up the RabbitMQ connection and channel var connectionFactory = new ConnectionFactory { HostName = "localhost", Port = 5672, UserName = "guest", Password = "guest", Protocol = Protocols.AMQP_0_9_1, RequestedFrameMax = UInt32.MaxValue, RequestedHeartbeat = UInt16.MaxValue }; using (var connection = connectionFactory.CreateConnection()) using (var channel = connection.CreateModel()) { // This instructs the channel not to prefetch more than one message channel.BasicQos(0, 1, false); // Create a new, durable exchange channel.ExchangeDeclare("sample-ex", ExchangeType.Direct, true, false, null); // Create a new, durable queue channel.QueueDeclare("sample-queue", true, false, false, null); // Bind the queue to the exchange channel.QueueBind("sample-queue", "sample-ex", "optional-routing-key"); using (var subscription = new Subscription(channel, "sample-queue", false)) { Console.WriteLine("Waiting for messages..."); var encoding = new UTF8Encoding(); while (channel.IsOpen) { BasicDeliverEventArgs eventArgs; var success = subscription.Next(2000, out eventArgs); if (success == false) continue; var msgBytes = eventArgs.Body; var message = encoding.GetString(msgBytes); Console.WriteLine(message); channel.BasicAck(eventArgs.DeliveryTag, false); } } } } /++++++++++++++++++++++++++++++++++++++++++++++++/ private static void Main() { // Set up the RabbitMQ connection and channel var connectionFactory = new ConnectionFactory { HostName = "localhost", Port = 5672, UserName = "guest", Password = "guest", Protocol = Protocols.AMQP_0_9_1, RequestedFrameMax = UInt32.MaxValue, RequestedHeartbeat = UInt16.MaxValue }; using (var connection = connectionFactory.CreateConnection()) using (var channel = connection.CreateModel()) { // Create a new, durable exchange channel.ExchangeDeclare("sample-ex", ExchangeType.Direct, true, false, null); // Create a new, durable queue channel.QueueDeclare("sample-queue", true, false, false, null); // Bind the queue to the exchange channel.QueueBind("sample-queue", "sample-ex", "optional-routing-key"); // Set up message properties var properties = channel.CreateBasicProperties(); properties.DeliveryMode = 2; // Messages are persistent and will survive a server restart // Ready to start publishing // The message to publish can be anything that can be serialized to a byte array, // such as a serializable object, an ID for an entity, or simply a string var encoding = new UTF8Encoding(); for (var i = 0; i < 10; i++) { var msg = string.Format("This is message derek #{0}?", i+1); var msgBytes = encoding.GetBytes(msg); channel.BasicPublish("sample-ex", "optional-routing-key", false, false, properties, msgBytes); } channel.Close(); } Console.WriteLine("Messages published"); Console.ReadKey(true); } -------------- next part -------------- An HTML attachment was scrubbed... URL: From martin.rogan.inc at gmail.com Wed Feb 19 15:25:43 2014 From: martin.rogan.inc at gmail.com (mrogan) Date: Wed, 19 Feb 2014 07:25:43 -0800 (PST) Subject: [rabbitmq-discuss] RabbitMQ throw 541 internal error when unbind an non-existed binding? In-Reply-To: References: <007f01cf2bac$1ce0af50$56a20df0$@gmail.com> <5301C6AF.1080807@rabbitmq.com> <00e901cf2bc6$9d8e4760$d8aad620$@gmail.com> Message-ID: <1392823543403-33497.post@n5.nabble.com> Michael Klishin-2 wrote > Since this is a bug, it should be in 3.2.4. > > MK Just to add that we experienced the same issue. We were upgrading from 3.1.5 to 3.2.3 and have since downgraded back to 3.1.5. Unbinding from topic exchanges when the binding didn't exist threw internal errors to our Java client and "badmatch" was logged on the server in exactly the same way as Junbo describes with his Python client. Looking forward to a fix for this in 3.2.4 and keep up the great work! Martin -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/RabbitMQ-throw-541-internal-error-when-unbind-an-non-existed-binding-tp33415p33497.html Sent from the RabbitMQ mailing list archive at Nabble.com. From mklishin at gopivotal.com Wed Feb 19 15:26:42 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 19 Feb 2014 19:26:42 +0400 Subject: [rabbitmq-discuss] System.ObjectDisposedException In-Reply-To: References: Message-ID: <45667E57-A376-4FC5-879F-225C5C71A35D@rabbitmq.com> On 19 Feb 2014, at 19:21, Derek Johnston wrote: > System.ObjectDisposedException was unhandled > Message: An unhandled exception of type 'System.ObjectDisposedException' occurred in System.dll Please post full stack trace. MK Software Engineer, Pivotal/RabbitMQ From derekejohnston at gmail.com Wed Feb 19 15:49:02 2014 From: derekejohnston at gmail.com (Derek Johnston) Date: Wed, 19 Feb 2014 15:49:02 +0000 Subject: [rabbitmq-discuss] System.ObjectDisposedException In-Reply-To: <45667E57-A376-4FC5-879F-225C5C71A35D@rabbitmq.com> References: <45667E57-A376-4FC5-879F-225C5C71A35D@rabbitmq.com> Message-ID: [image: Inline image 1] On Wed, Feb 19, 2014 at 3:26 PM, Michael Klishin wrote: > > On 19 Feb 2014, at 19:21, Derek Johnston wrote: > > > System.ObjectDisposedException was unhandled > > Message: An unhandled exception of type 'System.ObjectDisposedException' > occurred in System.dll > > Please post full stack trace. > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image.png Type: image/png Size: 39113 bytes Desc: not available URL: From mklishin at gopivotal.com Wed Feb 19 16:00:20 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 19 Feb 2014 20:00:20 +0400 Subject: [rabbitmq-discuss] System.ObjectDisposedException In-Reply-To: References: Message-ID: On 19 Feb 2014, at 19:21, Derek Johnston wrote: > keep getting this error > System.ObjectDisposedException was unhandled > Message: An unhandled exception of type 'System.ObjectDisposedException' occurred in System.dll Do you get this exception every time? When do you get it, when the program is shut down? .NET runtime garbage collects the socket before RabbitMQ client has a chance to close the connection. I suspect this is an indication of a known bug with incompete IDispose implementation in the .NET client (bug number: 25256). MK Software Engineer, Pivotal/RabbitMQ From derekejohnston at gmail.com Wed Feb 19 16:22:29 2014 From: derekejohnston at gmail.com (Derek Johnston) Date: Wed, 19 Feb 2014 16:22:29 +0000 Subject: [rabbitmq-discuss] System.ObjectDisposedException In-Reply-To: References: Message-ID: Hi is there a work around? regards On Wed, Feb 19, 2014 at 4:00 PM, Michael Klishin wrote: > > On 19 Feb 2014, at 19:21, Derek Johnston wrote: > > > keep getting this error > > System.ObjectDisposedException was unhandled > > Message: An unhandled exception of type 'System.ObjectDisposedException' > occurred in System.dll > > Do you get this exception every time? When do you get it, when the program > is shut down? > > .NET runtime garbage collects the socket before RabbitMQ client has a > chance to close > the connection. > > I suspect this is an indication of a known bug with incompete IDispose > implementation in the .NET client > (bug number: 25256). > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Wed Feb 19 16:23:15 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 19 Feb 2014 20:23:15 +0400 Subject: [rabbitmq-discuss] System.ObjectDisposedException In-Reply-To: References: Message-ID: <3078336D-9A5D-4407-86AC-86B37BA3C6E0@gopivotal.com> On 19 Feb 2014, at 20:00, Michael Klishin wrote: > .NET runtime garbage collects the socket before RabbitMQ client has a chance to close > the connection. ?or a network stream has been already closed, which is much more likely in this context. -- MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Wed Feb 19 16:30:52 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 19 Feb 2014 20:30:52 +0400 Subject: [rabbitmq-discuss] System.ObjectDisposedException In-Reply-To: References: Message-ID: On 19 Feb 2014, at 20:22, Derek Johnston wrote: > is there a work around? Try closing connection manually instead of using `using`? MK Software Engineer, Pivotal/RabbitMQ From derekejohnston at gmail.com Wed Feb 19 16:35:28 2014 From: derekejohnston at gmail.com (Derek Johnston) Date: Wed, 19 Feb 2014 16:35:28 +0000 Subject: [rabbitmq-discuss] System.ObjectDisposedException In-Reply-To: References: Message-ID: try that ..... no luck - surely this works in .net? var connection = connectionFactory.CreateConnection(); var channel = connection.CreateModel(); // Create a new, durable exchange channel.ExchangeDeclare("sample-ex", ExchangeType.Direct, true, false, null); // Create a new, durable queue channel.QueueDeclare("sample-queue", true, false, false, null); // Bind the queue to the exchange channel.QueueBind("sample-queue", "sample-ex", "optional-routing-key"); // Set up message properties var properties = channel.CreateBasicProperties(); properties.DeliveryMode = 2; // Messages are persistent and will survive a server restart // Ready to start publishing // The message to publish can be anything that can be serialized to a byte array, // such as a serializable object, an ID for an entity, or simply a string var encoding = new UTF8Encoding(); for (var i = 0; i < 1; i++) { var msg = string.Format("This is message derek #yyy{0}?", i + 1); var msgBytes = encoding.GetBytes(msg); channel.BasicPublish("sample-ex", "optional-routing-key", false, false, properties, msgBytes); } channel.Close(); connection.Close(); Console.WriteLine("Messages published"); Console.ReadKey(true); On Wed, Feb 19, 2014 at 4:30 PM, Michael Klishin wrote: > > On 19 Feb 2014, at 20:22, Derek Johnston wrote: > > > is there a work around? > > Try closing connection manually instead of using `using`? > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From moalla.rafik at gmail.com Wed Feb 19 16:12:58 2014 From: moalla.rafik at gmail.com (rafik moalla) Date: Wed, 19 Feb 2014 08:12:58 -0800 (PST) Subject: [rabbitmq-discuss] persistent messages are not delivered !! Message-ID: <45d75889-532b-48ed-9a09-ff93054f8a09@googlegroups.com> I have installed a rabbitmq server and i connect to it from different machine (from other networks). All is good when client A (.Net) sent a message to client B (.Net) . But, when i disconnect the client A (connection.close() and channel.close() ) then client B sent a message to client A, the message is stored in queue. When client A reconnect, the message is not delivered and all others incoming messages are not delivered but stocked in queue. Ps: Client A is connected from another network and client B from the same server's network. The problem doesn't appear with client connected from the same server's network. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Wed Feb 19 17:03:09 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 19 Feb 2014 21:03:09 +0400 Subject: [rabbitmq-discuss] persistent messages are not delivered !! In-Reply-To: <45d75889-532b-48ed-9a09-ff93054f8a09@googlegroups.com> References: <45d75889-532b-48ed-9a09-ff93054f8a09@googlegroups.com> Message-ID: <31A006F4-DEF1-4DBB-88C9-A359DE9A8971@rabbitmq.com> On 19 Feb 2014, at 20:12, rafik moalla wrote: > When client A reconnect, the message is not delivered and all others incoming messages are not delivered but stocked in queue. > > Ps: Client A is connected from another network and client B from the same server's network. > The problem doesn't appear with client connected from the same server's network. Are you sure that client A actually connects? (e.g. does management UI lists its connection?) Do you see any channel exceptions in RabbitMQ log? Is there a consumer on the queue? MK Software Engineer, Pivotal/RabbitMQ From joneholland at gmail.com Wed Feb 19 17:07:50 2014 From: joneholland at gmail.com (Jonathan Holland) Date: Wed, 19 Feb 2014 12:07:50 -0500 Subject: [rabbitmq-discuss] persistent messages are not delivered !! In-Reply-To: <31A006F4-DEF1-4DBB-88C9-A359DE9A8971@rabbitmq.com> References: <45d75889-532b-48ed-9a09-ff93054f8a09@googlegroups.com> <31A006F4-DEF1-4DBB-88C9-A359DE9A8971@rabbitmq.com> Message-ID: If the messages are sitting in unacked state after the first connection is closed then rabbit thinks the socket is still open, and they will not deliver to the new consumer. Try enabling heartbeats in the .Net client. This should mitigate this. Sent from my iPhone > On Feb 19, 2014, at 12:03 PM, Michael Klishin wrote: > > >> On 19 Feb 2014, at 20:12, rafik moalla wrote: >> >> When client A reconnect, the message is not delivered and all others incoming messages are not delivered but stocked in queue. >> >> Ps: Client A is connected from another network and client B from the same server's network. >> The problem doesn't appear with client connected from the same server's network. > > Are you sure that client A actually connects? (e.g. does management UI lists its connection?) > > Do you see any channel exceptions in RabbitMQ log? Is there a consumer on the queue? > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss From jeff at jefftrout.com Wed Feb 19 19:53:56 2014 From: jeff at jefftrout.com (Jeff) Date: Wed, 19 Feb 2014 14:53:56 -0500 Subject: [rabbitmq-discuss] /api/queue message_stats->deliver_get_details->last_event removed in 3.1? Message-ID: so today we had to upgrade rabbitmq from 3.0.2 to 3.2.3 to cope with a bug we hit (the Discarding message {'$gen_call',{<0.19517.81>,#Ref<0.0.133.130559>},stat} from <0.19517.81> to <0.485.0> in an old incarnation (3) of this node (1) issue). Built the new one, applied a patch to the STOMP adaptor (It allows you to subscribe exclusively to a queue, I submitted it a long time ago but it was rejected) and launched it. came up and worked. (yay!) But then we started getting beloved alerts about queues having unack?d messages and no deliveries. I check the mgmt interface and it is chewing through messages. I look at our check script and saw a value I key off is no longer there - I use message_stats->deliver_get_details->last_event to keep track of a queue that may have stalled consumers. some of our requests take some time to process, so it normal to have some unack?d ones laying around for a while. is there a replacement for this? I see ->rate, but I can?t figure out what the rate is over? per second? what if some requests take many seconds to run? thanks -- Jeff Trout From cwstorm at gmail.com Wed Feb 19 20:14:28 2014 From: cwstorm at gmail.com (cw storm) Date: Wed, 19 Feb 2014 15:14:28 -0500 Subject: [rabbitmq-discuss] How consumer subscription to queue when you have to client servers Message-ID: We have two client servers. A load balancer (LB) sits between the client server and the rabbit servers. Because we have two client servers, both will be creating consumer subscription to say "queue1". The LB performs a round-robin to the client servers for processing. But if you have a subscription based consumer (basicConsume), will we still achieve load balancing to each of the client nodes? Also, if the load balancer is only pointing to one rabbit node and you have two subscription base consumer to the queue, are messages still being round-robin during runtime? -------------- next part -------------- An HTML attachment was scrubbed... URL: From jeetu at streetline.com Wed Feb 19 20:58:50 2014 From: jeetu at streetline.com (Jeetu Jangle) Date: Wed, 19 Feb 2014 20:58:50 +0000 Subject: [rabbitmq-discuss] Migrating single instance of RabbitMQ from one data center to another Message-ID: Experts, We are in process of migrating our services from one data center to another. We have a single instance RabbitMQ (version 2.3.1) (not clustered) running in current data center. We were able to migrate all our applications from 1 data center to another. We want to migrate RabbitMQ (running 42 exchanges, 232 queues) to another data center with zero or little outage. I would like to ask the experts what steps we can carry to make sure that outage is minimal or zero. Thanks, NewYu -------------- next part -------------- An HTML attachment was scrubbed... URL: From ambatinr at hotmail.com Wed Feb 19 21:44:18 2014 From: ambatinr at hotmail.com (anate) Date: Wed, 19 Feb 2014 13:44:18 -0800 (PST) Subject: [rabbitmq-discuss] ../vendor/autoload.php: failed to open stream: No such file or directory Message-ID: <1392846258468-33511.post@n5.nabble.com> I installed composer and downloaded the package on a different machine because firewall issue on my computer downloading php-amqplib and dependencies. I copied the 'vendor' folder to my desktop and trying to run http://server/test/vendor/videlalvaro/php-amqplib/demo/amqp_publisher.php file. I am getting the following error message. ../vendor/autoload.php: failed to open stream: No such file or directory I have composer installed on my machine. Could you please let me know if there are any suggestions? Thank you. -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/vendor-autoload-php-failed-to-open-stream-No-such-file-or-directory-tp33511.html Sent from the RabbitMQ mailing list archive at Nabble.com. From videlalvaro at gmail.com Wed Feb 19 22:02:33 2014 From: videlalvaro at gmail.com (Alvaro Videla) Date: Wed, 19 Feb 2014 23:02:33 +0100 Subject: [rabbitmq-discuss] ../vendor/autoload.php: failed to open stream: No such file or directory In-Reply-To: <1392846258468-33511.post@n5.nabble.com> References: <1392846258468-33511.post@n5.nabble.com> Message-ID: Hi, On Wed, Feb 19, 2014 at 10:44 PM, anate wrote: > ../vendor/autoload.php: failed to open stream: No such file or directory Did you run composer install command as explained here: https://getcomposer.org/doc/00-intro.md ? Specifically: To resolve and download dependencies, run the install command: php composer.phar install Regards, Alvaro From arunrao.seattle at gmail.com Wed Feb 19 23:50:21 2014 From: arunrao.seattle at gmail.com (Arun Rao) Date: Wed, 19 Feb 2014 15:50:21 -0800 Subject: [rabbitmq-discuss] Migrating single instance of RabbitMQ from one data center to another In-Reply-To: References: Message-ID: I am not an expert :) but I can give you what I followed. I initially setup consumers on both new and old data center. Then if you are using a load balancer, create a new VIP to gradually migrate your producers. (you should already have new datacenter members listed under new VIP.) Restarting one (producer) node at a time (after taking the server out of rotation) update the VIP to point to the new data center. HTH, please let me know if you need more info. Thanks! On Wed, Feb 19, 2014 at 12:58 PM, Jeetu Jangle wrote: > Experts, > > We are in process of migrating our services from one data center to > another. We have a single instance RabbitMQ (version 2.3.1) (not clustered) > running in current data center. We were able to migrate all our > applications from 1 data center to another. We want to migrate RabbitMQ > (running 42 exchanges, 232 queues) to another data center with zero or > little outage. I would like to ask the experts what steps we can carry to > make sure that outage is minimal or zero. > > Thanks, > NewYu > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From james.eddy at us.thalesgroup.com Thu Feb 20 00:05:08 2014 From: james.eddy at us.thalesgroup.com (James Eddu) Date: Thu, 20 Feb 2014 00:05:08 +0000 (UTC) Subject: [rabbitmq-discuss] When rabbitmq is clustered with one other node we see a very slow dequeue of messages References: <083E352F62C9974389AD0F9F875EA238179D94A4F6@THSONEA03CMS03P.ONE-03.GRP> <529F14D9.8060203@rabbitmq.com> <083E352F62C9974389AD0F9F875EA238179D94AB3C@THSONEA03CMS03P.ONE-03.GRP> <52A7343D.4020003@rabbitmq.com> <52CA7A64.3080102@rabbitmq.com> Message-ID: Simon MacMullen writes: > > On 27/12/2013 18:13, James wrote: > > Do you have a target release date/version for this issue? > > I'm afraid not. I haven't even had time to look at it yet. It won't get > forgotten though. > > Cheers, Simon > > Hi Simon, Do you have a bug tracking number for this that I can keep my eye out for it in Mercurial? Thanks, James From mklishin at gopivotal.com Thu Feb 20 02:50:00 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 20 Feb 2014 06:50:00 +0400 Subject: [rabbitmq-discuss] How consumer subscription to queue when you have to client servers In-Reply-To: References: Message-ID: <5BC0141A-7E58-4CFC-9D55-8CAB48AE24D2@rabbitmq.com> On 20 Feb 2014, at 00:14, cw storm wrote: > But if you have a subscription based consumer (basicConsume), will we still achieve load balancing to each of the client nodes? Also, if the load balancer is only pointing to one rabbit node and you have two subscription base consumer to the queue, are messages still being round-robin during runtime? Messages between consumers that share a queue are distributed in a round robin manner (with respect to basic.qos and acks) regardless of whether you connect to RabbitMQ over a proxy. So distributing connections to your app servers evenly should be generally sufficient. MK Software Engineer, Pivotal/RabbitMQ From derekejohnston at gmail.com Thu Feb 20 08:25:03 2014 From: derekejohnston at gmail.com (Derek Johnston) Date: Thu, 20 Feb 2014 08:25:03 +0000 Subject: [rabbitmq-discuss] System.ObjectDisposedException In-Reply-To: References: Message-ID: Hi Michael, is there an way to get rabbitmq to work on .net environment? is this a unfixable bug? regards On Wed, Feb 19, 2014 at 4:30 PM, Michael Klishin wrote: > > On 19 Feb 2014, at 20:22, Derek Johnston wrote: > > > is there a work around? > > Try closing connection manually instead of using `using`? > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Thu Feb 20 08:30:26 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 20 Feb 2014 12:30:26 +0400 Subject: [rabbitmq-discuss] System.ObjectDisposedException In-Reply-To: References: Message-ID: On 20 Feb 2014, at 12:25, Derek Johnston wrote: > is there an way to get rabbitmq to work on .net environment? What Windows and .NET versions do you use? This is the first time this issue is reported in a while and manually closing channels and connections is known to work fine. MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Thu Feb 20 08:32:37 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 20 Feb 2014 12:32:37 +0400 Subject: [rabbitmq-discuss] System.ObjectDisposedException In-Reply-To: References: Message-ID: <9F5EF51A-9EE5-4AF6-BC01-6D52822F0557@rabbitmq.com> On 20 Feb 2014, at 12:25, Derek Johnston wrote: > is there an way to get rabbitmq to work on .net environment? Does .NET version of the tutorials work in your environment? http://www.rabbitmq.com/getstarted.html https://github.com/rabbitmq/rabbitmq-tutorials/tree/master/dotnet MK Software Engineer, Pivotal/RabbitMQ From mike at suteki.co.uk Thu Feb 20 08:47:37 2014 From: mike at suteki.co.uk (Mike Hadlow) Date: Thu, 20 Feb 2014 08:47:37 +0000 Subject: [rabbitmq-discuss] System.ObjectDisposedException In-Reply-To: <9F5EF51A-9EE5-4AF6-BC01-6D52822F0557@rabbitmq.com> References: <9F5EF51A-9EE5-4AF6-BC01-6D52822F0557@rabbitmq.com> Message-ID: Hi Derek, We've been using RabbitMQ with .NET for several years now. Works fine. You might want to take a look at EasyNetQ, it's a higher-level API for using RabbitMQ with .NET. http://easynetq.com/ I am the author, so if you've got any questions, feel free to ask. Mike On Thu, Feb 20, 2014 at 8:32 AM, Michael Klishin wrote: > > On 20 Feb 2014, at 12:25, Derek Johnston wrote: > > > is there an way to get rabbitmq to work on .net environment? > > Does .NET version of the tutorials work in your environment? > > http://www.rabbitmq.com/getstarted.html > https://github.com/rabbitmq/rabbitmq-tutorials/tree/master/dotnet > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From derekejohnston at gmail.com Thu Feb 20 08:49:31 2014 From: derekejohnston at gmail.com (Derek Johnston) Date: Thu, 20 Feb 2014 08:49:31 +0000 Subject: [rabbitmq-discuss] System.ObjectDisposedException In-Reply-To: <9F5EF51A-9EE5-4AF6-BC01-6D52822F0557@rabbitmq.com> References: <9F5EF51A-9EE5-4AF6-BC01-6D52822F0557@rabbitmq.com> Message-ID: Hi I was using .net 4.5, when I compile against 3.5 it works does not work against 4.0 either problem is my application is 4.5 framework On Thu, Feb 20, 2014 at 8:32 AM, Michael Klishin wrote: > > On 20 Feb 2014, at 12:25, Derek Johnston wrote: > > > is there an way to get rabbitmq to work on .net environment? > > Does .NET version of the tutorials work in your environment? > > http://www.rabbitmq.com/getstarted.html > https://github.com/rabbitmq/rabbitmq-tutorials/tree/master/dotnet > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From derekejohnston at gmail.com Thu Feb 20 08:50:26 2014 From: derekejohnston at gmail.com (Derek Johnston) Date: Thu, 20 Feb 2014 08:50:26 +0000 Subject: [rabbitmq-discuss] System.ObjectDisposedException In-Reply-To: References: <9F5EF51A-9EE5-4AF6-BC01-6D52822F0557@rabbitmq.com> Message-ID: Hi Mike thanks derek On Thu, Feb 20, 2014 at 8:47 AM, Mike Hadlow wrote: > Hi Derek, > > We've been using RabbitMQ with .NET for several years now. Works fine. > > You might want to take a look at EasyNetQ, it's a higher-level API for > using RabbitMQ with .NET. > > http://easynetq.com/ > > I am the author, so if you've got any questions, feel free to ask. > > Mike > > > > On Thu, Feb 20, 2014 at 8:32 AM, Michael Klishin wrote: > >> >> On 20 Feb 2014, at 12:25, Derek Johnston >> wrote: >> >> > is there an way to get rabbitmq to work on .net environment? >> >> Does .NET version of the tutorials work in your environment? >> >> http://www.rabbitmq.com/getstarted.html >> https://github.com/rabbitmq/rabbitmq-tutorials/tree/master/dotnet >> >> MK >> >> Software Engineer, Pivotal/RabbitMQ >> >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Thu Feb 20 10:45:08 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 20 Feb 2014 10:45:08 +0000 Subject: [rabbitmq-discuss] When rabbitmq is clustered with one other node we see a very slow dequeue of messages In-Reply-To: References: <083E352F62C9974389AD0F9F875EA238179D94A4F6@THSONEA03CMS03P.ONE-03.GRP> <529F14D9.8060203@rabbitmq.com> <083E352F62C9974389AD0F9F875EA238179D94AB3C@THSONEA03CMS03P.ONE-03.GRP> <52A7343D.4020003@rabbitmq.com> <52CA7A64.3080102@rabbitmq.com> Message-ID: <5305DCB4.5060903@rabbitmq.com> On 20/02/14 00:05, James Eddu wrote: > Do you have a bug tracking number for this that I can keep my eye out for it > in Mercurial? It's 25921. Nothing has happened yet though. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From michael.oullion at norbert-dentressangle.com Thu Feb 20 11:12:03 2014 From: michael.oullion at norbert-dentressangle.com (Michael Oullion) Date: Thu, 20 Feb 2014 12:12:03 +0100 Subject: [rabbitmq-discuss] RabbitMQ Cluster, split network & VMWare snapshot Message-ID: Hi all, We observe some net split on our cluster and we don't know why. Before change the net tick parameter and change the net split behavior, I want to understand why it's happening. Our environment is : RabbitMQ 3.2.1 Elrang R16B 3 RabbitMQ Node in the same sub-network RabbitMQ is installed on Windows 2008 R2 (VMWare ESXi 5.1) We have 4 Mirrored Queues on this cluster. In production, the normal stream is about 20 messages/second. We observe that split occurs always at the end of the snapshot (NetBackup) on the VM. But, we made snapshot each night and the network split occurs 1 time each 15 or 20 days. *Log server rabbit at FRA-VSP-32545 :* =INFO REPORT==== 19-Feb-2014::18:34:47 === rabbit on node 'rabbit at FRA-VSP-32596' down =INFO REPORT==== 19-Feb-2014::18:34:49 === Mirrored-queue (queue 'conso.queue.dead' in vhost '/IEC'): Slave <'rabbit at FRA-VSP-32545'.2.269.0> saw deaths of mirrors <'rabbit at FRA-VSP-32596'.1.270.0> *Log server rabbit at FRA-VSP-32596 :* =INFO REPORT==== 19-Feb-2014::18:34:28 === rabbit on node 'rabbit at FRA-VSP-32545' down =ERROR REPORT==== 19-Feb-2014::18:34:30 === ** Generic server <0.279.0> terminating ** Last message in was {'DOWN',#Ref<0.0.0.248452>,process,<5383.278.0>, noconnection} ** When Server state == {state, {76,<0.279.0>}, {{79,<5383.278.0>},#Ref<0.0.0.248452>}, {{82,<5066.278.0>},#Ref<0.0.1.42330>}, {resource,<<"/IEC">>,queue,<<"conso.queue">>}, rabbit_mirror_queue_coordinator, {83, [{{76,<0.279.0>}, {view_member, {76,<0.279.0>}, [], {79,<5383.278.0>}, {82,<5066.278.0>}}}, {{79,<5383.278.0>}, {view_member, {79,<5383.278.0>}, [], {82,<5066.278.0>}, {76,<0.279.0>}}}, {{82,<5066.278.0>}, {view_member, {82,<5066.278.0>}, [], {76,<0.279.0>}, {79,<5383.278.0>}}}]}, 1457518, [{{76,<0.279.0>},{member,{[],[]},1457518,1457518}}, {{79,<5383.278.0>},{member,{[],[]},1,1}}, {{82,<5066.278.0>},{member,{[],[]},0,0}}], [<0.1272.0>], {[],[]}, [],undefined, #Fun} ** Reason for termination == ** {function_clause, [{orddict,fetch, [{76,<0.279.0>}, [{{82,<5066.278.0>}, {view_member, {82,<5066.278.0>}, [{79,<5383.278.0>}], {82,<5066.278.0>}, {82,<5066.278.0>}}}]], [{file,"orddict.erl"},{line,72}]}, {gm,check_neighbours,1,[]}, {gm,handle_info,2,[]}, {gen_server2,handle_msg,2,[]}, {proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,249}]}]} =ERROR REPORT==== 19-Feb-2014::18:34:30 === ** Generic server <0.283.0> terminating ** Last message in was {'DOWN',#Ref<0.0.0.248454>,process,<5383.282.0>, noconnection} ** When Server state == {state, {67,<0.283.0>}, {{70,<5383.282.0>},#Ref<0.0.0.248454>}, {{73,<5066.282.0>},#Ref<0.0.1.42352>}, {resource,<<"/IEC">>,queue,<<"event.queue">>}, rabbit_mirror_queue_coordinator, {74, [{{67,<0.283.0>}, {view_member, {67,<0.283.0>}, [], {70,<5383.282.0>}, {73,<5066.282.0>}}}, {{70,<5383.282.0>}, {view_member, {70,<5383.282.0>}, [], {73,<5066.282.0>}, {67,<0.283.0>}}}, {{73,<5066.282.0>}, {view_member, {73,<5066.282.0>}, [], {67,<0.283.0>}, {70,<5383.282.0>}}}]}, 212075, [{{67,<0.283.0>},{member,{[],[]},212075,212075}}, {{70,<5383.282.0>},{member,{[],[]},1,1}}, {{73,<5066.282.0>},{member,{[],[]},0,0}}], [<0.1271.0>], {[],[]}, [],undefined, #Fun} ** Reason for termination == ** {function_clause, [{orddict,fetch, [{67,<0.283.0>}, [{{73,<5066.282.0>}, {view_member, {73,<5066.282.0>}, [{70,<5383.282.0>}], {73,<5066.282.0>}, {73,<5066.282.0>}}}]], [{file,"orddict.erl"},{line,72}]}, {gm,check_neighbours,1,[]}, {gm,handle_info,2,[]}, {gen_server2,handle_msg,2,[]}, {proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,249}]}]} =ERROR REPORT==== 19-Feb-2014::18:34:30 === ** Generic server <0.203.0> terminating ** Last message in was {mnesia_tm,'rabbit at FRA-VSP-32545', {vote_yes,{tid,10316,<0.203.0>}}} ** When Server state == 1 ** Reason for termination == ** {unexpected_info,{mnesia_tm,'rabbit at FRA-VSP-32545', {vote_yes,{tid,10316,<0.203.0>}}}} =ERROR REPORT==== 19-Feb-2014::18:34:30 === ** Generic server <0.275.0> terminating ** Last message in was {'DOWN',#Ref<0.0.1.38240>,process,<5383.274.0>, noconnection} ** When Server state == {state, {70,<0.275.0>}, {{76,<5066.274.0>},#Ref<0.0.1.42305>}, {{73,<5383.274.0>},#Ref<0.0.1.38240>}, {resource,<<"/IEC">>,queue, <<"activity.queue.dead">>}, rabbit_mirror_queue_coordinator, {77, [{{70,<0.275.0>}, {view_member, {70,<0.275.0>}, [], {76,<5066.274.0>}, {73,<5383.274.0>}}}, {{73,<5383.274.0>}, {view_member, {73,<5383.274.0>}, [], {70,<0.275.0>}, {76,<5066.274.0>}}}, {{76,<5066.274.0>}, {view_member, {76,<5066.274.0>}, [], {73,<5383.274.0>}, {70,<0.275.0>}}}]}, 6, [{{70,<0.275.0>},{member,{[],[]},6,6}}, {{73,<5383.274.0>},{member,{[],[]},1,1}}, {{76,<5066.274.0>},{member,{[],[]},0,0}}], [<0.1273.0>], {[],[]}, [],undefined, #Fun} ** Reason for termination == ** {noproc,{gen_server2,call, [<0.203.0>, {submit,#Fun}, infinity]}} =ERROR REPORT==== 19-Feb-2014::18:34:30 === ** Generic server <0.204.0> terminating ** Last message in was {mnesia_tm,'rabbit at FRA-VSP-32545', {vote_yes,{tid,10315,<0.204.0>}}} ** When Server state == 2 ** Reason for termination == ** {unexpected_info,{mnesia_tm,'rabbit at FRA-VSP-32545', {vote_yes,{tid,10315,<0.204.0>}}}} =ERROR REPORT==== 19-Feb-2014::18:34:30 === ** Generic server <0.1268.0> terminating ** Last message in was {'$gen_cast',{gm_deaths,[<5066.266.0>,<0.267.0>]}} ** When Server state == {state, {amqqueue, {resource,<<"/IEC">>,queue, <<"gps.queue.dead">>}, true,false,none,[],<0.266.0>, [<5066.265.0>], [<5066.265.0>], [{vhost,<<"/IEC">>}, {name,<<"Queue HA">>}, {pattern,<<".queue">>}, {'apply-to',<<"queues">>}, {definition, [{<<"ha-mode">>,<<"all">>}, {<<"ha-sync-mode">>,<<"automatic">>}]}, {priority,0}], [{<5066.266.0>,<5066.265.0>}, {<5383.266.0>,<5383.265.0>}], []}, <0.267.0>, {state, {dict,0,16,16,8,80,48, {[],[],[],[],[],[],[],[],[],[],[],[],[], [],[],[]}, {{[],[],[],[],[],[],[],[],[],[],[],[],[], [],[],[]}}}, erlang}, #Fun, #Fun} ** Reason for termination == ** {{case_clause,{ok,<5066.265.0>,[]}}, [{rabbit_mirror_queue_coordinator,handle_cast,2,[]}, {gen_server2,handle_msg,2,[]}, {proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,249}]}]} =ERROR REPORT==== 19-Feb-2014::18:34:31 === ** Generic server <0.266.0> terminating ** Last message in was {'EXIT',<0.1268.0>, {{case_clause,{ok,<5066.265.0>,[]}}, [{rabbit_mirror_queue_coordinator,handle_cast,2, []}, {gen_server2,handle_msg,2,[]}, {proc_lib,wake_up,3, [{file,"proc_lib.erl"},{line,249}]}]}} ** When Server state == {q, {amqqueue, {resource,<<"/IEC">>,queue,<<"gps.queue.dead">>}, true,false,none,[],<0.266.0>, [<5383.265.0>,<5066.265.0>], [<5066.265.0>,<5383.265.0>], [{vhost,<<"/IEC">>}, {name,<<"Queue HA">>}, {pattern,<<".queue">>}, {'apply-to',<<"queues">>}, {definition, [{<<"ha-mode">>,<<"all">>}, {<<"ha-sync-mode">>,<<"automatic">>}]}, {priority,0}], [{<5066.266.0>,<5066.265.0>}, {<5383.266.0>,<5383.265.0>}, {<0.267.0>,<0.266.0>}], []}, none,false,rabbit_mirror_queue_master, {state, {resource,<<"/IEC">>,queue,<<"gps.queue.dead">>}, <0.267.0>,<0.1268.0>,rabbit_variable_queue, {vqstate, {0,{[],[]}}, {0,{[],[]}}, {delta,undefined,0,undefined}, {0,{[],[]}}, {0,{[],[]}}, 0, {0,nil}, {0,nil}, {qistate, "d:/tools/RabbitMQ Server/data/db/rabbit at FRA-VSP-32596-mnesia /queues/6IXYXKMC8M51EEAXH5MKLR0Q4", {{dict,0,16,16,8,80,48, {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], []}, {{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], []}}}, []}, undefined,0,65536, #Fun, {0,nil}}, {{client_msstate,msg_store_persistent, <<55,209,140,132,77,86,75,214,37,255,72,56,103,92, 154,75>>, {dict,0,16,16,8,80,48, {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], []}, {{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], []}}}, {state,340043, "d:/tools/RabbitMQ Server/data/db/rabbit at FRA-VSP-32596-mnesia/msg_store_persistent"}, rabbit_msg_store_ets_index, "d:/tools/RabbitMQ Server/data/db/rabbit at FRA-VSP-32596-mnesia/msg_store_persistent", <0.255.0>,344140,335946,348237,352334}, {client_msstate,msg_store_transient, <<148,176,200,245,252,25,203,27,190,186,25,104, 217,230,131,35>>, {dict,0,16,16,8,80,48, {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], []}, {{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], []}}}, {state,319558, "d:/tools/RabbitMQ Server/data/db/rabbit at FRA-VSP-32596-mnesia/msg_store_transient"}, rabbit_msg_store_ets_index, "d:/tools/RabbitMQ Server/data/db/rabbit at FRA-VSP-32596-mnesia/msg_store_transient", <0.250.0>,323655,315461,327752,331849}}, true,0,0,0,infinity,0,0,0,0,0, {rates, {{1392,831016,530070},0}, {{1392,831016,530070},0}, 0.0,0.0, {1392,831128,748070}}, {0,nil}, {0,nil}, {0,nil}, {0,nil}, 0,0, {rates, {{1392,831016,530070},0}, {{1392,831016,530070},0}, 0.0,0.0, {1392,831128,748070}}}, {dict,0,16,16,8,80,48, {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]}, {{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], []}}}, [], {set,0,16,16,8,80,48, {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]}, {{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], []}}}}, {queue,[],[],0}, undefined,undefined,undefined,undefined, {state,fine,5000,undefined}, {0,nil}, undefined,undefined,undefined, {state, {dict,0,16,16,8,80,48, {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]}, {{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], []}}}, delegate}, undefined,undefined,undefined,4,running} ** Reason for termination == ** {{case_clause,{ok,<5066.265.0>,[]}}, [{rabbit_mirror_queue_coordinator,handle_cast,2,[]}, {gen_server2,handle_msg,2,[]}, {proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,249}]}]} Any ideas? Best regards, * ________________________________________________________________* *Micha?l OULLION* *Architecte JAVA* *ND Informatique* Adresse (1208 route des Pierrelles B.P. 98 BEAUSEMBLANT - 26240 Beausemblant - FRANCE) Tel. +33 (0)4 75 23 68 07 Visit our web site at www.norbert-dentressangle.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Thu Feb 20 12:10:28 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 20 Feb 2014 12:10:28 +0000 Subject: [rabbitmq-discuss] /api/queue message_stats->deliver_get_details->last_event removed in 3.1? In-Reply-To: References: Message-ID: <5305F0B4.3080106@rabbitmq.com> On 19/02/14 19:53, Jeff wrote: > I use message_stats->deliver_get_details->last_event to keep track of > a queue that may have stalled consumers. some of our requests take > some time to process, so it normal to have some unack?d ones laying > around for a while. So last_event was removed because it was really an implementation detail of how statistics used to work, before they got rewritten in 3.1.0. It's really the most recent time that the management DB received a statistics event from a channel - but various things you might not expect could wake up a channel and get it to sent statistics events. For example, if someone somewhere wrote a script which polled "rabbitmqmctl list_channels", then that would cause last_event to keep updating. > is there a replacement for this? I see ->rate, but I can?t figure out > what the rate is over? per second? what if some requests take many > seconds to run? So rate is probably what you want. The rate key is just calculated over the last five seconds. If you want the rate over a longer period, you can set the msg_rates_age and msg_rates_incr query parameters, and as well as getting a bunch of samples back you will also get an avg_rate field giving you the average over the time period. Note sure what you mean by "what if some requests take many seconds to run?" - as far as the management API is concerned it's just counting messages out and acks in; it doesn't make any attempt to correlate them. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From derekejohnston at gmail.com Thu Feb 20 12:29:31 2014 From: derekejohnston at gmail.com (Derek Johnston) Date: Thu, 20 Feb 2014 12:29:31 +0000 Subject: [rabbitmq-discuss] System.ObjectDisposedException In-Reply-To: References: <9F5EF51A-9EE5-4AF6-BC01-6D52822F0557@rabbitmq.com> Message-ID: Hi Mike Thats a great help - thank you derek On Thu, Feb 20, 2014 at 8:47 AM, Mike Hadlow wrote: > Hi Derek, > > We've been using RabbitMQ with .NET for several years now. Works fine. > > You might want to take a look at EasyNetQ, it's a higher-level API for > using RabbitMQ with .NET. > > http://easynetq.com/ > > I am the author, so if you've got any questions, feel free to ask. > > Mike > > > > On Thu, Feb 20, 2014 at 8:32 AM, Michael Klishin wrote: > >> >> On 20 Feb 2014, at 12:25, Derek Johnston >> wrote: >> >> > is there an way to get rabbitmq to work on .net environment? >> >> Does .NET version of the tutorials work in your environment? >> >> http://www.rabbitmq.com/getstarted.html >> https://github.com/rabbitmq/rabbitmq-tutorials/tree/master/dotnet >> >> MK >> >> Software Engineer, Pivotal/RabbitMQ >> >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From dmitry.andrianov at alertme.com Thu Feb 20 13:53:34 2014 From: dmitry.andrianov at alertme.com (Dmitry Andrianov) Date: Thu, 20 Feb 2014 13:53:34 +0000 Subject: [rabbitmq-discuss] JavaClient HeartbeatSender Message-ID: <530608DE.2090903@alertme.com> Hi. I'm trying to build a load-testing environment where one Java process establishes lots of connections to RabbitMQ and then sends/receives messages. More of these virtual clients I can fit into single Java process - the better. As I am thinking of tens of thousand so obviously I want to minimise number of threads spawned for each client. ConnectionFactory supports that by allowing me to pass my own ExecutorService to newConnection but as soon as connection is established, it starts a HeartbeatSender on it. And it looks like HeartbeatSender always creates its own ScheduledExecutorService (as Executors.newSingleThreadScheduledExecutor()) and there is no way to tell it not to do so. When I set heartbeat interval to 0 or do not call setRequestedHeartbeat() att all, it still uses heartbeat of 600 - I assume the value comes from the server side. So there are two questions: 1. Is there an elegant solution for this on the client side? 2. The fact I can supply my own executor to ConnectionFactory but still another one will be used for heartbeats - doesn't it sound like a bug? I assume there is no issue tracker for me to use - so how do I report it? Many thanks This email is for the use of the intended recipient(s) only. If you have received this email in error, please notify the sender immediately and then delete it. If you are not the intended recipient, you must not use, disclose or distribute this email without the author's prior permission. AlertMe.com Ltd. is not responsible for any personal views expressed in this message or any attachments that are those of the individual sender. AlertMe.com Ltd, 30 Station Road, Cambridge, CB1 2RE, UK. Registered in England, Company number 578 2908, VAT registration number GB 895 9914 42. From mklishin at gopivotal.com Thu Feb 20 14:03:18 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 20 Feb 2014 18:03:18 +0400 Subject: [rabbitmq-discuss] JavaClient HeartbeatSender In-Reply-To: <530608DE.2090903@alertme.com> References: <530608DE.2090903@alertme.com> Message-ID: <8513EF18-0DCB-4BBE-A817-054767D0B716@rabbitmq.com> On 20 Feb 2014, at 17:53, Dmitry Andrianov wrote: > 1. Is there an elegant solution for this on the client side? The only solution is to instantiate and start an AMQConnection subclass directly. > 2. The fact I can supply my own executor to ConnectionFactory but still another one will be used for heartbeats - doesn't it sound like a bug? It doesn?t to me. JavaDoc for the executor parameter mentions that the executor is for consumers to use. Heartbeat sender is an implementation detail. Using your own executor may result in skipped heartbeats. Chances are some Google App Engine fixes will be in 3.3: one of the changes lets you configure a ThreadFactory that will be used by anything in the client that instantiates threads. MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Thu Feb 20 14:12:56 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 20 Feb 2014 18:12:56 +0400 Subject: [rabbitmq-discuss] JavaClient HeartbeatSender In-Reply-To: <530608DE.2090903@alertme.com> References: <530608DE.2090903@alertme.com> Message-ID: On 20 Feb 2014, at 17:53, Dmitry Andrianov wrote: > 2. The fact I can supply my own executor to ConnectionFactory but still another one will be used for heartbeats - doesn't it sound like a bug? However, what is a bug is that JavaDoc suggest there is a way to disable heartbeats while there really isn?t: passing 0 means server-configured value will be used. Filed. MK Software Engineer, Pivotal/RabbitMQ From dmitry.andrianov at alertme.com Thu Feb 20 14:24:10 2014 From: dmitry.andrianov at alertme.com (Dmitry Andrianov) Date: Thu, 20 Feb 2014 14:24:10 +0000 Subject: [rabbitmq-discuss] JavaClient HeartbeatSender In-Reply-To: <8513EF18-0DCB-4BBE-A817-054767D0B716@rabbitmq.com> References: <530608DE.2090903@alertme.com> <8513EF18-0DCB-4BBE-A817-054767D0B716@rabbitmq.com> Message-ID: <5306100A.7080409@alertme.com> On 20/02/14 14:03, Michael Klishin wrote: >> 2. The fact I can supply my own executor to ConnectionFactory but still another one will be used for heartbeats - doesn't it sound like a bug? > It doesn?t to me. JavaDoc for the executor parameter mentions that the executor is for consumers > to use. Heartbeat sender is an implementation detail. Using your own executor may result in skipped > heartbeats. Fair enough. > Chances are some Google App Engine fixes will be in 3.3: one of the changes lets > you configure a ThreadFactory that will be used by anything in the client that instantiates threads. Custom ThreadFactory sounds a bit scary. So it won't be using executors framework in that case? To me personally it would be enough to have some setter somewhere (ConnectionFactory most likely) to allow setting ScheduledExecutorService which will be used for heartbeats but I am not sure hot it fits the design. Will take a look at changes for GAE when they are out if we still have that problem by then. Thanks, Michael. From mklishin at gopivotal.com Thu Feb 20 15:15:03 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 20 Feb 2014 19:15:03 +0400 Subject: [rabbitmq-discuss] JavaClient HeartbeatSender In-Reply-To: <5306100A.7080409@alertme.com> References: <530608DE.2090903@alertme.com> <8513EF18-0DCB-4BBE-A817-054767D0B716@rabbitmq.com> <5306100A.7080409@alertme.com> Message-ID: <8BEDF4CD-ADE5-46E4-9B77-17B33B9CD52E@rabbitmq.com> On 20 Feb 2014, at 18:24, Dmitry Andrianov wrote: > Custom ThreadFactory sounds a bit scary. So it won't be using executors framework in that case? Executor services can use a custom j.u.c.ThreadFactory implementations to instantiate threads, e.g. http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Executors.html#newCachedThreadPool(java.util.concurrent.ThreadFactory) MK Software Engineer, Pivotal/RabbitMQ From cwstorm at gmail.com Thu Feb 20 15:20:09 2014 From: cwstorm at gmail.com (cw storm) Date: Thu, 20 Feb 2014 10:20:09 -0500 Subject: [rabbitmq-discuss] setConnectionTimeout vs setRequestedHeartbeat Message-ID: I've coded "factory.setConnectionTimeout( 0 );" but still see timout value of 600s via the rabbit UI. Why is that? -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Thu Feb 20 15:24:59 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 20 Feb 2014 19:24:59 +0400 Subject: [rabbitmq-discuss] setConnectionTimeout vs setRequestedHeartbeat In-Reply-To: References: Message-ID: On 20 Feb 2014, at 19:20, cw storm wrote: > I've coded "factory.setConnectionTimeout( 0 );" but still see timout value of 600s via the rabbit UI. Why is that? See JavaDoc for setConnectionTimeout. It controls initial TCP connection timeout. RabbitMQ does not know anything about it. What you see in the management UI is heartbeat interval. MK Software Engineer, Pivotal/RabbitMQ From cwstorm at gmail.com Thu Feb 20 15:37:40 2014 From: cwstorm at gmail.com (cw storm) Date: Thu, 20 Feb 2014 10:37:40 -0500 Subject: [rabbitmq-discuss] setConnectionTimeout vs setRequestedHeartbeat In-Reply-To: References: Message-ID: Thanks MK. The Timeout was misleading. On Thu, Feb 20, 2014 at 10:24 AM, Michael Klishin wrote: > On 20 Feb 2014, at 19:20, cw storm wrote: > > > I've coded "factory.setConnectionTimeout( 0 );" but still see timout > value of 600s via the rabbit UI. Why is that? > > See JavaDoc for setConnectionTimeout. It controls initial TCP connection > timeout. RabbitMQ does not know anything about it. > What you see in the management UI is heartbeat interval. > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ambatinr at hotmail.com Thu Feb 20 16:30:52 2014 From: ambatinr at hotmail.com (anate) Date: Thu, 20 Feb 2014 08:30:52 -0800 (PST) Subject: [rabbitmq-discuss] ../vendor/autoload.php: failed to open stream: No such file or directory In-Reply-To: References: <1392846258468-33511.post@n5.nabble.com> Message-ID: <1392913852390-33534.post@n5.nabble.com> Thanks for the reply. I ran 'php composer.phar' command on the folder. I am getting 'could not open file composer.phar'. I installed Composer on windows using composer_setup.exe file. Here is the detailed error message when I run amqp_publisher.php file. 'D:\inetpub\wwwroot\test\vendor\videlalvaro\php-amqplib\demo/../vendor/autoload.php' (include_path='.;C:\php\pear'). I am using 5.3.13 and it's installed in 'D:\PHP5313' folder. There is no 'pear' folder. Could you please let me know if I am missing something? Thanks for any suggestions. autoload.php ----------------------------- require_once __DIR__ . '/composer' . '/autoload_real.php'; return ComposerAutoloaderInit5e74aaf68e13rfe5f321c5a586eb96f22::getLoader(); -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/vendor-autoload-php-failed-to-open-stream-No-such-file-or-directory-tp33511p33534.html Sent from the RabbitMQ mailing list archive at Nabble.com. From jkuch at gopivotal.com Thu Feb 20 16:56:25 2014 From: jkuch at gopivotal.com (Jerry Kuch) Date: Thu, 20 Feb 2014 08:56:25 -0800 Subject: [rabbitmq-discuss] RabbitMQ Cluster, split network & VMWare snapshot In-Reply-To: References: Message-ID: Hi, Michael: This isn't terribly surprising. Snapshotting a VM is likely to render it less responsive than it normally would be for some amount of time. Whether that period ends before some other node in your cluster misses heartbeats and gives you grief about it, is a coin flip. Best regards, Jerry On Thu, Feb 20, 2014 at 3:12 AM, Michael Oullion < michael.oullion at norbert-dentressangle.com> wrote: > Hi all, > > We observe some net split on our cluster and we don't know why. > Before change the net tick parameter and change the net split behavior, I > want to understand why it's happening. > Our environment is : > RabbitMQ 3.2.1 Elrang R16B > 3 RabbitMQ Node in the same sub-network > RabbitMQ is installed on Windows 2008 R2 (VMWare ESXi 5.1) > We have 4 Mirrored Queues on this cluster. > In production, the normal stream is about 20 messages/second. > > We observe that split occurs always at the end of the snapshot (NetBackup) > on the VM. > But, we made snapshot each night and the network split occurs 1 time each > 15 or 20 days. > > *Log server rabbit at FRA-VSP-32545 :* > =INFO REPORT==== 19-Feb-2014::18:34:47 === > rabbit on node 'rabbit at FRA-VSP-32596' down > > =INFO REPORT==== 19-Feb-2014::18:34:49 === > Mirrored-queue (queue 'conso.queue.dead' in vhost '/IEC'): Slave > <'rabbit at FRA-VSP-32545'.2.269.0> saw deaths of mirrors > <'rabbit at FRA-VSP-32596'.1.270.0> > > > *Log server rabbit at FRA-VSP-32596 :* > > =INFO REPORT==== 19-Feb-2014::18:34:28 === > rabbit on node 'rabbit at FRA-VSP-32545' down > > =ERROR REPORT==== 19-Feb-2014::18:34:30 === > ** Generic server <0.279.0> terminating > ** Last message in was {'DOWN',#Ref<0.0.0.248452>,process,<5383.278.0>, > noconnection} > ** When Server state == {state, > {76,<0.279.0>}, > {{79,<5383.278.0>},#Ref<0.0.0.248452>}, > {{82,<5066.278.0>},#Ref<0.0.1.42330>}, > {resource,<<"/IEC">>,queue,<<"conso.queue">>}, > rabbit_mirror_queue_coordinator, > {83, > [{{76,<0.279.0>}, > {view_member, > {76,<0.279.0>}, > [], > {79,<5383.278.0>}, > {82,<5066.278.0>}}}, > {{79,<5383.278.0>}, > {view_member, > {79,<5383.278.0>}, > [], > {82,<5066.278.0>}, > {76,<0.279.0>}}}, > {{82,<5066.278.0>}, > {view_member, > {82,<5066.278.0>}, > [], > {76,<0.279.0>}, > {79,<5383.278.0>}}}]}, > 1457518, > > [{{76,<0.279.0>},{member,{[],[]},1457518,1457518}}, > {{79,<5383.278.0>},{member,{[],[]},1,1}}, > {{82,<5066.278.0>},{member,{[],[]},0,0}}], > [<0.1272.0>], > {[],[]}, > [],undefined, > #Fun} > ** Reason for termination == > ** {function_clause, > [{orddict,fetch, > [{76,<0.279.0>}, > [{{82,<5066.278.0>}, > {view_member, > {82,<5066.278.0>}, > [{79,<5383.278.0>}], > {82,<5066.278.0>}, > {82,<5066.278.0>}}}]], > [{file,"orddict.erl"},{line,72}]}, > {gm,check_neighbours,1,[]}, > {gm,handle_info,2,[]}, > {gen_server2,handle_msg,2,[]}, > {proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,249}]}]} > > =ERROR REPORT==== 19-Feb-2014::18:34:30 === > ** Generic server <0.283.0> terminating > ** Last message in was {'DOWN',#Ref<0.0.0.248454>,process,<5383.282.0>, > noconnection} > ** When Server state == {state, > {67,<0.283.0>}, > {{70,<5383.282.0>},#Ref<0.0.0.248454>}, > {{73,<5066.282.0>},#Ref<0.0.1.42352>}, > {resource,<<"/IEC">>,queue,<<"event.queue">>}, > rabbit_mirror_queue_coordinator, > {74, > [{{67,<0.283.0>}, > {view_member, > {67,<0.283.0>}, > [], > {70,<5383.282.0>}, > {73,<5066.282.0>}}}, > {{70,<5383.282.0>}, > {view_member, > {70,<5383.282.0>}, > [], > {73,<5066.282.0>}, > {67,<0.283.0>}}}, > {{73,<5066.282.0>}, > {view_member, > {73,<5066.282.0>}, > [], > {67,<0.283.0>}, > {70,<5383.282.0>}}}]}, > 212075, > > [{{67,<0.283.0>},{member,{[],[]},212075,212075}}, > {{70,<5383.282.0>},{member,{[],[]},1,1}}, > {{73,<5066.282.0>},{member,{[],[]},0,0}}], > [<0.1271.0>], > {[],[]}, > [],undefined, > #Fun} > ** Reason for termination == > ** {function_clause, > [{orddict,fetch, > [{67,<0.283.0>}, > [{{73,<5066.282.0>}, > {view_member, > {73,<5066.282.0>}, > [{70,<5383.282.0>}], > {73,<5066.282.0>}, > {73,<5066.282.0>}}}]], > [{file,"orddict.erl"},{line,72}]}, > {gm,check_neighbours,1,[]}, > {gm,handle_info,2,[]}, > {gen_server2,handle_msg,2,[]}, > {proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,249}]}]} > > =ERROR REPORT==== 19-Feb-2014::18:34:30 === > ** Generic server <0.203.0> terminating > ** Last message in was {mnesia_tm,'rabbit at FRA-VSP-32545', > {vote_yes,{tid,10316,<0.203.0>}}} > ** When Server state == 1 > ** Reason for termination == > ** {unexpected_info,{mnesia_tm,'rabbit at FRA-VSP-32545', > {vote_yes,{tid,10316,<0.203.0>}}}} > > =ERROR REPORT==== 19-Feb-2014::18:34:30 === > ** Generic server <0.275.0> terminating > ** Last message in was {'DOWN',#Ref<0.0.1.38240>,process,<5383.274.0>, > noconnection} > ** When Server state == {state, > {70,<0.275.0>}, > {{76,<5066.274.0>},#Ref<0.0.1.42305>}, > {{73,<5383.274.0>},#Ref<0.0.1.38240>}, > {resource,<<"/IEC">>,queue, > <<"activity.queue.dead">>}, > rabbit_mirror_queue_coordinator, > {77, > [{{70,<0.275.0>}, > {view_member, > {70,<0.275.0>}, > [], > {76,<5066.274.0>}, > {73,<5383.274.0>}}}, > {{73,<5383.274.0>}, > {view_member, > {73,<5383.274.0>}, > [], > {70,<0.275.0>}, > {76,<5066.274.0>}}}, > {{76,<5066.274.0>}, > {view_member, > {76,<5066.274.0>}, > [], > {73,<5383.274.0>}, > {70,<0.275.0>}}}]}, > 6, > [{{70,<0.275.0>},{member,{[],[]},6,6}}, > {{73,<5383.274.0>},{member,{[],[]},1,1}}, > {{76,<5066.274.0>},{member,{[],[]},0,0}}], > [<0.1273.0>], > {[],[]}, > [],undefined, > #Fun} > ** Reason for termination == > ** {noproc,{gen_server2,call, > [<0.203.0>, > {submit,#Fun}, > infinity]}} > > =ERROR REPORT==== 19-Feb-2014::18:34:30 === > ** Generic server <0.204.0> terminating > ** Last message in was {mnesia_tm,'rabbit at FRA-VSP-32545', > {vote_yes,{tid,10315,<0.204.0>}}} > ** When Server state == 2 > ** Reason for termination == > ** {unexpected_info,{mnesia_tm,'rabbit at FRA-VSP-32545', > {vote_yes,{tid,10315,<0.204.0>}}}} > > =ERROR REPORT==== 19-Feb-2014::18:34:30 === > ** Generic server <0.1268.0> terminating > ** Last message in was {'$gen_cast',{gm_deaths,[<5066.266.0>,<0.267.0>]}} > ** When Server state == {state, > {amqqueue, > {resource,<<"/IEC">>,queue, > <<"gps.queue.dead">>}, > true,false,none,[],<0.266.0>, > [<5066.265.0>], > [<5066.265.0>], > [{vhost,<<"/IEC">>}, > {name,<<"Queue HA">>}, > {pattern,<<".queue">>}, > {'apply-to',<<"queues">>}, > {definition, > [{<<"ha-mode">>,<<"all">>}, > > {<<"ha-sync-mode">>,<<"automatic">>}]}, > {priority,0}], > [{<5066.266.0>,<5066.265.0>}, > {<5383.266.0>,<5383.265.0>}], > []}, > <0.267.0>, > {state, > {dict,0,16,16,8,80,48, > > {[],[],[],[],[],[],[],[],[],[],[],[],[], > [],[],[]}, > > {{[],[],[],[],[],[],[],[],[],[],[],[],[], > [],[],[]}}}, > erlang}, > #Fun, > #Fun} > ** Reason for termination == > ** {{case_clause,{ok,<5066.265.0>,[]}}, > [{rabbit_mirror_queue_coordinator,handle_cast,2,[]}, > {gen_server2,handle_msg,2,[]}, > {proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,249}]}]} > > =ERROR REPORT==== 19-Feb-2014::18:34:31 === > ** Generic server <0.266.0> terminating > ** Last message in was {'EXIT',<0.1268.0>, > {{case_clause,{ok,<5066.265.0>,[]}}, > > [{rabbit_mirror_queue_coordinator,handle_cast,2, > []}, > {gen_server2,handle_msg,2,[]}, > {proc_lib,wake_up,3, > [{file,"proc_lib.erl"},{line,249}]}]}} > ** When Server state == {q, > {amqqueue, > {resource,<<"/IEC">>,queue,<<"gps.queue.dead">>}, > true,false,none,[],<0.266.0>, > [<5383.265.0>,<5066.265.0>], > [<5066.265.0>,<5383.265.0>], > [{vhost,<<"/IEC">>}, > {name,<<"Queue HA">>}, > {pattern,<<".queue">>}, > {'apply-to',<<"queues">>}, > {definition, > [{<<"ha-mode">>,<<"all">>}, > {<<"ha-sync-mode">>,<<"automatic">>}]}, > {priority,0}], > [{<5066.266.0>,<5066.265.0>}, > {<5383.266.0>,<5383.265.0>}, > {<0.267.0>,<0.266.0>}], > []}, > none,false,rabbit_mirror_queue_master, > {state, > {resource,<<"/IEC">>,queue,<<"gps.queue.dead">>}, > <0.267.0>,<0.1268.0>,rabbit_variable_queue, > {vqstate, > {0,{[],[]}}, > {0,{[],[]}}, > {delta,undefined,0,undefined}, > {0,{[],[]}}, > {0,{[],[]}}, > 0, > {0,nil}, > {0,nil}, > {qistate, > "d:/tools/RabbitMQ > Server/data/db/rabbit at FRA-VSP-32596-mnesia > /queues/6IXYXKMC8M51EEAXH5MKLR0Q4", > {{dict,0,16,16,8,80,48, > > {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], > []}, > > {{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], > []}}}, > []}, > undefined,0,65536, > #Fun, > {0,nil}}, > {{client_msstate,msg_store_persistent, > > <<55,209,140,132,77,86,75,214,37,255,72,56,103,92, > 154,75>>, > {dict,0,16,16,8,80,48, > > {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], > []}, > > {{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], > []}}}, > {state,340043, > "d:/tools/RabbitMQ > Server/data/db/rabbit at FRA-VSP-32596-mnesia/msg_store_persistent"}, > rabbit_msg_store_ets_index, > "d:/tools/RabbitMQ > Server/data/db/rabbit at FRA-VSP-32596-mnesia/msg_store_persistent", > <0.255.0>,344140,335946,348237,352334}, > {client_msstate,msg_store_transient, > > <<148,176,200,245,252,25,203,27,190,186,25,104, > 217,230,131,35>>, > {dict,0,16,16,8,80,48, > > {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], > []}, > > {{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], > []}}}, > {state,319558, > "d:/tools/RabbitMQ > Server/data/db/rabbit at FRA-VSP-32596-mnesia/msg_store_transient"}, > rabbit_msg_store_ets_index, > "d:/tools/RabbitMQ > Server/data/db/rabbit at FRA-VSP-32596-mnesia/msg_store_transient", > <0.250.0>,323655,315461,327752,331849}}, > true,0,0,0,infinity,0,0,0,0,0, > {rates, > {{1392,831016,530070},0}, > {{1392,831016,530070},0}, > 0.0,0.0, > {1392,831128,748070}}, > {0,nil}, > {0,nil}, > {0,nil}, > {0,nil}, > 0,0, > {rates, > {{1392,831016,530070},0}, > {{1392,831016,530070},0}, > 0.0,0.0, > {1392,831128,748070}}}, > {dict,0,16,16,8,80,48, > > {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]}, > {{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], > []}}}, > [], > {set,0,16,16,8,80,48, > > {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]}, > {{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], > []}}}}, > {queue,[],[],0}, > undefined,undefined,undefined,undefined, > {state,fine,5000,undefined}, > {0,nil}, > undefined,undefined,undefined, > {state, > {dict,0,16,16,8,80,48, > > {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]}, > {{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], > []}}}, > delegate}, > undefined,undefined,undefined,4,running} > ** Reason for termination == > ** {{case_clause,{ok,<5066.265.0>,[]}}, > [{rabbit_mirror_queue_coordinator,handle_cast,2,[]}, > {gen_server2,handle_msg,2,[]}, > {proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,249}]}]} > > > Any ideas? > > Best regards, > > * ________________________________________________________________* > *Micha?l OULLION* > *Architecte JAVA* > *ND Informatique* > Adresse (1208 route des Pierrelles B.P. 98 BEAUSEMBLANT - 26240 > Beausemblant - FRANCE) > Tel. +33 (0)4 75 23 68 07 > Visit our web site at www.norbert-dentressangle.com > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From dmitry.andrianov at alertme.com Thu Feb 20 17:38:27 2014 From: dmitry.andrianov at alertme.com (Dmitry Andrianov) Date: Thu, 20 Feb 2014 17:38:27 +0000 Subject: [rabbitmq-discuss] JavaClient HeartbeatSender In-Reply-To: <8BEDF4CD-ADE5-46E4-9B77-17B33B9CD52E@rabbitmq.com> References: <530608DE.2090903@alertme.com> <8513EF18-0DCB-4BBE-A817-054767D0B716@rabbitmq.com> <5306100A.7080409@alertme.com> <8BEDF4CD-ADE5-46E4-9B77-17B33B9CD52E@rabbitmq.com> Message-ID: <53063D93.8020306@alertme.com> Ah, I see. But I am not sure it will help us - we need to avoid creation of extra threads not to modify how they are created. HeartbeatService will still be creating its own scheduler which will in turn request new threads from the factory and even if we have custom factory - it must satisfy that request and create a new thread for it... So unless I am missing something it looks like what we want is achievable only with custom scheduled executor, not with custom thread factory. Cheers. On 20/02/14 15:15, Michael Klishin wrote: > On 20 Feb 2014, at 18:24, Dmitry Andrianov wrote: > >> Custom ThreadFactory sounds a bit scary. So it won't be using executors framework in that case? > Executor services can use a custom j.u.c.ThreadFactory implementations to instantiate threads, e.g. > http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Executors.html#newCachedThreadPool(java.util.concurrent.ThreadFactory) > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss This email is for the use of the intended recipient(s) only. If you have received this email in error, please notify the sender immediately and then delete it. If you are not the intended recipient, you must not use, disclose or distribute this email without the author's prior permission. AlertMe.com Ltd. is not responsible for any personal views expressed in this message or any attachments that are those of the individual sender. AlertMe.com Ltd, 30 Station Road, Cambridge, CB1 2RE, UK. Registered in England, Company number 578 2908, VAT registration number GB 895 9914 42. From mklishin at gopivotal.com Thu Feb 20 17:43:28 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 20 Feb 2014 21:43:28 +0400 Subject: [rabbitmq-discuss] JavaClient HeartbeatSender In-Reply-To: <53063D93.8020306@alertme.com> References: <530608DE.2090903@alertme.com> <8513EF18-0DCB-4BBE-A817-054767D0B716@rabbitmq.com> <5306100A.7080409@alertme.com> <8BEDF4CD-ADE5-46E4-9B77-17B33B9CD52E@rabbitmq.com> <53063D93.8020306@alertme.com> Message-ID: <80ED9824-888F-45C8-BA81-40C6D970710A@rabbitmq.com> On 20 Feb 2014, at 21:38, Dmitry Andrianov wrote: > But I am not sure it will help us - we need to avoid creation of extra threads not to modify how they are created. > HeartbeatService will still be creating its own scheduler which will in turn request new threads from the factory and even if we have custom factory - it must satisfy that request and create a new thread for it... Or return the same thread every time. MK Software Engineer, Pivotal/RabbitMQ From videlalvaro at gmail.com Thu Feb 20 19:35:18 2014 From: videlalvaro at gmail.com (Alvaro Videla) Date: Thu, 20 Feb 2014 20:35:18 +0100 Subject: [rabbitmq-discuss] ../vendor/autoload.php: failed to open stream: No such file or directory In-Reply-To: <1392913852390-33534.post@n5.nabble.com> References: <1392846258468-33511.post@n5.nabble.com> <1392913852390-33534.post@n5.nabble.com> Message-ID: Well, you might need to adapt the commands for windows, and make sure the commands are in the path. On Thursday, February 20, 2014, anate wrote: > Thanks for the reply. I ran 'php composer.phar' command on the folder. I am > getting 'could not open file composer.phar'. I installed Composer on > windows > using composer_setup.exe file. > > Here is the detailed error message when I run amqp_publisher.php file. > > > > 'D:\inetpub\wwwroot\test\vendor\videlalvaro\php-amqplib\demo/../vendor/autoload.php' > (include_path='.;C:\php\pear'). I am using 5.3.13 and it's installed in > 'D:\PHP5313' folder. There is no 'pear' folder. Could you please let me > know > if I am missing something? Thanks for any suggestions. > > autoload.php > ----------------------------- > > require_once __DIR__ . '/composer' . '/autoload_real.php'; > > return > ComposerAutoloaderInit5e74aaf68e13rfe5f321c5a586eb96f22::getLoader(); > > > > -- > View this message in context: > http://rabbitmq.1065348.n5.nabble.com/vendor-autoload-php-failed-to-open-stream-No-such-file-or-directory-tp33511p33534.html > Sent from the RabbitMQ mailing list archive at Nabble.com. > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From tonygarnockjones+rabbitmq at gmail.com Thu Feb 20 19:59:19 2014 From: tonygarnockjones+rabbitmq at gmail.com (Tony Garnock-Jones) Date: Thu, 20 Feb 2014 14:59:19 -0500 Subject: [rabbitmq-discuss] How to use Presence Exchange Plugin using STOMP and RabbitMQ Server v3.2.1? In-Reply-To: <52D3E006.1010904@rabbitmq.com> References: <52D3E006.1010904@rabbitmq.com> Message-ID: On 13 January 2014 07:45, Emile Joubert wrote: > When I try this I see the following error in the logfile: > > ** Reason for termination == > ** {badarg,[{erlang,binary_to_list,["bind"],[]}, > > This looks like a problem in the presence exchange. I have submitted a > pull request to the author which appears to solve the problem. Thanks Emile! I've just merged the patch (sorry for the delay, Joshua) and am now building some fresh binaries. Cheers, Tony -------------- next part -------------- An HTML attachment was scrubbed... URL: From ambatinr at hotmail.com Thu Feb 20 20:05:15 2014 From: ambatinr at hotmail.com (anate) Date: Thu, 20 Feb 2014 12:05:15 -0800 (PST) Subject: [rabbitmq-discuss] ../vendor/autoload.php: failed to open stream: No such file or directory In-Reply-To: References: <1392846258468-33511.post@n5.nabble.com> <1392913852390-33534.post@n5.nabble.com> Message-ID: <1392926715127-33539.post@n5.nabble.com> Thanks. I adjusted the paths and it's working. -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/vendor-autoload-php-failed-to-open-stream-No-such-file-or-directory-tp33511p33539.html Sent from the RabbitMQ mailing list archive at Nabble.com. From michael.oullion at norbert-dentressangle.com Thu Feb 20 20:11:43 2014 From: michael.oullion at norbert-dentressangle.com (Michael Oullion) Date: Thu, 20 Feb 2014 21:11:43 +0100 Subject: [rabbitmq-discuss] RabbitMQ Cluster, split network & VMWare snapshot In-Reply-To: References: Message-ID: Thanks Jerry for your quick answer. What can we do in this situation? Maybe we can uprise the net tick or use a specific behaviour to manage network split. Or simply stop take snapshot of the vm because it's not necessary? Regards. Le 20 f?vr. 2014 17:57, "Jerry Kuch" a ?crit : > Hi, Michael: > > This isn't terribly surprising. Snapshotting a VM is likely to render it > less responsive than it normally would be for some amount of time. Whether > that period ends before some other node in your cluster misses heartbeats > and gives you grief about it, is a coin flip. > > Best regards, > Jerry > > > > On Thu, Feb 20, 2014 at 3:12 AM, Michael Oullion < > michael.oullion at norbert-dentressangle.com> wrote: > >> Hi all, >> >> We observe some net split on our cluster and we don't know why. >> Before change the net tick parameter and change the net split behavior, I >> want to understand why it's happening. >> Our environment is : >> RabbitMQ 3.2.1 Elrang R16B >> 3 RabbitMQ Node in the same sub-network >> RabbitMQ is installed on Windows 2008 R2 (VMWare ESXi 5.1) >> We have 4 Mirrored Queues on this cluster. >> In production, the normal stream is about 20 messages/second. >> >> We observe that split occurs always at the end of the snapshot >> (NetBackup) on the VM. >> But, we made snapshot each night and the network split occurs 1 time each >> 15 or 20 days. >> >> *Log server rabbit at FRA-VSP-32545 :* >> =INFO REPORT==== 19-Feb-2014::18:34:47 === >> rabbit on node 'rabbit at FRA-VSP-32596' down >> >> =INFO REPORT==== 19-Feb-2014::18:34:49 === >> Mirrored-queue (queue 'conso.queue.dead' in vhost '/IEC'): Slave >> <'rabbit at FRA-VSP-32545'.2.269.0> saw deaths of mirrors >> <'rabbit at FRA-VSP-32596'.1.270.0> >> >> >> *Log server rabbit at FRA-VSP-32596 :* >> >> =INFO REPORT==== 19-Feb-2014::18:34:28 === >> rabbit on node 'rabbit at FRA-VSP-32545' down >> >> =ERROR REPORT==== 19-Feb-2014::18:34:30 === >> ** Generic server <0.279.0> terminating >> ** Last message in was {'DOWN',#Ref<0.0.0.248452>,process,<5383.278.0>, >> noconnection} >> ** When Server state == {state, >> {76,<0.279.0>}, >> {{79,<5383.278.0>},#Ref<0.0.0.248452>}, >> {{82,<5066.278.0>},#Ref<0.0.1.42330>}, >> {resource,<<"/IEC">>,queue,<<"conso.queue">>}, >> rabbit_mirror_queue_coordinator, >> {83, >> [{{76,<0.279.0>}, >> {view_member, >> {76,<0.279.0>}, >> [], >> {79,<5383.278.0>}, >> {82,<5066.278.0>}}}, >> {{79,<5383.278.0>}, >> {view_member, >> {79,<5383.278.0>}, >> [], >> {82,<5066.278.0>}, >> {76,<0.279.0>}}}, >> {{82,<5066.278.0>}, >> {view_member, >> {82,<5066.278.0>}, >> [], >> {76,<0.279.0>}, >> {79,<5383.278.0>}}}]}, >> 1457518, >> >> [{{76,<0.279.0>},{member,{[],[]},1457518,1457518}}, >> {{79,<5383.278.0>},{member,{[],[]},1,1}}, >> {{82,<5066.278.0>},{member,{[],[]},0,0}}], >> [<0.1272.0>], >> {[],[]}, >> [],undefined, >> >> #Fun} >> ** Reason for termination == >> ** {function_clause, >> [{orddict,fetch, >> [{76,<0.279.0>}, >> [{{82,<5066.278.0>}, >> {view_member, >> {82,<5066.278.0>}, >> [{79,<5383.278.0>}], >> {82,<5066.278.0>}, >> {82,<5066.278.0>}}}]], >> [{file,"orddict.erl"},{line,72}]}, >> {gm,check_neighbours,1,[]}, >> {gm,handle_info,2,[]}, >> {gen_server2,handle_msg,2,[]}, >> {proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,249}]}]} >> >> =ERROR REPORT==== 19-Feb-2014::18:34:30 === >> ** Generic server <0.283.0> terminating >> ** Last message in was {'DOWN',#Ref<0.0.0.248454>,process,<5383.282.0>, >> noconnection} >> ** When Server state == {state, >> {67,<0.283.0>}, >> {{70,<5383.282.0>},#Ref<0.0.0.248454>}, >> {{73,<5066.282.0>},#Ref<0.0.1.42352>}, >> {resource,<<"/IEC">>,queue,<<"event.queue">>}, >> rabbit_mirror_queue_coordinator, >> {74, >> [{{67,<0.283.0>}, >> {view_member, >> {67,<0.283.0>}, >> [], >> {70,<5383.282.0>}, >> {73,<5066.282.0>}}}, >> {{70,<5383.282.0>}, >> {view_member, >> {70,<5383.282.0>}, >> [], >> {73,<5066.282.0>}, >> {67,<0.283.0>}}}, >> {{73,<5066.282.0>}, >> {view_member, >> {73,<5066.282.0>}, >> [], >> {67,<0.283.0>}, >> {70,<5383.282.0>}}}]}, >> 212075, >> >> [{{67,<0.283.0>},{member,{[],[]},212075,212075}}, >> {{70,<5383.282.0>},{member,{[],[]},1,1}}, >> {{73,<5066.282.0>},{member,{[],[]},0,0}}], >> [<0.1271.0>], >> {[],[]}, >> [],undefined, >> >> #Fun} >> ** Reason for termination == >> ** {function_clause, >> [{orddict,fetch, >> [{67,<0.283.0>}, >> [{{73,<5066.282.0>}, >> {view_member, >> {73,<5066.282.0>}, >> [{70,<5383.282.0>}], >> {73,<5066.282.0>}, >> {73,<5066.282.0>}}}]], >> [{file,"orddict.erl"},{line,72}]}, >> {gm,check_neighbours,1,[]}, >> {gm,handle_info,2,[]}, >> {gen_server2,handle_msg,2,[]}, >> {proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,249}]}]} >> >> =ERROR REPORT==== 19-Feb-2014::18:34:30 === >> ** Generic server <0.203.0> terminating >> ** Last message in was {mnesia_tm,'rabbit at FRA-VSP-32545', >> {vote_yes,{tid,10316,<0.203.0>}}} >> ** When Server state == 1 >> ** Reason for termination == >> ** {unexpected_info,{mnesia_tm,'rabbit at FRA-VSP-32545', >> {vote_yes,{tid,10316,<0.203.0>}}}} >> >> =ERROR REPORT==== 19-Feb-2014::18:34:30 === >> ** Generic server <0.275.0> terminating >> ** Last message in was {'DOWN',#Ref<0.0.1.38240>,process,<5383.274.0>, >> noconnection} >> ** When Server state == {state, >> {70,<0.275.0>}, >> {{76,<5066.274.0>},#Ref<0.0.1.42305>}, >> {{73,<5383.274.0>},#Ref<0.0.1.38240>}, >> {resource,<<"/IEC">>,queue, >> <<"activity.queue.dead">>}, >> rabbit_mirror_queue_coordinator, >> {77, >> [{{70,<0.275.0>}, >> {view_member, >> {70,<0.275.0>}, >> [], >> {76,<5066.274.0>}, >> {73,<5383.274.0>}}}, >> {{73,<5383.274.0>}, >> {view_member, >> {73,<5383.274.0>}, >> [], >> {70,<0.275.0>}, >> {76,<5066.274.0>}}}, >> {{76,<5066.274.0>}, >> {view_member, >> {76,<5066.274.0>}, >> [], >> {73,<5383.274.0>}, >> {70,<0.275.0>}}}]}, >> 6, >> [{{70,<0.275.0>},{member,{[],[]},6,6}}, >> {{73,<5383.274.0>},{member,{[],[]},1,1}}, >> {{76,<5066.274.0>},{member,{[],[]},0,0}}], >> [<0.1273.0>], >> {[],[]}, >> [],undefined, >> >> #Fun} >> ** Reason for termination == >> ** {noproc,{gen_server2,call, >> [<0.203.0>, >> {submit,#Fun}, >> infinity]}} >> >> =ERROR REPORT==== 19-Feb-2014::18:34:30 === >> ** Generic server <0.204.0> terminating >> ** Last message in was {mnesia_tm,'rabbit at FRA-VSP-32545', >> {vote_yes,{tid,10315,<0.204.0>}}} >> ** When Server state == 2 >> ** Reason for termination == >> ** {unexpected_info,{mnesia_tm,'rabbit at FRA-VSP-32545', >> {vote_yes,{tid,10315,<0.204.0>}}}} >> >> =ERROR REPORT==== 19-Feb-2014::18:34:30 === >> ** Generic server <0.1268.0> terminating >> ** Last message in was {'$gen_cast',{gm_deaths,[<5066.266.0>,<0.267.0>]}} >> ** When Server state == {state, >> {amqqueue, >> {resource,<<"/IEC">>,queue, >> <<"gps.queue.dead">>}, >> true,false,none,[],<0.266.0>, >> [<5066.265.0>], >> [<5066.265.0>], >> [{vhost,<<"/IEC">>}, >> {name,<<"Queue HA">>}, >> {pattern,<<".queue">>}, >> {'apply-to',<<"queues">>}, >> {definition, >> [{<<"ha-mode">>,<<"all">>}, >> >> {<<"ha-sync-mode">>,<<"automatic">>}]}, >> {priority,0}], >> [{<5066.266.0>,<5066.265.0>}, >> {<5383.266.0>,<5383.265.0>}], >> []}, >> <0.267.0>, >> {state, >> {dict,0,16,16,8,80,48, >> >> {[],[],[],[],[],[],[],[],[],[],[],[],[], >> [],[],[]}, >> >> {{[],[],[],[],[],[],[],[],[],[],[],[],[], >> [],[],[]}}}, >> erlang}, >> #Fun, >> #Fun} >> ** Reason for termination == >> ** {{case_clause,{ok,<5066.265.0>,[]}}, >> [{rabbit_mirror_queue_coordinator,handle_cast,2,[]}, >> {gen_server2,handle_msg,2,[]}, >> {proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,249}]}]} >> >> =ERROR REPORT==== 19-Feb-2014::18:34:31 === >> ** Generic server <0.266.0> terminating >> ** Last message in was {'EXIT',<0.1268.0>, >> {{case_clause,{ok,<5066.265.0>,[]}}, >> >> [{rabbit_mirror_queue_coordinator,handle_cast,2, >> []}, >> {gen_server2,handle_msg,2,[]}, >> {proc_lib,wake_up,3, >> [{file,"proc_lib.erl"},{line,249}]}]}} >> ** When Server state == {q, >> {amqqueue, >> >> {resource,<<"/IEC">>,queue,<<"gps.queue.dead">>}, >> true,false,none,[],<0.266.0>, >> [<5383.265.0>,<5066.265.0>], >> [<5066.265.0>,<5383.265.0>], >> [{vhost,<<"/IEC">>}, >> {name,<<"Queue HA">>}, >> {pattern,<<".queue">>}, >> {'apply-to',<<"queues">>}, >> {definition, >> [{<<"ha-mode">>,<<"all">>}, >> {<<"ha-sync-mode">>,<<"automatic">>}]}, >> {priority,0}], >> [{<5066.266.0>,<5066.265.0>}, >> {<5383.266.0>,<5383.265.0>}, >> {<0.267.0>,<0.266.0>}], >> []}, >> none,false,rabbit_mirror_queue_master, >> {state, >> >> {resource,<<"/IEC">>,queue,<<"gps.queue.dead">>}, >> <0.267.0>,<0.1268.0>,rabbit_variable_queue, >> {vqstate, >> {0,{[],[]}}, >> {0,{[],[]}}, >> {delta,undefined,0,undefined}, >> {0,{[],[]}}, >> {0,{[],[]}}, >> 0, >> {0,nil}, >> {0,nil}, >> {qistate, >> "d:/tools/RabbitMQ >> Server/data/db/rabbit at FRA-VSP-32596-mnesia >> /queues/6IXYXKMC8M51EEAXH5MKLR0Q4", >> {{dict,0,16,16,8,80,48, >> >> {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], >> []}, >> >> {{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], >> []}}}, >> []}, >> undefined,0,65536, >> #Fun, >> {0,nil}}, >> {{client_msstate,msg_store_persistent, >> >> <<55,209,140,132,77,86,75,214,37,255,72,56,103,92, >> 154,75>>, >> {dict,0,16,16,8,80,48, >> >> {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], >> []}, >> >> {{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], >> []}}}, >> {state,340043, >> "d:/tools/RabbitMQ >> Server/data/db/rabbit at FRA-VSP-32596-mnesia/msg_store_persistent"}, >> rabbit_msg_store_ets_index, >> "d:/tools/RabbitMQ >> Server/data/db/rabbit at FRA-VSP-32596-mnesia/msg_store_persistent", >> <0.255.0>,344140,335946,348237,352334}, >> {client_msstate,msg_store_transient, >> >> <<148,176,200,245,252,25,203,27,190,186,25,104, >> 217,230,131,35>>, >> {dict,0,16,16,8,80,48, >> >> {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], >> []}, >> >> {{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], >> []}}}, >> {state,319558, >> "d:/tools/RabbitMQ >> Server/data/db/rabbit at FRA-VSP-32596-mnesia/msg_store_transient"}, >> rabbit_msg_store_ets_index, >> "d:/tools/RabbitMQ >> Server/data/db/rabbit at FRA-VSP-32596-mnesia/msg_store_transient", >> <0.250.0>,323655,315461,327752,331849}}, >> true,0,0,0,infinity,0,0,0,0,0, >> {rates, >> {{1392,831016,530070},0}, >> {{1392,831016,530070},0}, >> 0.0,0.0, >> {1392,831128,748070}}, >> {0,nil}, >> {0,nil}, >> {0,nil}, >> {0,nil}, >> 0,0, >> {rates, >> {{1392,831016,530070},0}, >> {{1392,831016,530070},0}, >> 0.0,0.0, >> {1392,831128,748070}}}, >> {dict,0,16,16,8,80,48, >> >> {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]}, >> {{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], >> []}}}, >> [], >> {set,0,16,16,8,80,48, >> >> {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]}, >> {{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], >> []}}}}, >> {queue,[],[],0}, >> undefined,undefined,undefined,undefined, >> {state,fine,5000,undefined}, >> {0,nil}, >> undefined,undefined,undefined, >> {state, >> {dict,0,16,16,8,80,48, >> >> {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]}, >> {{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], >> []}}}, >> delegate}, >> undefined,undefined,undefined,4,running} >> ** Reason for termination == >> ** {{case_clause,{ok,<5066.265.0>,[]}}, >> [{rabbit_mirror_queue_coordinator,handle_cast,2,[]}, >> {gen_server2,handle_msg,2,[]}, >> {proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,249}]}]} >> >> >> Any ideas? >> >> Best regards, >> >> * ________________________________________________________________* >> *Micha?l OULLION* >> *Architecte JAVA* >> *ND Informatique* >> Adresse (1208 route des Pierrelles B.P. 98 BEAUSEMBLANT - 26240 >> Beausemblant - FRANCE) >> Tel. +33 (0)4 75 23 68 07 >> Visit our web site at www.norbert-dentressangle.com >> >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> >> > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ambatinr at hotmail.com Thu Feb 20 20:13:53 2014 From: ambatinr at hotmail.com (anate) Date: Thu, 20 Feb 2014 12:13:53 -0800 (PST) Subject: [rabbitmq-discuss] Publish using PHP and consume using .NET Message-ID: <1392927233478-33540.post@n5.nabble.com> I am new RabbitMQ. I have simple publish to RabbitMQ using PHP and it works. I can see there is a message in Queue. I am trying to consume the message using C#. I am getting the following error message on this line of code. What could be wrong? Please suggest. channel.QueueDeclare("msgs", false, true, false, null); The AMQP operation was interrupted: AMQP close-reason, initiated by Peer, code=406, text="PRECONDITION_FAILED - parameters for queue 'msgs' in vhost '/' not equivalent", classId=50, methodId=10, cause= Here is my PHP code:(Publish) ----------------------------- channel(); $ch->queue_declare($queue, false, true, false, false); $ch->exchange_declare($exchange, 'direct', false, true, false); $ch->queue_bind($queue, $exchange); $msg_body = "Hello World"; $msg = new AMQPMessage($msg_body, array('content_type' => 'text/plain', 'delivery_mode' => 2)); $ch->basic_publish($msg, $exchange); $ch->close(); $conn->close(); ?> .NET code --------------------------------------------- var connectionFactory = new ConnectionFactory { HostName = "server-name", Port = 5672, UserName = "guest", Password = "guest", VirtualHost = "/" }; using (IConnection connection = connectionFactory.CreateConnection()) { using (var channel = connection.CreateModel()) { channel.QueueDeclare("msgs", false, true, false, null); var consumer = new QueueingBasicConsumer(channel); channel.BasicConsume("msgs", true, consumer); while (true) { var ea = (BasicDeliverEventArgs)consumer.Queue.Dequeue(); var body = ea.Body; var message = Encoding.UTF8.GetString(body); textBox1.Text = message; } } } -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Publish-using-PHP-and-consume-using-NET-tp33540.html Sent from the RabbitMQ mailing list archive at Nabble.com. From videlalvaro at gmail.com Thu Feb 20 21:33:30 2014 From: videlalvaro at gmail.com (Alvaro Videla) Date: Thu, 20 Feb 2014 22:33:30 +0100 Subject: [rabbitmq-discuss] Publish using PHP and consume using .NET In-Reply-To: <1392927233478-33540.post@n5.nabble.com> References: <1392927233478-33540.post@n5.nabble.com> Message-ID: Hi, In PHP you are declaring a durable queue, that's what the third parameter to queue_declare being "true" means. In .Net you declare a non durable queue, that is, your second parameter is false. The .Net API is here: http://www.rabbitmq.com/releases/rabbitmq-dotnet-client/v3.2.3/rabbitmq-dotnet-client-3.2.3-client-htmldoc/html/type-RabbitMQ.Client.IModel.html Whenever you re-declare an existent resource, you need to use the same arguments as the ones used the first time the resource was declared. Regards, Alvaro On Thu, Feb 20, 2014 at 9:13 PM, anate wrote: > I am new RabbitMQ. I have simple publish to RabbitMQ using PHP and it works. > I can see there is a message in Queue. I am trying to consume the message > using C#. I am getting the following error message on this line of code. > What could be wrong? Please suggest. > > channel.QueueDeclare("msgs", false, true, false, null); > > > The AMQP operation was interrupted: AMQP close-reason, initiated by Peer, > code=406, text="PRECONDITION_FAILED - parameters for queue 'msgs' in vhost > '/' not equivalent", classId=50, methodId=10, cause= > > Here is my PHP code:(Publish) > ----------------------------- > > > include(__DIR__ . '/config.php'); > use PhpAmqpLib\Connection\AMQPConnection; > use PhpAmqpLib\Message\AMQPMessage; > > > $exchange = 'router'; > $queue = 'msgs'; > > $conn = new AMQPConnection(HOST, PORT, USER, PASS, VHOST); > $ch = $conn->channel(); > > $ch->queue_declare($queue, false, true, false, false); > > $ch->exchange_declare($exchange, 'direct', false, true, false); > > $ch->queue_bind($queue, $exchange); > > $msg_body = "Hello World"; > $msg = new AMQPMessage($msg_body, array('content_type' => 'text/plain', > 'delivery_mode' => 2)); > $ch->basic_publish($msg, $exchange); > > $ch->close(); > $conn->close(); > > ?> > > .NET code > --------------------------------------------- > var connectionFactory = new ConnectionFactory > { > HostName = "server-name", > Port = 5672, > UserName = "guest", > Password = "guest", > VirtualHost = "/" > }; > > using (IConnection connection = > connectionFactory.CreateConnection()) > { > using (var channel = connection.CreateModel()) > { > channel.QueueDeclare("msgs", false, true, false, null); > > var consumer = new QueueingBasicConsumer(channel); > channel.BasicConsume("msgs", true, consumer); > > while (true) > { > var ea = > (BasicDeliverEventArgs)consumer.Queue.Dequeue(); > var body = ea.Body; > var message = Encoding.UTF8.GetString(body); > textBox1.Text = message; > } > } > } > > > > -- > View this message in context: http://rabbitmq.1065348.n5.nabble.com/Publish-using-PHP-and-consume-using-NET-tp33540.html > Sent from the RabbitMQ mailing list archive at Nabble.com. > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss From eric.berg at salesforce.com Thu Feb 20 21:54:54 2014 From: eric.berg at salesforce.com (Eric Berg) Date: Thu, 20 Feb 2014 16:54:54 -0500 Subject: [rabbitmq-discuss] Multifunctional Rabbit Architectures Message-ID: Hi, I currently have a 5 node cluster setup in production that handles 80 queues with an HA policy of 2 nodes, peaking at about 30M total messages and 10K msg/sec all for one type of task. Our application will need queues going forward for a variety of unrelated tasks but I would still like one entry point as the messages typically originate from the same place, and I would like to avoid multiple connections per process. A few questions: Any reason to not keep adding nodes to the same cluster other than for latency potential and queue master/slave ownership? I was considering adding federation where a single upstream cluster would handle all incoming messages, then several clusters downstream would federate the exchanges that they needed, is this a common or unusual pattern? Are there any good resources for discussions or blogs where others have discussed more complicated architectures? Thanks for your insight! - Eric Berg -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.laing at nytimes.com Thu Feb 20 23:11:20 2014 From: michael.laing at nytimes.com (Laing, Michael) Date: Thu, 20 Feb 2014 18:11:20 -0500 Subject: [rabbitmq-discuss] Multifunctional Rabbit Architectures In-Reply-To: References: Message-ID: I don't know if it is usual, but we use a 'proxy' cluster that faces our internal clients and provides a single dns name (which actually round robins to healthy cluster members). This allows us to forward the stream of messages to multiple clusters in our fabric for processing. Michael Laing NYTimes On Thu, Feb 20, 2014 at 4:54 PM, Eric Berg wrote: > Hi, > I currently have a 5 node cluster setup in production that handles 80 > queues with an HA policy of 2 nodes, peaking at about 30M total messages > and 10K msg/sec all for one type of task. Our application will need queues > going forward for a variety of unrelated tasks but I would still like one > entry point as the messages typically originate from the same place, and I > would like to avoid multiple connections per process. > > A few questions: > Any reason to not keep adding nodes to the same cluster other than for > latency potential and queue master/slave ownership? > I was considering adding federation where a single upstream cluster would > handle all incoming messages, then several clusters downstream would > federate the exchanges that they needed, is this a common or unusual > pattern? > Are there any good resources for discussions or blogs where others have > discussed more complicated architectures? > > Thanks for your insight! > > - Eric Berg > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bchmura at nurturhealth.com Fri Feb 21 00:36:16 2014 From: bchmura at nurturhealth.com (Bill Chmura) Date: Fri, 21 Feb 2014 00:36:16 +0000 Subject: [rabbitmq-discuss] RabbitMQ Cluster, split network & VMWare Message-ID: <25870F6AB6D0E34489AD94C19EA928DB411D0AD9@OFLEXMB06P.centene.com> Hi Michael, We've been trying to track down a similar problem with our cluster of RabbitMQ on VMWare machines. We started here a few months back and Simon gave us some things to try. We've still not figured it out, but we really think it is something in the VMWare layer of things. Not sure if your problem is the same, but we tried the increasing of the nettick time and all to no avail When we have our problem, on the VMWARE console, the performance charting just goes blank for a bit. Nothing is recorded, just a gap in the timeline I was wondering if you see the same thing? We've been tweaking our vmware settings, and it seems to be tied to our web app deploys. ------------------------------------------------------------------------------ Hi all, We observe some net split on our cluster and we don't know why. Before change the net tick parameter and change the net split behavior, I want to understand why it's happening. Our environment is : RabbitMQ 3.2.1 Elrang R16B 3 RabbitMQ Node in the same sub-network RabbitMQ is installed on Windows 2008 R2 (VMWare ESXi 5.1) We have 4 Mirrored Queues on this cluster. In production, the normal stream is about 20 messages/second. We observe that split occurs always at the end of the snapshot (NetBackup) on the VM. But, we made snapshot each night and the network split occurs 1 time each 15 or 20 days. *Log server rabbit at FRA-VSP-32545 :* =INFO REPORT==== 19-Feb-2014::18:34:47 === rabbit on node 'rabbit at FRA-VSP-32596' down =INFO REPORT==== 19-Feb-2014::18:34:49 === Mirrored-queue (queue 'conso.queue.dead' in vhost '/IEC'): Slave <'rabbit at FRA-VSP-32545'.2.269.0> saw deaths of mirrors <'rabbit at FRA-VSP-32596'.1.270.0> *Log server rabbit at FRA-VSP-32596 :* =INFO REPORT==== 19-Feb-2014::18:34:28 === rabbit on node 'rabbit at FRA-VSP-32545' down =ERROR REPORT==== 19-Feb-2014::18:34:30 === ** Generic server <0.279.0> terminating ** Last message in was {'DOWN',#Ref<0.0.0.248452>,process,<5383.278.0>, noconnection} ** When Server state == {state, {76,<0.279.0>}, {{79,<5383.278.0>},#Ref<0.0.0.248452>}, {{82,<5066.278.0>},#Ref<0.0.1.42330>}, {resource,<<"/IEC">>,queue,<<"conso.queue">>}, rabbit_mirror_queue_coordinator, {83, [{{76,<0.279.0>}, {view_member, {76,<0.279.0>}, [], {79,<5383.278.0>}, {82,<5066.278.0>}}}, {{79,<5383.278.0>}, {view_member, {79,<5383.278.0>}, [], {82,<5066.278.0>}, {76,<0.279.0>}}}, {{82,<5066.278.0>}, {view_member, {82,<5066.278.0>}, [], {76,<0.279.0>}, {79,<5383.278.0>}}}]}, 1457518, [{{76,<0.279.0>},{member,{[],[]},1457518,1457518}}, {{79,<5383.278.0>},{member,{[],[]},1,1}}, {{82,<5066.278.0>},{member,{[],[]},0,0}}], [<0.1272.0>], {[],[]}, [],undefined, #Fun} ** Reason for termination == ** {function_clause, [{orddict,fetch, [{76,<0.279.0>}, [{{82,<5066.278.0>}, {view_member, {82,<5066.278.0>}, [{79,<5383.278.0>}], {82,<5066.278.0>}, {82,<5066.278.0>}}}]], [{file,"orddict.erl"},{line,72}]}, {gm,check_neighbours,1,[]}, {gm,handle_info,2,[]}, {gen_server2,handle_msg,2,[]}, {proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,249}]}]} =ERROR REPORT==== 19-Feb-2014::18:34:30 === ** Generic server <0.283.0> terminating ** Last message in was {'DOWN',#Ref<0.0.0.248454>,process,<5383.282.0>, noconnection} ** When Server state == {state, {67,<0.283.0>}, {{70,<5383.282.0>},#Ref<0.0.0.248454>}, {{73,<5066.282.0>},#Ref<0.0.1.42352>}, {resource,<<"/IEC">>,queue,<<"event.queue">>}, rabbit_mirror_queue_coordinator, {74, [{{67,<0.283.0>}, {view_member, {67,<0.283.0>}, [], {70,<5383.282.0>}, {73,<5066.282.0>}}}, {{70,<5383.282.0>}, {view_member, {70,<5383.282.0>}, [], {73,<5066.282.0>}, {67,<0.283.0>}}}, {{73,<5066.282.0>}, {view_member, {73,<5066.282.0>}, [], {67,<0.283.0>}, {70,<5383.282.0>}}}]}, 212075, [{{67,<0.283.0>},{member,{[],[]},212075,212075}}, {{70,<5383.282.0>},{member,{[],[]},1,1}}, {{73,<5066.282.0>},{member,{[],[]},0,0}}], [<0.1271.0>], {[],[]}, [],undefined, #Fun} ** Reason for termination == ** {function_clause, [{orddict,fetch, [{67,<0.283.0>}, [{{73,<5066.282.0>}, {view_member, {73,<5066.282.0>}, [{70,<5383.282.0>}], {73,<5066.282.0>}, {73,<5066.282.0>}}}]], [{file,"orddict.erl"},{line,72}]}, {gm,check_neighbours,1,[]}, {gm,handle_info,2,[]}, {gen_server2,handle_msg,2,[]}, {proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,249}]}]} =ERROR REPORT==== 19-Feb-2014::18:34:30 === ** Generic server <0.203.0> terminating ** Last message in was {mnesia_tm,'rabbit at FRA-VSP-32545', {vote_yes,{tid,10316,<0.203.0>}}} ** When Server state == 1 ** Reason for termination == ** {unexpected_info,{mnesia_tm,'rabbit at FRA-VSP-32545', {vote_yes,{tid,10316,<0.203.0>}}}} =ERROR REPORT==== 19-Feb-2014::18:34:30 === ** Generic server <0.275.0> terminating ** Last message in was {'DOWN',#Ref<0.0.1.38240>,process,<5383.274.0>, noconnection} ** When Server state == {state, {70,<0.275.0>}, {{76,<5066.274.0>},#Ref<0.0.1.42305>}, {{73,<5383.274.0>},#Ref<0.0.1.38240>}, {resource,<<"/IEC">>,queue, <<"activity.queue.dead">>}, rabbit_mirror_queue_coordinator, {77, [{{70,<0.275.0>}, {view_member, {70,<0.275.0>}, [], {76,<5066.274.0>}, {73,<5383.274.0>}}}, {{73,<5383.274.0>}, {view_member, {73,<5383.274.0>}, [], {70,<0.275.0>}, {76,<5066.274.0>}}}, {{76,<5066.274.0>}, {view_member, {76,<5066.274.0>}, [], {73,<5383.274.0>}, {70,<0.275.0>}}}]}, 6, [{{70,<0.275.0>},{member,{[],[]},6,6}}, {{73,<5383.274.0>},{member,{[],[]},1,1}}, {{76,<5066.274.0>},{member,{[],[]},0,0}}], [<0.1273.0>], {[],[]}, [],undefined, #Fun} ** Reason for termination == ** {noproc,{gen_server2,call, [<0.203.0>, {submit,#Fun}, infinity]}} =ERROR REPORT==== 19-Feb-2014::18:34:30 === ** Generic server <0.204.0> terminating ** Last message in was {mnesia_tm,'rabbit at FRA-VSP-32545', {vote_yes,{tid,10315,<0.204.0>}}} ** When Server state == 2 ** Reason for termination == ** {unexpected_info,{mnesia_tm,'rabbit at FRA-VSP-32545', {vote_yes,{tid,10315,<0.204.0>}}}} =ERROR REPORT==== 19-Feb-2014::18:34:30 === ** Generic server <0.1268.0> terminating ** Last message in was {'$gen_cast',{gm_deaths,[<5066.266.0>,<0.267.0>]}} ** When Server state == {state, {amqqueue, {resource,<<"/IEC">>,queue, <<"gps.queue.dead">>}, true,false,none,[],<0.266.0>, [<5066.265.0>], [<5066.265.0>], [{vhost,<<"/IEC">>}, {name,<<"Queue HA">>}, {pattern,<<".queue">>}, {'apply-to',<<"queues">>}, {definition, [{<<"ha-mode">>,<<"all">>}, {<<"ha-sync-mode">>,<<"automatic">>}]}, {priority,0}], [{<5066.266.0>,<5066.265.0>}, {<5383.266.0>,<5383.265.0>}], []}, <0.267.0>, {state, {dict,0,16,16,8,80,48, {[],[],[],[],[],[],[],[],[],[],[],[],[], [],[],[]}, {{[],[],[],[],[],[],[],[],[],[],[],[],[], [],[],[]}}}, erlang}, #Fun, #Fun} ** Reason for termination == ** {{case_clause,{ok,<5066.265.0>,[]}}, [{rabbit_mirror_queue_coordinator,handle_cast,2,[]}, {gen_server2,handle_msg,2,[]}, {proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,249}]}]} =ERROR REPORT==== 19-Feb-2014::18:34:31 === ** Generic server <0.266.0> terminating ** Last message in was {'EXIT',<0.1268.0>, {{case_clause,{ok,<5066.265.0>,[]}}, [{rabbit_mirror_queue_coordinator,handle_cast,2, []}, {gen_server2,handle_msg,2,[]}, {proc_lib,wake_up,3, [{file,"proc_lib.erl"},{line,249}]}]}} ** When Server state == {q, {amqqueue, {resource,<<"/IEC">>,queue,<<"gps.queue.dead">>}, true,false,none,[],<0.266.0>, [<5383.265.0>,<5066.265.0>], [<5066.265.0>,<5383.265.0>], [{vhost,<<"/IEC">>}, {name,<<"Queue HA">>}, {pattern,<<".queue">>}, {'apply-to',<<"queues">>}, {definition, [{<<"ha-mode">>,<<"all">>}, {<<"ha-sync-mode">>,<<"automatic">>}]}, {priority,0}], [{<5066.266.0>,<5066.265.0>}, {<5383.266.0>,<5383.265.0>}, {<0.267.0>,<0.266.0>}], []}, none,false,rabbit_mirror_queue_master, {state, {resource,<<"/IEC">>,queue,<<"gps.queue.dead">>}, <0.267.0>,<0.1268.0>,rabbit_variable_queue, {vqstate, {0,{[],[]}}, {0,{[],[]}}, {delta,undefined,0,undefined}, {0,{[],[]}}, {0,{[],[]}}, 0, {0,nil}, {0,nil}, {qistate, "d:/tools/RabbitMQ Server/data/db/rabbit at FRA-VSP-32596-mnesia /queues/6IXYXKMC8M51EEAXH5MKLR0Q4", {{dict,0,16,16,8,80,48, {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], []}, {{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], []}}}, []}, undefined,0,65536, #Fun, {0,nil}}, {{client_msstate,msg_store_persistent, <<55,209,140,132,77,86,75,214,37,255,72,56,103,92, 154,75>>, {dict,0,16,16,8,80,48, {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], []}, {{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], []}}}, {state,340043, "d:/tools/RabbitMQ Server/data/db/rabbit at FRA-VSP-32596-mnesia/msg_store_persistent"}, rabbit_msg_store_ets_index, "d:/tools/RabbitMQ Server/data/db/rabbit at FRA-VSP-32596-mnesia/msg_store_persistent", <0.255.0>,344140,335946,348237,352334}, {client_msstate,msg_store_transient, <<148,176,200,245,252,25,203,27,190,186,25,104, 217,230,131,35>>, {dict,0,16,16,8,80,48, {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], []}, {{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], []}}}, {state,319558, "d:/tools/RabbitMQ Server/data/db/rabbit at FRA-VSP-32596-mnesia/msg_store_transient"}, rabbit_msg_store_ets_index, "d:/tools/RabbitMQ Server/data/db/rabbit at FRA-VSP-32596-mnesia/msg_store_transient", <0.250.0>,323655,315461,327752,331849}}, true,0,0,0,infinity,0,0,0,0,0, {rates, {{1392,831016,530070},0}, {{1392,831016,530070},0}, 0.0,0.0, {1392,831128,748070}}, {0,nil}, {0,nil}, {0,nil}, {0,nil}, 0,0, {rates, {{1392,831016,530070},0}, {{1392,831016,530070},0}, 0.0,0.0, {1392,831128,748070}}}, {dict,0,16,16,8,80,48, {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]}, {{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], []}}}, [], {set,0,16,16,8,80,48, {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]}, {{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], []}}}}, {queue,[],[],0}, undefined,undefined,undefined,undefined, {state,fine,5000,undefined}, {0,nil}, undefined,undefined,undefined, {state, {dict,0,16,16,8,80,48, {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]}, {{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], []}}}, delegate}, undefined,undefined,undefined,4,running} ** Reason for termination == ** {{case_clause,{ok,<5066.265.0>,[]}}, [{rabbit_mirror_queue_coordinator,handle_cast,2,[]}, {gen_server2,handle_msg,2,[]}, {proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,249}]}]} Any ideas? Best regards, * ________________________________________________________________* *Micha?l OULLION* *Architecte JAVA* *ND Informatique* Adresse (1208 route des Pierrelles B.P. 98 BEAUSEMBLANT - 26240 Beausemblant - FRANCE) Tel. +33 (0)4 75 23 68 07 Visit our web site at www.norbert-dentressangle.com -------------- next part -------------- An HTML attachment was scrubbed... URL: ------------------------------ Subject: Digest Footer Bill Chmura Director, IT Development Services direct 860 676 3618 | toll-free 800 293 0056 x61009 Nurtur | 20 Batterson Park Road | Farmington, CT 06032 bchmura at nurturhealth.com | www.nurturhealth.com Let's Talk Blog | Journey Newsletter | Twitter | LinkedIn P Think Green. Please consider the environment before printing this email. This email and all attachments are confidential and intended solely for the use of the individual or entity to which they are addressed. If you have received this email in error please notify the sender by replying to this message. If you are not the intended recipient, please delete this message and all attachments immediately. Do not copy, disclose, use or act upon the information contained. Please note that any views or opinions presented in this email are solely those of the author and do not necessarily represent those of the company. Finally, the recipient should check this email and any attachments for the presence of viruses. While every attempt is made to verify that the contents are safe, the company accepts no liability for any damage caused by any virus transmitted by this email. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkuch at gopivotal.com Fri Feb 21 00:58:36 2014 From: jkuch at gopivotal.com (Jerry Kuch) Date: Thu, 20 Feb 2014 16:58:36 -0800 Subject: [rabbitmq-discuss] Multifunctional Rabbit Architectures In-Reply-To: References: Message-ID: It's a very widely done thing and in many environments we encourage it. On Thu, Feb 20, 2014 at 3:11 PM, Laing, Michael wrote: > I don't know if it is usual, but we use a 'proxy' cluster that faces our > internal clients and provides a single dns name (which actually round > robins to healthy cluster members). > > This allows us to forward the stream of messages to multiple clusters in > our fabric for processing. > > Michael Laing > NYTimes > > > On Thu, Feb 20, 2014 at 4:54 PM, Eric Berg wrote: > >> Hi, >> I currently have a 5 node cluster setup in production that handles 80 >> queues with an HA policy of 2 nodes, peaking at about 30M total messages >> and 10K msg/sec all for one type of task. Our application will need queues >> going forward for a variety of unrelated tasks but I would still like one >> entry point as the messages typically originate from the same place, and I >> would like to avoid multiple connections per process. >> >> A few questions: >> Any reason to not keep adding nodes to the same cluster other than for >> latency potential and queue master/slave ownership? >> I was considering adding federation where a single upstream cluster would >> handle all incoming messages, then several clusters downstream would >> federate the exchanges that they needed, is this a common or unusual >> pattern? >> Are there any good resources for discussions or blogs where others have >> discussed more complicated architectures? >> >> Thanks for your insight! >> >> - Eric Berg >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> >> > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > > https://urldefense.proofpoint.com/v1/url?u=https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=sF0ZnlnTVu0KrGgVA7hSe29cx%2BPGAwA3H8KZu6lkUvo%3D%0A&m=t9bT190UKviG6Y7dR%2FF8DvIeo0lE5W8dElYSTk0rYvA%3D%0A&s=d19b2ed91cbb0757984a3f534ebdb03a7dcb2efcbb1358b0440a704b63f819b9 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkuch at gopivotal.com Fri Feb 21 01:05:26 2014 From: jkuch at gopivotal.com (Jerry Kuch) Date: Thu, 20 Feb 2014 17:05:26 -0800 Subject: [rabbitmq-discuss] RabbitMQ Cluster, split network & VMWare snapshot In-Reply-To: References: Message-ID: On Thu, Feb 20, 2014 at 12:11 PM, Michael Oullion < michael.oullion at norbert-dentressangle.com> wrote: > Thanks Jerry for your quick answer. > What can we do in this situation? > Maybe we can uprise the net tick or use a specific behaviour to manage > network split. > Or simply stop take snapshot of the vm because it's not necessary? > You may want to think about why you take the snapshots in your particular workflow. As long as you have a once in a while snapshot with the configuration of your Rabbit nodes, as you use them in your dev/test/production environment, you should be fine for restoration purposes. You probably don't need to do that every night unless a lot is changing on them from day to day. Besides, if that VM were restored from a snapshot, it will wake up into a world where any connected clients and whatnot are likely gone and forgotten and have to slough such things off anyway. And there may be messages sitting in queues that were long ago delivered to consumers and acted upon, that are now going to come back from the un-snapshotted grave. If your apps are designed sensibly, favoring idempotency and suitable de-duplication of action at the consumer end, this won't be a big deal, of course. You may also want to keep an eye on your vSphere monitoring and management stuff to see if anything else is going on around the times these partitions occur. Partitions are in the eye of each participating beholder, and we detect (really *define*) them via timeout, so anything that renders a node temporarily unable to participate in heart beating will manifest this way. Beyond snapshotting, which paralyzes the VM for part of the time the snapshot is being made, I'd also watch out for vMotion, which briefly stuns the VM being motioned into a quiescent state just before vSphere switches over to the migrated VM at its new location, and, possibly the hypervisor paging memory out beneath the guest OS that Rabbit is running on top of, which could make things lag enough that a heartbeat exchange would be missed. The latter case can be especially sneaky since an ESX host under memory pressure may be paging out guest OSes without them, as far as they know, swapping... Best regards, Jerry -------------- next part -------------- An HTML attachment was scrubbed... URL: From joshua__lim at hotmail.com Fri Feb 21 03:09:03 2014 From: joshua__lim at hotmail.com (Joshua Lim) Date: Fri, 21 Feb 2014 03:09:03 +0000 Subject: [rabbitmq-discuss] How to grant only read access to a specific STOMP queue? Message-ID: Hi, I'm trying to grant a user read access to a particular STOMP queue, e.g. destination:/queue/testqueue. The user will also need to be able to subscribe to the queue - in order to receive messages sent to that queue. I came across a similar thread - http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2012-May/020100.html and found out that write access is also required to subscribe to a queue. Using the suggestion provided, I'm able to grant a user read access to all queues and maybe topics using the following command: > rabbitmqctl set_permissions guest ".*" "^amq.gen.*$" ".*" However, I've not able to grant access only to a specific queue. I've tried the following, they don't appear to work: > rabbitmqctl set_permissions guest ".*" "testqueue" ".*" neither does: > rabbitmqctl set_permissions guest "testqueue" ".*" ".*" Error:ERROR message:access_refused content-type:text/plain version:1.0,1.1,1.2 content-length:104 content-length:104 ACCESS_REFUSED - access to queue 'amq.gen-ZIVxrP62SnRh1muHA_lg6Q' in vhost '/' refused for user 'guest' Is there a way to grant a user read permission to only a specific queue? I would greatly appreciate any pointers. Rgds,Joshua -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Fri Feb 21 04:03:37 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Fri, 21 Feb 2014 08:03:37 +0400 Subject: [rabbitmq-discuss] How to grant only read access to a specific STOMP queue? In-Reply-To: References: Message-ID: <1CAD3FF2-66AC-49CE-A1E7-F72C702641CF@rabbitmq.com> On 21 Feb 2014, at 07:09, Joshua Lim wrote: > Is there a way to grant a user read permission to only a specific queue? I would greatly appreciate any pointers. From rabbitmqctl help: set_permissions [-p ] So, using your example rabbitmqctl set_permissions guest ".*? ".*? "testqueue". MK Software Engineer, Pivotal/RabbitMQ From michael.oullion at norbert-dentressangle.com Fri Feb 21 05:59:21 2014 From: michael.oullion at norbert-dentressangle.com (Michael Oullion) Date: Fri, 21 Feb 2014 06:59:21 +0100 Subject: [rabbitmq-discuss] RabbitMQ Cluster, split network & VMWare snapshot In-Reply-To: References: Message-ID: Thanks again for your answer. Honestly, my production team manage the snapshot as they want. But with your answer I can explain why we need to stop snapshot these vm. Thanks a lot Regards Le 21 f?vr. 2014 02:06, "Jerry Kuch" a ?crit : > On Thu, Feb 20, 2014 at 12:11 PM, Michael Oullion < > michael.oullion at norbert-dentressangle.com> wrote: > >> Thanks Jerry for your quick answer. >> What can we do in this situation? >> Maybe we can uprise the net tick or use a specific behaviour to manage >> network split. >> Or simply stop take snapshot of the vm because it's not necessary? >> > You may want to think about why you take the snapshots in your particular > workflow. As long as you have a once in a while snapshot with the > configuration of your Rabbit nodes, as you use them in your > dev/test/production environment, you should be fine for restoration > purposes. You probably don't need to do that every night unless a lot is > changing on them from day to day. > > Besides, if that VM were restored from a snapshot, it will wake up into a > world where any connected clients and whatnot are likely gone and forgotten > and have to slough such things off anyway. And there may be messages > sitting in queues that were long ago delivered to consumers and acted upon, > that are now going to come back from the un-snapshotted grave. If your > apps are designed sensibly, favoring idempotency and suitable > de-duplication of action at the consumer end, this won't be a big deal, of > course. > > You may also want to keep an eye on your vSphere monitoring and management > stuff to see if anything else is going on around the times these partitions > occur. Partitions are in the eye of each participating beholder, and we > detect (really *define*) them via timeout, so anything that renders a node > temporarily unable to participate in heart beating will manifest this way. > > Beyond snapshotting, which paralyzes the VM for part of the time the > snapshot is being made, I'd also watch out for vMotion, which briefly stuns > the VM being motioned into a quiescent state just before vSphere switches > over to the migrated VM at its new location, and, possibly the hypervisor > paging memory out beneath the guest OS that Rabbit is running on top of, > which could make things lag enough that a heartbeat exchange would be > missed. The latter case can be especially sneaky since an ESX host under > memory pressure may be paging out guest OSes without them, as far as they > know, swapping... > > Best regards, > Jerry > > > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From olof at praxic.se Fri Feb 21 09:31:37 2014 From: olof at praxic.se (=?UTF-8?Q?Olof_=C3=85kesson?=) Date: Fri, 21 Feb 2014 10:31:37 +0100 Subject: [rabbitmq-discuss] Multiple connection.blocked and connection.unblocked events received in listener Message-ID: Hi, I am experimenting the connection.blocked and connection.unblocked events. http://www.rabbitmq.com/connection-blocked.html What I am surprised by is that each time the connection is blocked or unblocked there is not just one event received by the BlockedListener registered with the connection but around 10-20. Is this expected behavior? I am using 3.2.3 and the Java client api. /Olof From ponmuthu at omnesysindia.com Fri Feb 21 09:48:33 2014 From: ponmuthu at omnesysindia.com (PONMUTHU M) Date: Fri, 21 Feb 2014 01:48:33 -0800 (PST) Subject: [rabbitmq-discuss] erlang program init get_argument problem Message-ID: <1392976113454-33553.post@n5.nabble.com> hi all, while get runtime command prompt variable via init:get_argument(name). i want to get a list . but in that " " are added while getting & assign to a varaible % erl -mylist [1,2,3,4] > {ok,[[List|_]|_]} = init:get_argument(mylist). {ok,[["[1,2,3,4]"]]} >List. "[1,2,3,4]" put expecting O/p as >List. [1,2,3,4] please help , because of this double qutoes am not able to do Head & Tail . ----- -- PONMUTHU M -- -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/erlang-program-init-get-argument-problem-tp33553.html Sent from the RabbitMQ mailing list archive at Nabble.com. From mklishin at gopivotal.com Fri Feb 21 09:50:31 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Fri, 21 Feb 2014 13:50:31 +0400 Subject: [rabbitmq-discuss] Multiple connection.blocked and connection.unblocked events received in listener In-Reply-To: References: Message-ID: <82FD69A1-5BE9-4379-8230-19088E3862E9@rabbitmq.com> On 21 Feb 2014, at 13:31, Olof ?kesson wrote: > What I am surprised by is that each time the connection is blocked or > unblocked there is not just one event received by the BlockedListener > registered with the connection but around 10-20. > > Is this expected behavior? No. Can you post your code? MK Software Engineer, Pivotal/RabbitMQ From ponmuthu at omnesysindia.com Fri Feb 21 09:50:55 2014 From: ponmuthu at omnesysindia.com (PONMUTHU M) Date: Fri, 21 Feb 2014 01:50:55 -0800 (PST) Subject: [rabbitmq-discuss] exchange.bind in erlang In-Reply-To: References: <1392725370355-33455.post@n5.nabble.com> Message-ID: <1392976255070-33554.post@n5.nabble.com> can anybody reply !!... else if possible add X binding to E2 ------X-------> E1 & E1 ------inverse of X --> E2 ?/ ----- -- PONMUTHU M -- -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/exchange-bind-in-erlang-tp33455p33554.html Sent from the RabbitMQ mailing list archive at Nabble.com. From mklishin at gopivotal.com Fri Feb 21 09:54:42 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Fri, 21 Feb 2014 13:54:42 +0400 Subject: [rabbitmq-discuss] exchange.bind in erlang In-Reply-To: <1392730751182-33460.post@n5.nabble.com> References: <1392725370355-33455.post@n5.nabble.com> <1392730751182-33460.post@n5.nabble.com> Message-ID: On 18 Feb 2014, at 17:39, PONMUTHU M wrote: > from E2 to E1 more routing_keys will be used . so only option to flow msg > from E2 -> E1 is my using # > > > is there any way to check same msg received into a Exchnage or not ? or > like no of habs ? Replies over E2E is simply not necessary in most case. Use default exchange and pass reply queue names in the reply-to property. There is no ?max number of hops? for mutual E2E?s between two exchanges. MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Fri Feb 21 09:55:37 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Fri, 21 Feb 2014 13:55:37 +0400 Subject: [rabbitmq-discuss] erlang program init get_argument problem In-Reply-To: <1392976113454-33553.post@n5.nabble.com> References: <1392976113454-33553.post@n5.nabble.com> Message-ID: <66AB9E1D-49AE-448E-9A18-EF5FB9071CF8@rabbitmq.com> On 21 Feb 2014, at 13:48, PONMUTHU M wrote: > while get runtime command prompt variable via init:get_argument(name). > > > i want to get a list . but in that " " are added while getting & assign > to a varaible > > > % erl -mylist [1,2,3,4] > >> {ok,[[List|_]|_]} = init:get_argument(mylist). > {ok,[["[1,2,3,4]"]]} >> List. > "[1,2,3,4]" This is not a general Erlang questions list. Please use to http://erlang.org/mailman/listinfo/erlang-questions MK Software Engineer, Pivotal/RabbitMQ From dmitry.andrianov at alertme.com Fri Feb 21 10:13:06 2014 From: dmitry.andrianov at alertme.com (Dmitry Andrianov) Date: Fri, 21 Feb 2014 10:13:06 +0000 Subject: [rabbitmq-discuss] JavaClient HeartbeatSender In-Reply-To: <80ED9824-888F-45C8-BA81-40C6D970710A@rabbitmq.com> References: <530608DE.2090903@alertme.com> <8513EF18-0DCB-4BBE-A817-054767D0B716@rabbitmq.com> <5306100A.7080409@alertme.com> <8BEDF4CD-ADE5-46E4-9B77-17B33B9CD52E@rabbitmq.com> <53063D93.8020306@alertme.com> <80ED9824-888F-45C8-BA81-40C6D970710A@rabbitmq.com> Message-ID: <530726B2.7030601@alertme.com> On 20/02/14 17:43, Michael Klishin wrote: > On 20 Feb 2014, at 21:38, Dmitry Andrianov wrote: > >> But I am not sure it will help us - we need to avoid creation of extra threads not to modify how they are created. >> HeartbeatService will still be creating its own scheduler which will in turn request new threads from the factory and even if we have custom factory - it must satisfy that request and create a new thread for it... > Or return the same thread every time. > But it won't be possible to see that this particular newThread() is invoked by executor created by HeartbeatSender? If we return the same thread without such checks we effectively make the entire stress testing client single threaded so it won't serve its purpose. Thanks This email is for the use of the intended recipient(s) only. If you have received this email in error, please notify the sender immediately and then delete it. If you are not the intended recipient, you must not use, disclose or distribute this email without the author's prior permission. AlertMe.com Ltd. is not responsible for any personal views expressed in this message or any attachments that are those of the individual sender. AlertMe.com Ltd, 30 Station Road, Cambridge, CB1 2RE, UK. Registered in England, Company number 578 2908, VAT registration number GB 895 9914 42. From olof at praxic.se Fri Feb 21 10:29:51 2014 From: olof at praxic.se (=?UTF-8?Q?Olof_=C3=85kesson?=) Date: Fri, 21 Feb 2014 11:29:51 +0100 Subject: [rabbitmq-discuss] Multiple connection.blocked and connection.unblocked events received in listener In-Reply-To: <82FD69A1-5BE9-4379-8230-19088E3862E9@rabbitmq.com> References: <82FD69A1-5BE9-4379-8230-19088E3862E9@rabbitmq.com> Message-ID: On Fri, Feb 21, 2014 at 10:50 AM, Michael Klishin wrote: > > No. Can you post your code? > > MK > > Software Engineer, Pivotal/RabbitMQ > > My apologies - I had a second look and saw that I had mad made a silly mistake. Everything is fine. Thanks! From mklishin at gopivotal.com Fri Feb 21 10:48:34 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Fri, 21 Feb 2014 14:48:34 +0400 Subject: [rabbitmq-discuss] JavaClient HeartbeatSender In-Reply-To: <530726B2.7030601@alertme.com> References: <530608DE.2090903@alertme.com> <8513EF18-0DCB-4BBE-A817-054767D0B716@rabbitmq.com> <5306100A.7080409@alertme.com> <8BEDF4CD-ADE5-46E4-9B77-17B33B9CD52E@rabbitmq.com> <53063D93.8020306@alertme.com> <80ED9824-888F-45C8-BA81-40C6D970710A@rabbitmq.com> <530726B2.7030601@alertme.com> Message-ID: On 21 Feb 2014, at 14:13, Dmitry Andrianov wrote: > But it won't be possible to see that this particular newThread() is invoked by executor created by HeartbeatSender? If you provide a ThreadFactory, j.u.c. executors will use it. I?m not sure what you?re saying. > If we return the same thread without such checks we effectively make the entire stress testing client single threaded so it won't serve its purpose. You said you intend to open lots of connections. If that?s the case, all connections will share a heartbeat thread but network I/O threads won?t be shared. Consumer work pool executor can be shared via ConnectionFactory#setSharedExecutor (I don?t recall if this is in 3.2 or not). In practice shared consumer work pool executor makes much more difference than heartbeat sender. If the # of threads is a limiting factor for your test suite (can?t you just use multiple machines?), consider using Go client [1] for your stress tests. 1. http://github.com/streadway/amqp MK Software Engineer, Pivotal/RabbitMQ From dmitry.andrianov at alertme.com Fri Feb 21 11:09:30 2014 From: dmitry.andrianov at alertme.com (Dmitry Andrianov) Date: Fri, 21 Feb 2014 11:09:30 +0000 Subject: [rabbitmq-discuss] JavaClient HeartbeatSender In-Reply-To: References: <530608DE.2090903@alertme.com> <8513EF18-0DCB-4BBE-A817-054767D0B716@rabbitmq.com> <5306100A.7080409@alertme.com> <8BEDF4CD-ADE5-46E4-9B77-17B33B9CD52E@rabbitmq.com> <53063D93.8020306@alertme.com> <80ED9824-888F-45C8-BA81-40C6D970710A@rabbitmq.com> <530726B2.7030601@alertme.com> Message-ID: <530733EA.7030409@alertme.com> I think I understood. If HeartbeatSender is the only piece of RabbitMQ which creates its own executor (given that I tell it to use another executor for consumer work pool), then yes, I can use a custom thread factory and always return the same thread. This effectively make all HeartbeatSenders to share the same thread and yes, it is what I want. The concern I expressed in previous email was only about the case if RabbitMQ can create any other executors under some circumstances. In that case I would not be able to distinguish between them in my thread factory and the same thread would be used not just for HeartbeatSenders but for something else. Which would be undesired behaviour. But if there are no other executors created, your solution will work. (Although feels a little bit dodgy because if you introduce more executors later, our custom thread factory will break everything) Yes, we are going to use multiple machines to generate load. But before going there we want to optimise for single machine as much as possible so in the end we will need smaller cluster. Thanks for your help. On 21/02/14 10:48, Michael Klishin wrote: > On 21 Feb 2014, at 14:13, Dmitry Andrianov wrote: > >> But it won't be possible to see that this particular newThread() is invoked by executor created by HeartbeatSender? > If you provide a ThreadFactory, j.u.c. executors will use it. I?m not sure what you?re saying. > >> If we return the same thread without such checks we effectively make the entire stress testing client single threaded so it won't serve its purpose. > You said you intend to open lots of connections. If that?s the case, all connections will share a heartbeat thread but network I/O > threads won?t be shared. Consumer work pool executor can be shared via ConnectionFactory#setSharedExecutor (I don?t recall if this is in 3.2 or not). > > In practice shared consumer work pool executor makes much more difference than heartbeat sender. > If the # of threads is a limiting factor for your test suite (can?t you just use multiple machines?), > consider using Go client [1] for your stress tests. > > 1. http://github.com/streadway/amqp > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss From mklishin at gopivotal.com Fri Feb 21 11:29:34 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Fri, 21 Feb 2014 15:29:34 +0400 Subject: [rabbitmq-discuss] JavaClient HeartbeatSender In-Reply-To: <530733EA.7030409@alertme.com> References: <530608DE.2090903@alertme.com> <8513EF18-0DCB-4BBE-A817-054767D0B716@rabbitmq.com> <5306100A.7080409@alertme.com> <8BEDF4CD-ADE5-46E4-9B77-17B33B9CD52E@rabbitmq.com> <53063D93.8020306@alertme.com> <80ED9824-888F-45C8-BA81-40C6D970710A@rabbitmq.com> <530726B2.7030601@alertme.com> <530733EA.7030409@alertme.com> Message-ID: <30DFBB92-8217-46D7-9C97-046DCB53958C@rabbitmq.com> On 21 Feb 2014, at 15:09, Dmitry Andrianov wrote: > I think I understood. If HeartbeatSender is the only piece of RabbitMQ which creates its own executor (given that I tell it to use another executor for consumer work pool), then yes, I can use a custom thread factory and always return the same thread. This effectively make all HeartbeatSenders to share the same thread and yes, it is what I want. Since your use case is presumably not user facing, feel free to build RabbitMQ Java client from branch bug14587 and give it a try (ant dist && ant javadoc). MK Software Engineer, Pivotal/RabbitMQ From derekejohnston at gmail.com Fri Feb 21 14:02:38 2014 From: derekejohnston at gmail.com (Derek Johnston) Date: Fri, 21 Feb 2014 14:02:38 +0000 Subject: [rabbitmq-discuss] System.ObjectDisposedException In-Reply-To: References: <9F5EF51A-9EE5-4AF6-BC01-6D52822F0557@rabbitmq.com> Message-ID: Hi Mike do you have a working example of this? http://dotnet.dzone.com/articles/easynetq-big-breaking-changes I want to write a unit test to write to a queue and read from the queue I can do it with rabbitmq client but not with easynetq can you help? derek On Thu, Feb 20, 2014 at 8:47 AM, Mike Hadlow wrote: > Hi Derek, > > We've been using RabbitMQ with .NET for several years now. Works fine. > > You might want to take a look at EasyNetQ, it's a higher-level API for > using RabbitMQ with .NET. > > http://easynetq.com/ > > I am the author, so if you've got any questions, feel free to ask. > > Mike > > > > On Thu, Feb 20, 2014 at 8:32 AM, Michael Klishin wrote: > >> >> On 20 Feb 2014, at 12:25, Derek Johnston >> wrote: >> >> > is there an way to get rabbitmq to work on .net environment? >> >> Does .NET version of the tutorials work in your environment? >> >> http://www.rabbitmq.com/getstarted.html >> https://github.com/rabbitmq/rabbitmq-tutorials/tree/master/dotnet >> >> MK >> >> Software Engineer, Pivotal/RabbitMQ >> >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mike at suteki.co.uk Fri Feb 21 14:25:23 2014 From: mike at suteki.co.uk (Mike Hadlow) Date: Fri, 21 Feb 2014 14:25:23 +0000 Subject: [rabbitmq-discuss] System.ObjectDisposedException In-Reply-To: References: <9F5EF51A-9EE5-4AF6-BC01-6D52822F0557@rabbitmq.com> Message-ID: Hi Derek, Not sure what you mean. It's pretty straightforward to mock EasyNetQ. Check out EasyNetQ's unit tests: https://github.com/mikehadlow/EasyNetQ/tree/master/Source/EasyNetQ.Tests Mike On Fri, Feb 21, 2014 at 2:02 PM, Derek Johnston wrote: > Hi Mike > > do you have a working example of this? > > http://dotnet.dzone.com/articles/easynetq-big-breaking-changes > > I want to write a unit test to write to a queue and read from the queue > > I can do it with rabbitmq client but not with easynetq > > can you help? > > derek > > > On Thu, Feb 20, 2014 at 8:47 AM, Mike Hadlow wrote: > >> Hi Derek, >> >> We've been using RabbitMQ with .NET for several years now. Works fine. >> >> You might want to take a look at EasyNetQ, it's a higher-level API for >> using RabbitMQ with .NET. >> >> http://easynetq.com/ >> >> I am the author, so if you've got any questions, feel free to ask. >> >> Mike >> >> >> >> On Thu, Feb 20, 2014 at 8:32 AM, Michael Klishin wrote: >> >>> >>> On 20 Feb 2014, at 12:25, Derek Johnston >>> wrote: >>> >>> > is there an way to get rabbitmq to work on .net environment? >>> >>> Does .NET version of the tutorials work in your environment? >>> >>> http://www.rabbitmq.com/getstarted.html >>> https://github.com/rabbitmq/rabbitmq-tutorials/tree/master/dotnet >>> >>> MK >>> >>> Software Engineer, Pivotal/RabbitMQ >>> >>> >>> _______________________________________________ >>> rabbitmq-discuss mailing list >>> rabbitmq-discuss at lists.rabbitmq.com >>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >>> >> >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> >> > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From derekejohnston at gmail.com Fri Feb 21 14:30:34 2014 From: derekejohnston at gmail.com (Derek Johnston) Date: Fri, 21 Feb 2014 14:30:34 +0000 Subject: [rabbitmq-discuss] System.ObjectDisposedException In-Reply-To: References: <9F5EF51A-9EE5-4AF6-BC01-6D52822F0557@rabbitmq.com> Message-ID: Hi Mike sorry I want to write an integration test to publish and consume the message from the queue is this possible in a test or even advisable? regards On Fri, Feb 21, 2014 at 2:25 PM, Mike Hadlow wrote: > Hi Derek, > > Not sure what you mean. It's pretty straightforward to mock EasyNetQ. > Check out EasyNetQ's unit tests: > https://github.com/mikehadlow/EasyNetQ/tree/master/Source/EasyNetQ.Tests > > Mike > > > > > On Fri, Feb 21, 2014 at 2:02 PM, Derek Johnston wrote: > >> Hi Mike >> >> do you have a working example of this? >> >> http://dotnet.dzone.com/articles/easynetq-big-breaking-changes >> >> I want to write a unit test to write to a queue and read from the queue >> >> I can do it with rabbitmq client but not with easynetq >> >> can you help? >> >> derek >> >> >> On Thu, Feb 20, 2014 at 8:47 AM, Mike Hadlow wrote: >> >>> Hi Derek, >>> >>> We've been using RabbitMQ with .NET for several years now. Works fine. >>> >>> You might want to take a look at EasyNetQ, it's a higher-level API for >>> using RabbitMQ with .NET. >>> >>> http://easynetq.com/ >>> >>> I am the author, so if you've got any questions, feel free to ask. >>> >>> Mike >>> >>> >>> >>> On Thu, Feb 20, 2014 at 8:32 AM, Michael Klishin >> > wrote: >>> >>>> >>>> On 20 Feb 2014, at 12:25, Derek Johnston >>>> wrote: >>>> >>>> > is there an way to get rabbitmq to work on .net environment? >>>> >>>> Does .NET version of the tutorials work in your environment? >>>> >>>> http://www.rabbitmq.com/getstarted.html >>>> https://github.com/rabbitmq/rabbitmq-tutorials/tree/master/dotnet >>>> >>>> MK >>>> >>>> Software Engineer, Pivotal/RabbitMQ >>>> >>>> >>>> _______________________________________________ >>>> rabbitmq-discuss mailing list >>>> rabbitmq-discuss at lists.rabbitmq.com >>>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >>>> >>> >>> >>> _______________________________________________ >>> rabbitmq-discuss mailing list >>> rabbitmq-discuss at lists.rabbitmq.com >>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >>> >>> >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> >> > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mike at suteki.co.uk Fri Feb 21 16:09:09 2014 From: mike at suteki.co.uk (Mike Hadlow) Date: Fri, 21 Feb 2014 16:09:09 +0000 Subject: [rabbitmq-discuss] System.ObjectDisposedException In-Reply-To: References: <9F5EF51A-9EE5-4AF6-BC01-6D52822F0557@rabbitmq.com> Message-ID: So, by integration test you mean a test that will open a connection to RabbitMQ and publish/consume right? Of course that's possible. But it means that you'll need a RabbitMQ broker running every time you run the tests, not great for unit tests. If, on the other hand, you want to run 'unit tests', you'll need to mock the client library (RabbitMQ.Client or EasyNetQ, whatever you choose to use) Mike On Fri, Feb 21, 2014 at 2:30 PM, Derek Johnston wrote: > Hi Mike > > sorry I want to write an integration test to publish and consume the > message from the queue > > is this possible in a test or even advisable? > > regards > > > > > On Fri, Feb 21, 2014 at 2:25 PM, Mike Hadlow wrote: > >> Hi Derek, >> >> Not sure what you mean. It's pretty straightforward to mock EasyNetQ. >> Check out EasyNetQ's unit tests: >> https://github.com/mikehadlow/EasyNetQ/tree/master/Source/EasyNetQ.Tests >> >> Mike >> >> >> >> >> On Fri, Feb 21, 2014 at 2:02 PM, Derek Johnston > > wrote: >> >>> Hi Mike >>> >>> do you have a working example of this? >>> >>> http://dotnet.dzone.com/articles/easynetq-big-breaking-changes >>> >>> I want to write a unit test to write to a queue and read from the queue >>> >>> I can do it with rabbitmq client but not with easynetq >>> >>> can you help? >>> >>> derek >>> >>> >>> On Thu, Feb 20, 2014 at 8:47 AM, Mike Hadlow wrote: >>> >>>> Hi Derek, >>>> >>>> We've been using RabbitMQ with .NET for several years now. Works fine. >>>> >>>> You might want to take a look at EasyNetQ, it's a higher-level API for >>>> using RabbitMQ with .NET. >>>> >>>> http://easynetq.com/ >>>> >>>> I am the author, so if you've got any questions, feel free to ask. >>>> >>>> Mike >>>> >>>> >>>> >>>> On Thu, Feb 20, 2014 at 8:32 AM, Michael Klishin < >>>> mklishin at gopivotal.com> wrote: >>>> >>>>> >>>>> On 20 Feb 2014, at 12:25, Derek Johnston >>>>> wrote: >>>>> >>>>> > is there an way to get rabbitmq to work on .net environment? >>>>> >>>>> Does .NET version of the tutorials work in your environment? >>>>> >>>>> http://www.rabbitmq.com/getstarted.html >>>>> https://github.com/rabbitmq/rabbitmq-tutorials/tree/master/dotnet >>>>> >>>>> MK >>>>> >>>>> Software Engineer, Pivotal/RabbitMQ >>>>> >>>>> >>>>> _______________________________________________ >>>>> rabbitmq-discuss mailing list >>>>> rabbitmq-discuss at lists.rabbitmq.com >>>>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >>>>> >>>> >>>> >>>> _______________________________________________ >>>> rabbitmq-discuss mailing list >>>> rabbitmq-discuss at lists.rabbitmq.com >>>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >>>> >>>> >>> >>> _______________________________________________ >>> rabbitmq-discuss mailing list >>> rabbitmq-discuss at lists.rabbitmq.com >>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >>> >>> >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> >> > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ceineke at gmail.com Fri Feb 21 03:51:18 2014 From: ceineke at gmail.com (Chris Eineke) Date: Thu, 20 Feb 2014 19:51:18 -0800 (PST) Subject: [rabbitmq-discuss] 100,000+ connections Message-ID: Hello everyone, I'm trying to find out what broker setup could support 100,000+ concurrent clients with 20-30 queues per client, with numbers steadily increasing over time. We would be sending mostly small messages (max. 4KiB, non-binary). One pitfall is that clients aren't guaranteed to be online 100% of the time, so we have to be able to deal with issues related to intermittent connectivity. So far my idea is to install a RabbitMQ broker on each client and use the federation plugin to connect the client-side brokers to the server-side broker/cluster. Has RabbitMQ been exercised with a large number of federated queues/exchanges? Has anybody reported their configuration settings and performance numbers with related set-ups? Best regards, Chris -------------- next part -------------- An HTML attachment was scrubbed... URL: From mpietrek at skytap.com Fri Feb 21 23:49:45 2014 From: mpietrek at skytap.com (Matt Pietrek) Date: Fri, 21 Feb 2014 15:49:45 -0800 Subject: [rabbitmq-discuss] autoheal behavior in the presence of HA-queues mastered on multiple nodes? Message-ID: Here's a hypothethetical we were discussing today, and I didn't have a good answer. Picture a two node cluster with nodes A and B, using HA-queues and autoheal. Some queues are mastered on A, and others on B. There's a VIP in front of the cluster that points to one of the brokers. Now imagine a network event occurs and the cluster splits. Autoheal kicks in, selects a loser (say, B), and restarts it to rejoin the cluster. What happens to the data in queues that were mastered on B when B restarts? And does it matter if the messages in the queue were persistent or not? Thanks, Matt -------------- next part -------------- An HTML attachment was scrubbed... URL: From Michael.Collins at neudesic.com Sat Feb 22 00:20:31 2014 From: Michael.Collins at neudesic.com (Michael Collins) Date: Sat, 22 Feb 2014 00:20:31 +0000 Subject: [rabbitmq-discuss] ACKs getting lost Message-ID: <80456ED3F63DCB4B9E0982F2DB8A5693F81AC088@NeuExc13.corp.neudesic.net> We're using RabbitMQ 3.2.2 and Erlang R16B03 on Windows and using the RabbitMQ.Client API to implement a message bus over RabbitMQ. I am testing a scenario where I have an exchange and durable queues with auto-acknowledge set to false. If I publish a number of messages (say 100 messages), my receiver receives all 100 messages and sends back 100 ACKs using IModel.BasicAck(). My receiver is using a QueueingBasicConsumer object to receive the messages from RabbitMQ. On the sender side, I am keeping the messages in a dictionary in memory keyed by the delivery tag of the message. When I receive an ACK, then I remove that message from the dictionary. What I am noticing is that when I send a batch of 100 messages, and the receiver says that it sends back 100 ACKS, there are sometimes 3-5 messages remaining in my dictionary that the sender didn't receive an ACK for. I set up tracing on both applications and watched them run in batches of 100 or 1000. All of the messages were received and ACK'd by the receiver, but again, somewhere between 3-10 messages (depending on the batch size) are not getting ACK'd at the sender side. I'm watching for ACKs, NACKs, and returns using the IModel.BasicAcks, IModel.BasicNacks, and IModel.BasicReturn events. I'm not getting back NACKs or returns either. I tried changing my configuration to use auto-acknowledge on the receiver side. I'm seeing the behavior, but not as bad. With auto-acknowledge, it's about 1-3 messages per batch that are not receiving ACKs. These tests were also run on a single server, but we first noticed it when running in a RabbitMQ cluster. Can anyone suggest ideas for diagnosing what the issue is or how to figure out where the ACKs are getting lost? Thanks. Michael Collins Confidentiality Notice: This email and any attachments are confidential. If you have received this in error, please let us know by email reply and delete the email and all attachments from your system. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Sat Feb 22 00:26:16 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Sat, 22 Feb 2014 04:26:16 +0400 Subject: [rabbitmq-discuss] ACKs getting lost In-Reply-To: <80456ED3F63DCB4B9E0982F2DB8A5693F81AC088@NeuExc13.corp.neudesic.net> References: <80456ED3F63DCB4B9E0982F2DB8A5693F81AC088@NeuExc13.corp.neudesic.net> Message-ID: On 22 Feb 2014, at 04:20, Michael Collins wrote: > Can anyone suggest ideas for diagnosing what the issue is or how to figure out where the ACKs are getting lost? You seem to be talking about publisher confirms *and* delivery acks at the same time. Do you actually use both? They are *not* related to each other. Have you tried running protocol tracer [1] or Wireshark to see what?s coming down the wire? The issue you are seeing can be an unsynchronized concurrent updates issue. Inspecting protocol methods will make it clear what RabbitMQ sends. 1. http://www.rabbitmq.com/api-guide.html#tracer MK Software Engineer, Pivotal/RabbitMQ From kianicka123jano at yahoo.com Sat Feb 22 10:55:39 2014 From: kianicka123jano at yahoo.com (Jano Kianicka) Date: Sat, 22 Feb 2014 02:55:39 -0800 (PST) Subject: [rabbitmq-discuss] listnening on two queues Message-ID: <1393066539.43883.YahooMailNeo@web121704.mail.ne1.yahoo.com> Dear RabbitMQ users and developers, We are starting now implementation of one project for an enterprise system where we replace Oracle Tuxedo by an open source solution. There are implemented more Tuxedo servers in C, which can receive signals and messages from Tuxedo queues and direct calls as well. The servers are also monitored and controlled by Tuxedo. We are implementing proof-of-concept by migrating original code and replacing original Tuxedo calls with RabbitMQ functionality. We use librabbitmq (rabbitmq-c client library of AMQP). And I have several questions: 1. When we use routing messages through a custom exchange and bindings, and if there is some error, for instance wrong queue name or wrong routing key given, is it possible to obtain some error response from RabbitMQ server? Up to now what I did testing, the messages were just silently lost. 2. We are thinking about having clients and producers controlled by special set of queues. So one component will listen on two or more queues. One will deliver business process messages which carry data processing information, but other queue will carry control commands. This control queue must have higher priority even when main business process queue is full of messages. I did the following test: /* Initialization of consuming properties - consumer priority */ ? amqp_table_t queue_table; ? amqp_table_entry_t? entry; ? entry.key = amqp_cstring_bytes("x-priority"); ? entry.value.kind =? AMQP_FIELD_KIND_U32; ? entry.value.value.u32 = 1; ? queue_table.num_entries = 1; ? queue_table.entries = &entry; /* Start listening on two queues */ ? while (1) { ??? ? ??? amqp_basic_consume(conn, 1, amqp_cstring_bytes(queuename1), amqp_empty_bytes, 0, 0, 0, amqp_empty_table); ??? ??? die_on_amqp_error(amqp_get_rpc_reply(conn), "Consuming"); ??? ? ??? amqp_basic_consume(conn, 1, amqp_cstring_bytes(queuename2), amqp_empty_bytes, 0, 0, 0, queue_table); ??? ??? die_on_amqp_error(amqp_get_rpc_reply(conn), "Consuming"); But when this consumer test was executed, the following error occured: queue2 x-priority: 1 Consuming: a socket error occurred When there was amqp_empty_table for both, it was consuming messages from both queues but in a random manner, sometimes even 4 messages from one and then three messages from the other. We need to have higher priority on the control queue. Don't you have some experience or idea what should be changed to call the basic_consume correctly? 3. We appreciate very much that there is more verbose documentation of methods in rabbitmq-c. But I miss a little documentation of possible options for various structures, for instance the structure amqp_basic_properties_t, what are possible options for content_type, content_encoding etc. Where is most proper place to seek for this input arguments options? Thank you very much for any advise. Kind regards Jan Kianicka AWST, Wien Austria -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Sat Feb 22 12:47:44 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Sat, 22 Feb 2014 16:47:44 +0400 Subject: [rabbitmq-discuss] listnening on two queues In-Reply-To: <1393066539.43883.YahooMailNeo@web121704.mail.ne1.yahoo.com> References: <1393066539.43883.YahooMailNeo@web121704.mail.ne1.yahoo.com> Message-ID: <540EC0E8-F4C8-4B1E-942A-5BD6ABA4ED0C@rabbitmq.com> On 22 Feb 2014, at 14:55, Jano Kianicka wrote: > 1. When we use routing messages through a custom exchange and bindings, and if there is some error, for instance wrong queue name or wrong routing key given, is it possible to obtain some error response from RabbitMQ server? Up to now what I did testing, the messages were just silently lost. Publish messages as mandatory and those that cannot be routed will be returned using basic.return: https://www.rabbitmq.com/amqp-0-9-1-quickref.html#basic.return also, take a look at publisher confirms, as mandatory publishing does not cover all the possible failure scenarios: https://www.rabbitmq.com/confirms.html > > 2. We are thinking about having clients and producers controlled by special set of queues. So one component will listen on two or more queues. One will deliver business process messages which carry data processing information, but other queue will carry control commands. This control queue must have higher priority even when main business process queue is full of messages. I did the following test: > > /* Initialization of consuming properties - consumer priority */ > amqp_table_t queue_table; > amqp_table_entry_t entry; > entry.key = amqp_cstring_bytes("x-priority"); > entry.value.kind = AMQP_FIELD_KIND_U32; > entry.value.value.u32 = 1; > queue_table.num_entries = 1; > queue_table.entries = &entry; > > /* Start listening on two queues */ > while (1) { > amqp_basic_consume(conn, 1, amqp_cstring_bytes(queuename1), amqp_empty_bytes, 0, 0, 0, amqp_empty_table); > die_on_amqp_error(amqp_get_rpc_reply(conn), "Consuming"); > > amqp_basic_consume(conn, 1, amqp_cstring_bytes(queuename2), amqp_empty_bytes, 0, 0, 0, queue_table); > die_on_amqp_error(amqp_get_rpc_reply(conn), "Consuming"); > > But when this consumer test was executed, the following error occured: > queue2 x-priority: 1 > Consuming: a socket error occurred > > When there was amqp_empty_table for both, it was consuming messages from both queues but in a random manner, sometimes even 4 messages from one and then three messages from the other. We need to have higher priority on the control queue. See Tutorial 2 that explains basic.qos: http://www.rabbitmq.com/getstarted.html and consumer priorities (RabbitMQ 3.2+): http://www.rabbitmq.com/consumer-priority.html As for the socket error, you need to inspect it as well as RabbitMQ log to see what happened. MK Software Engineer, Pivotal/RabbitMQ From joshua__lim at hotmail.com Sat Feb 22 16:35:53 2014 From: joshua__lim at hotmail.com (joshua__lim) Date: Sat, 22 Feb 2014 08:35:53 -0800 (PST) Subject: [rabbitmq-discuss] How to grant only read access to a specific STOMP queue? In-Reply-To: <1CAD3FF2-66AC-49CE-A1E7-F72C702641CF@rabbitmq.com> References: <1CAD3FF2-66AC-49CE-A1E7-F72C702641CF@rabbitmq.com> Message-ID: <1393086953737-33573.post@n5.nabble.com> Michael Klishin-2 wrote > On 21 Feb 2014, at 07:09, Joshua Lim < > joshua__lim@ > > wrote: > >> Is there a way to grant a user read permission to only a specific queue? >> I would greatly appreciate any pointers. > > From rabbitmqctl help: > > set_permissions [-p > > ] > > > > > > > > So, using your example > > rabbitmqctl set_permissions guest ".*? ".*? "testqueue". > > MK Hi Michael, thanks. I did a retest again, it appears that I'm able to read from "testqueue" even if is set to "^$?. rabbitmqctl set_permissions guest ".*" "^$" "testqueue" I think I must have messed up my earlier test. Now, if I need to allow the guest user to have both read and publish permission to "testqueue", what must I do? I tried the following but it doesn't work and I get a processing error: rabbitmqctl set_permissions guest ".*" "testqueue" "testqueue" =ERROR REPORT==== 23-Feb-2014::00:27:06 === connection <0.545.0>, channel 1 - soft error: {amqp_error,access_refused, "access to exchange 'amq.default' in vhost '/' refused for user 'guest'", 'basic.publish'} Then I tried: rabbitmqctl set_permissions guest ".*" "amq.default" "testqueue" This time it worked but it also means the guest user can publish to all queues! Is there a way to restrict publishing to a specific queue? -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/How-to-grant-only-read-access-to-a-specific-STOMP-queue-tp33549p33573.html Sent from the RabbitMQ mailing list archive at Nabble.com. From mklishin at gopivotal.com Sat Feb 22 16:50:01 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Sat, 22 Feb 2014 20:50:01 +0400 Subject: [rabbitmq-discuss] How to grant only read access to a specific STOMP queue? In-Reply-To: <1393086953737-33573.post@n5.nabble.com> References: <1CAD3FF2-66AC-49CE-A1E7-F72C702641CF@rabbitmq.com> <1393086953737-33573.post@n5.nabble.com> Message-ID: <69665461-E515-4818-85EB-BFF241EF8068@rabbitmq.com> On 22 Feb 2014, at 20:35, joshua__lim wrote: > This time it worked but it also means the guest user can publish to all > queues! Is there a way to restrict publishing to a specific queue? You don?t publish to queues in RabbitMQ. You publish to exchanges. It is possible to restrict queue.bind. MK Software Engineer, Pivotal/RabbitMQ From joshua__lim at hotmail.com Sun Feb 23 08:25:12 2014 From: joshua__lim at hotmail.com (joshua__lim) Date: Sun, 23 Feb 2014 00:25:12 -0800 (PST) Subject: [rabbitmq-discuss] How to grant only read access to a specific STOMP queue? In-Reply-To: <69665461-E515-4818-85EB-BFF241EF8068@rabbitmq.com> References: <1CAD3FF2-66AC-49CE-A1E7-F72C702641CF@rabbitmq.com> <1393086953737-33573.post@n5.nabble.com> <69665461-E515-4818-85EB-BFF241EF8068@rabbitmq.com> Message-ID: <1393143912876-33575.post@n5.nabble.com> Michael Klishin-2 wrote > On 22 Feb 2014, at 20:35, joshua__lim < > joshua__lim@ > > wrote: > >> This time it worked but it also means the guest user can publish to all >> queues! Is there a way to restrict publishing to a specific queue? > > You don?t publish to queues in RabbitMQ. You publish to exchanges. It is > possible > to restrict queue.bind. > > MK > > Software Engineer, Pivotal/RabbitMQ Thanks for your reply once again. Unless I've interpreted this incorrectly - http://www.rabbitmq.com/access-control.html - the reference here says that queue.bind is controlled via (to queue) and (from exchange). I ran set permission for guest user, set to "testqueue". //set_permissions [-p ] rabbitmqctl set_permissions guest "testqueue" "amq.default" "testqueue" After that, I tried sending to "testqueue1", and got the following error. {amqp_error,access_refused, "access to queue 'testqueue1' in vhost '/' refused for user 'guest'", 'queue.declare'} This test proves that I can limit a user to accessing a specific queue only (be it to send to or to subscribe to) by limiting the configure operation to that queue. To allow the guest user to be able to "only" send to "testqueue1", and as well as be able to "only" read from "testqueue2", I try the following: rabbitmqctl set_permissions guest "^(testqueue1|testqueue2)$" "amq.default" "testqueue2" However, this will give permission to the guest user to send to "testqueue2" (I only want guest user to read from "testqueue2"). If I were to remove "testqueue2" from , guest user won't be able to send to "testqueue2" but will also be unable to read from "testqueue2" - the following error appears: =ERROR REPORT==== 23-Feb-2014::16:08:03 === connection <0.1780.0>, channel 1 - soft error: {amqp_error,access_refused, "access to queue 'testqueue2' in vhost '/' refused for user 'guest'", 'queue.declare'} How can I allow a user to only be able to read from a specific queue while be able to send to another queue at the same time? -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/How-to-grant-only-read-access-to-a-specific-STOMP-queue-tp33549p33575.html Sent from the RabbitMQ mailing list archive at Nabble.com. From KGanann at kroll.com Sun Feb 23 09:17:42 2014 From: KGanann at kroll.com (Ganann, Kale) Date: Sun, 23 Feb 2014 09:17:42 +0000 Subject: [rabbitmq-discuss] Federation Issues In-Reply-To: <52FDF8C6.9040405@rabbitmq.com> References: <6DB033025329784B9280ABD9516177FCA0BE9E9E@usbpx2pmxmbx12> <67951A82-EDEB-4643-AA4B-FA3DFFA4486F@rabbitmq.com> <52FCF2A1.8000604@rabbitmq.com> <6DB033025329784B9280ABD9516177FCA0BEA9F5@usbpx2pmxmbx12> <52FDF8C6.9040405@rabbitmq.com> Message-ID: <6DB033025329784B9280ABD9516177FCA0BFC091@USEPX2PMXMBX12.corp.altegrity.com> We're trying that, I'll let you know the results. Thanks for the idea! Thanks, Kale -----Original Message----- From: Simon MacMullen [mailto:simon at rabbitmq.com] Sent: Friday, February 14, 2014 5:07 AM To: Ganann, Kale; Discussions about RabbitMQ Subject: Re: [rabbitmq-discuss] Federation Issues I'm having trouble understanding exactly what problem you're describing. However, one thing leaps out at me: you've managed to (accidentally) make some of the queues used internally by federated exchanges *themselves* be federated with each other. This is likely to lead to odd behaviour. I can't guarantee that this is the problem you're describing, but it's certainly *a* problem. You can either: a) Rework your policies so that no policy which matches queues beginning with "^federation:" enables federation. (The policy "federation enabled" in the vhosts ControlCenter, MediaManager and Review could be changed to apply to "exchanges" rather than "all") or b) Upgrade to RabbitMQ 3.2.3, which prevents this confusing and unhelpful behaviour from happening. Cheers, Simon On 13/02/2014 6:51PM, Ganann, Kale wrote: > I've attached the rabbitmqctl report for both nodes in this cluster. > You're right, Simon, I meant exchanges. Pardon the slip. I'm > trolling through the logs now looking for anything that might be > relevant to throw your way. Thanks, guys. > > Kale > > > Thanks, Kale > > -----Original Message----- From: Simon MacMullen > [mailto:simon at rabbitmq.com] Sent: Thursday, February 13, 2014 10:28 AM > To: Discussions about RabbitMQ Cc: Ganann, Kale Subject: Re: > [rabbitmq-discuss] Federation Issues > > On 13/02/2014 04:51, Michael Klishin wrote: >>> Any ideas what might be causing this? Any logs or test I can run to >>> narrow the scope of the field? >> >> Kale, >> >> Having RabbitMQ logs around the time the issue happens would be very >> helpful. > > The output of "rabbitmqctl report" would also be useful (from each > node in the federation). > > Also it would be good to understand whether you are talking about > federated queues or exchanges. You say queues, but then you mention > bindings and routing keys so I wonder if you mean exchanges? > > Cheers, Simon This communication contains information that is > confidential, proprietary in nature, and may also be attorney-client > privileged and/or work product privileged. It is for the exclusive use > of the intended recipient(s). If you are not the intended > recipient(s) or the person responsible for delivering it to the > intended recipient(s), please note that any form of dissemination, > distribution or copying of this communication is strictly prohibited > and may be unlawful. If you have received this communication in error, > please immediately notify the sender by replying to this message and > delete this email immediately. Thank you for your cooperation. > > Please be advised that neither Altegrity, its affiliates, its > employees or agents accept liability for any errors, omissions or > damages caused by delays of receipt or by any virus infection in this > message or its attachments, or which may otherwise arise as a result > of this e-mail transmission. > -- Simon MacMullen RabbitMQ, Pivotal This communication contains information that is confidential, proprietary in nature, and may also be attorney-client privileged and/or work product privileged. It is for the exclusive use of the intended recipient(s). If you are not the intended recipient(s) or the person responsible for delivering it to the intended recipient(s), please note that any form of dissemination, distribution or copying of this communication is strictly prohibited and may be unlawful. If you have received this communication in error, please immediately notify the sender by replying to this message and delete this email immediately. Thank you for your cooperation. Please be advised that neither Altegrity, its affiliates, its employees or agents accept liability for any errors, omissions or damages caused by delays of receipt or by any virus infection in this message or its attachments, or which may otherwise arise as a result of this e-mail transmission. From KGanann at kroll.com Sun Feb 23 09:22:15 2014 From: KGanann at kroll.com (Ganann, Kale) Date: Sun, 23 Feb 2014 09:22:15 +0000 Subject: [rabbitmq-discuss] rabbitmqctl reset not working Message-ID: <6DB033025329784B9280ABD9516177FCA0BFC099@USEPX2PMXMBX12.corp.altegrity.com> I just had to re-IP a cluster due to a network move. One of the nodes was being unresponsive, so I wanted to get it disconnected from the cluster before I moved anything. I ended up doing a forget_cluster_node --offline, figuring I could do a rabbitmqctl reset on the node once could get a response out of it. I moved the node with MNESIA over, and it's running fine, but I can't run the reset command on the other node. I had to reboot it to move it, and now if I try to start Rabbit, it of course complains that it thinks it's part of the cluster and the other nodes disagree, and it won't start. But when I try to run rabbitmqctl reset or force_reset, it responds with a nodedown error. Is there some way to get this working short of a rebuild? Do I have to run some command to get erlang running without the RabbitMQ server on top of it? Thanks, Kale This communication contains information that is confidential, proprietary in nature, and may also be attorney-client privileged and/or work product privileged. It is for the exclusive use of the intended recipient(s). If you are not the intended recipient(s) or the person responsible for delivering it to the intended recipient(s), please note that any form of dissemination, distribution or copying of this communication is strictly prohibited and may be unlawful. If you have received this communication in error, please immediately notify the sender by replying to this message and delete this email immediately. Thank you for your cooperation. Please be advised that neither Altegrity, its affiliates, its employees or agents accept liability for any errors, omissions or damages caused by delays of receipt or by any virus infection in this message or its attachments, or which may otherwise arise as a result of this e-mail transmission. -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Sun Feb 23 09:53:37 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Sun, 23 Feb 2014 13:53:37 +0400 Subject: [rabbitmq-discuss] rabbitmqctl reset not working In-Reply-To: <6DB033025329784B9280ABD9516177FCA0BFC099@USEPX2PMXMBX12.corp.altegrity.com> References: <6DB033025329784B9280ABD9516177FCA0BFC099@USEPX2PMXMBX12.corp.altegrity.com> Message-ID: 2014-02-23 13:22 GMT+04:00 Ganann, Kale : > I had to reboot it to move it, and now if I try to start Rabbit, it of > course complains that it thinks it?s part of the cluster and the other > nodes disagree, and it won?t start. But when I try to run rabbitmqctl > reset or force_reset, it responds with a nodedown error. Is there some way > to get this working short of a rebuild? Do I have to run some command to > get erlang running without the RabbitMQ server on top of it? If you want to reset the node and don't care about the data it may have, you can simply remove its Mnesia directory, then start the node. -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From srinath.c at gmail.com Sun Feb 23 12:18:03 2014 From: srinath.c at gmail.com (Srinath C) Date: Sun, 23 Feb 2014 17:48:03 +0530 Subject: [rabbitmq-discuss] Load balancing connections to a rabbitmq cluster Message-ID: Hi, I have a rabbitmq cluster with two nodes. There are a number of clients having connections established to either of these two nodes. When there is a node failure the clients connected to that node now establish their connections with the other node. This is good and desirable. But when the failed node recovers it will remain up and running with no connections established to it since all the clients are having persistent connections to the other node. The load is now skewed and all the load is thrust on one server with the other server lying idle. Are there common solutions to this kind of load sharing problems? Please advice. Thanks in advance, Srinath. -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Sun Feb 23 12:46:13 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Sun, 23 Feb 2014 16:46:13 +0400 Subject: [rabbitmq-discuss] Load balancing connections to a rabbitmq cluster In-Reply-To: References: Message-ID: 2014-02-23 16:18 GMT+04:00 Srinath C : > when the failed node recovers it will remain up and running with no > connections established to it since all the clients are having persistent > connections to the other node. The load is now skewed and all the load is > thrust on one server with the other server lying idle. Are there common > solutions to this kind of load sharing problems? Please advice. Stick HAproxy in front of the cluster and make clients connect to it. It can load balance incoming connections and keep track of the backend (node) states and won't send connections to the backends that are unavailable. -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From srinath.c at gmail.com Sun Feb 23 12:57:59 2014 From: srinath.c at gmail.com (Srinath C) Date: Sun, 23 Feb 2014 18:27:59 +0530 Subject: [rabbitmq-discuss] Load balancing connections to a rabbitmq cluster In-Reply-To: References: Message-ID: Thanks MK for the prompt reply. I understand that haproxy load balances the incoming connections. But what about the case where all the connections are established on only one node (due to failure of the other node). Can it redistribute the connections when the failed rabbitmq node comes up? On Sun, Feb 23, 2014 at 6:16 PM, Michael Klishin < michael.s.klishin at gmail.com> wrote: > 2014-02-23 16:18 GMT+04:00 Srinath C : > > when the failed node recovers it will remain up and running with no >> connections established to it since all the clients are having persistent >> connections to the other node. The load is now skewed and all the load is >> thrust on one server with the other server lying idle. Are there common >> solutions to this kind of load sharing problems? Please advice. > > > Stick HAproxy in front of the cluster and make clients connect to it. It > can load balance incoming > connections and keep track of the backend (node) states and won't send > connections to the backends > that are unavailable. > -- > MK > > http://github.com/michaelklishin > http://twitter.com/michaelklishin > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From eric.berg at salesforce.com Sun Feb 23 13:47:03 2014 From: eric.berg at salesforce.com (Eric Berg) Date: Sun, 23 Feb 2014 08:47:03 -0500 Subject: [rabbitmq-discuss] Multifunctional Rabbit Architectures Message-ID: Thanks Michael and Jerry for your input, I really appreciate it. Michael, Roughly how many nodes are in your proxy cluster? What sort of message rate/size does it handle? What sort of HA policy do you have if a proxy cluster node goes down? How does the cluster proxy? Federation or shovel? Do all downstream clusters serve the same purpose or are they separated by function? How did you go about determining this topology for your requirements? Was it just a trial and error type experiment or are there well established patterns that I am unaware of? Jerry, When you say "It's very widely done" do you mean: A. A large cluster to contain everything or B. A 'proxy' type upstream cluster that serves as a global entry point Thanks so much guys! -------------- next part -------------- An HTML attachment was scrubbed... URL: From ssteo at roboqa.com Sun Feb 23 13:51:48 2014 From: ssteo at roboqa.com (Steve T) Date: Sun, 23 Feb 2014 21:51:48 +0800 Subject: [rabbitmq-discuss] RabbitMQ .NET client 3.2.3 bug? Message-ID: Hi, Sorry for sending to this mail list, not sure if this is the right channel to report this issue. I'm using RabbitMQ .NET client 3.2.3 with RabbitMQ 3.2.3 but encountering some random errors thrown from within the client itself. The error below happens very occassionally during item publishing via my own function EnqueueItem(); Stack Trace: System.Net.Sockets.SocketException: The descriptor is not a socket at System.Net.Sockets.Socket.SetSocketOption (SocketOptionLevel optionLevel, SocketOptionName optionName, Int32 optionValue) at System.Net.Sockets.TcpClient.set_ReceiveTimeout (Int32 value) at RabbitMQ.Client.Impl.SocketFrameHandler_0_9.set_Timeout (Int32 value) at RabbitMQ.Client.Impl.ConnectionBase.ClosingLoop () My code is fairly straightforward, shown below: private static void EnqueueItem(string queue, string json) { ConnectionFactory connectionFactory = new ConnectionFactory() { HostName = ROBOQA_RABBITMQ_HOSTNAME, UserName = ROBOQA_RABBITMQ_USERNAME, Password = ROBOQA_RABBITMQ_PASSWORD }; using (IConnection iconnection = connectionFactory.CreateConnection()) { using (IModel channel = iconnection.CreateModel()) { channel.QueueDeclare(queue, true, false, false, null); IBasicProperties properties = channel.CreateBasicProperties(); properties.SetPersistent(true); channel.BasicPublish(String.Empty, queue, properties, Encoding.UTF8.GetBytes(json)); } } } Will be great if anyone can let me know if there is a problem with the way I use it or maybe a bug in the client driver itself? Thanks, Steve. -------------- next part -------------- An HTML attachment was scrubbed... URL: From joneholland at gmail.com Sun Feb 23 18:22:34 2014 From: joneholland at gmail.com (Jonathan Holland) Date: Sun, 23 Feb 2014 10:22:34 -0800 Subject: [rabbitmq-discuss] RabbitMQ .NET client 3.2.3 bug? In-Reply-To: References: Message-ID: Hi Steve, Is EnqueueItem called repeatedly? I would move all of the connection creation code out of this function, and instead maintain the connection as a long lived instance. --Jon On Sun, Feb 23, 2014 at 5:51 AM, Steve T wrote: > Hi, > > Sorry for sending to this mail list, not sure if this is the right channel > to report this issue. > > I'm using RabbitMQ .NET client 3.2.3 with RabbitMQ 3.2.3 but encountering > some random errors thrown from within the client itself. The error below > happens very occassionally during item publishing via my own function > EnqueueItem(); > > > Stack Trace: > System.Net.Sockets.SocketException: The descriptor is not a socket > at System.Net.Sockets.Socket.SetSocketOption (SocketOptionLevel > optionLevel, SocketOptionName optionName, Int32 optionValue) > at System.Net.Sockets.TcpClient.set_ReceiveTimeout (Int32 value) > at RabbitMQ.Client.Impl.SocketFrameHandler_0_9.set_Timeout (Int32 value) > at RabbitMQ.Client.Impl.ConnectionBase.ClosingLoop () > > > My code is fairly straightforward, shown below: > > > private static void EnqueueItem(string queue, string json) > { > ConnectionFactory connectionFactory = new ConnectionFactory() > { > HostName = ROBOQA_RABBITMQ_HOSTNAME, > UserName = ROBOQA_RABBITMQ_USERNAME, > Password = ROBOQA_RABBITMQ_PASSWORD > }; > > using (IConnection iconnection = > connectionFactory.CreateConnection()) > { > using (IModel channel = iconnection.CreateModel()) > { > channel.QueueDeclare(queue, true, false, false, null); > IBasicProperties properties = > channel.CreateBasicProperties(); > properties.SetPersistent(true); > > channel.BasicPublish(String.Empty, queue, properties, > Encoding.UTF8.GetBytes(json)); > } > } > } > > Will be great if anyone can let me know if there is a problem with the way > I use it or maybe a bug in the client driver itself? > > Thanks, > Steve. > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.laing at nytimes.com Sun Feb 23 20:45:09 2014 From: michael.laing at nytimes.com (Laing, Michael) Date: Sun, 23 Feb 2014 15:45:09 -0500 Subject: [rabbitmq-discuss] Multifunctional Rabbit Architectures In-Reply-To: References: Message-ID: See below. -ml On Sun, Feb 23, 2014 at 8:47 AM, Eric Berg wrote: > Thanks Michael and Jerry for your input, I really appreciate it. > > Michael, > Roughly how many nodes are in your proxy cluster? > We have 3 nodes in each proxy cluster, one in each AWS zone ina region. > What sort of message rate/size does it handle? > Roughly 1M msgs per day growing to 100M. Often bursty. Median size 2KB, some up to 200KB. > What sort of HA policy do you have if a proxy cluster node goes down? > All queues we define are HA; cluster_partition_handling is pause_minority. > How does the cluster proxy? Federation or shovel? > The proxy is passive. Shovels run on the core or product vhosts (see below). > Do all downstream clusters serve the same purpose or are they separated > by function? > We run some downstream 'product' clusters on behalf of internal clients, giving them most of the control, as reliable waystations (replicated and parallelized services) into the nyt?a?rik regional core clusters. Other internal clients connect directly from the proxies to the core clusters. How did you go about determining this topology for your requirements? Was > it just a trial and error type experiment or are there well established > patterns that I am unaware of? > We have experimented over the past 2 years and have been guided by principles more than by patterns: simple, global, headless, replicated, idempotent, auto-balancing, everything active. > > > Jerry, > When you say "It's very widely done" do you mean: > A. A large cluster to contain everything or > B. A 'proxy' type upstream cluster that serves as a global entry point > > Thanks so much guys! > > > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Mon Feb 24 03:43:56 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Mon, 24 Feb 2014 07:43:56 +0400 Subject: [rabbitmq-discuss] Load balancing connections to a rabbitmq cluster In-Reply-To: References: Message-ID: <51B9BC55-6E1B-4A0B-8DF3-A134FD86B3E1@rabbitmq.com> On 23 Feb 2014, at 16:57, Srinath C wrote: > But what about the case where all the connections are established on only one node (due to failure of the other node). Can it redistribute the connections when the failed rabbitmq node comes up? No. Your clients may choose to reconnect every once in a while. MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Mon Feb 24 03:45:29 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Mon, 24 Feb 2014 07:45:29 +0400 Subject: [rabbitmq-discuss] RabbitMQ .NET client 3.2.3 bug? In-Reply-To: References: Message-ID: <94FFC93B-AC22-4CBF-A805-018DD29E3000@rabbitmq.com> On 23 Feb 2014, at 17:51, Steve T wrote: > I'm using RabbitMQ .NET client 3.2.3 with RabbitMQ 3.2.3 but encountering some random errors thrown from within the client itself. The error below happens very occassionally during item publishing via my own function EnqueueItem(); > > > Stack Trace: > System.Net.Sockets.SocketException: The descriptor is not a socket > at System.Net.Sockets.Socket.SetSocketOption (SocketOptionLevel optionLevel, SocketOptionName optionName, Int32 optionValue) > at System.Net.Sockets.TcpClient.set_ReceiveTimeout (Int32 value) > at RabbitMQ.Client.Impl.SocketFrameHandler_0_9.set_Timeout (Int32 value) > at RabbitMQ.Client.Impl.ConnectionBase.ClosingLoop () This is a known problem. Like Jonathan suggests, you will largely avoid it by not connecting every time you want to publish a message. RabbitMQ client connections are supposed to be long lived. MK Software Engineer, Pivotal/RabbitMQ From srinath.c at gmail.com Mon Feb 24 06:37:13 2014 From: srinath.c at gmail.com (Srinath C) Date: Mon, 24 Feb 2014 12:07:13 +0530 Subject: [rabbitmq-discuss] Load balancing connections to a rabbitmq cluster In-Reply-To: <51B9BC55-6E1B-4A0B-8DF3-A134FD86B3E1@rabbitmq.com> References: <51B9BC55-6E1B-4A0B-8DF3-A134FD86B3E1@rabbitmq.com> Message-ID: Thanks MK. Will check if any of the clients (java) support an option to re-establish connections periodically. On Mon, Feb 24, 2014 at 9:13 AM, Michael Klishin wrote: > > On 23 Feb 2014, at 16:57, Srinath C wrote: > > > But what about the case where all the connections are established on > only one node (due to failure of the other node). Can it redistribute the > connections when the failed rabbitmq node comes up? > > No. Your clients may choose to reconnect every once in a while. > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Mon Feb 24 06:44:35 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Mon, 24 Feb 2014 10:44:35 +0400 Subject: [rabbitmq-discuss] Load balancing connections to a rabbitmq cluster In-Reply-To: References: <51B9BC55-6E1B-4A0B-8DF3-A134FD86B3E1@rabbitmq.com> Message-ID: On 24 Feb 2014, at 10:37, Srinath C wrote: > Will check if any of the clients (java) support an option to re-establish connections periodically. There is no such feature in the clients. Some will reconnect and recover topology but none of the clients I?m aware of reconnect periodically. MK Software Engineer, Pivotal/RabbitMQ From mcintoshj at gmail.com Mon Feb 24 07:10:59 2014 From: mcintoshj at gmail.com (McIntosh Jason) Date: Mon, 24 Feb 2014 01:10:59 -0600 Subject: [rabbitmq-discuss] Load balancing connections to a rabbitmq cluster In-Reply-To: References: <51B9BC55-6E1B-4A0B-8DF3-A134FD86B3E1@rabbitmq.com> Message-ID: <5EF8E6CA-91FD-451E-8E2F-C28349BB3014@gmail.com> Spring amqp in java will auto reconnect after a forced connection close. Of course any existing transactions would fail. I'm not sure if a server connection administratively closing the connection would wait for a finish on the existing transaction or not, but that can be tested. I've seen this work on our consumer processes when we had a node fail, Jason Sent from my iPhone > On Feb 24, 2014, at 12:44 AM, Michael Klishin wrote: > >> On 24 Feb 2014, at 10:37, Srinath C wrote: >> >> Will check if any of the clients (java) support an option to re-establish connections periodically. > > There is no such feature in the clients. Some will reconnect and recover topology but none of the clients > I?m aware of reconnect periodically. > > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss From mklishin at gopivotal.com Mon Feb 24 07:15:33 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Mon, 24 Feb 2014 11:15:33 +0400 Subject: [rabbitmq-discuss] Load balancing connections to a rabbitmq cluster In-Reply-To: <5EF8E6CA-91FD-451E-8E2F-C28349BB3014@gmail.com> References: <51B9BC55-6E1B-4A0B-8DF3-A134FD86B3E1@rabbitmq.com> <5EF8E6CA-91FD-451E-8E2F-C28349BB3014@gmail.com> Message-ID: <347A5A6E-4336-4E46-9D85-679852F56AA0@rabbitmq.com> On 24 Feb 2014, at 11:10, McIntosh Jason wrote: > Spring amqp in java will auto reconnect after a forced connection close. Of course any existing transactions would fail. I'm not sure if a server connection administratively closing the connection would wait for a finish on the existing transaction or not, but that can be tested. I've seen this work on our consumer processes when we had a node fail, Sure. A very similar feature is being added to the Java client proper. However, this is not periodic reconnects. Good point that if the OP uses spring-amqp, it may be sufficient to periodically close connections via HTTP API or rabbitmqctl. MK Software Engineer, Pivotal/RabbitMQ From Tobias.Gutzmann at ist.com Mon Feb 24 08:38:05 2014 From: Tobias.Gutzmann at ist.com (Tobias Gutzmann) Date: Mon, 24 Feb 2014 08:38:05 +0000 Subject: [rabbitmq-discuss] ACKs getting lost In-Reply-To: <80456ED3F63DCB4B9E0982F2DB8A5693F81AC088@NeuExc13.corp.neudesic.net> References: <80456ED3F63DCB4B9E0982F2DB8A5693F81AC088@NeuExc13.corp.neudesic.net> Message-ID: <3CE1D10F927704449D41EF6BCB35373D4DDED4@hermes> Hi, Maybe the "multiple" flag is set for some ACKs but you don't look at that flag? You would potentially have to remove more than one message from the dictionary in that case. /Tobias Fr?n: rabbitmq-discuss [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] F?r Michael Collins Skickat: den 22 februari 2014 01:21 Till: rabbitmq-discuss at lists.rabbitmq.com ?mne: [rabbitmq-discuss] ACKs getting lost We're using RabbitMQ 3.2.2 and Erlang R16B03 on Windows and using the RabbitMQ.Client API to implement a message bus over RabbitMQ. I am testing a scenario where I have an exchange and durable queues with auto-acknowledge set to false. If I publish a number of messages (say 100 messages), my receiver receives all 100 messages and sends back 100 ACKs using IModel.BasicAck(). My receiver is using a QueueingBasicConsumer object to receive the messages from RabbitMQ. On the sender side, I am keeping the messages in a dictionary in memory keyed by the delivery tag of the message. When I receive an ACK, then I remove that message from the dictionary. What I am noticing is that when I send a batch of 100 messages, and the receiver says that it sends back 100 ACKS, there are sometimes 3-5 messages remaining in my dictionary that the sender didn't receive an ACK for. I set up tracing on both applications and watched them run in batches of 100 or 1000. All of the messages were received and ACK'd by the receiver, but again, somewhere between 3-10 messages (depending on the batch size) are not getting ACK'd at the sender side. I'm watching for ACKs, NACKs, and returns using the IModel.BasicAcks, IModel.BasicNacks, and IModel.BasicReturn events. I'm not getting back NACKs or returns either. I tried changing my configuration to use auto-acknowledge on the receiver side. I'm seeing the behavior, but not as bad. With auto-acknowledge, it's about 1-3 messages per batch that are not receiving ACKs. These tests were also run on a single server, but we first noticed it when running in a RabbitMQ cluster. Can anyone suggest ideas for diagnosing what the issue is or how to figure out where the ACKs are getting lost? Thanks. Michael Collins Confidentiality Notice: This email and any attachments are confidential. If you have received this in error, please let us know by email reply and delete the email and all attachments from your system. -------------- next part -------------- An HTML attachment was scrubbed... URL: From joey.jiaojg at gmail.com Mon Feb 24 09:23:43 2014 From: joey.jiaojg at gmail.com (Joey Jiao) Date: Mon, 24 Feb 2014 17:23:43 +0800 Subject: [rabbitmq-discuss] Rabbitmq-Federation Queues Performance Message-ID: Hi Simon, When using Federation queues for all queues in our 3 brokers environment, we met a performance issue. I know we can set less queues to use the feature, but I want to check with you if there is possibility for optimize federation. The 3 brokers are federation queues each other and when we have 4000 queues to federated, we got many connections among brokers. When we upgrading erlang to latest version, the load becomes lower but still very big. It looks like each federation queue will open a new connection to upstream broker, but is it possible to just use one connection for all queues and use -- -Joey Jiao -------------- next part -------------- An HTML attachment was scrubbed... URL: From joey.jiaojg at gmail.com Mon Feb 24 09:25:31 2014 From: joey.jiaojg at gmail.com (Joey Jiao) Date: Mon, 24 Feb 2014 17:25:31 +0800 Subject: [rabbitmq-discuss] Policy pattern match Message-ID: Hi, I want to match all queues not having keywords like 'abc' when set_policy. Can you suggest? -- -Joey Jiao -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Mon Feb 24 10:26:50 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Mon, 24 Feb 2014 10:26:50 +0000 Subject: [rabbitmq-discuss] Policy pattern match In-Reply-To: References: Message-ID: <530B1E6A.6010007@rabbitmq.com> On 24/02/2014 9:25AM, Joey Jiao wrote: > I want to match all queues not having keywords like 'abc' when > set_policy. Can you suggest? See previous discussion at: http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2014-February/033686.html (OK, that was about the management web UI, but hey, it's still regexes.) Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Mon Feb 24 10:57:54 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Mon, 24 Feb 2014 10:57:54 +0000 Subject: [rabbitmq-discuss] autoheal behavior in the presence of HA-queues mastered on multiple nodes? In-Reply-To: References: Message-ID: <530B25B2.3010108@rabbitmq.com> On 21/02/2014 11:49PM, Matt Pietrek wrote: > Picture a two node cluster with nodes A and B, using HA-queues and > autoheal. Some queues are mastered on A, and others on B. There's a VIP > in front of the cluster that points to one of the brokers. OK. Looking at how things evolve step by step: > Now imagine a network event occurs and the cluster splits. At this point the network is partitioned: both side of the cluster are running separately, each believing that the other has gone down. So on A, all the queues that had masters on B fail over to A, and vice versa on B. So this is the nub of why network partitions are a big deal; the two sides of the cluster both think they are authoritative and both start to evolve separately. > Autoheal kicks in, Of course autoheal will not kick in until the underlying network partition is resolved; until the two sides can see each other they will not have a clue anything has gone wrong (well, more wrong than node failure). > selects a loser (say, B), and restarts it to rejoin the > cluster. What happens to the data in queues that were mastered on B when > B restarts? Hopefully at this point you have your answer: since A is the winning side, the queue state from A overwrites the queue state from B. And the queue state from A will be whatever the state was at the time of the split (even for queues mastered on B), with whatever changes A has seen since. Now, since you said earlier "there is a VIP pointing at A" then maybe no changes have been taking place on B anyway. But if there were any changes on B, you lost them. Partitions are a big deal, and autoheal is not a panacea. > And does it matter if the messages in the queue were > persistent or not? No. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Mon Feb 24 13:00:34 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Mon, 24 Feb 2014 13:00:34 +0000 Subject: [rabbitmq-discuss] Rabbitmq-Federation Queues Performance In-Reply-To: References: Message-ID: <530B4272.2090001@rabbitmq.com> On 24/02/2014 9:23AM, Joey Jiao wrote: > It looks like each federation queue will open a new connection to > upstream broker, but is it possible to just use one connection for all > queues and use It's not I'm afraid - but I'll file a bug into making this possible. At the moment the idea is that we want to keep the federated objects as separate from each other as possible (to ensure that we don't have one object limiting another's performance). Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Mon Feb 24 13:31:52 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Mon, 24 Feb 2014 13:31:52 +0000 Subject: [rabbitmq-discuss] Policy pattern match In-Reply-To: References: <530B1E6A.6010007@rabbitmq.com> Message-ID: <530B49C8.8050501@rabbitmq.com> On 24/02/2014 1:27PM, Joey Jiao wrote: > So it is the same regrex as perl for elang, right? Yeah - Erlang uses PCRE. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From ssteo at roboqa.com Mon Feb 24 15:21:05 2014 From: ssteo at roboqa.com (Steve T) Date: Mon, 24 Feb 2014 23:21:05 +0800 Subject: [rabbitmq-discuss] RabbitMQ .NET client 3.2.3 bug? In-Reply-To: <94FFC93B-AC22-4CBF-A805-018DD29E3000@rabbitmq.com> References: <94FFC93B-AC22-4CBF-A805-018DD29E3000@rabbitmq.com> Message-ID: Ok, thanks. Is there any property or method in the RabbitMQ .NET client that allows me to check if the connection is still alive? Let's say if RabbitMQ server got restarted, etc. how do I recreate my connection ? Thanks, Steve On Mon, Feb 24, 2014 at 11:45 AM, Michael Klishin wrote: > > On 23 Feb 2014, at 17:51, Steve T wrote: > > > I'm using RabbitMQ .NET client 3.2.3 with RabbitMQ 3.2.3 but > encountering some random errors thrown from within the client itself. The > error below happens very occassionally during item publishing via my own > function EnqueueItem(); > > > > > > Stack Trace: > > System.Net.Sockets.SocketException: The descriptor is not a socket > > at System.Net.Sockets.Socket.SetSocketOption (SocketOptionLevel > optionLevel, SocketOptionName optionName, Int32 optionValue) > > at System.Net.Sockets.TcpClient.set_ReceiveTimeout (Int32 value) > > at RabbitMQ.Client.Impl.SocketFrameHandler_0_9.set_Timeout (Int32 > value) > > at RabbitMQ.Client.Impl.ConnectionBase.ClosingLoop () > > This is a known problem. Like Jonathan suggests, you will largely avoid it > by not connecting > every time you want to publish a message. RabbitMQ client connections are > supposed to > be long lived. > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From joneholland at gmail.com Mon Feb 24 15:50:40 2014 From: joneholland at gmail.com (Jonathan Holland) Date: Mon, 24 Feb 2014 07:50:40 -0800 Subject: [rabbitmq-discuss] RabbitMQ .NET client 3.2.3 bug? In-Reply-To: References: <94FFC93B-AC22-4CBF-A805-018DD29E3000@rabbitmq.com> Message-ID: There is a ConnectionShutdown event you can subscribe to. The basic tenant is, share the connection across everything, but never share the channel. I usually abstract accessing a channel into a class that manages the connection lifecycle. An example: public class RabbitConnectionManager { private readonly ConnectionFactory connectionFactory; private Lazy connection; public RabbitConnectionManager(Uri connectionString) { this.connectionFactory = new ConnectionFactory { Uri = connectionString.AbsoluteUri, RequestedHeartbeat = 5 }; this.connection = new Lazy(CreateConnection); } public IModel GetChannel() { return this.connection.Value.CreateModel(); } public void Shutdown() { this.connection.Value.ConnectionShutdown -= OnConnectionShutDown; this.connection.Value.Close(); } private IConnection CreateConnection() { var conn = this.connectionFactory.CreateConnection(); conn.ConnectionShutdown += this.OnConnectionShutDown; return conn; } private void OnConnectionShutDown(IConnection connection, ShutdownEventArgs reason) { // If the connection is aborted, reinit the lazy connection so that next access will reconnect. this.connection = new Lazy(CreateConnection); } } On Mon, Feb 24, 2014 at 7:21 AM, Steve T wrote: > Ok, thanks. Is there any property or method in the RabbitMQ .NET client > that allows me to check if the connection is still alive? Let's say if > RabbitMQ server got restarted, etc. how do I recreate my connection ? > > Thanks, > Steve > > > On Mon, Feb 24, 2014 at 11:45 AM, Michael Klishin wrote: > >> >> On 23 Feb 2014, at 17:51, Steve T wrote: >> >> > I'm using RabbitMQ .NET client 3.2.3 with RabbitMQ 3.2.3 but >> encountering some random errors thrown from within the client itself. The >> error below happens very occassionally during item publishing via my own >> function EnqueueItem(); >> > >> > >> > Stack Trace: >> > System.Net.Sockets.SocketException: The descriptor is not a socket >> > at System.Net.Sockets.Socket.SetSocketOption (SocketOptionLevel >> optionLevel, SocketOptionName optionName, Int32 optionValue) >> > at System.Net.Sockets.TcpClient.set_ReceiveTimeout (Int32 value) >> > at RabbitMQ.Client.Impl.SocketFrameHandler_0_9.set_Timeout (Int32 >> value) >> > at RabbitMQ.Client.Impl.ConnectionBase.ClosingLoop () >> >> This is a known problem. Like Jonathan suggests, you will largely avoid >> it by not connecting >> every time you want to publish a message. RabbitMQ client connections are >> supposed to >> be long lived. >> >> MK >> >> Software Engineer, Pivotal/RabbitMQ >> >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mpietrek at skytap.com Mon Feb 24 16:26:04 2014 From: mpietrek at skytap.com (Matt Pietrek) Date: Mon, 24 Feb 2014 08:26:04 -0800 Subject: [rabbitmq-discuss] autoheal behavior in the presence of HA-queues mastered on multiple nodes? In-Reply-To: <530B25B2.3010108@rabbitmq.com> References: <530B25B2.3010108@rabbitmq.com> Message-ID: Thanks Simon. A bit after I sent my messages I came to the same conclusion. It makes me very happy that you confirmed my reasoning. Matt On Mon, Feb 24, 2014 at 2:57 AM, Simon MacMullen wrote: > On 21/02/2014 11:49PM, Matt Pietrek wrote: > >> Picture a two node cluster with nodes A and B, using HA-queues and >> autoheal. Some queues are mastered on A, and others on B. There's a VIP >> in front of the cluster that points to one of the brokers. >> > > OK. Looking at how things evolve step by step: > > > Now imagine a network event occurs and the cluster splits. >> > > At this point the network is partitioned: both side of the cluster are > running separately, each believing that the other has gone down. So on A, > all the queues that had masters on B fail over to A, and vice versa on B. > > So this is the nub of why network partitions are a big deal; the two sides > of the cluster both think they are authoritative and both start to evolve > separately. > > Autoheal kicks in, >> > > Of course autoheal will not kick in until the underlying network partition > is resolved; until the two sides can see each other they will not have a > clue anything has gone wrong (well, more wrong than node failure). > > > selects a loser (say, B), and restarts it to rejoin the >> cluster. What happens to the data in queues that were mastered on B when >> B restarts? >> > > Hopefully at this point you have your answer: since A is the winning side, > the queue state from A overwrites the queue state from B. And the queue > state from A will be whatever the state was at the time of the split (even > for queues mastered on B), with whatever changes A has seen since. > > Now, since you said earlier "there is a VIP pointing at A" then maybe no > changes have been taking place on B anyway. But if there were any changes > on B, you lost them. > > Partitions are a big deal, and autoheal is not a panacea. > > > And does it matter if the messages in the queue were >> persistent or not? >> > > No. > > Cheers, Simon > > -- > Simon MacMullen > RabbitMQ, Pivotal > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mcintoshj at gmail.com Mon Feb 24 16:41:54 2014 From: mcintoshj at gmail.com (Jason McIntosh) Date: Mon, 24 Feb 2014 10:41:54 -0600 Subject: [rabbitmq-discuss] 100,000+ connections In-Reply-To: References: Message-ID: Right now, we've scaled up to about 2000 concurrent connections from over 100 different machines. We have on average 5-6 queues for each "app" and probably 30 or so connections for each application. Intermittent connectivity is more of an issue for your client rather than the server. Unless you need clustering, in which case your cluster nodes all have to be up and connected to each other on a reliable network. If that's not the case, federation/shovel is your friend. But back to topology - we actually have a local rabbit process on a series of "cloud" computers. Each rabbit server has an applications' configuration and then they shovel to an "enterprise" system in a different data center. Rabbit in this case acts as a local cache allowing WAN failure. This is probably overkill in some ways but it makes the system really really reliable. The servers are beefier machines that are clustered and if we have to scale connections, we can add more server nodes (each enterprise server right now is handling about 1000 clients, and that's expected to grow significantly). We have an F5 LTM in front of the enterprise machines to allow load balancing between the nodes. >From what we've seen - this topology looks like it'll scale almost indefinitely. You should be able to scale up to 100k concurrent clients as long as you've got the ram/disk space. And you can always break your stuff into smaller pieces as needed. Jason On Thu, Feb 20, 2014 at 9:51 PM, Chris Eineke wrote: > Hello everyone, > > I'm trying to find out what broker setup could support 100,000+ > concurrent clients with 20-30 queues per client, with numbers steadily > increasing over time. We would be sending mostly small messages (max. 4KiB, > non-binary). One pitfall is that clients aren't guaranteed to be online > 100% of the time, so we have to be able to deal with issues related to > intermittent connectivity. > > So far my idea is to install a RabbitMQ broker on each client and use the > federation plugin to connect the client-side brokers to the server-side > broker/cluster. Has RabbitMQ been exercised with a large number of > federated queues/exchanges? Has anybody reported their configuration > settings and performance numbers with related set-ups? > > Best regards, > Chris > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -- Jason McIntosh https://github.com/jasonmcintosh/ 573-424-7612 -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.laing at nytimes.com Mon Feb 24 16:50:59 2014 From: michael.laing at nytimes.com (Laing, Michael) Date: Mon, 24 Feb 2014 11:50:59 -0500 Subject: [rabbitmq-discuss] 100,000+ connections In-Reply-To: References: Message-ID: We're supporting up to a million clients in production using a 2 tier architecture of rabbitmq plus websockets/sockjs. We think we can continue to scale out globally a couple more orders of magnitude, even as we increase message rates substantially. ml On Mon, Feb 24, 2014 at 11:41 AM, Jason McIntosh wrote: > Right now, we've scaled up to about 2000 concurrent connections from over > 100 different machines. We have on average 5-6 queues for each "app" and > probably 30 or so connections for each application. Intermittent > connectivity is more of an issue for your client rather than the server. > Unless you need clustering, in which case your cluster nodes all have to > be up and connected to each other on a reliable network. If that's not the > case, federation/shovel is your friend. > > But back to topology - we actually have a local rabbit process on a series > of "cloud" computers. Each rabbit server has an applications' > configuration and then they shovel to an "enterprise" system in a different > data center. Rabbit in this case acts as a local cache allowing WAN > failure. This is probably overkill in some ways but it makes the system > really really reliable. The servers are beefier machines that are > clustered and if we have to scale connections, we can add more server nodes > (each enterprise server right now is handling about 1000 clients, and > that's expected to grow significantly). We have an F5 LTM in front of the > enterprise machines to allow load balancing between the nodes. > > From what we've seen - this topology looks like it'll scale almost > indefinitely. You should be able to scale up to 100k concurrent clients as > long as you've got the ram/disk space. And you can always break your stuff > into smaller pieces as needed. > > Jason > > > On Thu, Feb 20, 2014 at 9:51 PM, Chris Eineke wrote: > >> Hello everyone, >> >> I'm trying to find out what broker setup could support 100,000+ >> concurrent clients with 20-30 queues per client, with numbers steadily >> increasing over time. We would be sending mostly small messages (max. 4KiB, >> non-binary). One pitfall is that clients aren't guaranteed to be online >> 100% of the time, so we have to be able to deal with issues related to >> intermittent connectivity. >> >> So far my idea is to install a RabbitMQ broker on each client and use the >> federation plugin to connect the client-side brokers to the server-side >> broker/cluster. Has RabbitMQ been exercised with a large number of >> federated queues/exchanges? Has anybody reported their configuration >> settings and performance numbers with related set-ups? >> >> Best regards, >> Chris >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> >> > > > -- > Jason McIntosh > https://github.com/jasonmcintosh/ > 573-424-7612 > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From joey.jiaojg at gmail.com Mon Feb 24 13:27:23 2014 From: joey.jiaojg at gmail.com (Joey Jiao) Date: Mon, 24 Feb 2014 21:27:23 +0800 Subject: [rabbitmq-discuss] Policy pattern match In-Reply-To: <530B1E6A.6010007@rabbitmq.com> References: <530B1E6A.6010007@rabbitmq.com> Message-ID: So it is the same regrex as perl for elang, right? 2014?2?24? ??6:26? "Simon MacMullen" ??? > On 24/02/2014 9:25AM, Joey Jiao wrote: > >> I want to match all queues not having keywords like 'abc' when >> set_policy. Can you suggest? >> > > See previous discussion at: > > http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/ > 2014-February/033686.html > > (OK, that was about the management web UI, but hey, it's still regexes.) > > Cheers, Simon > > -- > Simon MacMullen > RabbitMQ, Pivotal > -------------- next part -------------- An HTML attachment was scrubbed... URL: From joey.jiaojg at gmail.com Mon Feb 24 13:30:52 2014 From: joey.jiaojg at gmail.com (Joey Jiao) Date: Mon, 24 Feb 2014 21:30:52 +0800 Subject: [rabbitmq-discuss] Rabbitmq-Federation Queues Performance In-Reply-To: <530B4272.2090001@rabbitmq.com> References: <530B4272.2090001@rabbitmq.com> Message-ID: Sure, thanks. My test shows upgrade erlang improves the performance a lot. But will limit the policy to patial queues and wait for future improvement. 2014?2?24? ??9:00? "Simon MacMullen" ??? > On 24/02/2014 9:23AM, Joey Jiao wrote: > >> It looks like each federation queue will open a new connection to >> upstream broker, but is it possible to just use one connection for all >> queues and use >> > > It's not I'm afraid - but I'll file a bug into making this possible. At > the moment the idea is that we want to keep the federated objects as > separate from each other as possible (to ensure that we don't have one > object limiting another's performance). > > Cheers, Simon > > -- > Simon MacMullen > RabbitMQ, Pivotal > -------------- next part -------------- An HTML attachment was scrubbed... URL: From lukasz.miroslaw at googlemail.com Mon Feb 24 14:10:34 2014 From: lukasz.miroslaw at googlemail.com (Lukasz M.) Date: Mon, 24 Feb 2014 06:10:34 -0800 (PST) Subject: [rabbitmq-discuss] Exclusive Producers? In-Reply-To: <66494607-895e-470a-aea8-8eb658fb641a@googlegroups.com> References: <7ac296f2-4e7b-40c4-b1ee-a1f4bb3166c2@googlegroups.com> <66494607-895e-470a-aea8-8eb658fb641a@googlegroups.com> Message-ID: <871c3f50-53f4-413f-925b-8e0e1857ed42@googlegroups.com> Hi, @Alvaro, your solution seems to be quite interesting. I just wonder if there is a simpler one. I have a similar problem where I need to start/stop the RabbitTemplate object on demand. For example to restart the bean in my catch block with sender.stop() and then sender.start() . My first idea was to implement SmartLifeCycle interface from Spring and extend RabbitTemplate as follows.: @Component public class LifeSender extends RabbitTemplate implements SmartLifecycle { private volatile boolean isRunning = false; @Override public boolean isAutoStartup() { return true; } @Override public void start() { System.out.println("STARTED!!!"); isRunning = true; } @Override public void stop() { System.out.println("STOPPED!!!"); isRunning = false; } Here is the Spring AMQP context: ** The problem is that lifeSender does not instatiate the properties and connection factory from the sender. So I created the constructor: @Autowired public LifeSender(ConnectionFactory connectionFactory, PremConfirmCallback premCallback) { super(); super.setConnectionFactory(connectionFactory); super.setExchange("cti.main"); super.setConfirmCallback(premCallback); System.out.println(super.getConnectionFactory().to String()); } Unfortunately, lifeSender.stop() does not do more than just printing "STOPPED" to the log. I am still able to send messages. Second idea was to use controlChannel from Spring Integration. However, a simple test @Test public void testTurnOffSender() throws InterruptedException { isBean = controlGateway.isRunning( "@sender.isRunning()" ); Assert.isTrue( isBean); controlGateway.send(new GenericMessage( "@sender.stop()" )); Thread.sleep(500); isBean = controlGateway.isRunning( "@sender.isRunning()" ); Assert.isTrue( isBean == false); } triggers the exception: *org.springframework.expression.EvaluationException : The method 'isRunning' is not supported by this command processor. If using the Control Bus, consider adding @ManagedOperation or @ManagedAttribute.* Do you think any of suggested solutions make sense? Thanks, Lukasz -------------- next part -------------- An HTML attachment was scrubbed... URL: From grussell at gopivotal.com Mon Feb 24 17:12:08 2014 From: grussell at gopivotal.com (Gary Russell) Date: Mon, 24 Feb 2014 12:12:08 -0500 Subject: [rabbitmq-discuss] Exclusive Producers? In-Reply-To: <871c3f50-53f4-413f-925b-8e0e1857ed42@googlegroups.com> References: <7ac296f2-4e7b-40c4-b1ee-a1f4bb3166c2@googlegroups.com> <66494607-895e-470a-aea8-8eb658fb641a@googlegroups.com> <871c3f50-53f4-413f-925b-8e0e1857ed42@googlegroups.com> Message-ID: As I mentioned on the Spring Forum ( http://forum.spring.io/forum/spring-projects/integration/amqp/745450-start-stop-rabbittemplate-on-demand ) You need to add isRunning() as a @ManagedOperation if you want to access it using the control bus. You would also need to override the doSend*() methods on your subclass if you want to prevent sends on a "stopped" template. On Mon, Feb 24, 2014 at 9:10 AM, Lukasz M. wrote: > Hi, > > @Alvaro, your solution seems to be quite interesting. I just wonder if > there is a simpler one. > > I have a similar problem where I need to start/stop the RabbitTemplate > object on demand. For example to restart the bean in my catch block with > sender.stop() and then sender.start() . > > My first idea was to implement SmartLifeCycle interface from Spring and > extend RabbitTemplate as follows.: > > @Component > public class LifeSender extends RabbitTemplate implements SmartLifecycle { > > private volatile boolean isRunning = false; > > @Override > public boolean isAutoStartup() { > return true; > } > > @Override > public void start() { > System.out.println("STARTED!!!"); > isRunning = true; > } > > @Override > public void stop() { > System.out.println("STOPPED!!!"); > isRunning = false; > } > > > Here is the Spring AMQP context: > > > > > > > * class="org.springframework.amqp.rabbit.core.Rabbit Template" > abstract="true"> /> name="exchange" value="myExchange" />* > > parent="sender"/> > > > The problem is that lifeSender does not instatiate the properties and > connection factory from the sender. So I created the constructor: > > @Autowired > public LifeSender(ConnectionFactory connectionFactory, PremConfirmCallback > premCallback) { > super(); > super.setConnectionFactory(connectionFactory); > super.setExchange("cti.main"); > super.setConfirmCallback(premCallback); > System.out.println(super.getConnectionFactory().to String()); > } > > Unfortunately, lifeSender.stop() does not do more than just printing > "STOPPED" to the log. I am still able to send messages. > > Second idea was to use controlChannel from Spring Integration. However, a > simple test > > @Test > public void testTurnOffSender() throws InterruptedException { > isBean = controlGateway.isRunning( "@sender.isRunning()" ); > > Assert.isTrue( isBean); > controlGateway.send(new GenericMessage( "@sender.stop()" )); > Thread.sleep(500); > isBean = controlGateway.isRunning( "@sender.isRunning()" ); > Assert.isTrue( isBean == false); > > } > > triggers the exception: > > *org.springframework.expression.EvaluationException : The method > 'isRunning' is not supported by this command processor. If using the > Control Bus, consider adding @ManagedOperation or @ManagedAttribute.* > > Do you think any of suggested solutions make sense? > > Thanks, > Lukasz > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From grussell at gopivotal.com Mon Feb 24 17:18:52 2014 From: grussell at gopivotal.com (Gary Russell) Date: Mon, 24 Feb 2014 09:18:52 -0800 (PST) Subject: [rabbitmq-discuss] Exclusive Producers? In-Reply-To: <871c3f50-53f4-413f-925b-8e0e1857ed42@googlegroups.com> References: <7ac296f2-4e7b-40c4-b1ee-a1f4bb3166c2@googlegroups.com> <66494607-895e-470a-aea8-8eb658fb641a@googlegroups.com> <871c3f50-53f4-413f-925b-8e0e1857ed42@googlegroups.com> Message-ID: <8a1936bc-5235-454b-9c58-b1255e2b40de@googlegroups.com> As I mentioned on the Spring Forum... http://forum.spring.io/forum/spring-projects/integration/amqp/745450-start-stop-rabbittemplate-on-demand ...you need to add isRunning() as a @ManagedOperation if you want to access it using the control bus. You would also need to override the doSend*() methods on your subclass if you want to prevent sends on a "stopped" template. -------------- next part -------------- An HTML attachment was scrubbed... URL: From eric.berg at salesforce.com Mon Feb 24 17:19:26 2014 From: eric.berg at salesforce.com (Eric Berg) Date: Mon, 24 Feb 2014 12:19:26 -0500 Subject: [rabbitmq-discuss] RabbitMQ Conference? Message-ID: Has there ever been or will there ever bee a RabbitMQ conference? If not, can anyone recommend a conference that focuses on enterprise messaging? It would be so valuable to see interesting problems that queuing/messaging has solved and any architectures around that. Thanks! - Eric Berg -------------- next part -------------- An HTML attachment was scrubbed... URL: From akmartin at gmail.com Mon Feb 24 19:57:39 2014 From: akmartin at gmail.com (Andy Martin) Date: Mon, 24 Feb 2014 11:57:39 -0800 (PST) Subject: [rabbitmq-discuss] RabbitMQ 3.2.2 durable queue failover Message-ID: <933321ee-bfc7-4ee9-9265-aac2d79d2c11@googlegroups.com> I am testing failover before putting my RabbitMQ implementation into production. When I bring down one RabbitMQ node I start getting the following error: RabbitMQ.Client.Exceptions.OperationInterruptedException: The AMQP operation was interrupted: AMQP close-reason, initiated by Peer, code=404, text="NOT_FOUND - home node 'rabbit at DEVRABBIT01' of durable queue 'QUEUE_TEST' in vhost '/' is down or inaccessible", classId=50, methodId=10, cause= I am running RabbitMQ 3.2.2 with Erlang R16B03. DEVRABBIT01 is the node that has been shut down. DEVRABBIT02 is the node that is still running and that the client is connected to. Both are disc nodes. The named queue (QUEUE_TEST) does not appear in the management console on the running node. It looks like this was supposed to have been fixed in 2.4.0. Any reason I would be seeing this in 3.2.2? -------------- next part -------------- An HTML attachment was scrubbed... URL: From pk_basu at hotmail.com Mon Feb 24 20:50:03 2014 From: pk_basu at hotmail.com (pkbasu) Date: Mon, 24 Feb 2014 12:50:03 -0800 (PST) Subject: [rabbitmq-discuss] Duplicate exchange detection In-Reply-To: <53048E46.6010000@rabbitmq.com> References: <1392744935359-33463.post@n5.nabble.com> <530399FA.4010407@rabbitmq.com> <1392747871927-33465.post@n5.nabble.com> <53048E46.6010000@rabbitmq.com> Message-ID: <1393275003339-33612.post@n5.nabble.com> Thanks Simon. Here is what I am trying to achieve. Users in my system should be able to send messages to one another across geographical/datacenter/cluster boundaries. User John and User Alice are connected to Rabbit at different clusters, say CX and CY. There is a Messages exchange which is created in each of these broker/clusters. So there is a Messages exchange in CX and a Messages exchange in CY. These two are federated in both directions, so each is an upstream of the other (this is possible, right?) John and Alice now declare exchanges EJ (in CX) and EA (in CY) and bind them with routing keys messages.john and messages.alice respectively to the Messages exchange. Now if John sends a message to his cluster CX with routing key messages.alice, will CX know that there is an exchange EA attached to the Messages exchange in cluster CY that satisfies the routing key? Please refer to attached message. -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Duplicate-exchange-detection-tp33463p33612.html Sent from the RabbitMQ mailing list archive at Nabble.com. From lhl1132 at gmail.com Mon Feb 24 20:39:46 2014 From: lhl1132 at gmail.com (Leo Hernandez) Date: Mon, 24 Feb 2014 12:39:46 -0800 (PST) Subject: [rabbitmq-discuss] Feature request: move messages using management UI In-Reply-To: <34f5d415-8f39-465c-9138-3d0e09ef069d@googlegroups.com> References: <34f5d415-8f39-465c-9138-3d0e09ef069d@googlegroups.com> Message-ID: <9ca57f23-f6e2-4a22-af4d-eae5f4949ca3@googlegroups.com> Jochen, did you ever find a way to do this? On Wednesday, June 26, 2013 10:36:02 AM UTC-4, Jochen Zeischka wrote: > > At our company, we've written a tool to move messages from their > dead-letter queues back to the original queue. > > Would it make sense to be able to do so from the management UI? > The feature I'm looking for is the ability to move messages from one queue > to another queue. > > Kind regards! > > Jochen > -------------- next part -------------- An HTML attachment was scrubbed... URL: From lhl1132 at gmail.com Mon Feb 24 20:40:17 2014 From: lhl1132 at gmail.com (Leo Hernandez) Date: Mon, 24 Feb 2014 12:40:17 -0800 (PST) Subject: [rabbitmq-discuss] Feature request: move messages using management UI In-Reply-To: <34f5d415-8f39-465c-9138-3d0e09ef069d@googlegroups.com> References: <34f5d415-8f39-465c-9138-3d0e09ef069d@googlegroups.com> Message-ID: Did you ever find a way to do this? On Wednesday, June 26, 2013 10:36:02 AM UTC-4, Jochen Zeischka wrote: > > At our company, we've written a tool to move messages from their > dead-letter queues back to the original queue. > > Would it make sense to be able to do so from the management UI? > The feature I'm looking for is the ability to move messages from one queue > to another queue. > > Kind regards! > > Jochen > -------------- next part -------------- An HTML attachment was scrubbed... URL: From daniel at redbite.com Mon Feb 24 22:32:43 2014 From: daniel at redbite.com (Daniel McGreal) Date: Mon, 24 Feb 2014 22:32:43 +0000 Subject: [rabbitmq-discuss] Multiple enqueued RPC methods and ShutdownSignalExceptions and simulating ConnectionTimeouts Message-ID: Hi RabbitMQ Discuss, I have a problem with my client application, using the 3.2.2 Java library. Multiple calls made to 'RPC? methods, such as exchangeDeclare block (interminably) if the call is made while the connection is down, but before it times out. From my basic understanding, it looks like AMQChannel blocks incoming ?RPC? methods using .wait in enqueueRpc. When a ShutdownSignalException comes in via processShutdownSignal, it clears only one of the ?next? RPC calls waiting because, even though notifyAll is used, the while loop containing the .wait will only be cleared by one of the incoming threads? This situation is only apparent for my application during a ConnectionTimeout, which I haven?t been able to simulate in a controlled manner. For testing connection failures, I use a script which makes and breaks a proxy to the real server (mkfifo backpipe && nc -l 5672 < backpipe | nc realserver 5672 > backpipe), but this results in immediate connection failure which is not (so) susceptible to this problem as the exchangeDeclares are rejected before blocking. I wonder if anyone has a method for simulating connection timeouts? Very best, Dan. -------------- next part -------------- An HTML attachment was scrubbed... URL: From matthias at rabbitmq.com Mon Feb 24 22:37:41 2014 From: matthias at rabbitmq.com (Matthias Radestock) Date: Mon, 24 Feb 2014 22:37:41 +0000 Subject: [rabbitmq-discuss] Duplicate exchange detection In-Reply-To: <1393275003339-33612.post@n5.nabble.com> References: <1392744935359-33463.post@n5.nabble.com> <530399FA.4010407@rabbitmq.com> <1392747871927-33465.post@n5.nabble.com> <53048E46.6010000@rabbitmq.com> <1393275003339-33612.post@n5.nabble.com> Message-ID: <530BC9B5.4040406@rabbitmq.com> On 24/02/14 20:50, pkbasu wrote: > User John and User Alice are connected to Rabbit at different clusters, say > CX and CY. There is a Messages exchange which is created in each of these > broker/clusters. So there is a Messages exchange in CX and a Messages > exchange in CY. These two are federated in both directions, so each is an > upstream of the other (this is possible, right?) > > John and Alice now declare exchanges EJ (in CX) and EA (in CY) and bind them > with routing keys messages.john and messages.alice respectively to the > Messages exchange. Now if John sends a message to his cluster CX with > routing key messages.alice, will CX know that there is an exchange EA > attached to the Messages exchange in cluster CY that satisfies the routing > key? CX will know that there is *something* bound with routing key messages.alice to the Messages exchange in CY, so any messages with such a routing key published to the Messages exchange in CX will be pulled across by CY and routed through CY's Messages exchange to EA. Matthias. From pk_basu at hotmail.com Tue Feb 25 00:13:21 2014 From: pk_basu at hotmail.com (pkbasu) Date: Mon, 24 Feb 2014 16:13:21 -0800 (PST) Subject: [rabbitmq-discuss] Duplicate exchange detection In-Reply-To: <530BC9B5.4040406@rabbitmq.com> References: <1392744935359-33463.post@n5.nabble.com> <530399FA.4010407@rabbitmq.com> <1392747871927-33465.post@n5.nabble.com> <53048E46.6010000@rabbitmq.com> <1393275003339-33612.post@n5.nabble.com> <530BC9B5.4040406@rabbitmq.com> Message-ID: <1393287201275-33617.post@n5.nabble.com> Awesome. Now coming to the original question which started this thread. Let's say John is traveling and ends up connecting to cluster CY above because of geographical consideration. He now creates queue QJ to bind to EJ exchange as he had done before also. But EJ exchange is in the cluster CX (see above figure). Will the bind succeed? Thanks Simon and Matthias. -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Duplicate-exchange-detection-tp33463p33617.html Sent from the RabbitMQ mailing list archive at Nabble.com. From piyush.nagar at winshuttle.com Tue Feb 25 06:27:49 2014 From: piyush.nagar at winshuttle.com (Piyush Nagar) Date: Tue, 25 Feb 2014 06:27:49 +0000 Subject: [rabbitmq-discuss] RabbitMQ publishing is taking time In-Reply-To: <52E8FB60.4060303@rabbitmq.com> References: <52E8FB60.4060303@rabbitmq.com> Message-ID: Hi, Thanks for the reply. I used Firehose and below are my observations: As soon as message is published using BasicPublish method, it reaches to queue with routing key publish.exchangename immediately. But it takes time while reaching deliver.queuename queue. I am correlating all messages with correlationID in header which is a GUID and it is same. So that means, messages are reaching to rabbitMQ but are taking time to deliver (which should not be there and messages should come to this queue also immediately). I have sufficient consumers and prefetch counts available. Also when there is increase in number of concurrent messages, this time difference increases. All the messages are binary data with some file blob. Also, I want to mention that, using logging in my publisher, I found out that, let 20 messages are published. But using management console, I can see only 6-7 messages, all are in unacked state (we send ack only after consumption by consumer, which takes some time). Please suggest me the path to take from here. -----Original Message----- From: Simon MacMullen [mailto:simon at rabbitmq.com] Sent: Wednesday, January 29, 2014 6:30 PM To: Discussions about RabbitMQ Cc: Piyush Nagar Subject: Re: [rabbitmq-discuss] RabbitMQ publishing is taking time On 29/01/14 12:51, Piyush Nagar wrote: > I am clue less what is happening here. Can anyone tell me what should > I search for or what other monitoring I can do her for RabbitMQ. You could use tracing / firehose to generate trace messages with timestamps when the broker receives the messages. http://www.rabbitmq.com/firehose.html http://hg.rabbitmq.com/rabbitmq-tracing/file/rabbitmq_v3_2_3/README That would give you some confirmation that the messages are not getting delayed in queues somehow. But I suspect you'll find that the delay is before the broker generates the firehose message. So the next step would be to watch the publishing connection with Wireshark; that can analyse AMQP frames so you should be able to see the messages just before they reach the broker. I strongly suspect you'll find the problem lies in your client application though... Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal ________________________________ Winshuttle Important Notice: The information contained in this e-mail message and any attachments hereto is confidential and is intended solely for the person to whom it is addressed. Any use, disclosure, reproduction, modification or distribution of the contents of this e-mail, or any part thereof, other than by the intended recipient, is strictly prohibited. If you are not the intended recipient or have received this message in error, please notify the sender of this e-mail immediately by return e-mail and destroy the message and all copies in your possession. Our messages are checked for viruses but please note that we do not accept liability for any viruses which may be transmitted in or with this message. From mklishin at gopivotal.com Tue Feb 25 06:38:19 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 25 Feb 2014 10:38:19 +0400 Subject: [rabbitmq-discuss] Multiple enqueued RPC methods and ShutdownSignalExceptions and simulating ConnectionTimeouts In-Reply-To: References: Message-ID: <4D209923-598C-4FE0-A23F-81004832D75A@rabbitmq.com> On 25 Feb 2014, at 02:32, Daniel McGreal wrote: > I wonder if anyone has a method for simulating connection timeouts? You can use a virtual machine and remove virtual NIC that handles incoming traffic but that still requires good timing. MK Software Engineer, Pivotal/RabbitMQ From keks9n at gmail.com Tue Feb 25 07:04:00 2014 From: keks9n at gmail.com (Nikita Tsukanov) Date: Tue, 25 Feb 2014 11:04:00 +0400 Subject: [rabbitmq-discuss] Connections loses its only channel, websocket doesn't close Message-ID: How to reproduce: 1) Connect to stomp, make some subscriptions 2) Try to SEND something to exchange you don't have rights to, a record like this will appear in log which is OK: =ERROR REPORT==== 25-Feb-2014::10:40:32 === connection <0.27089.0>, channel 1 - soft error: {amqp_error,access_refused, "access to exchange 'production.main.services.presence' in vhost 'frontend' refused for user '{\"userId\":1,\"namespaces\":[\"production.main\"]}'", 'basic.publish'} 3) https://lh4.googleusercontent.com/-YXrCFotPYRk/Uww8v7H0FHI/AAAAAAAADXM/dtH_H3ZzkE8/s756/file2nqmNa.png Websocket remains active, js is able to send messages, without any reaction althrough. Expected behaviour: Connection should be closed with the channel. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Tue Feb 25 07:08:33 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 25 Feb 2014 11:08:33 +0400 Subject: [rabbitmq-discuss] Connections loses its only channel, websocket doesn't close In-Reply-To: References: Message-ID: <959756A0-8DE5-4D3B-9C52-D048F33A9C1E@rabbitmq.com> On 25 Feb 2014, at 11:04, Nikita Tsukanov wrote: > {amqp_error,access_refused, > "access to exchange 'production.main.services.presence' in vhost 'frontend' refused for user '{\"userId\":1,\"namespaces\":[\"production.main\"]}'", > 'basic.publish'} > The user in this message is pretty suspicious. Can you post a code snippet that reproduces the problem? MK Software Engineer, Pivotal/RabbitMQ From keks9n at gmail.com Tue Feb 25 07:21:29 2014 From: keks9n at gmail.com (Nikita Tsukanov) Date: Tue, 25 Feb 2014 11:21:29 +0400 Subject: [rabbitmq-discuss] Connections loses its only channel, websocket doesn't close In-Reply-To: <959756A0-8DE5-4D3B-9C52-D048F33A9C1E@rabbitmq.com> References: <959756A0-8DE5-4D3B-9C52-D048F33A9C1E@rabbitmq.com> Message-ID: vhost "bugcheck" access rights for user "guest": Configure: .* Write: ^none$ Read: .* Script: 2014-02-25 11:08 GMT+04:00 Michael Klishin : > > On 25 Feb 2014, at 11:04, Nikita Tsukanov wrote: > > > {amqp_error,access_refused, > > "access to exchange 'production.main.services.presence' in > vhost 'frontend' refused for user > '{\"userId\":1,\"namespaces\":[\"production.main\"]}'", > > 'basic.publish'} > > > > The user in this message is pretty suspicious. Can you post a code snippet > that > reproduces the problem? > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ponmuthu at omnesysindia.com Tue Feb 25 07:57:24 2014 From: ponmuthu at omnesysindia.com (PONMUTHU M) Date: Mon, 24 Feb 2014 23:57:24 -0800 (PST) Subject: [rabbitmq-discuss] Doubts in bindings Message-ID: <1393315044859-33623.post@n5.nabble.com> hi, when i do queue.bind between t1 exchange & q1 queue with "key" as routing_key am getting list_bindings as below >rabbitmqctl.bat list_bindings Listing bindings ... exchange q1 queue q1 [] ----> what is this ? *t1 exchange q1 queue key []* ----> This is fine ...done. regards, PONMUTHU M ----- -- PONMUTHU M -- -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Doubts-in-bindings-tp33623.html Sent from the RabbitMQ mailing list archive at Nabble.com. From mklishin at gopivotal.com Tue Feb 25 08:04:37 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 25 Feb 2014 12:04:37 +0400 Subject: [rabbitmq-discuss] Doubts in bindings In-Reply-To: <1393315044859-33623.post@n5.nabble.com> References: <1393315044859-33623.post@n5.nabble.com> Message-ID: On 25 Feb 2014, at 11:57, PONMUTHU M wrote: > Listing bindings ... > exchange q1 queue q1 [] ----> what is this ? > *t1 exchange q1 queue key []* ----> This is fine > ...done. Extra arguments. See http://www.rabbitmq.com/amqp-0-9-1-quickref.html#queue.bind. MK Software Engineer, Pivotal/RabbitMQ From matthias at rabbitmq.com Tue Feb 25 08:11:03 2014 From: matthias at rabbitmq.com (Matthias Radestock) Date: Tue, 25 Feb 2014 08:11:03 +0000 Subject: [rabbitmq-discuss] Duplicate exchange detection In-Reply-To: <1393287201275-33617.post@n5.nabble.com> References: <1392744935359-33463.post@n5.nabble.com> <530399FA.4010407@rabbitmq.com> <1392747871927-33465.post@n5.nabble.com> <53048E46.6010000@rabbitmq.com> <1393275003339-33612.post@n5.nabble.com> <530BC9B5.4040406@rabbitmq.com> <1393287201275-33617.post@n5.nabble.com> Message-ID: <530C5017.8050101@rabbitmq.com> On 25/02/14 00:13, pkbasu wrote: > Let's say John is traveling and ends up connecting to cluster CY above > because of geographical consideration. He now creates queue QJ to bind to EJ > exchange as he had done before also. But EJ exchange is in the cluster CX > (see above figure). Will the bind succeed? The bind will fail since there is no exchange EJ in CY. Matthias. From pat at munkiisoft.com Tue Feb 25 09:40:45 2014 From: pat at munkiisoft.com (Patrick Long) Date: Tue, 25 Feb 2014 09:40:45 +0000 Subject: [rabbitmq-discuss] BrokerUnreachableException on specific thread after node goes down Message-ID: Rabbit 3.2.1 .Net Client F5 Load balancer 2 node cluster I am trying to debug an issue with our dequeueing code and a cluster. We have a Windows service that starts up with three threads each maintaining its own instance of IModel. That Model is reused each time the thread loops around to Dequeue a message. I am testing how well our Windows service stands up to a node going down. I do this by simply stopping the Rabbit MQ service on the Master node. In our Windows Service I catch the OperationInterruptedException and AlreadyClosedException exceptions. When caught I set that thread's Model to null and it will be recreated the next time around the Dequeue loop. This approach works fine when the Queues are empty and the loop time is infrequent.However when I take the node down and our Windows service is dequeuing and\or Acking messages I hit a problem on one of the threads. As an example threads 1 and 2 will both catch separate instances of AlreadyClosedException and reset their IModel. Next time around Thread 1 will reconnect its Model and start dequeueing but Thread 2 will get a BrokerUnreachableException. I have tried retrying that reconnect with some Thread.Sleep delays and it does not help. Once "broken" that thread gets BrokerUnreachableException every time. Any ideas as to why this might be? Thanks -- Patrick Long - Munkiisoft Ltd -------------- next part -------------- An HTML attachment was scrubbed... URL: From videlalvaro at gmail.com Tue Feb 25 09:41:34 2014 From: videlalvaro at gmail.com (Alvaro Videla) Date: Tue, 25 Feb 2014 10:41:34 +0100 Subject: [rabbitmq-discuss] Doubts in bindings In-Reply-To: References: <1393315044859-33623.post@n5.nabble.com> Message-ID: Hi, I think the OP is asking about the first line of the output: " exchange q1 queue q1 [] ----> what is this ?" That's the default or "anon" exchange. Every queue is automatically bound to that exchange using the queue name as routing key. So you could publish a message to a queue like this: $channel->basic_publish($msg, "", $queue_name); The empty string there is the name of the anon exchange, that's why the output of list_bindings shows a blank where the exchange name should have appeared. Regards, Alvaro On Tue, Feb 25, 2014 at 9:04 AM, Michael Klishin wrote: > > On 25 Feb 2014, at 11:57, PONMUTHU M wrote: > >> Listing bindings ... >> exchange q1 queue q1 [] ----> what is this ? >> *t1 exchange q1 queue key []* ----> This is fine >> ...done. > > Extra arguments. See http://www.rabbitmq.com/amqp-0-9-1-quickref.html#queue.bind. > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss From mklishin at gopivotal.com Tue Feb 25 09:44:58 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 25 Feb 2014 13:44:58 +0400 Subject: [rabbitmq-discuss] BrokerUnreachableException on specific thread after node goes down In-Reply-To: References: Message-ID: <5452415E-2956-4D29-B725-1A2F6F878AD7@rabbitmq.com> On 25 Feb 2014, at 13:40, Patrick Long wrote: > As an example threads 1 and 2 will both catch separate instances of AlreadyClosedException and reset their IModel. Next time around Thread 1 will reconnect its Model and start dequeueing but Thread 2 will get a BrokerUnreachableException. I have tried retrying that reconnect with some Thread.Sleep delays and it does not help. Once "broken" that thread gets BrokerUnreachableException every time. > > Any ideas as to why this might be? This sounds like a shutdown protocol issue in the .NET client. Can you post a small code example that reproduces the problem most of the time? Thank you. MK Software Engineer, Pivotal/RabbitMQ From keks9n at gmail.com Tue Feb 25 09:56:47 2014 From: keks9n at gmail.com (Nikita Tsukanov) Date: Tue, 25 Feb 2014 13:56:47 +0400 Subject: [rabbitmq-discuss] Connections loses its only channel, websocket doesn't close In-Reply-To: References: <959756A0-8DE5-4D3B-9C52-D048F33A9C1E@rabbitmq.com> Message-ID: I also found out that websocket connection stay alive after BAD CONNECT frame from server (if someone tries to connect with wrong credentials) 2014-02-25 11:21 GMT+04:00 Nikita Tsukanov : > vhost "bugcheck" access rights for user "guest": > > Configure: .* > Write: ^none$ > Read: .* > > Script: > > > > > > > > > > > > > > > 2014-02-25 11:08 GMT+04:00 Michael Klishin : > > >> On 25 Feb 2014, at 11:04, Nikita Tsukanov wrote: >> >> > {amqp_error,access_refused, >> > "access to exchange 'production.main.services.presence' in >> vhost 'frontend' refused for user >> '{\"userId\":1,\"namespaces\":[\"production.main\"]}'", >> > 'basic.publish'} >> > >> >> The user in this message is pretty suspicious. Can you post a code >> snippet that >> reproduces the problem? >> >> MK >> >> Software Engineer, Pivotal/RabbitMQ >> >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From humg.thongit at gmail.com Tue Feb 25 10:26:04 2014 From: humg.thongit at gmail.com (=?UTF-8?Q?Tr=E1=BA=A7n_=C4=90=E1=BB=A9c_Th=C3=B4ng?=) Date: Tue, 25 Feb 2014 02:26:04 -0800 (PST) Subject: [rabbitmq-discuss] "None of the specified endpoints were reachable" In-Reply-To: References: Message-ID: <1fc4cf3a-fcd1-4819-869a-d674f0e861d3@googlegroups.com> Hi all. I am leaning rabbitmq use haproxy to execute failover in a cluster. IP server rabbitmq_1: 10.0.0.101 port: 15672 IP server rabbitmq_2: 192.168.247.129 port: 15672 IP server haproxy: 192.168.247.131 Haproxy config # HAProxy Config for Local RabbitMQ SLB Warren global log 127.0.0.1 local0 info maxconn 4096 daemon nbproc 1 defaults log global mode tcp option tcplog option dontlognull retries 3 option redispatch maxconn 2000 timeout connect 5s timeout client 120s timeout server 120s listen rabbitmq_local_cluster 192.168.247.131:8088 mode tcp balance roundrobin server rabbit_a 10.0.0.101:15672 check inter 5000 rise 2 fall 3 server rabbit_b 192.168.247.129:15672 backup inter 5000 rise 2 fall 3 listen private_monitoring :8101 mode http log global maxconn 10 clitimeout 100s srvtimeout 100s contimeout 100s timeout queue 100s option httplog stats hide-version stats show-node stats enable stats auth admin:123456 stats uri /stats stats refresh 5s Code APP send message class Send { public static void Main() { var factory = new ConnectionFactory { HostName = "192.168.247.131", Port=8088 }; using (var connection = factory.CreateConnection()) { using (var channel = connection.CreateModel()) { //channel.QueueDeclare("hello", false, false, false, null); channel.QueueDeclare("q_A", false, false, false, null); channel.QueueDeclare("q_B", false, false, false, null); int i = 0; while (true) { string message = "Hello World! " + i.ToString(); var body = Encoding.UTF8.GetBytes(message); channel.BasicPublish("", "q_A", null, body); channel.BasicPublish("", "q_B", null, body); Console.WriteLine(" [x] Sent {0}", message); i++; Thread.Sleep(1000); } } } Console.Read(); } } pls help me. Thanks so muck. On Thursday, 16 July 2009 21:45:56 UTC+7, Tammo.... at btc-ag.com wrote: > > Hy, > > i?m building a client server .net application that uses rabbitmq as mom. > > the code i?m using to pulish messages is: > > IProtocol protocol = Protocols > .FromEnvironment(); > IConnection conn = > factory.CreateConnection(rmqBrokerUrl); > IModel channel = conn.CreateModel(); > conn.AutoClose = true; > IBasicProperties props = > channel.CreateBasicProperties(); > channel.BasicPublish(exchange, routingKey, props, > buffer); > channel.Close(200, "Goodbye"); > > > > > after sending about 4000msg each in a single thread using the above code, > im getting error that states: > > "None of the specified endpoints were reachable". > > > > any hints on this? > > thanks a lot, > > Tammo > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From humg.thongit at gmail.com Tue Feb 25 10:27:53 2014 From: humg.thongit at gmail.com (=?UTF-8?Q?Tr=E1=BA=A7n_=C4=90=E1=BB=A9c_Th=C3=B4ng?=) Date: Tue, 25 Feb 2014 02:27:53 -0800 (PST) Subject: [rabbitmq-discuss] "None of the specified endpoints were reachable" In-Reply-To: References: Message-ID: <98af1c3f-a43c-4edc-811d-8a6e27a3134d@googlegroups.com> APP run exception "None of the specified endpoints were reachable" On Thursday, 16 July 2009 21:45:56 UTC+7, Tammo.... at btc-ag.com wrote: > > Hy, > > i?m building a client server .net application that uses rabbitmq as mom. > > the code i?m using to pulish messages is: > > IProtocol protocol = Protocols > .FromEnvironment(); > IConnection conn = > factory.CreateConnection(rmqBrokerUrl); > IModel channel = conn.CreateModel(); > conn.AutoClose = true; > IBasicProperties props = > channel.CreateBasicProperties(); > channel.BasicPublish(exchange, routingKey, props, > buffer); > channel.Close(200, "Goodbye"); > > > > > after sending about 4000msg each in a single thread using the above code, > im getting error that states: > > "None of the specified endpoints were reachable". > > > > any hints on this? > > thanks a lot, > > Tammo > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Tue Feb 25 10:34:15 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Tue, 25 Feb 2014 10:34:15 +0000 Subject: [rabbitmq-discuss] RabbitMQ 3.2.2 durable queue failover In-Reply-To: <933321ee-bfc7-4ee9-9265-aac2d79d2c11@googlegroups.com> References: <933321ee-bfc7-4ee9-9265-aac2d79d2c11@googlegroups.com> Message-ID: <530C71A7.5020105@rabbitmq.com> This is the behaviour you would expect to see if the queue were not defined as mirrored - did you set up a policy for mirroring per http://www.rabbitmq.com/ha.html#genesis ? Cheers, Simon On 24/02/2014 19:57, Andy Martin wrote: > I am testing failover before putting my RabbitMQ implementation into > production. When I bring down one RabbitMQ node I start getting the > following error: > > RabbitMQ.Client.Exceptions.OperationInterruptedException: The AMQP > operation was interrupted: AMQP close-reason, initiated by Peer, > code=404, text="NOT_FOUND - home node 'rabbit at DEVRABBIT01' of durable > queue 'QUEUE_TEST' in vhost '/' is down or inaccessible", classId=50, > methodId=10, cause= > > I am running RabbitMQ 3.2.2 with Erlang R16B03. > > DEVRABBIT01 is the node that has been shut down. > DEVRABBIT02 is the node that is still running and that the client is > connected to. > > Both are disc nodes. The named queue (QUEUE_TEST) does not appear in the > management console on the running node. > > It looks like this was supposed to have been fixed in 2.4.0. Any reason > I would be seeing this in 3.2.2? > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > From simon at rabbitmq.com Tue Feb 25 10:37:30 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Tue, 25 Feb 2014 10:37:30 +0000 Subject: [rabbitmq-discuss] Feature request: move messages using management UI In-Reply-To: <9ca57f23-f6e2-4a22-af4d-eae5f4949ca3@googlegroups.com> References: <34f5d415-8f39-465c-9138-3d0e09ef069d@googlegroups.com> <9ca57f23-f6e2-4a22-af4d-eae5f4949ca3@googlegroups.com> Message-ID: <530C726A.3000309@rabbitmq.com> In the current nightly builds and thus the next release (3.3.0), you can create a temporary shovel through the management interface as a means of moving messages around. Cheers, Simon On 24/02/2014 20:39, Leo Hernandez wrote: > Jochen, did you ever find a way to do this? > > On Wednesday, June 26, 2013 10:36:02 AM UTC-4, Jochen Zeischka wrote: > > At our company, we've written a tool to move messages from their > dead-letter queues back to the original queue. > > Would it make sense to be able to do so from the management UI? > The feature I'm looking for is the ability to move messages from one > queue to another queue. > > Kind regards! > > Jochen > > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > From humg.thongit at gmail.com Tue Feb 25 10:41:23 2014 From: humg.thongit at gmail.com (=?UTF-8?B?VHLhuqduIMSQ4bupYyBUaMO0bmc=?=) Date: Tue, 25 Feb 2014 17:41:23 +0700 Subject: [rabbitmq-discuss] Feature request: move messages using management UI In-Reply-To: <530C726A.3000309@rabbitmq.com> References: <34f5d415-8f39-465c-9138-3d0e09ef069d@googlegroups.com> <9ca57f23-f6e2-4a22-af4d-eae5f4949ca3@googlegroups.com> <530C726A.3000309@rabbitmq.com> Message-ID: I am leaning rabbitmq use haproxy to execute failover in a cluster. IP server rabbitmq_1: 10.0.0.101 port: 15672 IP server rabbitmq_2: 192.168.247.129 port: 15672 IP server haproxy: 192.168.247.131 Haproxy config # HAProxy Config for Local RabbitMQ SLB Warren global log 127.0.0.1 local0 info maxconn 4096 daemon nbproc 1 defaults log global mode tcp option tcplog option dontlognull retries 3 option redispatch maxconn 2000 timeout connect 5s timeout client 120s timeout server 120s listen rabbitmq_local_cluster 192.168.247.131:8088 mode tcp balance roundrobin server rabbit_a 10.0.0.101:15672 check inter 5000 rise 2 fall 3 server rabbit_b 192.168.247.129:15672 backup inter 5000 rise 2 fall 3 listen private_monitoring :8101 mode http log global maxconn 10 clitimeout 100s srvtimeout 100s contimeout 100s timeout queue 100s option httplog stats hide-version stats show-node stats enable stats auth admin:123456 stats uri /stats stats refresh 5s Code APP send message class Send { public static void Main() { var factory = new ConnectionFactory { HostName = "192.168.247.131", Port=8088 }; using (var connection = factory.CreateConnection()) { using (var channel = connection.CreateModel()) { //channel.QueueDeclare("hello", false, false, false, null); channel.QueueDeclare("q_A", false, false, false, null); channel.QueueDeclare("q_B", false, false, false, null); int i = 0; while (true) { string message = "Hello World! " + i.ToString(); var body = Encoding.UTF8.GetBytes(message); channel.BasicPublish("", "q_A", null, body); channel.BasicPublish("", "q_B", null, body); Console.WriteLine(" [x] Sent {0}", message); i++; Thread.Sleep(1000); } } } Console.Read(); } } When APP run exception "None of the specified endpoints were reachable" [image: Inline images 1] On 25 February 2014 17:37, Simon MacMullen wrote: > In the current nightly builds and thus the next release (3.3.0), you can > create a temporary shovel through the management interface as a means of > moving messages around. > > Cheers, Simon > > On 24/02/2014 20:39, Leo Hernandez wrote: > >> Jochen, did you ever find a way to do this? >> >> On Wednesday, June 26, 2013 10:36:02 AM UTC-4, Jochen Zeischka wrote: >> >> At our company, we've written a tool to move messages from their >> dead-letter queues back to the original queue. >> >> Would it make sense to be able to do so from the management UI? >> The feature I'm looking for is the ability to move messages from one >> queue to another queue. >> >> Kind regards! >> >> Jochen >> >> >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> >> > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -- ------------------------------------------------------------------------------------------------- *Tran Duc Thong* Software engineering Mobile: 0989 452 004 Email: humg.thongit at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Untitled.png Type: image/png Size: 27550 bytes Desc: not available URL: From mklishin at gopivotal.com Tue Feb 25 11:18:15 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 25 Feb 2014 15:18:15 +0400 Subject: [rabbitmq-discuss] "None of the specified endpoints were reachable" In-Reply-To: <1fc4cf3a-fcd1-4819-869a-d674f0e861d3@googlegroups.com> References: <1fc4cf3a-fcd1-4819-869a-d674f0e861d3@googlegroups.com> Message-ID: <958CF0C3-266E-4601-A85E-D2F2BAADEC51@rabbitmq.com> On 25 Feb 2014, at 14:26, Tr?n ??c Th?ng wrote: > listen rabbitmq_local_cluster 192.168.247.131:8088 > mode tcp > balance roundrobin > server rabbit_a 10.0.0.101:15672 check inter 5000 rise 2 fall 3 > server rabbit_b 192.168.247.129:15672 backup inter 5000 rise 2 fall 3 15672 is RabbitMQ HTTP API port. According to your app snippet, you want RabbitMQ?s protocol port: 5672 or 5671 (over TLS). MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Tue Feb 25 11:19:55 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 25 Feb 2014 15:19:55 +0400 Subject: [rabbitmq-discuss] Feature request: move messages using management UI In-Reply-To: References: <34f5d415-8f39-465c-9138-3d0e09ef069d@googlegroups.com> <9ca57f23-f6e2-4a22-af4d-eae5f4949ca3@googlegroups.com> <530C726A.3000309@rabbitmq.com> Message-ID: <6FC266C4-233E-4D92-A777-D46B1AD4FF17@rabbitmq.com> On 25 Feb 2014, at 14:41, Tr?n ??c Th?ng wrote: > I am leaning rabbitmq use haproxy to execute failover in a cluster. Please don?t post new questions to existing list threads. Your question was answered in http://markmail.org/thread/k2l52lqsjfbcgqfu#query:+page:1+mid:inumkt535kthypyu+state:results MK Software Engineer, Pivotal/RabbitMQ From mike at suteki.co.uk Tue Feb 25 11:34:40 2014 From: mike at suteki.co.uk (Mike Hadlow) Date: Tue, 25 Feb 2014 11:34:40 +0000 Subject: [rabbitmq-discuss] 'Client' Column on RabbitMQ Management UI Connections list Message-ID: Hi, Is there any way to set the blank 'Client' column on the Management UI's Connection list? A particular client properties key perhaps? Thanks Mike -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Tue Feb 25 11:38:00 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 25 Feb 2014 15:38:00 +0400 Subject: [rabbitmq-discuss] 'Client' Column on RabbitMQ Management UI Connections list In-Reply-To: References: Message-ID: On 25 Feb 2014, at 15:34, Mike Hadlow wrote: > Is there any way to set the blank 'Client' column on the Management UI's Connection list? A particular client properties key perhaps? Take a look at ?product?, ?platform? and ?version?. Here?s how Langohr overrides RabbitMQ Java client?s properties: https://github.com/michaelklishin/langohr/blob/master/src/clojure/langohr/core.clj#L190 MK Software Engineer, Pivotal/RabbitMQ From mike at suteki.co.uk Tue Feb 25 11:51:00 2014 From: mike at suteki.co.uk (Mike Hadlow) Date: Tue, 25 Feb 2014 11:51:00 +0000 Subject: [rabbitmq-discuss] 'Client' Column on RabbitMQ Management UI Connections list In-Reply-To: References: Message-ID: Thanks Michael, that works great. Mike On Tue, Feb 25, 2014 at 11:38 AM, Michael Klishin wrote: > > On 25 Feb 2014, at 15:34, Mike Hadlow wrote: > > > Is there any way to set the blank 'Client' column on the Management UI's > Connection list? A particular client properties key perhaps? > > Take a look at "product", "platform" and "version". Here's how Langohr > overrides RabbitMQ Java client's properties: > > https://github.com/michaelklishin/langohr/blob/master/src/clojure/langohr/core.clj#L190 > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From pat at munkiisoft.com Tue Feb 25 15:06:56 2014 From: pat at munkiisoft.com (Patrick Long) Date: Tue, 25 Feb 2014 15:06:56 +0000 (UTC) Subject: [rabbitmq-discuss] =?utf-8?q?BrokerUnreachableException_on_specif?= =?utf-8?q?ic=09thread_after_node_goes_down?= References: <5452415E-2956-4D29-B725-1A2F6F878AD7@rabbitmq.com> Message-ID: I have sent you a repro direct Michael Klishin writes: > > > On 25 Feb 2014, at 13:40, Patrick Long wrote: > > > As an example threads 1 and 2 will both catch separate instances of AlreadyClosedException and reset > their IModel. Next time around Thread 1 will reconnect its Model and start dequeueing but Thread 2 will get > a BrokerUnreachableException. I have tried retrying that reconnect with some Thread.Sleep delays and > it does not help. Once "broken" that thread gets BrokerUnreachableException every time. > > > > Any ideas as to why this might be? > > This sounds like a shutdown protocol issue in the .NET client. Can you post a small code example > that reproduces the problem most of the time? > > Thank you. > > MK > > Software Engineer, Pivotal/RabbitMQ > > From thexray at gmail.com Tue Feb 25 13:38:13 2014 From: thexray at gmail.com (Sergey Kraev) Date: Tue, 25 Feb 2014 05:38:13 -0800 (PST) Subject: [rabbitmq-discuss] rabbitmq memory usage Message-ID: Hi, all! I am stress testing RabbitMQ. I have 10 persistent queues without consumers which I start to fill from topic exchange with 100 bytes long messages at the fastest rate possible. One hour and 100 million messages later erlang process is using all available RAM (3 GB) and message publishing rate at each queue drops from 3000 messages per second to zero. I?d like to know if this behavior is expected and for given configuration the queue backlog limit is 100 million messages. Thanks! -------------- next part -------------- An HTML attachment was scrubbed... URL: From videlalvaro at gmail.com Tue Feb 25 15:43:37 2014 From: videlalvaro at gmail.com (Alvaro Videla) Date: Tue, 25 Feb 2014 16:43:37 +0100 Subject: [rabbitmq-discuss] rabbitmq memory usage In-Reply-To: References: Message-ID: Hi, Have you seen http://www.rabbitmq.com/memory.html ? Regards, Alvaro On Tue, Feb 25, 2014 at 2:38 PM, Sergey Kraev wrote: > Hi, all! > > I am stress testing RabbitMQ. > > I have 10 persistent queues without consumers which I start to fill from > topic exchange with 100 bytes long messages at the fastest rate possible. > One hour and 100 million messages later erlang process is using all > available RAM (3 GB) and message publishing rate at each queue drops from > 3000 messages per second to zero. > > I'd like to know if this behavior is expected and for given configuration > the queue backlog limit is 100 million messages. > > Thanks! > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > From matthias at rabbitmq.com Tue Feb 25 15:52:42 2014 From: matthias at rabbitmq.com (Matthias Radestock) Date: Tue, 25 Feb 2014 15:52:42 +0000 Subject: [rabbitmq-discuss] rabbitmq memory usage In-Reply-To: References: Message-ID: <530CBC4A.5000703@rabbitmq.com> On 25/02/14 13:38, Sergey Kraev wrote: > I have 10 persistent queues without consumers which I start to fill from > topic exchange with 100 bytes long messages at the fastest rate > possible. One hour and 100 million messages later erlang process is > using all available RAM (3 GB) and message publishing rate at each queue > drops from 3000 messages per second to zero. > > I?d like to know if this behavior is expected and for given > configuration the queue backlog limit is 100 million messages. 100 million messages in 3GB gives a per-message memory cost of ~30 bytes. That's actually lower than expected; are the same messages routed to multiple queues? Anyway, yes, that behaviour is expected. Matthias. From pat at munkiisoft.com Tue Feb 25 15:58:21 2014 From: pat at munkiisoft.com (Patrick Long) Date: Tue, 25 Feb 2014 15:58:21 +0000 (UTC) Subject: [rabbitmq-discuss] =?utf-8?q?BrokerUnreachableException_on_specif?= =?utf-8?q?ic=09thread_after_node_goes_down?= References: <5452415E-2956-4D29-B725-1A2F6F878AD7@rabbitmq.com> Message-ID: Michael Klishin writes: > > > On 25 Feb 2014, at 13:40, Patrick Long wrote: > > > As an example threads 1 and 2 will both catch separate instances of AlreadyClosedException and reset > their IModel. Next time around Thread 1 will reconnect its Model and start dequeueing but Thread 2 will get > a BrokerUnreachableException. I have tried retrying that reconnect with some Thread.Sleep delays and > it does not help. Once "broken" that thread gets BrokerUnreachableException every time. > > > > Any ideas as to why this might be? > > This sounds like a shutdown protocol issue in the .NET client. Can you post a small code example > that reproduces the problem most of the time? > > Thank you. > > MK > > Software Engineer, Pivotal/RabbitMQ > > The text in the exception does mention Protocols. It says "endpoint=amqp-0-9://10.206.20.166:5672, attempts=1 RabbitMQ.Client.Exceptions.ProtocolVersionMismatchException: AMQP server protocol negotiation failure: server version unknown-unknown, client version 0-9" From cwstorm at gmail.com Tue Feb 25 18:00:26 2014 From: cwstorm at gmail.com (cw storm) Date: Tue, 25 Feb 2014 13:00:26 -0500 Subject: [rabbitmq-discuss] Going crazy solving PRECONDITION_FAILED Message-ID: I don't understand why we would be getting this error below. Everything was working until we have multiple consumer subscriptions created in rabbit. Each consumer subscriptions has it own conn/channel. Please, please, help. (reply-code=406, reply-text=PRECONDITION_FAILED - unknown delivery tag 2, class-id=60, method-id=80) -------------- next part -------------- An HTML attachment was scrubbed... URL: From thexray at gmail.com Tue Feb 25 18:41:34 2014 From: thexray at gmail.com (thexray at gmail.com) Date: Tue, 25 Feb 2014 20:41:34 +0200 Subject: [rabbitmq-discuss] rabbitmq memory usage In-Reply-To: References: Message-ID: Thanks for the link! So the publishing rate drops to zero, because Erlang RAM usage goes over the limit of vm_memory_high_watermark (in my case, 3GB). Then my question is: is it normal that 100 million persisted messages use 3 GB of memory? Shouldn't broker page them to disk and free memory? After I hit the limit I waited for an hour, and memory usage didn't go down and connections remained blocked. Regards, Sergey On Tue, Feb 25, 2014 at 5:43 PM, Alvaro Videla wrote: > Hi, > > Have you seen http://www.rabbitmq.com/memory.html ? > > Regards, > > Alvaro > > On Tue, Feb 25, 2014 at 2:38 PM, Sergey Kraev wrote: > > Hi, all! > > > > I am stress testing RabbitMQ. > > > > I have 10 persistent queues without consumers which I start to fill from > > topic exchange with 100 bytes long messages at the fastest rate possible. > > One hour and 100 million messages later erlang process is using all > > available RAM (3 GB) and message publishing rate at each queue drops from > > 3000 messages per second to zero. > > > > I'd like to know if this behavior is expected and for given configuration > > the queue backlog limit is 100 million messages. > > > > Thanks! > > > > > > _______________________________________________ > > rabbitmq-discuss mailing list > > rabbitmq-discuss at lists.rabbitmq.com > > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > > > -- > You received this message because you are subscribed to a topic in the > Google Groups "rabbitmq-discuss" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/rabbitmq-discuss/0YGp-fpNk3Q/unsubscribe > . > To unsubscribe from this group and all its topics, send an email to > rabbitmq-discuss+unsubscribe at googlegroups.com. > To post to this group, send email to rabbitmq-discuss at googlegroups.com. > Visit this group at http://groups.google.com/group/rabbitmq-discuss. > For more options, visit https://groups.google.com/groups/opt_out. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From matthias at rabbitmq.com Tue Feb 25 18:47:53 2014 From: matthias at rabbitmq.com (Matthias Radestock) Date: Tue, 25 Feb 2014 18:47:53 +0000 Subject: [rabbitmq-discuss] rabbitmq memory usage In-Reply-To: References: Message-ID: <530CE559.3020500@rabbitmq.com> On 25/02/14 18:41, thexray at gmail.com wrote: > So the publishing rate drops to zero, because Erlang RAM usage goes over > the limit of vm_memory_high_watermark (in my case, 3GB). Correct. > Then my question is: is it normal that 100 million persisted messages > use 3 GB of memory? Did you see my answer here: http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2014-February/034109.html ? > Shouldn't broker page them to disk and free memory? It does, but some index information is always kept in memory, so there is a fixed per-message memory cost. Matthias. From mklishin at gopivotal.com Tue Feb 25 18:55:31 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 25 Feb 2014 22:55:31 +0400 Subject: [rabbitmq-discuss] Going crazy solving PRECONDITION_FAILED In-Reply-To: References: Message-ID: <3B8FB64E-7ECA-4D01-8BA7-D0C6D63B3C7B@rabbitmq.com> On 25 Feb 2014, at 22:00, cw storm wrote: > I don't understand why we would be getting this error below. Everything was working until we have multiple consumer subscriptions created in rabbit. Each consumer subscriptions has it own conn/channel. Please, please, help. > > (reply-code=406, reply-text=PRECONDITION_FAILED - unknown delivery tag 2, class-id=60, method-id=80) Most likely you double ack/reject the same delivery. MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Tue Feb 25 18:57:09 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 25 Feb 2014 22:57:09 +0400 Subject: [rabbitmq-discuss] rabbitmq memory usage In-Reply-To: <530CE559.3020500@rabbitmq.com> References: <530CE559.3020500@rabbitmq.com> Message-ID: On 25 Feb 2014, at 22:47, Matthias Radestock wrote: > It does, but some index information is always kept in memory, so there is a fixed per-message memory cost. which can be mitigated with plugins such as rabbitmq-toke (stores message index info in Tokyo Cabinet): http://hg.rabbitmq.com/rabbitmq-toke/ but those complicate deployment process somewhat. MK Software Engineer, Pivotal/RabbitMQ From videlalvaro at gmail.com Tue Feb 25 18:59:45 2014 From: videlalvaro at gmail.com (Alvaro Videla) Date: Tue, 25 Feb 2014 19:59:45 +0100 Subject: [rabbitmq-discuss] Going crazy solving PRECONDITION_FAILED In-Reply-To: References: Message-ID: Some consumer is sending an ack with a delivery tag that doesn't belong to the channel where is sending the ack. On Tue, Feb 25, 2014 at 7:00 PM, cw storm wrote: > I don't understand why we would be getting this error below. Everything was > working until we have multiple consumer subscriptions created in rabbit. > Each consumer subscriptions has it own conn/channel. Please, please, help. > > (reply-code=406, reply-text=PRECONDITION_FAILED - unknown delivery tag 2, > class-id=60, method-id=80) > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > From michael.s.klishin at gmail.com Tue Feb 25 19:03:36 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Tue, 25 Feb 2014 23:03:36 +0400 Subject: [rabbitmq-discuss] BrokerUnreachableException on specific thread after node goes down In-Reply-To: References: <5452415E-2956-4D29-B725-1A2F6F878AD7@rabbitmq.com> Message-ID: 2014-02-25 19:58 GMT+04:00 Patrick Long : > "endpoint=amqp-0-9://10.206.20.166:5672, attempts=1 > RabbitMQ.Client.Exceptions.ProtocolVersionMismatchException: AMQP server > protocol negotiation failure: server version unknown-unknown, client > version > 0-9" > Can it be that one of the nodes runs RabbitMQ 1.x? That version does not support AMQP 0-9-1, which is what RabbitMQ .NET client uses by default. -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From ambatinr at hotmail.com Tue Feb 25 19:30:21 2014 From: ambatinr at hotmail.com (anate) Date: Tue, 25 Feb 2014 11:30:21 -0800 (PST) Subject: [rabbitmq-discuss] php-amqplib Client publish to Queue and redirect to a new page Message-ID: <1393356621431-33652.post@n5.nabble.com> I am using php-amqplib client library to publish the message to RabbitMQ. The POST data after submit the page displays informational(warning) messages after successfully queued the message. Instead I would like to redirect the page to Redirect.php. How can I turn off these messages and redirect to a new page?Please suggest. Here are the messages I am getting. < [hex]: 0000 41 4D 51 50 00 00 09 01 AMQP.... waiting for 10,10 waiting for a new frame > 10,10: Connection.start Start from server, version: 0.9, properties: capabilities=(publisher_confirms=1, exchange_exchange_bindings=1, basic.nack=1, consumer_cancel_notify=1, connection.blocked=1, consumer_priorities=1, authentication_failure_close=1), copyright=Copyright (C) 2007-2013 GoPivotal, Inc., information=Licensed under the MPL. See http://www.rabbitmq.com/, platform=Erlang/OTP, product=RabbitMQ, version=3.2.3, mechanisms............. My code: ------------------- channel(); $channel->queue_declare('hello-world-queue', false, false, false, false); $message = 'Hello World'; $msg = new AMQPMessage($message); $channel->basic_publish($msg, '', 'hello-world-queue'); $channel->close(); $connection->close(); header ("location:Redirect.php"); ?> -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/php-amqplib-Client-publish-to-Queue-and-redirect-to-a-new-page-tp33652.html Sent from the RabbitMQ mailing list archive at Nabble.com. From cwstorm at gmail.com Tue Feb 25 19:44:53 2014 From: cwstorm at gmail.com (cw storm) Date: Tue, 25 Feb 2014 14:44:53 -0500 Subject: [rabbitmq-discuss] Going crazy solving PRECONDITION_FAILED In-Reply-To: References: Message-ID: I don't understand how this is possible. I submitted one message to a queue. It should execute a downstream service for that queue. The other consumer subscription is subscribing to a different queue. So, it's hard to understand how it's "double ack/reject" on the same delivery. On Tue, Feb 25, 2014 at 1:59 PM, Alvaro Videla wrote: > Some consumer is sending an ack with a delivery tag that doesn't > belong to the channel where is sending the ack. > > On Tue, Feb 25, 2014 at 7:00 PM, cw storm wrote: > > I don't understand why we would be getting this error below. Everything > was > > working until we have multiple consumer subscriptions created in rabbit. > > Each consumer subscriptions has it own conn/channel. Please, please, > help. > > > > (reply-code=406, reply-text=PRECONDITION_FAILED - unknown delivery tag 2, > > class-id=60, method-id=80) > > > > _______________________________________________ > > rabbitmq-discuss mailing list > > rabbitmq-discuss at lists.rabbitmq.com > > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From videlalvaro at gmail.com Tue Feb 25 19:55:53 2014 From: videlalvaro at gmail.com (Alvaro Videla) Date: Tue, 25 Feb 2014 20:55:53 +0100 Subject: [rabbitmq-discuss] php-amqplib Client publish to Queue and redirect to a new page In-Reply-To: <1393356621431-33652.post@n5.nabble.com> References: <1393356621431-33652.post@n5.nabble.com> Message-ID: Hi, You need to turn off debug mode for the library: https://github.com/videlalvaro/php-amqplib#debugging Regards, Alvaro On Tue, Feb 25, 2014 at 8:30 PM, anate wrote: > I am using php-amqplib client library to publish the message to RabbitMQ. The > POST data after submit the page displays informational(warning) messages > after successfully queued the message. Instead I would like to redirect the > page to Redirect.php. How can I turn off these messages and redirect to a > new page?Please suggest. Here are the messages I am getting. > > < [hex]: 0000 41 4D 51 50 00 00 09 01 AMQP.... waiting for 10,10 waiting for > a new frame > 10,10: Connection.start Start from server, version: 0.9, > properties: capabilities=(publisher_confirms=1, > exchange_exchange_bindings=1, basic.nack=1, consumer_cancel_notify=1, > connection.blocked=1, consumer_priorities=1, > authentication_failure_close=1), copyright=Copyright (C) 2007-2013 > GoPivotal, Inc., information=Licensed under the MPL. See > http://www.rabbitmq.com/, platform=Erlang/OTP, product=RabbitMQ, > version=3.2.3, mechanisms............. > > My code: > ------------------- > > > include(__DIR__ . '/config.php'); > use PhpAmqpLib\Connection\AMQPConnection; > use PhpAmqpLib\Message\AMQPMessage; > > > $connection = new AMQPConnection('server-name', 5672, 'guest', 'guest'); > $channel = $connection->channel(); > > > $channel->queue_declare('hello-world-queue', false, false, false, false); > > $message = 'Hello World'; > > $msg = new AMQPMessage($message); > $channel->basic_publish($msg, '', 'hello-world-queue'); > > $channel->close(); > $connection->close(); > header ("location:Redirect.php"); > > ?> > > > > -- > View this message in context: http://rabbitmq.1065348.n5.nabble.com/php-amqplib-Client-publish-to-Queue-and-redirect-to-a-new-page-tp33652.html > Sent from the RabbitMQ mailing list archive at Nabble.com. > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss From michael.s.klishin at gmail.com Tue Feb 25 20:09:28 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Wed, 26 Feb 2014 00:09:28 +0400 Subject: [rabbitmq-discuss] Going crazy solving PRECONDITION_FAILED In-Reply-To: References: Message-ID: 2014-02-25 23:44 GMT+04:00 cw storm : > So, it's hard to understand how it's "double ack/reject" on the same > delivery. Your app can call Channel#basicAck more than once with the same delivery tag. Use protocol tracer to see if that's the case: http://www.rabbitmq.com/java-tools.html -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From ambatinr at hotmail.com Tue Feb 25 20:17:25 2014 From: ambatinr at hotmail.com (anate) Date: Tue, 25 Feb 2014 12:17:25 -0800 (PST) Subject: [rabbitmq-discuss] php-amqplib Client publish to Queue and redirect to a new page In-Reply-To: References: <1393356621431-33652.post@n5.nabble.com> Message-ID: <1393359445546-33656.post@n5.nabble.com> Thank you Alvaro. -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/php-amqplib-Client-publish-to-Queue-and-redirect-to-a-new-page-tp33652p33656.html Sent from the RabbitMQ mailing list archive at Nabble.com. From cwstorm at gmail.com Tue Feb 25 20:45:08 2014 From: cwstorm at gmail.com (cw storm) Date: Tue, 25 Feb 2014 15:45:08 -0500 Subject: [rabbitmq-discuss] Going crazy solving PRECONDITION_FAILED In-Reply-To: References: Message-ID: How? We're pulling our hair trying to get this resolve. I don't see how our app can execute the basicAck more than once considering I only submitted one message to the queue and the consumer is only consuming that one message. We are only seeing this when we have created the second consumer subscription. On Tue, Feb 25, 2014 at 3:09 PM, Michael Klishin < michael.s.klishin at gmail.com> wrote: > > 2014-02-25 23:44 GMT+04:00 cw storm : > > So, it's hard to understand how it's "double ack/reject" on the same >> delivery. > > > Your app can call Channel#basicAck more than once with the same delivery > tag. > > Use protocol tracer to see if that's the case: > http://www.rabbitmq.com/java-tools.html > -- > MK > > http://github.com/michaelklishin > http://twitter.com/michaelklishin > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Tue Feb 25 20:50:07 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 26 Feb 2014 00:50:07 +0400 Subject: [rabbitmq-discuss] Going crazy solving PRECONDITION_FAILED In-Reply-To: References: Message-ID: <2B207499-5E3B-42BB-92AF-A10E16654F8B@rabbitmq.com> On 26 Feb 2014, at 00:45, cw storm wrote: > How? 1. Download RabbitMQ Java client from http://www.rabbitmq.com/releases/rabbitmq-java-client/v3.2.3/rabbitmq-java-client-bin-3.2.3.zip 2. Unpack it 3. cd into the directory 4. ./runjava.sh com.rabbitmq.tools.Tracer 5. Make your clients connect to localhost:5673 6. Watch tracer output MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Tue Feb 25 20:51:26 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 26 Feb 2014 00:51:26 +0400 Subject: [rabbitmq-discuss] Going crazy solving PRECONDITION_FAILED In-Reply-To: References: Message-ID: On 26 Feb 2014, at 00:45, cw storm wrote: > I don't see how our app can execute the basicAck more than once considering I only submitted one message to the queue and the consumer is only consuming that one message. > > We are only seeing this when we have created the second consumer subscription. Consumers can be acking messages with multiple = true, for example. It?s impossible to tell more without seeing your code. MK Software Engineer, Pivotal/RabbitMQ From cwstorm at gmail.com Tue Feb 25 20:56:54 2014 From: cwstorm at gmail.com (cw storm) Date: Tue, 25 Feb 2014 15:56:54 -0500 Subject: [rabbitmq-discuss] Going crazy solving PRECONDITION_FAILED In-Reply-To: References: Message-ID: Where would I set the acking messages with multiple=true? On Tue, Feb 25, 2014 at 3:51 PM, Michael Klishin wrote: > > On 26 Feb 2014, at 00:45, cw storm wrote: > > > I don't see how our app can execute the basicAck more than once > considering I only submitted one message to the queue and the consumer is > only consuming that one message. > > > > We are only seeing this when we have created the second consumer > subscription. > > Consumers can be acking messages with multiple = true, > for example. It's impossible to tell more without seeing your code. > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Tue Feb 25 21:01:54 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 26 Feb 2014 01:01:54 +0400 Subject: [rabbitmq-discuss] Going crazy solving PRECONDITION_FAILED In-Reply-To: References: Message-ID: <2275DDA4-34E2-4533-95BC-5B02B0051F05@rabbitmq.com> On 26 Feb 2014, at 00:56, cw storm wrote: > Where would I set the acking messages with multiple=true? Please read the docs: http://www.rabbitmq.com/api-guide.html http://www.rabbitmq.com/amqp-0-9-1-quickref.html#basic.ack http://www.rabbitmq.com/releases/rabbitmq-java-client/v3.2.3/rabbitmq-java-client-javadoc-3.2.3/ (specifically Channel#basicAck) MK Software Engineer, Pivotal/RabbitMQ From marty.wasznicky at neudesic.com Tue Feb 25 20:20:25 2014 From: marty.wasznicky at neudesic.com (Marty Wasznicky) Date: Tue, 25 Feb 2014 20:20:25 +0000 Subject: [rabbitmq-discuss] .NET Client - PublishConfirms and batching Acks Message-ID: <8E5A97AB8C29BC4385231967D868053A6CB6A5@NeuExc13.corp.neudesic.net> Hello, I'm using the .NET client and attempting to get performance from using PublishConfirms. To date, I don't see much performance over using the txConfirm model though. Hence, I'm wondering if I'm doing something wrong. I'm creating the Connection and Model and then calling ConfirmSelect() Then in a tight loop, I'm publishing messages like so: lock (this.activeMessagesLock) { var deliveryTag = 0UL; deliveryTag = this.model.NextPublishSeqNo; this.model.BasicPublish( this.exchangeName, message.Header.Topic, this.properties.Durable, false, messageProperties, body); this.activeMessages[deliveryTag] = message; } On the consumer side I'm doing the following for receiving the messages: consumerModel = this.connection.CreateModel(); consumerModel.BasicQos(0, 1, false); var consumer = new QueueingBasicConsumer(consumerModel); var consumerTag = consumerModel.BasicConsume( this.queueName,true, consumer); while (true) { BasicDeliverEventArgs item = null; if (!consumer.Queue.Dequeue(3000, out item)) { if (this.terminateThreadConsume.WaitOne(0)) { connectionClosed = true; break; } continue; } if (null == item) { continue; } consumerModel.BasicAck(item.DeliveryTag, true); } Unfortunately this is really slow. Is there some property I'm missing that I can use to increase performance? Since I'm setting the "multiple" flag to True in the BasicAck, I tried to call that on every 100 or 1000th message....but I found if an ack isn't sent, I'm not allowed to read another message off the queue. Thanks Confidentiality Notice: This email and any attachments are confidential. If you have received this in error, please let us know by email reply and delete the email and all attachments from your system. -------------- next part -------------- An HTML attachment was scrubbed... URL: From taylor at indeed.com Tue Feb 25 22:08:35 2014 From: taylor at indeed.com (taylor at indeed.com) Date: Tue, 25 Feb 2014 14:08:35 -0800 (PST) Subject: [rabbitmq-discuss] Add href attribute on http://www.rabbitmq.com/federated-queues.html Message-ID: <12a154f8-e24b-4484-8095-403adc641cfe@googlegroups.com> On http://www.rabbitmq.com/federated-queues.html, the first paragraph starts with > > In addition to federated exchanges, > RabbitMQ supports federated queues It should link to http://www.rabbitmq.com/federated-exchanges.html but doesn't since the html is actually > federated exchanges -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Tue Feb 25 23:01:14 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Tue, 25 Feb 2014 23:01:14 +0000 Subject: [rabbitmq-discuss] Add href attribute on http://www.rabbitmq.com/federated-queues.html In-Reply-To: <12a154f8-e24b-4484-8095-403adc641cfe@googlegroups.com> References: <12a154f8-e24b-4484-8095-403adc641cfe@googlegroups.com> Message-ID: <530D20BA.4050301@rabbitmq.com> Thanks. Fixed. Cheers, Simon On 25/02/2014 22:08, taylor at indeed.com wrote: > On http://www.rabbitmq.com/federated-queues.html, the first paragraph > starts with > > In addition to federated exchanges > , RabbitMQ supports > federated queues > > > It should link to http://www.rabbitmq.com/federated-exchanges.html but > doesn't since the html is actually > > federated exchanges > > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > From michael.s.klishin at gmail.com Tue Feb 25 23:05:57 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Wed, 26 Feb 2014 03:05:57 +0400 Subject: [rabbitmq-discuss] .NET Client - PublishConfirms and batching Acks In-Reply-To: <8E5A97AB8C29BC4385231967D868053A6CB6A5@NeuExc13.corp.neudesic.net> References: <8E5A97AB8C29BC4385231967D868053A6CB6A5@NeuExc13.corp.neudesic.net> Message-ID: 2014-02-26 0:20 GMT+04:00 Marty Wasznicky : > Unfortunately this is really slow. Is there some property I?m missing > that I can use to increase performance? You are not specifying if you want to increase throughput of the publisher or consumer. > Since I?m setting the ?multiple? flag to True in the BasicAck, I tried > to call that on every 100 or 1000th message?.but I found if an ack isn?t > sent, I?m not allowed to read another message off the queue. Set basic.qos to a higher value (by default there is no limit): http://www.rabbitmq.com/tutorials/tutorial-two-dotnet.html -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From humg.thongit at gmail.com Wed Feb 26 02:23:05 2014 From: humg.thongit at gmail.com (=?UTF-8?B?VHLhuqduIMSQ4bupYyBUaMO0bmc=?=) Date: Wed, 26 Feb 2014 09:23:05 +0700 Subject: [rabbitmq-discuss] "None of the specified endpoints were reachable" In-Reply-To: <958CF0C3-266E-4601-A85E-D2F2BAADEC51@rabbitmq.com> References: <1fc4cf3a-fcd1-4819-869a-d674f0e861d3@googlegroups.com> <958CF0C3-266E-4601-A85E-D2F2BAADEC51@rabbitmq.com> Message-ID: Thank you very much. On 25 February 2014 18:18, Michael Klishin wrote: > > On 25 Feb 2014, at 14:26, Tr?n ??c Th?ng wrote: > > > listen rabbitmq_local_cluster 192.168.247.131:8088 > > mode tcp > > balance roundrobin > > server rabbit_a 10.0.0.101:15672 check inter 5000 rise 2 fall 3 > > server rabbit_b 192.168.247.129:15672 backup inter 5000 rise 2 > fall 3 > > 15672 is RabbitMQ HTTP API port. According to your app snippet, you want > RabbitMQ?s protocol port: > 5672 or 5671 (over TLS). > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -- ------------------------------------------------------------------------------------------------- *Tran Duc Thong* Software engineering Mobile: 0989 452 004 Email: humg.thongit at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Wed Feb 26 04:36:02 2014 From: cwstorm at gmail.com (cw storm) Date: Tue, 25 Feb 2014 23:36:02 -0500 Subject: [rabbitmq-discuss] Going crazy solving PRECONDITION_FAILED In-Reply-To: <2275DDA4-34E2-4533-95BC-5B02B0051F05@rabbitmq.com> References: <2275DDA4-34E2-4533-95BC-5B02B0051F05@rabbitmq.com> Message-ID: MK and all, The real issue was on the client java code. The problem was that the channel was out of sync with all the consumer subscriptions. Whatever was the last executed code, that was the channel to be use which explains why one consumer was not able to find the delivery tag because it was ack'ing on the wrong channel. Whew. -Phil On Tue, Feb 25, 2014 at 4:01 PM, Michael Klishin wrote: > > On 26 Feb 2014, at 00:56, cw storm wrote: > > > Where would I set the acking messages with multiple=true? > > Please read the docs: > > http://www.rabbitmq.com/api-guide.html > http://www.rabbitmq.com/amqp-0-9-1-quickref.html#basic.ack > > http://www.rabbitmq.com/releases/rabbitmq-java-client/v3.2.3/rabbitmq-java-client-javadoc-3.2.3/(specifically Channel#basicAck) > > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From pat at munkiisoft.com Wed Feb 26 06:37:32 2014 From: pat at munkiisoft.com (Patrick Long) Date: Wed, 26 Feb 2014 06:37:32 +0000 (UTC) Subject: [rabbitmq-discuss] BrokerUnreachableException on specific thread after node goes down References: <5452415E-2956-4D29-B725-1A2F6F878AD7@rabbitmq.com> Message-ID: Michael Klishin writes: > > > > 2014-02-25 19:58 GMT+04:00 Patrick Long : > > "endpoint=amqp-0-9://10.206.20.166:5672, attempts=1 > RabbitMQ.Client.Exceptions.ProtocolVersionMismatchException: AMQP server > protocol negotiation failure: server version unknown-unknown, client version > 0-9" > > > Can it be that one of the nodes runs RabbitMQ 1.x? That version does not support AMQP 0-9-1, > which is what RabbitMQ .NET client uses by default.-- > > MKhttp://github.com/michaelklishinhttp://twitter.com/michaelklishin > > > >
>
>
2014-02-25 19:58 GMT+04:00 Patrick Long <pat at ...>:
> >
"endpoint=amqp-0-9://10.206.20.166:5672, attempts=1
> RabbitMQ.Client.Exceptions.ProtocolVersionMismatchException: AMQP server
> protocol negotiation failure: server version unknown-unknown, client version
> 0-9"
>
>
>
Can it be that one of the nodes runs RabbitMQ 1.x? That version does not support AMQP 0-9-1,
>
which is what RabbitMQ .NET client uses by default.
--
> > MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin
>
>
> Definetly not.The only version i have ever installed is 3.2.1. Did you get my repro? From michael.s.klishin at gmail.com Wed Feb 26 06:43:27 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Wed, 26 Feb 2014 10:43:27 +0400 Subject: [rabbitmq-discuss] BrokerUnreachableException on specific thread after node goes down In-Reply-To: References: <5452415E-2956-4D29-B725-1A2F6F878AD7@rabbitmq.com> Message-ID: 2014-02-26 10:37 GMT+04:00 Patrick Long : > Definetly not.The only version i have ever installed is 3.2.1. Did you get > my repro? > I did. -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From marty.wasznicky at neudesic.com Wed Feb 26 02:03:50 2014 From: marty.wasznicky at neudesic.com (Marty Wasznicky) Date: Wed, 26 Feb 2014 02:03:50 +0000 Subject: [rabbitmq-discuss] .NET API - Using PublishConfirms to get Reliability Message-ID: <8E5A97AB8C29BC4385231967D868053A6CCAAE@NeuExc13.corp.neudesic.net> hello, I'm using Publish Confirms and am trying to achieve zero message loss when the Rabbit MQ instances go down. I have 2 instances of Rabbit MQ, clustered with all Queues mirrored on my local desktop. I think use Publish Confirms to send a batch of about 50,000 messages. I've implemented duplicate message detection in my consumer, and implemented the storage of all messages sent on the publisher. I wired in the following events and remove the messages as Acks come in i.e.: this.model.BasicAcks -= this.MessageAcknowledged; this.model.BasicNacks -= this.MessageNotAcknowledged; this.model.BasicReturn -= this.MessageReturned; this.model.FlowControl -= this.FlowControlChanged; this.model.CallbackException -= ReportCallbackException; Fairly straight forward I thought. On the consumer side I did from the QOS setting for consuming messages. I do this in a tight loop like so: consumerModel = this.connection.CreateModel(); consumerModel.BasicQos(0, 10000, false); var consumer = new QueueingBasicConsumer(consumerModel); var consumerTag = consumerModel.BasicConsume( this.queueName,false, consumer); while (true) { BasicDeliverEventArgs item = null; try { if (!consumer.Queue.Dequeue(3000, out item)) { if (null == item) continue; } // do stuff consumerModel.BasicAck(item.DeliveryTag, false); } } My first finding was that performance was very slow. with 250 byte messages, I'm getting about 500 to 600 msg/sec delivered. Regardless though, my testing was around recover-ability. What I'm doing is sending groups of messages...about 50,000 at time. Then while they are sending, I take down both instances of my Rabbit MQ cluster to simulate a failure like so using Powershell: &.\rabbitmqctl.bat -n cluster1 stop_app &.\rabbitmqctl.bat -n cluster2 stop_app My results are always the same. There appear to be several thousand messages that I never received Acks for still in my internal queue on the Publisher side. There are also pending messages to be delivered that written to disk...that I don't expect my consumer to get until one of the cluster instances start back up. Hence, I start up the main cluster instance followed by the second. First observation is that the messages pending in the Rabbit MQ queue do indeed get delivered to the consumer. great. I then resubmit all the messages in my internal queue on the publisher side. The result is always the same. I'm always 3 or 4 messages short! I then retested without a cluster and without shutting down. After my test run..and after the consumer successfully gets all the messages I always find the same thing. sometimes I have thousands of unacknowledged messages left in my publisher queue. I'd come back 5 minutes later....still there. In short, 2 serious issues I'm seeing. First one is that Rabbit MQ is losing a few messages if both servers in the cluster are shut down. Second one, Acks/Nacks seem to just get lost by Rabbit MQ. Third one...only happens now again...The producer actually receives Acks for delivery tags/messages that don't exist in the its internal queue. Fourth one....when both servers go down, sometimes, but not always, the consumer will not throw an exception when it tries to read the message in the while loop. i.e : if (!consumer.Queue.Dequeue(3000, out item)). The item comes back null, but If I look in the debugger, the consumer's and connection's isopen property is true...and the CloseReason is null. Does anyone have any ideas or have experienced this? How I'm sending the message is pretty straight forward: messageProperties.MessageId = System.Guid.NewGuid().ToString() lock (this.activeMessagesLock) { var deliveryTag = 0UL; deliveryTag = this.model.NextPublishSeqNo; this.model.BasicPublish( this.exchangeName, message.Header.Topic, this.properties.Durable, immediate, messageProperties, body); this.activeMessages[deliveryTag] = message; } I'm using the message ID to add to a concurrentdictionary collection on the consumer side so I can detect duplicates. The message is added to this duplicate detection dictionary before the Ack is sent back to Rabbit MQ Any help would be appreciated. by the way, if I use the TxCommit and TxRollback....I don't have any issues on resending by resending everything in the producer's internal queue. Message loss only seems to happen with PublishConfirms Confidentiality Notice: This email and any attachments are confidential. If you have received this in error, please let us know by email reply and delete the email and all attachments from your system. From marty.wasznicky at neudesic.com Wed Feb 26 05:07:51 2014 From: marty.wasznicky at neudesic.com (martywaz) Date: Tue, 25 Feb 2014 21:07:51 -0800 (PST) Subject: [rabbitmq-discuss] .NET API - Using PublishConfirms to get Reliability Message-ID: <7067a938-3d51-4266-8436-8c205e05878e@googlegroups.com> hello, I'm using Publish Confirms and am trying to achieve zero message loss when the Rabbit MQ instances go down. I have 2 instances of Rabbit MQ, clustered with all Queues mirrored on my local desktop. I think use Publish Confirms to send a batch of about 50,000 messages. I've implemented duplicate message detection in my consumer, and implemented the storage of all messages sent on the publisher. I wired in the following events and remove the messages as Acks come in i.e.: this.model.BasicAcks -= this.MessageAcknowledged; this.model.BasicNacks -= this.MessageNotAcknowledged; this.model.BasicReturn -= this.MessageReturned; this.model.FlowControl -= this.FlowControlChanged; this.model.CallbackException -= ReportCallbackException; Fairly straight forward I thought. On the consumer side I did from the QOS setting for consuming messages. I do this in a tight loop like so: consumerModel = this.connection.CreateModel(); consumerModel.BasicQos(0, 10000, false); var consumer = new QueueingBasicConsumer(consumerModel); var consumerTag = consumerModel.BasicConsume( this.queueName,false, consumer); while (true) { BasicDeliverEventArgs item = null; try { if (!consumer.Queue.Dequeue(3000, out item)) { if (null == item) continue; } // do stuff consumerModel.BasicAck(item.DeliveryTag, false); } } My first finding was that performance was very slow. with 250 byte messages, I'm getting about 500 to 600 msg/sec delivered. Regardless though, my testing was around recover-ability. What I'm doing is sending groups of messages...about 50,000 at time. Then while they are sending, I take down both instances of my Rabbit MQ cluster to simulate a failure like so using Powershell: &.\rabbitmqctl.bat -n cluster1 stop_app &.\rabbitmqctl.bat -n cluster2 stop_app My results are always the same. There appear to be several thousand messages that I never received Acks for still in my internal queue on the Publisher side. There are also pending messages to be delivered that written to disk...that I don't expect my consumer to get until one of the cluster instances start back up. Hence, I start up the main cluster instance followed by the second. First observation is that the messages pending in the Rabbit MQ queue do indeed get delivered to the consumer. great. I then resubmit all the messages in my internal queue on the publisher side. The result is always the same. I'm always 3 or 4 messages short! I then retested without a cluster and without shutting down. After my test run..and after the consumer successfully gets all the messages I always find the same thing. sometimes I have thousands of unacknowledged messages left in my publisher queue. I'd come back 5 minutes later....still there. In short, 2 serious issues I'm seeing. First one is that Rabbit MQ is losing a few messages if both servers in the cluster are shut down. Second one, Acks/Nacks seem to just get lost by Rabbit MQ. Third one...only happens now again...The producer actually receives Acks for delivery tags/messages that don't exist in the its internal queue. Fourth one....when both servers go down, sometimes, but not always, the consumer will not throw an exception when it tries to read the message in the while loop. i.e : if (!consumer.Queue.Dequeue(3000, out item)). The item comes back null, but If I look in the debugger, the consumer's and connection's isopen property is true...and the CloseReason is null. Does anyone have any ideas or have experienced this? How I'm sending the message is pretty straight forward: messageProperties.MessageId = System.Guid.NewGuid().ToString() lock (this.activeMessagesLock) { var deliveryTag = 0UL; deliveryTag = this.model.NextPublishSeqNo; this.model.BasicPublish( this.exchangeName, message.Header.Topic, this.properties.Durable, immediate, messageProperties, body); this.activeMessages[deliveryTag] = message; } I'm using the message ID to add to a concurrentdictionary collection on the consumer side so I can detect duplicates. The message is added to this duplicate detection dictionary before the Ack is sent back to Rabbit MQ Any help would be appreciated. by the way, if I use the TxCommit and TxRollback....I don't have any issues on resending by resending everything in the producer's internal queue. Message loss only seems to happen with PublishConfirms -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Wed Feb 26 07:02:59 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 26 Feb 2014 11:02:59 +0400 Subject: [rabbitmq-discuss] .NET API - Using PublishConfirms to get Reliability In-Reply-To: <8E5A97AB8C29BC4385231967D868053A6CCAAE@NeuExc13.corp.neudesic.net> References: <8E5A97AB8C29BC4385231967D868053A6CCAAE@NeuExc13.corp.neudesic.net> Message-ID: <68B769EE-1E3C-4130-B7E3-85EFC4D48C7F@rabbitmq.com> On 26 Feb 2014, at 06:03, Marty Wasznicky wrote: > First one is that Rabbit MQ is losing a few messages if both servers in the cluster are shut down. I?m fairly certain it?s not RabbitMQ that ?loses messages?. They simply never get to RabbitMQ. Your OS does not detect network peer failure immediately, it takes time, however little. RabbitMQ .NET client thus is writing data to the socket in the time window that OS thinks RabbitMQ server is alive while it already isn?t. Library authors can do only one thing to mitigate this: write messages to disk (write-ahead log, or WAL) first, then publish, and remove acknowledged messages, and recover + republish when RabbitMQ node stops being reachable. RabbitMQ .NET client does not have this feature. It?s currently developer?s responsibility to handle such cases. MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Wed Feb 26 07:08:14 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 26 Feb 2014 11:08:14 +0400 Subject: [rabbitmq-discuss] .NET API - Using PublishConfirms to get Reliability In-Reply-To: <7067a938-3d51-4266-8436-8c205e05878e@googlegroups.com> References: <7067a938-3d51-4266-8436-8c205e05878e@googlegroups.com> Message-ID: On 26 Feb 2014, at 09:07, martywaz wrote: > First one is that Rabbit MQ is losing a few messages if both servers in the cluster are shut down. See my earlier reply about peer unavailability not being detected immediately. > Second one, Acks/Nacks seem to just get lost by Rabbit MQ. Can you be more specific? > Third one...only happens now again...The producer actually receives Acks for delivery tags/messages that don't exist in the its internal queue. Can you isolate this problem? > Fourth one....when both servers go down, sometimes, but not always, the consumer will not throw an exception when it tries to read the message in the while loop. i.e : if (!consumer.Queue.Dequeue(3000, out item)). The item comes back null, but If I look in the debugger, the consumer's and connection's isopen property is true...and the CloseReason is null. Again, it takes time for OS to report a network failure. QueueingConsumer will enqueue deliveries in a local queue (collection). When you shut down your entire cluster, deliveries stop flowing so Dequeue returns null but connection hasn?t detected network failure yet. MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Wed Feb 26 07:10:30 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 26 Feb 2014 11:10:30 +0400 Subject: [rabbitmq-discuss] .NET API - Using PublishConfirms to get Reliability In-Reply-To: <7067a938-3d51-4266-8436-8c205e05878e@googlegroups.com> References: <7067a938-3d51-4266-8436-8c205e05878e@googlegroups.com> Message-ID: On 26 Feb 2014, at 09:07, martywaz wrote: > Rabbit MQ is losing a few messages if both servers in the cluster are shut down. If you shut down your entire cluster, may I ask what you expectations are? There are messages ?in flight? the server hasn?t received yet. They will be lost with any product, unless its nodes refuse to shut down until there?s a period of socket inactivity. This is true even when nodes run on localhost. MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Wed Feb 26 07:15:19 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 26 Feb 2014 11:15:19 +0400 Subject: [rabbitmq-discuss] .NET API - Using PublishConfirms to get Reliability In-Reply-To: <7067a938-3d51-4266-8436-8c205e05878e@googlegroups.com> References: <7067a938-3d51-4266-8436-8c205e05878e@googlegroups.com> Message-ID: <097BE192-B73B-4303-B9F9-A23C02312F71@rabbitmq.com> On 26 Feb 2014, at 09:07, martywaz wrote: > How I'm sending the message is pretty straight forward: > > > > > > messageProperties.MessageId = System.Guid.NewGuid().ToString() > > lock (this.activeMessagesLock) > > { > > var deliveryTag = 0UL; > > deliveryTag = this.model.NextPublishSeqNo; > > > > this.model.BasicPublish( > > this.exchangeName, > > message.Header.Topic, > > this.properties.Durable, > > immediate, > > messageProperties, > > body); > > > > this.activeMessages[deliveryTag] = message; > > } > This is not how publisher confirms are mean to be used in the client. It?s fine to manually acquire next delivery tag and use it. However, you should consider using IModel#WaitForConfirms which will wait until all outstanding acks arrive or a timeout is reached. In the case of timeout, you need to republish messages. MK Software Engineer, Pivotal/RabbitMQ From matthias at rabbitmq.com Wed Feb 26 07:31:23 2014 From: matthias at rabbitmq.com (Matthias Radestock) Date: Wed, 26 Feb 2014 07:31:23 +0000 Subject: [rabbitmq-discuss] .NET API - Using PublishConfirms to get Reliability In-Reply-To: <8E5A97AB8C29BC4385231967D868053A6CCAAE@NeuExc13.corp.neudesic.net> References: <8E5A97AB8C29BC4385231967D868053A6CCAAE@NeuExc13.corp.neudesic.net> Message-ID: <530D984B.7040101@rabbitmq.com> On 26/02/14 02:03, Marty Wasznicky wrote: > My first finding was that performance was very slow. with 250 byte > messages, I'm getting about 500 to 600 msg/sec delivered. I encourage you to experiment with PerfTest - http://www.rabbitmq.com/java-tools.html#perftest and compare results. > I then resubmit all the messages in my internal queue on the > publisher side. The result is always the same. I'm always 3 or 4 > messages short! What do you mean? Are you saying that the publisher got an ack for these messages but the consumer never sees them? > I then retested without a cluster and without shutting down. After > my test run..and after the consumer successfully gets all the > messages I always find the same thing. sometimes I have thousands of > unacknowledged messages left in my publisher queue. I'd come back 5 > minutes later....still there. What do you mean by "the publisher queue"? Are you referring to a queue in the publisher or a rabbitmq queue? > Rabbit MQ is losing a few messages if both servers in the cluster are > shut down. I can assure you it is not. > Second one, Acks/Nacks seem to just get lost by Rabbit MQ. I can assure you that does not happen. > Third one...only happens now again...The producer actually receives > Acks for delivery tags/messages that don't exist in the its internal > queue. I can assure you that does not happen. Please capture a protocol trace for the publisher. https://www.rabbitmq.com/java-tools.html#tracer. If there is a problem then that will show up there. > Fourth one....when both servers go down, sometimes, but not always, > the consumer will not throw an exception when it tries to read the > message in the while loop That's normal TCP/IP behaviour. It takes time for disconnects to be detected. You can reduce the time by reducing the heartbeat interval configured in the client or server. > if I use the TxCommit and TxRollback....I don't have any issues on > resending by resending everything in the producer's internal queue. > Message loss only seems to happen with PublishConfirms Transactions are actually just a thin wrapper around Confirms. This is further evidence that the problems you are seeing are likely due to bugs in your application code. Regards, Matthias. From matthias at rabbitmq.com Wed Feb 26 07:36:43 2014 From: matthias at rabbitmq.com (Matthias Radestock) Date: Wed, 26 Feb 2014 07:36:43 +0000 Subject: [rabbitmq-discuss] .NET API - Using PublishConfirms to get Reliability In-Reply-To: References: <7067a938-3d51-4266-8436-8c205e05878e@googlegroups.com> Message-ID: <530D998B.6070207@rabbitmq.com> On 26/02/14 07:10, Michael Klishin wrote: > > On 26 Feb 2014, at 09:07, martywaz wrote: > >> Rabbit MQ is losing a few messages if both servers in the cluster are shut down. > > If you shut down your entire cluster, may I ask what you expectations are? > > There are messages ?in flight? the server hasn?t received yet. They will be > lost with any product, The crucial question is whether any messages that the publisher has received a confirmation for are lost. Obviously if the cluster is never restarted then any enqueued messages are lost. And, similarly, any non-persistent enqueued messages would be lost even in the restart. But, assuming the cluster comes back up, any persistent messages that have been confirmed to the publisher should still be there / get delivered to consumers. Matthias. From matthias at rabbitmq.com Wed Feb 26 07:40:31 2014 From: matthias at rabbitmq.com (Matthias Radestock) Date: Wed, 26 Feb 2014 07:40:31 +0000 Subject: [rabbitmq-discuss] .NET API - Using PublishConfirms to get Reliability In-Reply-To: <097BE192-B73B-4303-B9F9-A23C02312F71@rabbitmq.com> References: <7067a938-3d51-4266-8436-8c205e05878e@googlegroups.com> <097BE192-B73B-4303-B9F9-A23C02312F71@rabbitmq.com> Message-ID: <530D9A6F.5040501@rabbitmq.com> On 26/02/14 07:15, Michael Klishin wrote: > This is not how publisher confirms are mean to be used in the client. > It?s fine to manually acquire next delivery tag and use it. However, > you should consider using IModel#WaitForConfirms which will wait > until all outstanding acks arrive or a timeout is reached. What the OP is doing is actually fine. Unlike WaitForConfirms, it potentially allows for completely async, streamed processing of confirms without ever waiting. However, the OP didn't post the code for processing the confirms, so there may well be bugs hiding in that. Matthias. From thexray at gmail.com Wed Feb 26 07:45:15 2014 From: thexray at gmail.com (thexray at gmail.com) Date: Wed, 26 Feb 2014 09:45:15 +0200 Subject: [rabbitmq-discuss] rabbitmq memory usage In-Reply-To: References: Message-ID: This is memory usage breakdown: {memory, [{total,3485934240}, {connection_procs,34710096}, {queue_procs,138552056}, {plugins,436080}, {other_proc,19191352}, {mnesia,107120}, {mgmt_db,598560}, {msg_index,2829261600}, {other_ets,425229944}, {binary,12478704}, {code,19777382}, {atom,703377}, {other_system,4887969}]}, On Tue, Feb 25, 2014 at 5:43 PM, Alvaro Videla wrote: > Hi, > > Have you seen http://www.rabbitmq.com/memory.html ? > > Regards, > > Alvaro > > On Tue, Feb 25, 2014 at 2:38 PM, Sergey Kraev wrote: > > Hi, all! > > > > I am stress testing RabbitMQ. > > > > I have 10 persistent queues without consumers which I start to fill from > > topic exchange with 100 bytes long messages at the fastest rate possible. > > One hour and 100 million messages later erlang process is using all > > available RAM (3 GB) and message publishing rate at each queue drops from > > 3000 messages per second to zero. > > > > I'd like to know if this behavior is expected and for given configuration > > the queue backlog limit is 100 million messages. > > > > Thanks! > > > > > > _______________________________________________ > > rabbitmq-discuss mailing list > > rabbitmq-discuss at lists.rabbitmq.com > > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > > > -- > You received this message because you are subscribed to a topic in the > Google Groups "rabbitmq-discuss" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/rabbitmq-discuss/0YGp-fpNk3Q/unsubscribe > . > To unsubscribe from this group and all its topics, send an email to > rabbitmq-discuss+unsubscribe at googlegroups.com. > To post to this group, send email to rabbitmq-discuss at googlegroups.com. > Visit this group at http://groups.google.com/group/rabbitmq-discuss. > For more options, visit https://groups.google.com/groups/opt_out. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From marty.wasznicky at neudesic.com Wed Feb 26 07:48:55 2014 From: marty.wasznicky at neudesic.com (Marty Wasznicky) Date: Wed, 26 Feb 2014 07:48:55 +0000 Subject: [rabbitmq-discuss] .NET API - Using PublishConfirms to get Reliability In-Reply-To: References: <7067a938-3d51-4266-8436-8c205e05878e@googlegroups.com> Message-ID: <8E5A97AB8C29BC4385231967D868053A6CD107@NeuExc13.corp.neudesic.net> Hi Michael, As far as I can tell...it seems like Rabbit MQ loses messages when the servers are taking down. I've been testing this for weeks now. For instance...you send a message...and maybe you hit a race condition i.e. that for whatever reason the .net client API isn't designed to throw an error immediately because under the hood it sounds like your using peer networking for communication. Using Publishconfirm model...I'm ok with it being async. But if the message actually never gets to RabbitMQ, it will still make it to my internal queue for resubmittal. But that also means I should never get an ack or nack back for it...since it never reached. Yet I'm still getting sometimes (actually ) always losing messages. I'm still trying to track it down. I can understand that it takes the peer network perhaps a few seconds to detect that the servers are no longer available. However, after I took down both servers, I let that consumer loop that reads off the queue run. It continued to read , without error (of course no messages) for 10 minutes before I finally just killed the process in task manager. Before I killed it...the channel and connection's IsOpen property was still true. That's a serious problem. I can understand an argument that it takes time for the OS to get a network signal of some sort..but it doesn't take 10 minutes. Acks/Nacks get lost. Sure...we send 50,000 messages through. Once they all go through. A few minutes later we'll check on our internal queue only to find that there are sometimes several thousand orphaned records that the publisher never received an ack/nack for. I've thought about using the WaitForConfirms function....but considering that it seems like a good chunk just never get sent, I'm hesitant about using it since I can't afford to wait minutes or hours for control to come back to app. I've so far only tried to resubmit the messages I have in the internal queue I maintain when there's a server failure....and the server comes back...then I resubmit everything in the queue. But from your email...its making me think that Rabbit MQ is more unreliable than I thought....if I have to monitor the condition in healthy conditions as well and prepare to resubmit batches..... All this also forced to build duplicate detection on the consumer side to ensure once only delivery. -----Original Message----- From: Michael Klishin [mailto:mklishin at gopivotal.com] Sent: Tuesday, February 25, 2014 11:08 PM To: Discussions about RabbitMQ Cc: Marty Wasznicky Subject: Re: [rabbitmq-discuss] .NET API - Using PublishConfirms to get Reliability On 26 Feb 2014, at 09:07, martywaz wrote: > First one is that Rabbit MQ is losing a few messages if both servers in the cluster are shut down. See my earlier reply about peer unavailability not being detected immediately. > Second one, Acks/Nacks seem to just get lost by Rabbit MQ. Can you be more specific? > Third one...only happens now again...The producer actually receives Acks for delivery tags/messages that don't exist in the its internal queue. Can you isolate this problem? > Fourth one....when both servers go down, sometimes, but not always, the consumer will not throw an exception when it tries to read the message in the while loop. i.e : if (!consumer.Queue.Dequeue(3000, out item)). The item comes back null, but If I look in the debugger, the consumer's and connection's isopen property is true...and the CloseReason is null. Again, it takes time for OS to report a network failure. QueueingConsumer will enqueue deliveries in a local queue (collection). When you shut down your entire cluster, deliveries stop flowing so Dequeue returns null but connection hasn't detected network failure yet. MK Software Engineer, Pivotal/RabbitMQ Confidentiality Notice: This email and any attachments are confidential. If you have received this in error, please let us know by email reply and delete the email and all attachments from your system. From mklishin at gopivotal.com Wed Feb 26 07:50:02 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 26 Feb 2014 11:50:02 +0400 Subject: [rabbitmq-discuss] rabbitmq memory usage In-Reply-To: References: Message-ID: <286042B8-E00C-4095-89AE-BE227F065906@rabbitmq.com> On 26 Feb 2014, at 11:45, thexray at gmail.com wrote: > {msg_index,2829261600}, ~ 2,7 GB is used by message index, which was mentioned earlier. Try using http://hg.rabbitmq.com/rabbitmq-toke/ for message index. MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Wed Feb 26 08:02:13 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 26 Feb 2014 12:02:13 +0400 Subject: [rabbitmq-discuss] .NET API - Using PublishConfirms to get Reliability In-Reply-To: <8E5A97AB8C29BC4385231967D868053A6CD107@NeuExc13.corp.neudesic.net> References: <7067a938-3d51-4266-8436-8c205e05878e@googlegroups.com> <8E5A97AB8C29BC4385231967D868053A6CD107@NeuExc13.corp.neudesic.net> Message-ID: <231C327C-A080-4828-B4A5-4B3F5B9DB279@gopivotal.com> On 26 Feb 2014, at 11:48, Marty Wasznicky wrote: > As far as I can tell...it seems like Rabbit MQ loses messages when the servers are taking down. So far we?ve seen no evidence of this. > For instance...you send a message...and maybe you hit a race condition i.e. that for whatever reason the .net client API isn't designed to throw an error immediately because under the hood it sounds like your using peer networking for communication. RabbitMQ .NET client use TCP sockets to communicate with RabbitMQ. When one side of the peer goes down or becomes unreachable, it takes time for the OS to detect this. RabbitMQ .NET client relies on the OS to do this and .NET APIs to throw exceptions accordingly: http://hg.rabbitmq.com/rabbitmq-dotnet-client/file/348a50e651cd/projects/client/RabbitMQ.Client/src/client/impl/ConnectionBase.cs#l618 > > I can understand that it takes the peer network perhaps a few seconds to detect that the servers are no longer available. However, after I took down both servers, I let that consumer loop that reads off the queue run. It continued to read , without error (of course no messages) for 10 minutes before I finally just killed the process in task manager. Before I killed it...the channel and connection's IsOpen property was still true. OK, this sounds like a .NET client bug. Can you put together a small program that reproduces it? What .NET version do you use, what version of Windows? > That's a serious problem. I can understand an argument that it takes time for the OS to get a network signal of some sort..but it doesn't take 10 minutes. > > Acks/Nacks get lost. Sure...we send 50,000 messages through. Once they all go through. A few minutes later we'll check on our internal queue only to find that there are sometimes several thousand orphaned records that the publisher never received an ack/nack for. Again, can you provide a small self-contained program that reproduces this? I expect this to be a .NET client bug of some kind. > > I've so far only tried to resubmit the messages I have in the internal queue I maintain when there's a server failure....and the server comes back...then I resubmit everything in the queue. But from your email...its making me think that Rabbit MQ is more unreliable than I thought....if I have to monitor the condition in healthy conditions as well and prepare to resubmit batches?.. It has nothing to do with the server but certain (fairly objective) limitations of the client library. Note that even if there was no such limitation, to ensure a ?never lose a message delivery? you still need to implement a WAL, because in the time window between BasicPublish and subsequent socket write your process might die (OS kills it, someone pulls the plug, etc). -- MK Software Engineer, Pivotal/RabbitMQ From matthias at rabbitmq.com Wed Feb 26 08:07:14 2014 From: matthias at rabbitmq.com (Matthias Radestock) Date: Wed, 26 Feb 2014 08:07:14 +0000 Subject: [rabbitmq-discuss] rabbitmq memory usage In-Reply-To: <286042B8-E00C-4095-89AE-BE227F065906@rabbitmq.com> References: <286042B8-E00C-4095-89AE-BE227F065906@rabbitmq.com> Message-ID: <530DA0B2.20708@rabbitmq.com> On 26/02/14 07:50, Michael Klishin wrote: > > On 26 Feb 2014, at 11:45, thexray at gmail.com wrote: > >> {msg_index,2829261600}, > > ~ 2,7 GB is used by message index, which was mentioned > earlier. > > Try using http://hg.rabbitmq.com/rabbitmq-toke/ for message index. Or just add more memory. That would probably be less fiddly. Matthias. From mklishin at gopivotal.com Wed Feb 26 08:08:43 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 26 Feb 2014 12:08:43 +0400 Subject: [rabbitmq-discuss] .NET API - Using PublishConfirms to get Reliability In-Reply-To: <8E5A97AB8C29BC4385231967D868053A6CD107@NeuExc13.corp.neudesic.net> References: <7067a938-3d51-4266-8436-8c205e05878e@googlegroups.com> <8E5A97AB8C29BC4385231967D868053A6CD107@NeuExc13.corp.neudesic.net> Message-ID: <32CFB3BF-CAC5-4C6F-A7F6-93CE0DF8DD8E@gopivotal.com> On 26 Feb 2014, at 11:48, Marty Wasznicky wrote: > Yet I'm still getting sometimes (actually ) always losing messages. I'm still trying to track it down. May I point out that you still haven?t specified what your expectations are. ?Losing messages? is a broad claim and the root cause can vary quite a bit: * Messages never make it to the server because of an issue in the client * Data is in flight * Server acks too early * Messages are not published as persistent or queues are not durable * Message recovery issues * Peer failure is not detected adequately by the client and so on. Some of these issues are pretty unlikely in a product that is 7 years old but to investigate this we need to clarify *expectations*. Moreover, the reasons will vary between ?losing messages? on the publisher end vs. on the consumer end. Potential issues in the two so far have been lumped together in this thread. Can you please explain what your expectations are, separately for publishers and consumers, in the event of one node and full cluster failure, as detailed as possible? -- MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Wed Feb 26 08:25:00 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 26 Feb 2014 12:25:00 +0400 Subject: [rabbitmq-discuss] BrokerUnreachableException on specific thread after node goes down In-Reply-To: References: <5452415E-2956-4D29-B725-1A2F6F878AD7@rabbitmq.com> Message-ID: On 26 Feb 2014, at 10:43, Michael Klishin wrote: > I did. Investigating. MK Software Engineer, Pivotal/RabbitMQ From marty.wasznicky at neudesic.com Wed Feb 26 08:28:39 2014 From: marty.wasznicky at neudesic.com (Marty Wasznicky) Date: Wed, 26 Feb 2014 08:28:39 +0000 Subject: [rabbitmq-discuss] .NET API - Using PublishConfirms to get Reliability In-Reply-To: <231C327C-A080-4828-B4A5-4B3F5B9DB279@gopivotal.com> References: <7067a938-3d51-4266-8436-8c205e05878e@googlegroups.com> <8E5A97AB8C29BC4385231967D868053A6CD107@NeuExc13.corp.neudesic.net> <231C327C-A080-4828-B4A5-4B3F5B9DB279@gopivotal.com> Message-ID: <8E5A97AB8C29BC4385231967D868053A6CD323@NeuExc13.corp.neudesic.net> Using Windows 7, 64 bit os, dual cpu/quad core, 8 gig ram Client is 3.2.1.0 I'll see what we can do to put together a sample that replicates the lost acks/nacks -----Original Message----- From: Michael Klishin [mailto:mklishin at gopivotal.com] Sent: Wednesday, February 26, 2014 12:02 AM To: Marty Wasznicky Cc: Discussions about RabbitMQ Subject: Re: [rabbitmq-discuss] .NET API - Using PublishConfirms to get Reliability On 26 Feb 2014, at 11:48, Marty Wasznicky wrote: > As far as I can tell...it seems like Rabbit MQ loses messages when the servers are taking down. So far we've seen no evidence of this. > For instance...you send a message...and maybe you hit a race condition i.e. that for whatever reason the .net client API isn't designed to throw an error immediately because under the hood it sounds like your using peer networking for communication. RabbitMQ .NET client use TCP sockets to communicate with RabbitMQ. When one side of the peer goes down or becomes unreachable, it takes time for the OS to detect this. RabbitMQ .NET client relies on the OS to do this and .NET APIs to throw exceptions accordingly: http://hg.rabbitmq.com/rabbitmq-dotnet-client/file/348a50e651cd/projects/client/RabbitMQ.Client/src/client/impl/ConnectionBase.cs#l618 > > I can understand that it takes the peer network perhaps a few seconds to detect that the servers are no longer available. However, after I took down both servers, I let that consumer loop that reads off the queue run. It continued to read , without error (of course no messages) for 10 minutes before I finally just killed the process in task manager. Before I killed it...the channel and connection's IsOpen property was still true. OK, this sounds like a .NET client bug. Can you put together a small program that reproduces it? What .NET version do you use, what version of Windows? > That's a serious problem. I can understand an argument that it takes time for the OS to get a network signal of some sort..but it doesn't take 10 minutes. > > Acks/Nacks get lost. Sure...we send 50,000 messages through. Once they all go through. A few minutes later we'll check on our internal queue only to find that there are sometimes several thousand orphaned records that the publisher never received an ack/nack for. Again, can you provide a small self-contained program that reproduces this? I expect this to be a .NET client bug of some kind. > > I've so far only tried to resubmit the messages I have in the internal queue I maintain when there's a server failure....and the server comes back...then I resubmit everything in the queue. But from your email...its making me think that Rabbit MQ is more unreliable than I thought....if I have to monitor the condition in healthy conditions as well and prepare to resubmit batches..... It has nothing to do with the server but certain (fairly objective) limitations of the client library. Note that even if there was no such limitation, to ensure a "never lose a message delivery" you still need to implement a WAL, because in the time window between BasicPublish and subsequent socket write your process might die (OS kills it, someone pulls the plug, etc). -- MK Software Engineer, Pivotal/RabbitMQ Confidentiality Notice: This email and any attachments are confidential. If you have received this in error, please let us know by email reply and delete the email and all attachments from your system. From humg.thongit at gmail.com Wed Feb 26 08:36:02 2014 From: humg.thongit at gmail.com (=?UTF-8?B?VHLhuqduIMSQ4bupYyBUaMO0bmc=?=) Date: Wed, 26 Feb 2014 15:36:02 +0700 Subject: [rabbitmq-discuss] Monitoring application manager RabbitMQ server with .NET Message-ID: Hi all. I am use RabbitMQ. I am installed management plugins, it provider WebUI management monitor. I am want to build monitor application management RabbitMQ with .NET. Pls help me. Thanks! ------------------------------------------------------------------------------------------------- *Tran Duc Thong* Software engineering Mobile: 0989 452 004 Email: humg.thongit at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From videlalvaro at gmail.com Wed Feb 26 08:44:15 2014 From: videlalvaro at gmail.com (Alvaro Videla) Date: Wed, 26 Feb 2014 09:44:15 +0100 Subject: [rabbitmq-discuss] Monitoring application manager RabbitMQ server with .NET In-Reply-To: References: Message-ID: Hi, Maybe this could help you? https://github.com/mikehadlow/EasyNetQ#management-api Regards, Alvaro On Wed, Feb 26, 2014 at 9:36 AM, Tr?n ??c Th?ng wrote: > Hi all. > > I am use RabbitMQ. > > I am installed management plugins, it provider WebUI management monitor. > > I am want to build monitor application management RabbitMQ with .NET. > > Pls help me. > > Thanks! > ------------------------------------------------------------------------------------------------- > Tran Duc Thong > Software engineering > Mobile: 0989 452 004 > Email: humg.thongit at gmail.com > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > From cfautsch at goodgamestudios.com Wed Feb 26 08:57:44 2014 From: cfautsch at goodgamestudios.com (Claire Fautsch) Date: Wed, 26 Feb 2014 09:57:44 +0100 Subject: [rabbitmq-discuss] Unexaplainable behaviour with shovel plugin. Message-ID: Hello, we are currently experiencing some (for us) unexaplainable behaviour with shovel plugin. Before, I enter into the details, let me first outline our setup. We have a set of RabbitMQ Servers hosted in the cloud, where incoming messages are queued. On those servers we then have the shovel plugin running, which distributes the incoming messages to a set of RabbitMQ Servers in our local datacenter. The configuration of the shovel does not directly specifiy a RabbitMQ Server as its destination, but a load balancer, which then distributes to the servers in our local datacenter. Since a few days we are now encountering the following Problem: The queues on our cloud servers reach (and pass) the Memory watermarks, because of Unacknowledged Messages. The queue size of ready messages is almost constantly on 0 (i.e., messages are delivered as fast as published) however the unacknowledged messages keep growing. On the other side, at the same time the statistics on our local servers show, that messages are confirmed almost as fast as published. This leads to the fact, that we have on the destination servers a total of two hanful of messages that are not yet confirmed, however on the source servers we have millions of messages that are waiting for confirmation (acknowledgement) We would expect with some threshold that delivery rate on source = publish rate on destination (which is the case) confirm rate on destination = acknowledge rate on source (which shows considerable difference) Does anyone have an idea or suggestion what could be the reason for this? Is it a bad idea to have load balancer as destination in the shovel, or should that work fine? Network issue? Here some more details on our shovel setup: ack_mode=on_confirm prefetch_count=0 (default) reconnect_delay=5 Thanks for advance for any hint or discussion point, Regards Claire -------------- next part -------------- An HTML attachment was scrubbed... URL: From joey.jiaojg at gmail.com Wed Feb 26 09:22:16 2014 From: joey.jiaojg at gmail.com (Joey Jiao) Date: Wed, 26 Feb 2014 17:22:16 +0800 Subject: [rabbitmq-discuss] Federation log Message-ID: Hi Simon, I think Federation doesn't obey log_levels setting. As even I setting log_levels to warning, Federation still log info level to log file. Can you prompt me how to fix by myself first as I created very big log size? -- -Joey Jiao -------------- next part -------------- An HTML attachment was scrubbed... URL: From mike at suteki.co.uk Wed Feb 26 10:19:37 2014 From: mike at suteki.co.uk (Mike Hadlow) Date: Wed, 26 Feb 2014 10:19:37 +0000 Subject: [rabbitmq-discuss] Monitoring application manager RabbitMQ server with .NET In-Reply-To: References: Message-ID: If you need any help with the EasyNetQ Management API, drop a message on the EasyNetQ list. Mike On Wed, Feb 26, 2014 at 8:44 AM, Alvaro Videla wrote: > Hi, > > Maybe this could help you? > https://github.com/mikehadlow/EasyNetQ#management-api > > Regards, > > Alvaro > > On Wed, Feb 26, 2014 at 9:36 AM, Tr?n ??c Th?ng > wrote: > > Hi all. > > > > I am use RabbitMQ. > > > > I am installed management plugins, it provider WebUI management monitor. > > > > I am want to build monitor application management RabbitMQ with .NET. > > > > Pls help me. > > > > Thanks! > > > ------------------------------------------------------------------------------------------------- > > Tran Duc Thong > > Software engineering > > Mobile: 0989 452 004 > > Email: humg.thongit at gmail.com > > > > _______________________________________________ > > rabbitmq-discuss mailing list > > rabbitmq-discuss at lists.rabbitmq.com > > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From humg.thongit at gmail.com Wed Feb 26 11:10:47 2014 From: humg.thongit at gmail.com (=?UTF-8?Q?Tr=E1=BA=A7n_=C4=90=E1=BB=A9c_Th=C3=B4ng?=) Date: Wed, 26 Feb 2014 03:10:47 -0800 (PST) Subject: [rabbitmq-discuss] How to delete any message in a queue Message-ID: <5fd6f8ae-e198-4c8c-86f1-7863b13b7e86@googlegroups.com> Hi al. I am using EasyNetQ to build application monitor RabbitMQ server. I am want to delete any message in a queue. Pls help me. Thanks. -------------- next part -------------- An HTML attachment was scrubbed... URL: From videlalvaro at gmail.com Wed Feb 26 11:14:22 2014 From: videlalvaro at gmail.com (Alvaro Videla) Date: Wed, 26 Feb 2014 12:14:22 +0100 Subject: [rabbitmq-discuss] How to delete any message in a queue In-Reply-To: <5fd6f8ae-e198-4c8c-86f1-7863b13b7e86@googlegroups.com> References: <5fd6f8ae-e198-4c8c-86f1-7863b13b7e86@googlegroups.com> Message-ID: You can read the docs of the library here: https://github.com/mikehadlow/EasyNetQ/wiki/Queues specifically the section on Purge Queues. -Alvaro On Wed, Feb 26, 2014 at 12:10 PM, Tr?n ??c Th?ng wrote: > Hi al. > > I am using EasyNetQ to build application monitor RabbitMQ server. > > I am want to delete any message in a queue. > > Pls help me. > > Thanks. > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > From mklishin at gopivotal.com Wed Feb 26 11:15:29 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 26 Feb 2014 15:15:29 +0400 Subject: [rabbitmq-discuss] How to delete any message in a queue In-Reply-To: <5fd6f8ae-e198-4c8c-86f1-7863b13b7e86@googlegroups.com> References: <5fd6f8ae-e198-4c8c-86f1-7863b13b7e86@googlegroups.com> Message-ID: <2DC95253-21D1-4E99-B33D-863713E0A754@rabbitmq.com> On 26 Feb 2014, at 15:10, Tr?n ??c Th?ng wrote: > I am using EasyNetQ to build application monitor RabbitMQ server. > > I am want to delete any message in a queue. https://github.com/mikehadlow/EasyNetQ/wiki/Queues, PurgeQueue MK Software Engineer, Pivotal/RabbitMQ From Shashank.Lothe at techmahindra.com Wed Feb 26 12:40:53 2014 From: Shashank.Lothe at techmahindra.com (Lothe Shashank) Date: Wed, 26 Feb 2014 12:40:53 +0000 Subject: [rabbitmq-discuss] Broker shutdown_error Message-ID: Hi, I am using RMQ server 3.2.3, Erlang R16B03 broker. While I continuously publishing some data through this broker I gave rabbitmqctl stop_app command. This command was not successfully executed and the execution of this command hanged. I checked the syslog for the broker. It showed following error. =CRASH REPORT==== 25-Feb-2014::14:01:30 === crasher: initial call: rabbit_reader:init/2 pid: <0.773.0> registered_name: [] exception exit: channel_termination_timeout in function rabbit_reader:wait_for_channel_termination/2 in call from rabbit_reader:handle_exception/3 in call from rabbit_reader:terminate/2 in call from rabbit_reader:handle_other/2 in call from rabbit_reader:mainloop/2 in call from rabbit_reader:run/1 in call from rabbit_reader:start_connection/5 ancestors: [<0.771.0>,rabbit_tcp_client_sup,rabbit_sup,<0.139.0>] messages: [] links: [] dictionary: [{credit_blocked,[]}, {{ch_pid,<0.784.0>},{1601,#Ref<0.0.0.15943>}}, {{channel,1601}, {<0.784.0>,{method,rabbit_framing_amqp_0_9_1}}}] trap_exit: true status: running heap_size: 2586 stack_size: 27 reductions: 8366 neighbours: =SUPERVISOR REPORT==== 25-Feb-2014::14:01:30 === Supervisor: {<0.771.0>,rabbit_connection_sup} Context: shutdown_error Reason: channel_termination_timeout Offender: [{pid,<0.773.0>}, {name,reader}, {mfargs,{rabbit_reader,start_link,[<0.772.0>]}}, {restart_type,intrinsic}, {shutdown,4294967295}, {child_type,worker}] What could be the reason for this? regards, Shashank ________________________________ DISCLAIMER: This email (including any attachments) is intended for the sole use of the intended recipient/s and may contain material that is CONFIDENTIAL AND PRIVATE COMPANY INFORMATION. Any review or reliance by others or copying or distribution or forwarding of any or all of the contents in this message is STRICTLY PROHIBITED. If you are not the intended recipient, please contact the sender by email and delete all copies; your cooperation in this regard is appreciated. -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Wed Feb 26 14:16:13 2014 From: cwstorm at gmail.com (cw storm) Date: Wed, 26 Feb 2014 09:16:13 -0500 Subject: [rabbitmq-discuss] How to delete any message in a queue In-Reply-To: <2DC95253-21D1-4E99-B33D-863713E0A754@rabbitmq.com> References: <5fd6f8ae-e198-4c8c-86f1-7863b13b7e86@googlegroups.com> <2DC95253-21D1-4E99-B33D-863713E0A754@rabbitmq.com> Message-ID: MK, Does PurgeQueue has the capability to delete a specific message from the queue and not all the messages? If I have 10 messages but I want to delete the 5th message, is that possible? On Wed, Feb 26, 2014 at 6:15 AM, Michael Klishin wrote: > > On 26 Feb 2014, at 15:10, Tr?n ??c Th?ng wrote: > > > I am using EasyNetQ to build application monitor RabbitMQ server. > > > > I am want to delete any message in a queue. > > https://github.com/mikehadlow/EasyNetQ/wiki/Queues, PurgeQueue > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Wed Feb 26 14:19:05 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 26 Feb 2014 18:19:05 +0400 Subject: [rabbitmq-discuss] How to delete any message in a queue In-Reply-To: References: <5fd6f8ae-e198-4c8c-86f1-7863b13b7e86@googlegroups.com> <2DC95253-21D1-4E99-B33D-863713E0A754@rabbitmq.com> Message-ID: <43C69537-D264-4BE1-BED1-023BA7B658E5@rabbitmq.com> On 26 Feb 2014, at 18:16, cw storm wrote: > Does PurgeQueue has the capability to delete a specific message from the queue and not all the messages? If I have 10 messages but I want to delete the 5th message, is that possible? No. MK Software Engineer, Pivotal/RabbitMQ From cwstorm at gmail.com Wed Feb 26 14:22:46 2014 From: cwstorm at gmail.com (cw storm) Date: Wed, 26 Feb 2014 09:22:46 -0500 Subject: [rabbitmq-discuss] How to delete any message in a queue In-Reply-To: References: <5fd6f8ae-e198-4c8c-86f1-7863b13b7e86@googlegroups.com> <2DC95253-21D1-4E99-B33D-863713E0A754@rabbitmq.com> Message-ID: This is more from an operational and support perspective. If there is a specific message in the queue which causes the client to continue rejecting it, then we want the flexibility to manually and purge that specific message from the queue. Would this be a HTTP API thing or is there something developer can code using the rabbit java client api. On Wed, Feb 26, 2014 at 9:16 AM, cw storm wrote: > MK, > > Does PurgeQueue has the capability to delete a specific message from the > queue and not all the messages? If I have 10 messages but I want to delete > the 5th message, is that possible? > > > On Wed, Feb 26, 2014 at 6:15 AM, Michael Klishin wrote: > >> >> On 26 Feb 2014, at 15:10, Tr?n ??c Th?ng wrote: >> >> > I am using EasyNetQ to build application monitor RabbitMQ server. >> > >> > I am want to delete any message in a queue. >> >> https://github.com/mikehadlow/EasyNetQ/wiki/Queues, PurgeQueue >> >> MK >> >> Software Engineer, Pivotal/RabbitMQ >> >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Wed Feb 26 15:12:56 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 26 Feb 2014 19:12:56 +0400 Subject: [rabbitmq-discuss] How to delete any message in a queue In-Reply-To: References: <5fd6f8ae-e198-4c8c-86f1-7863b13b7e86@googlegroups.com> <2DC95253-21D1-4E99-B33D-863713E0A754@rabbitmq.com> Message-ID: On 26 Feb 2014, at 18:22, cw storm wrote: > If there is a specific message in the queue which causes the client to continue rejecting it, then we want the flexibility to manually and purge that specific message from the queue. Under any moderately high message rate, this will be absolutely unrealistic operations-wise: messages move around to quickly to delete them by their position in the queue, so clients will have to handle such messages anyway. MK Software Engineer, Pivotal/RabbitMQ From Rohit.Patle at techmahindra.com Wed Feb 26 15:14:38 2014 From: Rohit.Patle at techmahindra.com (Rohit Patle) Date: Wed, 26 Feb 2014 15:14:38 +0000 Subject: [rabbitmq-discuss] [rabbitmq-c] minimal network bandwidth requirement to API execute Message-ID: <27E054594442884E9A46DBCF9AE7408165108A@BSDMSATMBX001.mahindrasatyam.ad> Hi, I am using rabbitmq-c client library V0.4.1. While working on this we observed that, some times in very poor network bandwidth some API's like amqp_login, amqp_channel_open, amqp_queue_declare etc are getting blocked/hanged/failed. I would like to know is there any minimal network bandwidth is needed to make this API's work/execute normally? Thanks in advance. Regards, Rohit ________________________________ DISCLAIMER: This email (including any attachments) is intended for the sole use of the intended recipient/s and may contain material that is CONFIDENTIAL AND PRIVATE COMPANY INFORMATION. Any review or reliance by others or copying or distribution or forwarding of any or all of the contents in this message is STRICTLY PROHIBITED. If you are not the intended recipient, please contact the sender by email and delete all copies; your cooperation in this regard is appreciated. -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Wed Feb 26 15:51:44 2014 From: cwstorm at gmail.com (cw storm) Date: Wed, 26 Feb 2014 10:51:44 -0500 Subject: [rabbitmq-discuss] How to reuse and existing connection but have different channel Message-ID: Hi, Currently, my publisher code instantiate a connection/channel and closes it if all successful. Is it possible to reuse an existing connection but have separate channel every time produces a message to rabbit? Also, after the basicPublish is executed, what do I check in the next line of code to make sure the broker have persisted or receive the message successfully. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkuch at gopivotal.com Wed Feb 26 16:43:00 2014 From: jkuch at gopivotal.com (Jerry Kuch) Date: Wed, 26 Feb 2014 08:43:00 -0800 Subject: [rabbitmq-discuss] How to reuse and existing connection but have different channel In-Reply-To: References: Message-ID: > > Currently, my publisher code instantiate a connection/channel and closes > it if all successful. Is it possible to reuse an existing connection but > have separate channel every time produces a message to rabbit? > It's not clear why you would want to create a new channel per message. Typically one gets a connection, then multiplexes it into separate channels and uses each channel for some conceptually related chunk of behavior, e.g. publishing notifications of some sort, consuming messages, etc. > Also, after the basicPublish is executed, what do I check in the next line > of code to make sure the broker have persisted or receive the message > successfully. > If you want such an assurance you'll either have to perform that publish with the context of an AMQP transaction (synchronous and kind of expensive) or use publisher confirms, in which case you register an asynchronous listener for confirm receipts that the broker sends when it's done what you asked for, to the standard you asked. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkuch at gopivotal.com Wed Feb 26 16:43:59 2014 From: jkuch at gopivotal.com (Jerry Kuch) Date: Wed, 26 Feb 2014 08:43:59 -0800 Subject: [rabbitmq-discuss] [rabbitmq-c] minimal network bandwidth requirement to API execute In-Reply-To: <27E054594442884E9A46DBCF9AE7408165108A@BSDMSATMBX001.mahindrasatyam.ad> References: <27E054594442884E9A46DBCF9AE7408165108A@BSDMSATMBX001.mahindrasatyam.ad> Message-ID: Some of these operations seem like they'd be more impacted by latency or outright reliability of the network than bandwidth per se... what's the nature of your network that's giving you such difficulties? On Wed, Feb 26, 2014 at 7:14 AM, Rohit Patle wrote: > Hi, > > I am using rabbitmq-c client library V0.4.1. > > While working on this we observed that, some times in very poor network > bandwidth some API's like amqp_login, amqp_channel_open, amqp_queue_declare > etc are getting blocked/hanged/failed. I would like to know is there any > minimal network bandwidth is needed to make this API's work/execute > normally? > > Thanks in advance. > > Regards, > Rohit > > > > ------------------------------ > > DISCLAIMER: > This email (including any attachments) is intended for the sole use of the > intended recipient/s and may contain material that is CONFIDENTIAL AND > PRIVATE COMPANY INFORMATION. Any review or reliance by others or copying or > distribution or forwarding of any or all of the contents in this message is > STRICTLY PROHIBITED. If you are not the intended recipient, please contact > the sender by email and delete all copies; your cooperation in this regard > is appreciated. > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Wed Feb 26 17:21:40 2014 From: cwstorm at gmail.com (cw storm) Date: Wed, 26 Feb 2014 12:21:40 -0500 Subject: [rabbitmq-discuss] How to reuse and existing connection but have different channel In-Reply-To: References: Message-ID: I've added the channel.setConfirmListener(new ConfirmListener() and imported com.rabbitmq.client.ConfirmListener but during java compilation, it complains : cannot find symbol symbol : method setConfirmListener() location: interface com.rabbitmq.client.Channel channel.setConfirmListener(new ConfirmListener() On Wed, Feb 26, 2014 at 11:43 AM, Jerry Kuch wrote: > Currently, my publisher code instantiate a connection/channel and closes >> it if all successful. Is it possible to reuse an existing connection but >> have separate channel every time produces a message to rabbit? >> > > It's not clear why you would want to create a new channel per message. > Typically one gets a connection, then multiplexes it into separate > channels and uses each channel for some conceptually related chunk of > behavior, e.g. publishing notifications of some sort, consuming messages, > etc. > > >> Also, after the basicPublish is executed, what do I check in the next >> line of code to make sure the broker have persisted or receive the message >> successfully. >> > > If you want such an assurance you'll either have to perform that publish > with the context of an AMQP transaction (synchronous and kind of expensive) > or use publisher confirms, in which case you register an asynchronous > listener for confirm receipts that the broker sends when it's done what you > asked for, to the standard you asked. > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Wed Feb 26 17:27:07 2014 From: cwstorm at gmail.com (cw storm) Date: Wed, 26 Feb 2014 12:27:07 -0500 Subject: [rabbitmq-discuss] How to reuse and existing connection but have different channel In-Reply-To: References: Message-ID: I guess setConfirmListener is deprecated. It's now addConfirmListener. On Wed, Feb 26, 2014 at 12:21 PM, cw storm wrote: > I've added the channel.setConfirmListener(new ConfirmListener() and > imported com.rabbitmq.client.ConfirmListener but during java compilation, > it complains : > > cannot find symbol > symbol : method setConfirmListener( com.rabbitmq.client.ConfirmListener>) > location: interface com.rabbitmq.client.Channel > channel.setConfirmListener(new ConfirmListener() > > > On Wed, Feb 26, 2014 at 11:43 AM, Jerry Kuch wrote: > >> Currently, my publisher code instantiate a connection/channel and closes >>> it if all successful. Is it possible to reuse an existing connection but >>> have separate channel every time produces a message to rabbit? >>> >> >> It's not clear why you would want to create a new channel per message. >> Typically one gets a connection, then multiplexes it into separate >> channels and uses each channel for some conceptually related chunk of >> behavior, e.g. publishing notifications of some sort, consuming messages, >> etc. >> >> >>> Also, after the basicPublish is executed, what do I check in the next >>> line of code to make sure the broker have persisted or receive the message >>> successfully. >>> >> >> If you want such an assurance you'll either have to perform that publish >> with the context of an AMQP transaction (synchronous and kind of expensive) >> or use publisher confirms, in which case you register an asynchronous >> listener for confirm receipts that the broker sends when it's done what you >> asked for, to the standard you asked. >> >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Wed Feb 26 17:54:47 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 26 Feb 2014 21:54:47 +0400 Subject: [rabbitmq-discuss] How to reuse and existing connection but have different channel In-Reply-To: References: Message-ID: <234E7211-4405-4C82-A574-0A643EE98B12@rabbitmq.com> On 26 Feb 2014, at 21:27, cw storm wrote: > I guess setConfirmListener is deprecated. It's now addConfirmListener. It was removed around RabbitMQ 2.8 in early-mid 2012. MK Software Engineer, Pivotal/RabbitMQ From luke.oliver.palmer at gmail.com Wed Feb 26 17:46:33 2014 From: luke.oliver.palmer at gmail.com (Luke Palmer) Date: Wed, 26 Feb 2014 09:46:33 -0800 (PST) Subject: [rabbitmq-discuss] Contributing? Message-ID: <651c3a53-6970-4fc7-b599-e382edf668f7@googlegroups.com> Hi there, I'm interested in contributing a patch to the Java amqp-client. How can I go about doing this? In particular, I'd like to replace the use of stdout / stderr with SLF4J. Thanks Luke -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Wed Feb 26 18:03:30 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 26 Feb 2014 22:03:30 +0400 Subject: [rabbitmq-discuss] Contributing? In-Reply-To: <651c3a53-6970-4fc7-b599-e382edf668f7@googlegroups.com> References: <651c3a53-6970-4fc7-b599-e382edf668f7@googlegroups.com> Message-ID: On 26 Feb 2014, at 21:46, Luke Palmer wrote: > I'm interested in contributing a patch to the Java amqp-client. How can I go about doing this? > > In particular, I'd like to replace the use of stdout / stderr with SLF4J. You need to sign Pivotal Contributor Agreement and briefly outline what you want to do on this list. Then push a branch on GitHub or to a Mercurial hosting of your choice. MK Software Engineer, Pivotal/RabbitMQ From matthias at rabbitmq.com Wed Feb 26 18:11:11 2014 From: matthias at rabbitmq.com (Matthias Radestock) Date: Wed, 26 Feb 2014 18:11:11 +0000 Subject: [rabbitmq-discuss] Contributing? In-Reply-To: <651c3a53-6970-4fc7-b599-e382edf668f7@googlegroups.com> References: <651c3a53-6970-4fc7-b599-e382edf668f7@googlegroups.com> Message-ID: <530E2E3F.1030404@rabbitmq.com> On 26/02/14 17:46, Luke Palmer wrote: > I'd like to replace the use of stdout / stderr with SLF4J. There is exactly one place in the entire Java client where stdout/err is used: DefaultExceptionHandler. And the whole point there is that you can replace its use with your own implementation and hence no changes to the Java client code base are necessary. Matthias. From mklishin at gopivotal.com Wed Feb 26 18:13:11 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 26 Feb 2014 22:13:11 +0400 Subject: [rabbitmq-discuss] Contributing? In-Reply-To: <530E2E3F.1030404@rabbitmq.com> References: <651c3a53-6970-4fc7-b599-e382edf668f7@googlegroups.com> <530E2E3F.1030404@rabbitmq.com> Message-ID: <9699BBFF-7F4D-4D98-9A2B-3C0BA8EEE579@rabbitmq.com> On 26 Feb 2014, at 22:11, Matthias Radestock wrote: > There is exactly one place in the entire Java client where stdout/err is used: DefaultExceptionHandler. And the whole point there is that you can replace its use with your own implementation and hence no changes to the Java client code base are necessary. Actually, you currently do that. There is a branch (bug26008) which makes it possible to set your own exception handler. MK Software Engineer, Pivotal/RabbitMQ From cwstorm at gmail.com Wed Feb 26 18:16:45 2014 From: cwstorm at gmail.com (cw storm) Date: Wed, 26 Feb 2014 13:16:45 -0500 Subject: [rabbitmq-discuss] Publish-Confirm Message-ID: I would like to use the example code provided in http://www.rabbitmq.com/blog/2011/02/10/introducing-publisher-confirms/ I'm trying to understand the below snippet: for (long i = 0; i < MSG_COUNT; ++i) { unconfirmedSet.add(ch.getNextPublishSeqNo()); ch.basicPublish("", QUEUE_NAME, MessageProperties.PERSISTENT_BASIC, "nop".getBytes()); } while (unconfirmedSet.size() > 0) Thread.sleep(10); As stated, "the producer waits for all the messages to be confirmed." Assuming that's the above code. Is the "while" logic safe? What happens when the "unconfirmedSet.size" is always greater than 0? Also, the "MSG_COUNT" if set to 10000, does the for loop will always loop 10000 times even though there might only be say 10 messages? -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkuch at gopivotal.com Wed Feb 26 18:25:11 2014 From: jkuch at gopivotal.com (Jerry Kuch) Date: Wed, 26 Feb 2014 10:25:11 -0800 Subject: [rabbitmq-discuss] Publish-Confirm In-Reply-To: References: Message-ID: It's sample code intended to illustrate the mechanism. Whether your logic really means you should be waiting or sleeping or whatever is another story. The core of the idea: - Publisher keeps track, in some kind of set-like data structure, the publish sequence numbers associated with the messages he's published. - As the broker receives the messages and does the requested work it asynchronously issues confirms back to the publisher. - The publisher retires these no longer pending confirms by removing them from the set. - If the connection closes indicating a failure, than any sequence numbers in the pending set have to be re-published, because the publisher has no guarantee the broker received them or, if it did, that it successfully did anything with them before they went wrong. The sample code is basically just napping periodically while it waits for the pending confirms set to drain as confirms come in. Obviously your own producers may plan to run for long periods of time, or be doing other useful work as they run, and will need somewhat different logic. On Wed, Feb 26, 2014 at 10:16 AM, cw storm wrote: > I would like to use the example code provided in > http://www.rabbitmq.com/blog/2011/02/10/introducing-publisher-confirms/ > > I'm trying to understand the below snippet: > > for (long i = 0; i < MSG_COUNT; ++i) { > unconfirmedSet.add(ch.getNextPublishSeqNo()); > ch.basicPublish("", QUEUE_NAME, MessageProperties.PERSISTENT_BASIC, > "nop".getBytes()); > } > while (unconfirmedSet.size() > 0) > Thread.sleep(10); > > As stated, "the producer waits for all the messages to be confirmed." Assuming that's the above code. Is the "while" logic safe? What happens when the "unconfirmedSet.size" is always greater than 0? Also, the "MSG_COUNT" if set to 10000, does the for loop will always loop 10000 times even though there might only be say 10 messages? > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > > https://urldefense.proofpoint.com/v1/url?u=https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=sF0ZnlnTVu0KrGgVA7hSe29cx%2BPGAwA3H8KZu6lkUvo%3D%0A&m=QUfUbFS9YzM58pz9kll9YojUmz0BsQCmKTEyEzb0%2BoI%3D%0A&s=8211f71263dd5091577809eb7793ada1a818ae26a30e60f2e2d1c9de4ad4d33a > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Wed Feb 26 18:25:49 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Wed, 26 Feb 2014 22:25:49 +0400 Subject: [rabbitmq-discuss] Publish-Confirm In-Reply-To: References: Message-ID: 2014-02-26 22:16 GMT+04:00 cw storm : > I'm trying to understand the below snippet: > > for (long i = 0; i < MSG_COUNT; ++i) { > unconfirmedSet.add(ch.getNextPublishSeqNo()); > ch.basicPublish("", QUEUE_NAME, MessageProperties.PERSISTENT_BASIC, > "nop".getBytes()); > } > while (unconfirmedSet.size() > 0) > Thread.sleep(10); > > As stated, "the producer waits for all the messages to be confirmed." Assuming that's the above code. Is the "while" logic safe? What happens when the "unconfirmedSet.size" is always greater than 0? Also, the "MSG_COUNT" if set to 10000, does the for loop will always loop 10000 times even though there might only be say 10 messages? > > That blog post is over 2 years old. Consider using Channel#waitForConfirms instead. -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Wed Feb 26 18:37:08 2014 From: cwstorm at gmail.com (cw storm) Date: Wed, 26 Feb 2014 13:37:08 -0500 Subject: [rabbitmq-discuss] Publish-Confirm In-Reply-To: References: Message-ID: Thanks MK. I was just about to say. Use ch.waitForConfirmsOrDie(); instead, right? On Wed, Feb 26, 2014 at 1:25 PM, Michael Klishin < michael.s.klishin at gmail.com> wrote: > > 2014-02-26 22:16 GMT+04:00 cw storm : > > I'm trying to understand the below snippet: >> >> for (long i = 0; i < MSG_COUNT; ++i) { >> unconfirmedSet.add(ch.getNextPublishSeqNo()); >> ch.basicPublish("", QUEUE_NAME, MessageProperties.PERSISTENT_BASIC, >> "nop".getBytes()); >> } >> while (unconfirmedSet.size() > 0) >> Thread.sleep(10); >> >> As stated, "the producer waits for all the messages to be confirmed." Assuming that's the above code. Is the "while" logic safe? What happens when the "unconfirmedSet.size" is always greater than 0? Also, the "MSG_COUNT" if set to 10000, does the for loop will always loop 10000 times even though there might only be say 10 messages? >> >> That blog post is over 2 years old. > > Consider using Channel#waitForConfirms instead. > -- > MK > > http://github.com/michaelklishin > http://twitter.com/michaelklishin > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Wed Feb 26 18:38:27 2014 From: cwstorm at gmail.com (cw storm) Date: Wed, 26 Feb 2014 13:38:27 -0500 Subject: [rabbitmq-discuss] Publish-Confirm In-Reply-To: References: Message-ID: MK, There's also waitForConfirmsOrDie(long timeout). Timout is in seconds, right? On Wed, Feb 26, 2014 at 1:37 PM, cw storm wrote: > Thanks MK. I was just about to say. Use ch.waitForConfirmsOrDie(); > instead, right? > > > On Wed, Feb 26, 2014 at 1:25 PM, Michael Klishin < > michael.s.klishin at gmail.com> wrote: > >> >> 2014-02-26 22:16 GMT+04:00 cw storm : >> >> I'm trying to understand the below snippet: >>> >>> for (long i = 0; i < MSG_COUNT; ++i) { >>> unconfirmedSet.add(ch.getNextPublishSeqNo()); >>> ch.basicPublish("", QUEUE_NAME, MessageProperties.PERSISTENT_BASIC, >>> "nop".getBytes()); >>> } >>> while (unconfirmedSet.size() > 0) >>> Thread.sleep(10); >>> >>> As stated, "the producer waits for all the messages to be confirmed." Assuming that's the above code. Is the "while" logic safe? What happens when the "unconfirmedSet.size" is always greater than 0? Also, the "MSG_COUNT" if set to 10000, does the for loop will always loop 10000 times even though there might only be say 10 messages? >>> >>> That blog post is over 2 years old. >> >> Consider using Channel#waitForConfirms instead. >> -- >> MK >> >> http://github.com/michaelklishin >> http://twitter.com/michaelklishin >> >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Wed Feb 26 18:41:47 2014 From: cwstorm at gmail.com (cw storm) Date: Wed, 26 Feb 2014 13:41:47 -0500 Subject: [rabbitmq-discuss] Publish-Confirm In-Reply-To: References: Message-ID: Also, I guess I don't need addConfirmListener attach to the channel if using "waitForConfirmOrDie" method right? On Wed, Feb 26, 2014 at 1:38 PM, cw storm wrote: > MK, > > There's also waitForConfirmsOrDie(long timeout). Timout is in seconds, > right? > > > On Wed, Feb 26, 2014 at 1:37 PM, cw storm wrote: > >> Thanks MK. I was just about to say. Use ch.waitForConfirmsOrDie(); >> instead, right? >> >> >> On Wed, Feb 26, 2014 at 1:25 PM, Michael Klishin < >> michael.s.klishin at gmail.com> wrote: >> >>> >>> 2014-02-26 22:16 GMT+04:00 cw storm : >>> >>> I'm trying to understand the below snippet: >>>> >>>> for (long i = 0; i < MSG_COUNT; ++i) { >>>> unconfirmedSet.add(ch.getNextPublishSeqNo()); >>>> ch.basicPublish("", QUEUE_NAME, MessageProperties.PERSISTENT_BASIC, >>>> "nop".getBytes()); >>>> } >>>> while (unconfirmedSet.size() > 0) >>>> Thread.sleep(10); >>>> >>>> As stated, "the producer waits for all the messages to be confirmed." Assuming that's the above code. Is the "while" logic safe? What happens when the "unconfirmedSet.size" is always greater than 0? Also, the "MSG_COUNT" if set to 10000, does the for loop will always loop 10000 times even though there might only be say 10 messages? >>>> >>>> That blog post is over 2 years old. >>> >>> Consider using Channel#waitForConfirms instead. >>> -- >>> MK >>> >>> http://github.com/michaelklishin >>> http://twitter.com/michaelklishin >>> >>> _______________________________________________ >>> rabbitmq-discuss mailing list >>> rabbitmq-discuss at lists.rabbitmq.com >>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >>> >>> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From marty.wasznicky at neudesic.com Wed Feb 26 05:08:21 2014 From: marty.wasznicky at neudesic.com (Martywaz) Date: Wed, 26 Feb 2014 05:08:21 +0000 (UTC) Subject: [rabbitmq-discuss] .NET API - Using PublishConfirms to get Reliability Message-ID: hello, I'm using Publish Confirms and am trying to achieve zero message loss when the Rabbit MQ instances go down. I have 2 instances of Rabbit MQ, clustered with all Queues mirrored on my local desktop. I think use Publish Confirms to send a batch of about 50,000 messages. I've implemented duplicate message detection in my consumer, and implemented the storage of all messages sent on the publisher. I wired in the following events and remove the messages as Acks come in i.e.: this.model.BasicAcks -= this.MessageAcknowledged; this.model.BasicNacks -= this.MessageNotAcknowledged; this.model.BasicReturn -= this.MessageReturned; this.model.FlowControl -= this.FlowControlChanged; this.model.CallbackException -= ReportCallbackException; Fairly straight forward I thought. On the consumer side I did from the QOS setting for consuming messages. I do this in a tight loop like so: consumerModel = this.connection.CreateModel(); consumerModel.BasicQos(0, 10000, false); var consumer = new QueueingBasicConsumer(consumerModel); var consumerTag = consumerModel.BasicConsume( this.queueName,false, consumer); while (true) { BasicDeliverEventArgs item = null; try { if (!consumer.Queue.Dequeue(3000, out item)) { if (null == item) continue; } // do stuff consumerModel.BasicAck(item.DeliveryTag, false); } } My first finding was that performance was very slow. with 250 byte messages, I'm getting about 500 to 600 msg/sec delivered. Regardless though, my testing was around recover-ability. What I'm doing is sending groups of messages...about 50,000 at time. Then while they are sending, I take down both instances of my Rabbit MQ cluster to simulate a failure like so using Powershell: &.\rabbitmqctl.bat -n cluster1 stop_app &.\rabbitmqctl.bat -n cluster2 stop_app My results are always the same. There appear to be several thousand messages that I never received Acks for still in my internal queue on the Publisher side. There are also pending messages to be delivered that written to disk...that I don't expect my consumer to get until one of the cluster instances start back up. Hence, I start up the main cluster instance followed by the second. First observation is that the messages pending in the Rabbit MQ queue do indeed get delivered to the consumer. great. I then resubmit all the messages in my internal queue on the publisher side. The result is always the same. I'm always 3 or 4 messages short! I then retested without a cluster and without shutting down. After my test run..and after the consumer successfully gets all the messages I always find the same thing. sometimes I have thousands of unacknowledged messages left in my publisher queue. I'd come back 5 minutes later....still there. In short, 2 serious issues I'm seeing. First one is that Rabbit MQ is losing a few messages if both servers in the cluster are shut down. Second one, Acks/Nacks seem to just get lost by Rabbit MQ. Third one...only happens now again...The producer actually receives Acks for delivery tags/messages that don't exist in the its internal queue. Fourth one....when both servers go down, sometimes, but not always, the consumer will not throw an exception when it tries to read the message in the while loop. i.e : if (!consumer.Queue.Dequeue(3000, out item)). The item comes back null, but If I look in the debugger, the consumer's and connection's isopen property is true...and the CloseReason is null. Does anyone have any ideas or have experienced this? How I'm sending the message is pretty straight forward: messageProperties.MessageId = System.Guid.NewGuid().ToString() lock (this.activeMessagesLock) { var deliveryTag = 0UL; deliveryTag = this.model.NextPublishSeqNo; this.model.BasicPublish( this.exchangeName, message.Header.Topic, this.properties.Durable, immediate, messageProperties, body); this.activeMessages[deliveryTag] = message; } I'm using the message ID to add to a concurrentdictionary collection on the consumer side so I can detect duplicates. The message is added to this duplicate detection dictionary before the Ack is sent back to Rabbit MQ Any help would be appreciated. by the way, if I use the TxCommit and TxRollback....I don't have any issues on resending by resending everything in the producer's internal queue. Message loss only seems to happen with PublishConfirms From cwstorm at gmail.com Wed Feb 26 21:29:23 2014 From: cwstorm at gmail.com (cw storm) Date: Wed, 26 Feb 2014 16:29:23 -0500 Subject: [rabbitmq-discuss] waitForConfirmsOrDie vs waitForConfirmsOrDie(long timeout) Message-ID: Any preference over the two? Right now, I'm using waitForConfirmsOrDie(). Question is when will it die. I don't want for it too wait infinitely. -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Thu Feb 27 00:29:49 2014 From: cwstorm at gmail.com (cw storm) Date: Wed, 26 Feb 2014 19:29:49 -0500 Subject: [rabbitmq-discuss] waitForConfirmsOrDie vs waitForConfirmsOrDie(long timeout) In-Reply-To: References: Message-ID: So, is it safe to use waitForConfirmsOrDie() vs the one with an elapse time? On Wed, Feb 26, 2014 at 4:29 PM, cw storm wrote: > Any preference over the two? Right now, I'm using waitForConfirmsOrDie(). > Question is when will it die. I don't want for it too wait infinitely. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Thu Feb 27 02:36:02 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 27 Feb 2014 06:36:02 +0400 Subject: [rabbitmq-discuss] waitForConfirmsOrDie vs waitForConfirmsOrDie(long timeout) In-Reply-To: References: Message-ID: <0344AE0F-4D94-4EB2-8E04-6E86619EF281@rabbitmq.com> On 27 Feb 2014, at 01:29, cw storm wrote: > Any preference over the two? Right now, I'm using waitForConfirmsOrDie(). Question is when will it die. I don't want for it too wait infinitely. Use the timeout version. MK Software Engineer, Pivotal/RabbitMQ From jzhihui521 at gmail.com Thu Feb 27 02:42:31 2014 From: jzhihui521 at gmail.com (Zhihui Jiao) Date: Thu, 27 Feb 2014 10:42:31 +0800 Subject: [rabbitmq-discuss] waitForConfirmsOrDie vs waitForConfirmsOrDie(long timeout) In-Reply-To: References: Message-ID: <11BFD567-1668-4149-AD12-6A2E16C98ACC@gmail.com> From the source code (https://github.com/rabbitmq/rabbitmq-java-client/blob/master/src/com/rabbitmq/client/impl/ChannelN.java#L206), you can see that, waitForConfirmsOrDie() calls waitForConfirmsOrDie(0L). ? 2014?2?27????8:29?cw storm ??? > So, is it safe to use waitForConfirmsOrDie() vs the one with an elapse time? > > > On Wed, Feb 26, 2014 at 4:29 PM, cw storm wrote: > Any preference over the two? Right now, I'm using waitForConfirmsOrDie(). Question is when will it die. I don't want for it too wait infinitely. > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss Best Regards Zhihui -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Thu Feb 27 02:57:50 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Thu, 27 Feb 2014 06:57:50 +0400 Subject: [rabbitmq-discuss] .NET API - Using PublishConfirms to get Reliability In-Reply-To: References: Message-ID: 2014-02-26 9:08 GMT+04:00 Martywaz : > I'm using the message ID to add to a concurrentdictionary collection on the > consumer side so I can detect duplicates. The message is added to this > duplicate detection dictionary before the Ack is sent back to Rabbit MQ > > Any help would be appreciated. > What's the point of posting the same question 3 times in 2 days? You were asked to clarify what your *expectations* are, especially when you shut down the entire cluster. It never happened. For the couple of issues that look genuine client library problems that can be improved, please provide a small standalone code example that reproduces it. Here's the thread: http://markmail.org/thread/tajb4lfmsrpujpb5 -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Thu Feb 27 03:05:58 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 27 Feb 2014 07:05:58 +0400 Subject: [rabbitmq-discuss] .NET API - Using PublishConfirms to get Reliability In-Reply-To: References: Message-ID: <873A46FF-033D-47D1-BE70-35C130C70673@rabbitmq.com> On 27 Feb 2014, at 06:57, Michael Klishin wrote: > Here's the thread: http://markmail.org/thread/tajb4lfmsrpujpb5 Consider using EasyNetQ, it has publisher confirms support and makes some of the choices for you: https://github.com/mikehadlow/EasyNetQ/wiki/Introduction https://github.com/mikehadlow/EasyNetQ/wiki/Publisher-Confirms EasyNetQ is a mature project that has been around for a few years. MK Software Engineer, Pivotal/RabbitMQ From cwstorm at gmail.com Thu Feb 27 03:13:10 2014 From: cwstorm at gmail.com (cw storm) Date: Wed, 26 Feb 2014 22:13:10 -0500 Subject: [rabbitmq-discuss] waitForConfirmsOrDie vs waitForConfirmsOrDie(long timeout) In-Reply-To: <0344AE0F-4D94-4EB2-8E04-6E86619EF281@rabbitmq.com> References: <0344AE0F-4D94-4EB2-8E04-6E86619EF281@rabbitmq.com> Message-ID: Thanks MK. I've set the timeout for 10secs assuming the timeout represents seconds. On Wed, Feb 26, 2014 at 9:36 PM, Michael Klishin wrote: > > On 27 Feb 2014, at 01:29, cw storm wrote: > > > Any preference over the two? Right now, I'm using > waitForConfirmsOrDie(). Question is when will it die. I don't want for it > too wait infinitely. > > Use the timeout version. > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Thu Feb 27 03:17:20 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 27 Feb 2014 07:17:20 +0400 Subject: [rabbitmq-discuss] waitForConfirmsOrDie vs waitForConfirmsOrDie(long timeout) In-Reply-To: References: <0344AE0F-4D94-4EB2-8E04-6E86619EF281@rabbitmq.com> Message-ID: On 27 Feb 2014, at 07:13, cw storm wrote: > Thanks MK. I've set the timeout for 10secs assuming the timeout represents seconds. It?s in milliseconds. MK Software Engineer, Pivotal/RabbitMQ From cwstorm at gmail.com Thu Feb 27 03:46:25 2014 From: cwstorm at gmail.com (cw storm) Date: Wed, 26 Feb 2014 22:46:25 -0500 Subject: [rabbitmq-discuss] waitForConfirmsOrDie vs waitForConfirmsOrDie(long timeout) In-Reply-To: References: <0344AE0F-4D94-4EB2-8E04-6E86619EF281@rabbitmq.com> Message-ID: Whew. Quickly change it to 10000 millisecs. On Wed, Feb 26, 2014 at 10:17 PM, Michael Klishin wrote: > > On 27 Feb 2014, at 07:13, cw storm wrote: > > > Thanks MK. I've set the timeout for 10secs assuming the timeout > represents seconds. > > It's in milliseconds. > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From luke at lukepalmer.net Wed Feb 26 19:20:33 2014 From: luke at lukepalmer.net (Luke Palmer) Date: Wed, 26 Feb 2014 14:20:33 -0500 Subject: [rabbitmq-discuss] Contributing? In-Reply-To: <9699BBFF-7F4D-4D98-9A2B-3C0BA8EEE579@rabbitmq.com> References: <651c3a53-6970-4fc7-b599-e382edf668f7@googlegroups.com> <530E2E3F.1030404@rabbitmq.com> <9699BBFF-7F4D-4D98-9A2B-3C0BA8EEE579@rabbitmq.com> Message-ID: Thanks for the responses. Yes, I agree I could provide my own exception handler to do this. What I'd end up with, though, is a near copy-paste of DefaultExceptionHandler. I'd imagine that many people would want something similar, no? On Wed, Feb 26, 2014 at 1:13 PM, Michael Klishin wrote: > > On 26 Feb 2014, at 22:11, Matthias Radestock > wrote: > > > There is exactly one place in the entire Java client where stdout/err is > used: DefaultExceptionHandler. And the whole point there is that you can > replace its use with your own implementation and hence no changes to the > Java client code base are necessary. > > Actually, you currently do that. There is a branch (bug26008) which makes > it possible to set your own exception handler. > > MK > > Software Engineer, Pivotal/RabbitMQ > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From fmahiant at gmail.com Thu Feb 27 08:23:24 2014 From: fmahiant at gmail.com (Frederic Mahiant) Date: Thu, 27 Feb 2014 00:23:24 -0800 (PST) Subject: [rabbitmq-discuss] RPC over Shovel or Federation In-Reply-To: <54cb0fdc-5c43-4bc4-bc88-55bd48a8840e@googlegroups.com> References: <54cb0fdc-5c43-4bc4-bc88-55bd48a8840e@googlegroups.com> Message-ID: <16be274f-6e4c-4a30-80f9-19f36d295a25@googlegroups.com> Answer here: http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2014-February/033688.html -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Thu Feb 27 10:58:02 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Thu, 27 Feb 2014 14:58:02 +0400 Subject: [rabbitmq-discuss] Contributing? In-Reply-To: References: <651c3a53-6970-4fc7-b599-e382edf668f7@googlegroups.com> <530E2E3F.1030404@rabbitmq.com> <9699BBFF-7F4D-4D98-9A2B-3C0BA8EEE579@rabbitmq.com> Message-ID: 2014-02-26 23:20 GMT+04:00 Luke Palmer : > Yes, I agree I could provide my own exception handler to do this. What I'd > end up with, though, is a near copy-paste of DefaultExceptionHandler. I'd > imagine that many people would want something similar, no? Yes. Unfortunately, not everybody agrees on what libraries should be used for logging. As flexible as slf4j is, I'd recommend waiting for RabbitMQ Java client 3.3 and then releasing a tiny library that provides an ExceptionHandler that uses slf4j. -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Thu Feb 27 11:42:07 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 27 Feb 2014 11:42:07 +0000 Subject: [rabbitmq-discuss] Federation log In-Reply-To: References: Message-ID: <530F248F.3060206@rabbitmq.com> On 26/02/14 09:22, Joey Jiao wrote: > Hi Simon, > I think Federation doesn't obey log_levels setting. You are right. The 'connection' category is used for inbound connections only. > As even I setting log_levels to warning, Federation still log info level > to log file. > Can you prompt me how to fix by myself first as I created very big log size? It can't be configured at the moment. I'll file a bug for more configurability here. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From matthias at rabbitmq.com Thu Feb 27 11:49:15 2014 From: matthias at rabbitmq.com (Matthias Radestock) Date: Thu, 27 Feb 2014 11:49:15 +0000 Subject: [rabbitmq-discuss] RabbitMQ publishing is taking time In-Reply-To: References: <52E8FB60.4060303@rabbitmq.com> Message-ID: <530F263B.4000808@rabbitmq.com> On 25/02/14 06:27, Piyush Nagar wrote: > I used Firehose and below are my observations: > > As soon as message is published using BasicPublish method, it reaches > to queue with routing key publish.exchangename immediately. But it > takes time while reaching deliver.queuename queue. I am correlating > all messages with correlationID in header which is a GUID and it is > same. > > So that means, messages are reaching to rabbitMQ but are taking time > to deliver (which should not be there and messages should come to > this queue also immediately). The firehose taps into the path *into* and *out of* the queue, so it cannot possibly provide you with data on when messages actually land in the queue. Assuming that what you are looking at is the time difference between the "in" and "out" then any time delay there is most likely due to consumers not being able to keep up. > Also, I want to mention that, using logging in my publisher, I found > out that, let 20 messages are published. But using management > console, I can see only 6-7 messages, all are in unacked state (we > send ack only after consumption by consumer, which takes some time). The remaining messages either: - are stuck on their way to the broker due to flow control, or - did not get routed to any queue because their routing key did not match anything, or - where consumed and acknowledged > Please suggest me the path to take from here. Try to come up with a short standalone program that demonstrates the behaviour you are seeing and post it to this list. Matthias. From mklishin at gopivotal.com Thu Feb 27 11:52:15 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 27 Feb 2014 15:52:15 +0400 Subject: [rabbitmq-discuss] Broker shutdown_error In-Reply-To: References: Message-ID: <9A0243B8-DE0B-41B3-96EB-486A4716699D@rabbitmq.com> On 26 Feb 2014, at 16:40, Lothe Shashank wrote: > While I continuously publishing some data through this broker I gave rabbitmqctl stop_app command. This command was not successfully executed and the execution of this command hanged. I checked the syslog for the broker. It showed following error. > > =CRASH REPORT==== 25-Feb-2014::14:01:30 === > crasher: > initial call: rabbit_reader:init/2 > pid: <0.773.0> > registered_name: [] > exception exit: channel_termination_timeout > in function rabbit_reader:wait_for_channel_termination/2 > in call from rabbit_reader:handle_exception/3 > in call from rabbit_reader:terminate/2 Unfortunately, I cannot reproduce this (with flood publishing). Is there anything in SASL log? Can you share some publisher code that reproduces the problem? Also, why did you need to use `rabbitmqctl stop_app` over, say, system service manager like upstart or init.d? MK Software Engineer, Pivotal/RabbitMQ From simon at rabbitmq.com Thu Feb 27 12:03:34 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 27 Feb 2014 12:03:34 +0000 Subject: [rabbitmq-discuss] Unexaplainable behaviour with shovel plugin. In-Reply-To: References: Message-ID: <530F2996.1090605@rabbitmq.com> On 26/02/14 08:57, Claire Fautsch wrote: > Hello, Hi! > This leads to the fact, that we have on the destination servers a total > of two hanful of messages that are not yet confirmed, however on the > source servers we have millions of messages that are waiting for > confirmation (acknowledgement) > > We would expect with some threshold that > delivery rate on source = publish rate on destination (which is the case) > confirm rate on destination = acknowledge rate on source (which shows > considerable difference) > > Does anyone have an idea or suggestion what could be the reason for > this? Is it a bad idea to have load balancer as destination in the > shovel, or should that work fine? Network issue? I doubt the load balancer is the problem. I think I have a reasonable idea where the problem lies. The issue is that the shovel does not enforce any form of flow control other than (optionally) using prefetch limiting, which you are not using. So your source servers are delivering messages into the shovel as fast as they can, and your destination servers are accepting messages as fast as *they* can, but they are ending up being a bit slower. Nothing is creating any back pressure on the source servers, and so messages are queuing up inside the shovel. Since you are using on_confirm ack mode, these show as unacknowledged messages on the source. > Here some more details on our shovel setup: > ack_mode=on_confirm > prefetch_count=0 (default) > reconnect_delay=5 I suspect that if you set prefetch_count to some high-but-not-insane number (exactly how high depends on your message size + rate but I might start the bidding at 1,000) this might solve your problem. Of course, if your destination servers are actually slower than your source ones, then you might need to do something about that. But turning on prefetch limiting would make the system better-behaved and make it clearer where your issues are. There might be another issue though - on all released versions of RabbitMQ turning on prefetch limiting reduces performance somewhat. This will get fixed in the next release. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From cfautsch at goodgamestudios.com Thu Feb 27 12:11:13 2014 From: cfautsch at goodgamestudios.com (Claire Fautsch) Date: Thu, 27 Feb 2014 13:11:13 +0100 Subject: [rabbitmq-discuss] Unexaplainable behaviour with shovel plugin. In-Reply-To: <530F2996.1090605@rabbitmq.com> References: <530F2996.1090605@rabbitmq.com> Message-ID: Hi Simon thanks for your feedback. This is also what we finally thought. I actually made a small mistake in my comment above, delivery rate on source != publish rate on destination, and confirm and ack rate are equal (so the other way round). So we are currently thinking of setting the prefetch_count. Probably this will not really solve the situation, as we will see then the messages waiting as "Ready" instead of as "Unacknowledged", but on the other hand, maybe it avoids the shovel connections to the destination brokers to get in a "flow" or even "blocked" state, where the publishs are limited. (any opinion on this?) Thanks, Claire 2014-02-27 13:03 GMT+01:00 Simon MacMullen : > On 26/02/14 08:57, Claire Fautsch wrote: > >> Hello, >> > > Hi! > > This leads to the fact, that we have on the destination servers a total >> of two hanful of messages that are not yet confirmed, however on the >> source servers we have millions of messages that are waiting for >> confirmation (acknowledgement) >> >> We would expect with some threshold that >> delivery rate on source = publish rate on destination (which is the case) >> confirm rate on destination = acknowledge rate on source (which shows >> considerable difference) >> >> Does anyone have an idea or suggestion what could be the reason for >> this? Is it a bad idea to have load balancer as destination in the >> shovel, or should that work fine? Network issue? >> > > I doubt the load balancer is the problem. I think I have a reasonable idea > where the problem lies. > > The issue is that the shovel does not enforce any form of flow control > other than (optionally) using prefetch limiting, which you are not using. > > So your source servers are delivering messages into the shovel as fast as > they can, and your destination servers are accepting messages as fast as > *they* can, but they are ending up being a bit slower. Nothing is creating > any back pressure on the source servers, and so messages are queuing up > inside the shovel. Since you are using on_confirm ack mode, these show as > unacknowledged messages on the source. > > Here some more details on our shovel setup: >> ack_mode=on_confirm >> prefetch_count=0 (default) >> reconnect_delay=5 >> > > I suspect that if you set prefetch_count to some high-but-not-insane > number (exactly how high depends on your message size + rate but I might > start the bidding at 1,000) this might solve your problem. > > Of course, if your destination servers are actually slower than your > source ones, then you might need to do something about that. But turning on > prefetch limiting would make the system better-behaved and make it clearer > where your issues are. > > There might be another issue though - on all released versions of RabbitMQ > turning on prefetch limiting reduces performance somewhat. This will get > fixed in the next release. > > Cheers, Simon > > -- > Simon MacMullen > RabbitMQ, Pivotal > -- *Claire Fautsch* Server Developer cfautsch at goodgamestudios.com Goodgame Studios Theodorstr. 42-90, House 9 22761 Hamburg, Germany Phone: +49 (0)40 219 880 -0 *www.goodgamestudios.com * Goodgame Studios is a branch of Altigi GmbH Altigi GmbH, District court Hamburg, HRB 99869 Board of directors: Dr. Kai Wawrzinek, Dr. Christian Wawrzinek, Fabian Ritter -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Thu Feb 27 12:31:02 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 27 Feb 2014 12:31:02 +0000 Subject: [rabbitmq-discuss] Unexaplainable behaviour with shovel plugin. In-Reply-To: References: <530F2996.1090605@rabbitmq.com> Message-ID: <530F3006.9050501@rabbitmq.com> On 27/02/14 12:11, Claire Fautsch wrote: > Probably this will not really solve the situation, as we will see then > the messages waiting as "Ready" instead of as "Unacknowledged" Quite possibly. But it will keep memory use in your shovel much more controlled, which has to be a good thing. > but on > the other hand, maybe it avoids the shovel connections to the > destination brokers to get in a "flow" or even "blocked" state, where > the publishs are limited. (any opinion on this?) Well, if the publishing connection is in "flow" state then that just means that it would like to publish faster, but something (the downstream queue probably) can't keep up. Ultimately you probably need more capacity in your destination brokers, if the source brokers are backing up. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From mcintoshj at gmail.com Thu Feb 27 12:50:33 2014 From: mcintoshj at gmail.com (Jason McIntosh) Date: Thu, 27 Feb 2014 06:50:33 -0600 Subject: [rabbitmq-discuss] Unexaplainable behaviour with shovel plugin. In-Reply-To: <530F3006.9050501@rabbitmq.com> References: <530F2996.1090605@rabbitmq.com> <530F3006.9050501@rabbitmq.com> Message-ID: We saw similar behavior mostly though related to latency issues between remote sites which actually caused some crashes due to memory and load (we had almost 3 million messages backlogged and shovel went "WTF" when we started it up). We ended up setting a prefetch of 1500 messages, and these problems went away. We also ended up using x-consistent-hash to multiplex the shoveling to a remote system, which also helped. We didn't have a capacity issue so much as a latency issue. SO I HIGHLY recommend setting a prefetch that's not unlimited if you're doing WAN replication, Jason On Thu, Feb 27, 2014 at 6:31 AM, Simon MacMullen wrote: > On 27/02/14 12:11, Claire Fautsch wrote: > >> Probably this will not really solve the situation, as we will see then >> the messages waiting as "Ready" instead of as "Unacknowledged" >> > > Quite possibly. But it will keep memory use in your shovel much more > controlled, which has to be a good thing. > > > but on >> the other hand, maybe it avoids the shovel connections to the >> destination brokers to get in a "flow" or even "blocked" state, where >> the publishs are limited. (any opinion on this?) >> > > Well, if the publishing connection is in "flow" state then that just means > that it would like to publish faster, but something (the downstream queue > probably) can't keep up. > > Ultimately you probably need more capacity in your destination brokers, if > the source brokers are backing up. > > > Cheers, Simon > > -- > Simon MacMullen > RabbitMQ, Pivotal > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -- Jason McIntosh https://github.com/jasonmcintosh/ 573-424-7612 -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Thu Feb 27 13:21:48 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 27 Feb 2014 13:21:48 +0000 Subject: [rabbitmq-discuss] Unexaplainable behaviour with shovel plugin. In-Reply-To: References: <530F2996.1090605@rabbitmq.com> <530F3006.9050501@rabbitmq.com> Message-ID: <530F3BEC.2080206@rabbitmq.com> On 27/02/14 12:50, Jason McIntosh wrote: > SO I HIGHLY recommend setting a prefetch that's not unlimited if > you're doing WAN replication, So do I. Maybe we should change the default. Hmm. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From videlalvaro at gmail.com Thu Feb 27 13:34:10 2014 From: videlalvaro at gmail.com (Alvaro Videla) Date: Thu, 27 Feb 2014 14:34:10 +0100 Subject: [rabbitmq-discuss] RabbitMQ Conference? In-Reply-To: References: Message-ID: Hi Eric, I don't know of any conferences specifically about MQs. I speak at a few conferences during the year about RabbitMQ, but not sure if any of them are close to where you are based. There has been some confs about IoT, where you can hear about MQTTs use cases, a protocol supported by RabbitMQ: http://www.rabbitmq.com/mqtt.html Another interesting place could be the Erlang Factory conferences, where for example, WhatsApp presented their use case some years ago. (Next month is the on in San Francisco BTW). The on SpringOne there are a few users presenting their use of MQs. Last year event had ADP mentioning their use of RabbitMQ, and ETRADE presenting how they built their architecture around RabbitMQ. Does this help? Regards, Alvaro On Mon, Feb 24, 2014 at 6:19 PM, Eric Berg wrote: > Has there ever been or will there ever bee a RabbitMQ conference? If not, > can anyone recommend a conference that focuses on enterprise messaging? It > would be so valuable to see interesting problems that queuing/messaging has > solved and any architectures around that. Thanks! > > - Eric Berg > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > From Rohit.Patle at techmahindra.com Thu Feb 27 13:52:55 2014 From: Rohit.Patle at techmahindra.com (Rohit Patle) Date: Thu, 27 Feb 2014 13:52:55 +0000 Subject: [rabbitmq-discuss] [rabbitmq-c] minimal network bandwidth requirement to API execute Message-ID: <27E054594442884E9A46DBCF9AE740816510D9@BSDMSATMBX001.mahindrasatyam.ad> Hi Jerry, Thank you for your reply. The network I am testing is with very high latency (around 80% packet loss). In this condition we observed that API's like amqp_login, amqp_channel_open, and amqp_queue_create is hanging indefinitely. We have also observed that there is no amqp_socket_close API in rabbitmq-c 0.4.1. How can I close the socket which was opened previously using amqp_socket_open API? Whether amqp_destroy_connection closes the socket opened earlier? Please suggest. Regards, Rohit ________________________________ DISCLAIMER: This email (including any attachments) is intended for the sole use of the intended recipient/s and may contain material that is CONFIDENTIAL AND PRIVATE COMPANY INFORMATION. Any review or reliance by others or copying or distribution or forwarding of any or all of the contents in this message is STRICTLY PROHIBITED. If you are not the intended recipient, please contact the sender by email and delete all copies; your cooperation in this regard is appreciated. -------------- next part -------------- An HTML attachment was scrubbed... URL: From cfautsch at goodgamestudios.com Thu Feb 27 15:25:57 2014 From: cfautsch at goodgamestudios.com (Claire Fautsch) Date: Thu, 27 Feb 2014 16:25:57 +0100 Subject: [rabbitmq-discuss] Unexaplainable behaviour with shovel plugin. In-Reply-To: <530F3BEC.2080206@rabbitmq.com> References: <530F2996.1090605@rabbitmq.com> <530F3006.9050501@rabbitmq.com> <530F3BEC.2080206@rabbitmq.com> Message-ID: Great, Thanks for your valuable comments. We will for sure try this out, and I will provide some feedback on the outcome. Cheers, Claire 2014-02-27 14:21 GMT+01:00 Simon MacMullen : > On 27/02/14 12:50, Jason McIntosh wrote: > >> SO I HIGHLY recommend setting a prefetch that's not unlimited if >> you're doing WAN replication, >> > > So do I. Maybe we should change the default. Hmm. > > Cheers, Simon > > -- > Simon MacMullen > RabbitMQ, Pivotal > -- *Claire Fautsch* Server Developer cfautsch at goodgamestudios.com Goodgame Studios Theodorstr. 42-90, House 9 22761 Hamburg, Germany Phone: +49 (0)40 219 880 -0 *www.goodgamestudios.com * Goodgame Studios is a branch of Altigi GmbH Altigi GmbH, District court Hamburg, HRB 99869 Board of directors: Dr. Kai Wawrzinek, Dr. Christian Wawrzinek, Fabian Ritter -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Thu Feb 27 15:32:38 2014 From: cwstorm at gmail.com (cw storm) Date: Thu, 27 Feb 2014 10:32:38 -0500 Subject: [rabbitmq-discuss] Trying to reduce overhead with multiple connections being created Message-ID: In our setup, we have two java client services, producer and consumer. Lets just say we will have 10 unique queues. In the producer, I'm creating a connection/channel, performing the basicPublish and closing the connection/channel. In the consumer, I'm creating connection/channel and basicConsume on the channel. Besides the already 10 connections/channels (queues) already being created by chef, there will be 10 more new connections/channels because we will have 10 consumer subscriptions for each of the queue per app server. Say we have two app server, then our total connections/channels now equals 30 connections/channels. The producer service will be executed everytime it's being called within our client program. Basically, create connection/channel and closes it after successful publish to rabbit broker. I'm trying to understand if I can reduce the overhead a bit by re-using an already existing connection instead of equating each connection with a channel. Just not understanding how that can be done. Right now, things work but of course, I'm a believer in making it better and reducing overhead and gaining performance if it helps reducing too many open connections. -Phil -------------- next part -------------- An HTML attachment was scrubbed... URL: From cwstorm at gmail.com Thu Feb 27 16:01:51 2014 From: cwstorm at gmail.com (cw storm) Date: Thu, 27 Feb 2014 11:01:51 -0500 Subject: [rabbitmq-discuss] Thinking of using isRedeliver() to avoid duplication of consumption by the app Message-ID: I see there's a isRedeliver method in the envelope. I'm thinking of relying on it to help our program from consuming the message twice in the event that our program doesn't provide rabbit to ack it. So, isRedeliver reliable? -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.laing at nytimes.com Thu Feb 27 16:11:13 2014 From: michael.laing at nytimes.com (Laing, Michael) Date: Thu, 27 Feb 2014 11:11:13 -0500 Subject: [rabbitmq-discuss] Unexaplainable behaviour with shovel plugin. In-Reply-To: References: <530F2996.1090605@rabbitmq.com> <530F3006.9050501@rabbitmq.com> <530F3BEC.2080206@rabbitmq.com> Message-ID: The default used to be 1000. I was surprised that it changed. ml On Thu, Feb 27, 2014 at 10:25 AM, Claire Fautsch < cfautsch at goodgamestudios.com> wrote: > Great, Thanks for your valuable comments. > > We will for sure try this out, and I will provide some feedback on the > outcome. > > Cheers, > Claire > > > 2014-02-27 14:21 GMT+01:00 Simon MacMullen : > > On 27/02/14 12:50, Jason McIntosh wrote: >> >>> SO I HIGHLY recommend setting a prefetch that's not unlimited if >>> you're doing WAN replication, >>> >> >> So do I. Maybe we should change the default. Hmm. >> >> Cheers, Simon >> >> -- >> Simon MacMullen >> RabbitMQ, Pivotal >> > > > > -- > > > *Claire Fautsch * > Server Developer > cfautsch at goodgamestudios.com > > Goodgame Studios > Theodorstr. 42-90, House 9 > 22761 Hamburg, Germany > Phone: +49 (0)40 219 880 -0 > > *www.goodgamestudios.com * > > > Goodgame Studios is a branch of Altigi GmbH > Altigi GmbH, District court Hamburg, HRB 99869 > Board of directors: Dr. Kai Wawrzinek, Dr. Christian Wawrzinek, Fabian > Ritter > > > > > > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Thu Feb 27 16:37:45 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 27 Feb 2014 16:37:45 +0000 Subject: [rabbitmq-discuss] Thinking of using isRedeliver() to avoid duplication of consumption by the app In-Reply-To: References: Message-ID: <530F69D9.3020204@rabbitmq.com> On 27/02/14 16:01, cw storm wrote: > So, isRedeliver reliable? If redelivered=false, we guarantee that you have not seen the message before. If redelivered=true, you *might* have seen the message before. It is not a guarantee that you have. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Thu Feb 27 16:46:05 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 27 Feb 2014 16:46:05 +0000 Subject: [rabbitmq-discuss] Thinking of using isRedeliver() to avoid duplication of consumption by the app In-Reply-To: References: <530F69D9.3020204@rabbitmq.com> Message-ID: <530F6BCD.5080108@rabbitmq.com> On 27/02/14 16:42, cw storm wrote: > Thanks Simon. Guess it's a coin toss. The idea is that if you need to check for duplicates on the client side, you can skip the check if the flag is not set. I wouldn't describe it as a coin toss. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Thu Feb 27 16:50:37 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 27 Feb 2014 16:50:37 +0000 Subject: [rabbitmq-discuss] Unexaplainable behaviour with shovel plugin. In-Reply-To: References: <530F2996.1090605@rabbitmq.com> <530F3006.9050501@rabbitmq.com> <530F3BEC.2080206@rabbitmq.com> Message-ID: <530F6CDD.4080006@rabbitmq.com> On 27/02/14 16:11, Laing, Michael wrote: > The default used to be 1000. I was surprised that it changed. Honestly it didn't, here it is in RabbitMQ 2.0.0: http://hg.rabbitmq.com/rabbitmq-shovel/file/rabbitmq_v2_0_0/ebin/rabbit_shovel.app You might be thinking of Federation, which has always defaulted to 1000. But yes, 0 is not a great default. So I changed it today: http://hg.rabbitmq.com/rabbitmq-shovel/rev/94df30e8286f and it will default to 1000 in 3.3.0. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From michael.laing at nytimes.com Thu Feb 27 17:13:45 2014 From: michael.laing at nytimes.com (Laing, Michael) Date: Thu, 27 Feb 2014 12:13:45 -0500 Subject: [rabbitmq-discuss] Unexaplainable behaviour with shovel plugin. In-Reply-To: <530F6CDD.4080006@rabbitmq.com> References: <530F2996.1090605@rabbitmq.com> <530F3006.9050501@rabbitmq.com> <530F3BEC.2080206@rabbitmq.com> <530F6CDD.4080006@rabbitmq.com> Message-ID: Ah yes - I must have carried that thought over when we switched from federation to shovels :) On Thu, Feb 27, 2014 at 11:50 AM, Simon MacMullen wrote: > On 27/02/14 16:11, Laing, Michael wrote: > >> The default used to be 1000. I was surprised that it changed. >> > > Honestly it didn't, here it is in RabbitMQ 2.0.0: > > http://hg.rabbitmq.com/rabbitmq-shovel/file/rabbitmq_ > v2_0_0/ebin/rabbit_shovel.app > > You might be thinking of Federation, which has always defaulted to 1000. > > But yes, 0 is not a great default. So I changed it today: > > http://hg.rabbitmq.com/rabbitmq-shovel/rev/94df30e8286f > > and it will default to 1000 in 3.3.0. > > > Cheers, Simon > > -- > Simon MacMullen > RabbitMQ, Pivotal > -------------- next part -------------- An HTML attachment was scrubbed... URL: From humg.thongit at gmail.com Thu Feb 27 17:39:17 2014 From: humg.thongit at gmail.com (=?UTF-8?Q?Tr=E1=BA=A7n_=C4=90=E1=BB=A9c_Th=C3=B4ng?=) Date: Thu, 27 Feb 2014 09:39:17 -0800 (PST) Subject: [rabbitmq-discuss] How to custom model "Publish and Subscribe" Message-ID: Hi all. I am using RabbitMQ.Net to do build demo on model Publish and Subscribe. I am want to custom model "Publish and Subscribe" is same image after. Producer create message -> send to an Exchange with routing key -> message into queue with same routing key. In queue Q1 have 3 Consumer received message and 3 consumer will received the same message. I am building application on C#. Pls help me. Thanks! -------------- next part -------------- An HTML attachment was scrubbed... URL: From mcintoshj at gmail.com Thu Feb 27 17:46:43 2014 From: mcintoshj at gmail.com (Jason McIntosh) Date: Thu, 27 Feb 2014 11:46:43 -0600 Subject: [rabbitmq-discuss] How to custom model "Publish and Subscribe" In-Reply-To: References: Message-ID: Use 3 queues and a fanout exchange or direct exchange with the same routing key bound to those queues. A message on a queue will only go to a single consumer. Jason On Thu, Feb 27, 2014 at 11:39 AM, Tr?n ??c Th?ng wrote: > Hi all. > > I am using RabbitMQ.Net to do build demo on model Publish and Subscribe. > > I am want to custom model "Publish and Subscribe" is same image after. > > > > Producer create message -> send to an Exchange with routing key -> message > into queue with same routing key. > > In queue Q1 have 3 Consumer received message and 3 consumer will > received the same message. > > I am building application on C#. > > Pls help me. > > Thanks! > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -- Jason McIntosh https://github.com/jasonmcintosh/ 573-424-7612 -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Thu Feb 27 17:52:27 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 27 Feb 2014 17:52:27 +0000 Subject: [rabbitmq-discuss] How to custom model "Publish and Subscribe" In-Reply-To: References: Message-ID: <530F7B5B.2090604@rabbitmq.com> On 27/02/14 17:46, Jason McIntosh wrote: > Use 3 queues and a fanout exchange or direct exchange with the same > routing key bound to those queues. A message on a queue will only go to > a single consumer. We even have a tutorial on the subject! http://www.rabbitmq.com/tutorials/tutorial-three-dotnet.html Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From jesper.louis.andersen at gmail.com Thu Feb 27 17:54:14 2014 From: jesper.louis.andersen at gmail.com (Jesper Louis Andersen) Date: Thu, 27 Feb 2014 18:54:14 +0100 Subject: [rabbitmq-discuss] How to custom model "Publish and Subscribe" In-Reply-To: References: Message-ID: On Thu, Feb 27, 2014 at 6:46 PM, Jason McIntosh wrote: > Use 3 queues and a fanout exchange or direct exchange with the same > routing key bound to those queues. A message on a queue will only go to a > single consumer. And before you ask: No, don't worry about space. Payload is shared among queues :) -- J. -------------- next part -------------- An HTML attachment was scrubbed... URL: From humg.thongit at gmail.com Thu Feb 27 18:37:28 2014 From: humg.thongit at gmail.com (=?UTF-8?B?VHLhuqduIMSQ4bupYyBUaMO0bmc=?=) Date: Fri, 28 Feb 2014 01:37:28 +0700 Subject: [rabbitmq-discuss] Monitoring application manager RabbitMQ server with .NET In-Reply-To: References: Message-ID: I am can using RabbitMQ .NET client to do building application monitor RabbitMQ server? */ Monitor - Total queue - Total message in a queue - Get content message in queue Thank you. On 26 February 2014 17:19, Mike Hadlow wrote: > If you need any help with the EasyNetQ Management API, drop a message on > the EasyNetQ list. > > Mike > > > On Wed, Feb 26, 2014 at 8:44 AM, Alvaro Videla wrote: > >> Hi, >> >> Maybe this could help you? >> https://github.com/mikehadlow/EasyNetQ#management-api >> >> Regards, >> >> Alvaro >> >> On Wed, Feb 26, 2014 at 9:36 AM, Tr?n ??c Th?ng >> wrote: >> > Hi all. >> > >> > I am use RabbitMQ. >> > >> > I am installed management plugins, it provider WebUI management monitor. >> > >> > I am want to build monitor application management RabbitMQ with .NET. >> > >> > Pls help me. >> > >> > Thanks! >> > >> ------------------------------------------------------------------------------------------------- >> > Tran Duc Thong >> > Software engineering >> > Mobile: 0989 452 004 >> > Email: humg.thongit at gmail.com >> > >> > _______________________________________________ >> > rabbitmq-discuss mailing list >> > rabbitmq-discuss at lists.rabbitmq.com >> > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> > >> _______________________________________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss >> > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -- ------------------------------------------------------------------------------------------------- *Tran Duc Thong* Software engineering Mobile: 0989 452 004 Email: humg.thongit at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Thu Feb 27 18:57:02 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 27 Feb 2014 22:57:02 +0400 Subject: [rabbitmq-discuss] Trying to reduce overhead with multiple connections being created In-Reply-To: References: Message-ID: On 27 Feb 2014, at 19:32, cw storm wrote: > I'm trying to understand if I can reduce the overhead a bit by re-using an already existing connection instead of equating each connection with a channel. Just not understanding how that can be done. Right now, things work but of course, I'm a believer in making it better and reducing overhead and gaining performance if it helps reducing too many open connections. Use long lived connections where possible. MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Thu Feb 27 19:02:32 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 27 Feb 2014 23:02:32 +0400 Subject: [rabbitmq-discuss] Monitoring application manager RabbitMQ server with .NET In-Reply-To: References: Message-ID: <8B6A5B14-0E8D-49E5-971E-A288347A1420@rabbitmq.com> On 27 Feb 2014, at 22:37, Tr?n ??c Th?ng wrote: > I am can using RabbitMQ .NET client to do building application monitor RabbitMQ server? > > */ Monitor > - Total queue > - Total message in a queue > - Get content message in queue > > Thank you. You can do #2 and #3 via AMQP but #3 will change message ordering: * Response to Channel#QueueDeclare will contain (ready) message count * Fetch queue head with Channel#BasicGet and requeue it. Note that this can change order of messages in the queue. In general, #2 and #3 should be done over AMQP, so using RabbitMQ .NET client. Number of queues can only be retrieved over HTTP API, e.g. using EasyNetQ?s client for it. MK Software Engineer, Pivotal/RabbitMQ From phillip.ho at gmail.com Thu Feb 27 19:23:16 2014 From: phillip.ho at gmail.com (phillip.ho at gmail.com) Date: Thu, 27 Feb 2014 14:23:16 -0500 Subject: [rabbitmq-discuss] Trying to reduce overhead with multiple connections being created In-Reply-To: References: Message-ID: @MK- Can you please provide me with an example how that's accomplish? On Thu, Feb 27, 2014 at 1:57 PM, Michael Klishin wrote: > On 27 Feb 2014, at 19:32, cw storm wrote: > > > I'm trying to understand if I can reduce the overhead a bit by re-using > an already existing connection instead of equating each connection with a > channel. Just not understanding how that can be done. Right now, things > work but of course, I'm a believer in making it better and reducing > overhead and gaining performance if it helps reducing too many open > connections. > > Use long lived connections where possible. > > MK > > Software Engineer, Pivotal/RabbitMQ > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -- Regards, Phillip ************************************************ This e-mail, and any attachments thereto, is intended only for use by the addressee(s) named herein and may contain legally privileged and/or confidential information. If you are not the intended recipient of this e-mail (or the person responsible for delivering this documentto the intended recipient), you are hereby notified that any dissemination, distribution, printing or coping of this e-mail, and anyattachment thereto, is strictly prohibited. If you have received this e-mail in error, please respond to the individual sending the message, and permanently delete the original and any copy of any e-mail and printout thereof. ************************************************ -------------- next part -------------- An HTML attachment was scrubbed... URL: From clarsen at euphoriaaudio.com Thu Feb 27 19:47:58 2014 From: clarsen at euphoriaaudio.com (Chris Larsen) Date: Thu, 27 Feb 2014 14:47:58 -0500 Subject: [rabbitmq-discuss] MQ Cluster Replication Traffic Questions Message-ID: <095101cf33f4$d1476e70$73d64b50$@euphoriaaudio.com> Hello folks, we're trying to troubleshoot our MQ clusters that kept partitioning, despite their use of a direct cross-over connection to avoid issues with a switch failing or cycling. We have 6 servers split into 3 clusters. All boxes accept traffic from producers and consumers on eth0 (connected to the switch) and eth1 is connected the other box in the clustered pair. We use a host file override on each box to direct MQ traffic over the crossover and Rabbit binds to all IPs. Both NICs on each box are 1gs. Despite the cross-over we were seeing network partition alerts with version 3.2.2. We saw NIC reset errors (Intel NICs) and just upgraded the drivers to fend off that problem and tried some buffer tuning. But we're still dropping packets on the cross-over interface so I'm worried the partitions may continue. Here are the questions I have: 1) Is it a bad idea to use a cross-over like this? 2) We're seeing ~2.5Mbps in / ~10Mbps out on the public eth0 interface but ~45Mbps in / ~30Mbps out on the cross-over. Is that kind of amplification normal? 3) If it's ok to use the cross-over, what TCP tuning am I missing? Here are some more stats from our setup: Ubuntu 12.04 3.2.0-30-generic ~5000 connections / 6000 queues / 12000 channels per cluster ~1 dropped packet ever few minutes on the cross-over if. No errors or overruns, etc net.ipv4.tcp_wmem = 10240 524288 16777216 net.ipv4.tcp_rmem = 10240 524288 16777216 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 and the "packets collapsed in receive queue due to low socket buffer" keeps incrementing Thanks! -------------- next part -------------- An HTML attachment was scrubbed... URL: From elena.molina at medimsight.com Thu Feb 27 16:25:13 2014 From: elena.molina at medimsight.com (elena.molina at medimsight.com) Date: Thu, 27 Feb 2014 08:25:13 -0800 (PST) Subject: [rabbitmq-discuss] Rabbitmq memory usage Message-ID: <8fd73dd3-ba15-47c0-b58b-650447cf2249@googlegroups.com> Hi all, I am using RabbitMQ version 3.2.2. When I run RabbitMQ, the rabbitmq user has around 32 open connections (beam.smp command). How can I fix it? Cheers, Elena -------------- next part -------------- An HTML attachment was scrubbed... URL: From mordyovits at yahoo.com Thu Feb 27 22:17:11 2014 From: mordyovits at yahoo.com (Mordy Ovits) Date: Thu, 27 Feb 2014 14:17:11 -0800 (PST) Subject: [rabbitmq-discuss] Robust zone-aware topology? Message-ID: <1393539431.9325.YahooMailNeo@web160802.mail.bf1.yahoo.com> I'm new to rabbitmq and would appreciate some feedback on a design. I'm looking to create a robust topology for routing messages in a zone-aware way.? I'd like messages to be sent to a "zone" and be handled by zone-local machines reading from a queue in that zone.? In case all the consumers in a zone are down, consumers in another zone become eligible to consume the messages.? If the consumers in the first zone come back, messages to the zone resume routing to the now-up consumers.? Messages should never go to more than one queue, but a rare lost message isn't the end of the world.? IOW, I'd prefer for the machines local to a zone handle the messages in that zone, but if they can't, then another zone can do it until that zone's consumers recover. The solution I came up with depends on RabbitMQ's alternate-exchange feature.? I create (say) 3 exchanges, each with an a-e of another. E.g.: X: new_york (a-e: miami) X: miami (a-e: new_york) X: london (a-e: new_york) There is one queue per exchange, direct binding, with auto_delete true.? Consumers in a zone all read only from that one queue.? Since the queue is auto_delete, if no consumer is bound to the (by-design-only) queue in that zone's exchange, the exchange sends its messages to its a-e. I've tested this and it works.? I can bring consumers up and down in the zone and the locality of message routing is maintained where possible and returns at recovery. However, I have some questions. 1) Is there a better way to do this?? It seems odd to need a rabbitmq extension, so I'm suspicious I'm missing something basic.? Maybe with federation or shovel?? Keep in mind that a message should only go to one queue. 2) Do I have to worry about a-e routing loops?? The documentation implies it's ok, but doesn't spell it out.? If I have an alternate-exchange path of "a -> b -> c -> a" could it go haywire when all the queues go down?? The (one-hop) testing I did seemed to handle it, but I'd like a clearer understanding of how rabbitmq prevents a-e routing loops. 3) How can I isolate the concerns of producers from the HA topology?? I'd prefer if the producers didn't have to know about the HA nature of the exchange, so that I can change it independent of them (i.e. change the a-e parameter).? However, the "identity" of an exchange in terms of the test for its preexistence in the declare seems to include every parameter, including the a-e setting.? Therefore, producers get failure on their exchange_declare if their zone's exchange details aren't completely identical, but I might have 5 producers managed by three groups.? I might be able to manually manage the creation of exchanges and have the producers use but not declare them, but perhaps there's a cleaner way that I don't know. Thanks, Mordy From matthias at rabbitmq.com Thu Feb 27 22:35:25 2014 From: matthias at rabbitmq.com (Matthias Radestock) Date: Thu, 27 Feb 2014 22:35:25 +0000 Subject: [rabbitmq-discuss] Robust zone-aware topology? In-Reply-To: <1393539431.9325.YahooMailNeo@web160802.mail.bf1.yahoo.com> References: <1393539431.9325.YahooMailNeo@web160802.mail.bf1.yahoo.com> Message-ID: <530FBDAD.7090906@rabbitmq.com> On 27/02/14 22:17, Mordy Ovits wrote: > I'm looking to create a robust topology for routing messages in a > zone-aware way. I'd like messages to be sent to a "zone" and be > handled by zone-local machines reading from a queue in that zone. In > case all the consumers in a zone are down, consumers in another zone > become eligible to consume the messages. If the consumers in the > first zone come back, messages to the zone resume routing to the > now-up consumers. Messages should never go to more than one queue > [...] > The solution I came up with [...] > 1) Is there a better way to do this? Use queue federation - http://www.rabbitmq.com/federated-queues.html. It was designed *exactly* for the use case you describe. Matthias. From mordyovits at yahoo.com Fri Feb 28 00:45:56 2014 From: mordyovits at yahoo.com (Mordy Ovits) Date: Thu, 27 Feb 2014 16:45:56 -0800 (PST) Subject: [rabbitmq-discuss] Robust zone-aware topology? In-Reply-To: <530FBDAD.7090906@rabbitmq.com> References: <1393539431.9325.YahooMailNeo@web160802.mail.bf1.yahoo.com> <530FBDAD.7090906@rabbitmq.com> Message-ID: <1393548356.78437.YahooMailNeo@web160802.mail.bf1.yahoo.com> > Use queue federation - http://www.rabbitmq.com/federated-queues.html. It > was designed *exactly* for the use case you describe. I don't think it matches my workflow pattern.? The federated queues documentation says: "The federated queue will only retrieve messages when it has run out of messages locally, it has consumers that need messages, and the upstream queue has 'spare' messages that are not being consumed." To my mind, that means that if the miami queue has a consumer and the miami queue is empty, the miami queue will "steal" a message from the new_york queue.? But it could do that even if there are consumers in New York consuming from the new_york queue.? (Right?)? IOW, with federated queues the decision for when a message hops queues is when the downstream "needs" one, not when the upstream queue has no consumers. Federated queues seem to be more about load balancing, but my pattern is more about HA.? My messages are tasks that are best done locally, but can be done from another zone albeit with a penalty.? So I only want messages to go to another queue if there's no consumer available locally, not when another zone has nothing to do (which may be fine). If I've misunderstood federated queues, please set me straight. Thanks for your help, Mordy From michael.s.klishin at gmail.com Fri Feb 28 02:41:07 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Fri, 28 Feb 2014 06:41:07 +0400 Subject: [rabbitmq-discuss] Rabbitmq memory usage In-Reply-To: <8fd73dd3-ba15-47c0-b58b-650447cf2249@googlegroups.com> References: <8fd73dd3-ba15-47c0-b58b-650447cf2249@googlegroups.com> Message-ID: 2014-02-27 20:25 GMT+04:00 : > When I run RabbitMQ, the rabbitmq user has around 32 open connections > (beam.smp command). How can I fix it? Connections or file descriptors open? Inspect RabbitMQ log to find out what clients (host:port) connect to it and prevent them from doing so. -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Fri Feb 28 02:42:59 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Fri, 28 Feb 2014 06:42:59 +0400 Subject: [rabbitmq-discuss] Trying to reduce overhead with multiple connections being created In-Reply-To: References: Message-ID: 2014-02-27 23:23 GMT+04:00 : > Can you please provide me with an example how that's accomplish? Instead of opening and closing connections per operation, use a long running connection once on application start, then pass it around. -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From alan.antonuk at gmail.com Fri Feb 28 05:42:03 2014 From: alan.antonuk at gmail.com (Alan Antonuk) Date: Thu, 27 Feb 2014 21:42:03 -0800 Subject: [rabbitmq-discuss] [rabbitmq-c] minimal network bandwidth requirement to API execute In-Reply-To: <27E054594442884E9A46DBCF9AE740816510D9@BSDMSATMBX001.mahindrasatyam.ad> References: <27E054594442884E9A46DBCF9AE740816510D9@BSDMSATMBX001.mahindrasatyam.ad> Message-ID: 80% packet loss? Are you able to run any TCP-based protocols over that with success? Thats an incredibly high packet loss situation. Things like HTTP don't work well at 40% packet-loss, I can't imagine much of anything would work at that level. In rabbitmq-c once you create the socket it is owned by the amqp_connection_state_t. You can close the socket by doing an amqp_connection_close(). -Alan On Thu, Feb 27, 2014 at 5:52 AM, Rohit Patle wrote: > Hi Jerry, > > Thank you for your reply. > > The network I am testing is with very high latency (around 80% packet > loss). In this condition we observed that API's like amqp_login, > amqp_channel_open, and amqp_queue_create is hanging indefinitely. > > We have also observed that there is no amqp_socket_close API in rabbitmq-c > 0.4.1. How can I close the socket which was opened previously using > amqp_socket_open API? Whether amqp_destroy_connection closes the socket > opened earlier? > > Please suggest. > > Regards, > Rohit > > ------------------------------ > > DISCLAIMER: > This email (including any attachments) is intended for the sole use of the > intended recipient/s and may contain material that is CONFIDENTIAL AND > PRIVATE COMPANY INFORMATION. Any review or reliance by others or copying or > distribution or forwarding of any or all of the contents in this message is > STRICTLY PROHIBITED. If you are not the intended recipient, please contact > the sender by email and delete all copies; your cooperation in this regard > is appreciated. > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From pat at munkiisoft.com Fri Feb 28 08:27:39 2014 From: pat at munkiisoft.com (Patrick Long) Date: Fri, 28 Feb 2014 08:27:39 +0000 Subject: [rabbitmq-discuss] Bringing down Nodes in a cluster Message-ID: So I can stop the node by using stop_app or I can stop the RabbitMQ service on that node. Is one better that the other? When Ops want to update a machine that is a Node in a 3 node RabbitMQ cluster what is the recommended approach? Is it to stop the service on one node, run Windows Update etc etc then bring that node back. Once that node is confirmed move to next node always ensuring there is at least one synchronised slave? Thanks -- Patrick Long - Munkiisoft Ltd -------------- next part -------------- An HTML attachment was scrubbed... URL: From matthias at rabbitmq.com Fri Feb 28 08:29:41 2014 From: matthias at rabbitmq.com (Matthias Radestock) Date: Fri, 28 Feb 2014 08:29:41 +0000 Subject: [rabbitmq-discuss] Robust zone-aware topology? In-Reply-To: <1393548356.78437.YahooMailNeo@web160802.mail.bf1.yahoo.com> References: <1393539431.9325.YahooMailNeo@web160802.mail.bf1.yahoo.com> <530FBDAD.7090906@rabbitmq.com> <1393548356.78437.YahooMailNeo@web160802.mail.bf1.yahoo.com> Message-ID: <531048F5.4090308@rabbitmq.com> On 28/02/14 00:45, Mordy Ovits wrote: > I don't think [queue federation] matches my workflow pattern. The > federated queues documentation says: "The federated queue will only > retrieve messages when it has run out of messages locally, it has > consumers that need messages, and the upstream queue has 'spare' > messages that are not being consumed." > > To my mind, that means that if the miami queue has a consumer and the > miami queue is empty, the miami queue will "steal" a message from the > new_york queue. But it could do that even if there are consumers in > New York consuming from the new_york queue. (Right?) IOW, with > federated queues the decision for when a message hops queues is when > the downstream "needs" one, not when the upstream queue has no > consumers. As the sentence you quoted states, the criteria for when messages are pulled down is threefold. In particular note the last part, i.e. "the upstream queue has 'spare' messages that are not being consumed". In other words, messages are only pulled to the downstream if the upstream consumers cannot keep up. > My messages are tasks that are best done locally, but can be done > from another zone albeit with a penalty. Right, so in the event that upstream consumers cannot keep up, messages would be pulled to the downstream and processed by downstream consumers, albeit more slowly. That results in a higher overall throughput than leaving the messages on the upstream. Can't see what's wrong with that. Matthias, From yeradis at gmail.com Thu Feb 27 21:59:31 2014 From: yeradis at gmail.com (Yeradis Barbosa Marrero) Date: Thu, 27 Feb 2014 13:59:31 -0800 (PST) Subject: [rabbitmq-discuss] How to restrict to one connection per same user at a time and same routing key ? Message-ID: Hello everyone. I would like to know if there is a way in RabbitMQ to restrict in the server side to the users to be able to connect with the same credentials and routing key only once at a time. I mean: No shared connections. If the user is connected with X credentials and listening on route y.z and try to connect in another machine with same info, then the server should deny the connection. Is there a way ? If possible at least to restrict users connections to one user connection at a time ? Regards -------------- next part -------------- An HTML attachment was scrubbed... URL: From lucamarturana at gmail.com Fri Feb 28 08:53:16 2014 From: lucamarturana at gmail.com (Luca Marturana) Date: Fri, 28 Feb 2014 09:53:16 +0100 Subject: [rabbitmq-discuss] Federation queues: original routing key of message Message-ID: HI, I'm using RabbitMQ with queue federation. I noticed that on downstream queue, the message arrives with routing_key= and exchange="". I think it's normal, because queue federation must be sure to publish messages exactly on federated queue. But for some application my be useful to have the original routing key and exchange of the message. There is an header "x-received-from" whichs contains some infos, like original queue name and broker. Can be useful to add these infos also? Where can I issue a feature request? Thank you, Luca Marturana -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Fri Feb 28 09:05:13 2014 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Fri, 28 Feb 2014 13:05:13 +0400 Subject: [rabbitmq-discuss] How to restrict to one connection per same user at a time and same routing key ? In-Reply-To: References: Message-ID: 2014-02-28 1:59 GMT+04:00 Yeradis Barbosa Marrero : > I would like to know if there is a way in RabbitMQ to restrict in the > server side to the users to be able to connect with the same credentials > and routing key only once at a time. > > I mean: No shared connections. If the user is connected with X credentials > and listening on route y.z and try to connect in another machine with same > info, then the server should deny the connection. > > Is there a way ? > There is no built-in feature. A custom authentication plugin can be developed (in Erlang) to provide it. -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Fri Feb 28 09:23:24 2014 From: simon at rabbitmq.com (Simon MacMullen) Date: Fri, 28 Feb 2014 09:23:24 +0000 Subject: [rabbitmq-discuss] Federation queues: original routing key of message In-Reply-To: References: Message-ID: <5310558C.2080005@rabbitmq.com> On 28/02/2014 08:53, Luca Marturana wrote: > I'm using RabbitMQ with queue federation. I noticed that on downstream > queue, the message arrives with routing_key= and > exchange="". I think it's normal, because queue federation must be sure > to publish messages exactly on federated queue. But for some application > my be useful to have the original routing key and exchange of the message. Good point. > There is an header "x-received-from" whichs contains some infos, like > original queue name and broker. Can be useful to add these infos also? > > Where can I issue a feature request? Consider it requested :-) Cheers, Simon From mklishin at gopivotal.com Fri Feb 28 09:28:05 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Fri, 28 Feb 2014 13:28:05 +0400 Subject: [rabbitmq-discuss] How to restrict to one connection per same user at a time and same routing key ? In-Reply-To: References: Message-ID: On 28 Feb 2014, at 13:05, Michael Klishin wrote: > There is no built-in feature. A custom authentication plugin can be developed (in Erlang) to provide it. Unfortunately, this may be less realistic than I thought: detecting disconnects will be problematic. MK Software Engineer, Pivotal/RabbitMQ From lucamarturana at gmail.com Fri Feb 28 09:31:53 2014 From: lucamarturana at gmail.com (Luca Marturana) Date: Fri, 28 Feb 2014 10:31:53 +0100 Subject: [rabbitmq-discuss] Federation queues: original routing key of message In-Reply-To: <5310558C.2080005@rabbitmq.com> References: <5310558C.2080005@rabbitmq.com> Message-ID: Great! Thank you so much :) Regards, Luca > Il giorno 28/feb/2014, alle ore 10:23, Simon MacMullen ha scritto: > >> On 28/02/2014 08:53, Luca Marturana wrote: >> I'm using RabbitMQ with queue federation. I noticed that on downstream >> queue, the message arrives with routing_key= and >> exchange="". I think it's normal, because queue federation must be sure >> to publish messages exactly on federated queue. But for some application >> my be useful to have the original routing key and exchange of the message. > > Good point. > >> There is an header "x-received-from" whichs contains some infos, like >> original queue name and broker. Can be useful to add these infos also? >> >> Where can I issue a feature request? > > Consider it requested :-) > > Cheers, Simon > From 0x6e6562 at gmail.com Fri Feb 28 09:45:15 2014 From: 0x6e6562 at gmail.com (Ben Hood) Date: Fri, 28 Feb 2014 09:45:15 +0000 Subject: [rabbitmq-discuss] Unexaplainable behaviour with shovel plugin. In-Reply-To: References: <530F2996.1090605@rabbitmq.com> <530F3006.9050501@rabbitmq.com> <530F3BEC.2080206@rabbitmq.com> <530F6CDD.4080006@rabbitmq.com> Message-ID: On Thu, Feb 27, 2014 at 5:13 PM, Laing, Michael wrote: > Ah yes - I must have carried that thought over when we switched from > federation to shovels :) What was it about federation that brought you to switch from federation to shovels? From RHi at np6.com Fri Feb 28 10:07:16 2014 From: RHi at np6.com (Robert Higgins) Date: Fri, 28 Feb 2014 10:07:16 +0000 Subject: [rabbitmq-discuss] Problem with c# client ModelBase.ConfirmSelect() Message-ID: <5A1884FA08C6B74D8D1B5F047268FF1F2A4170DD@exchange2> Hello, I've encountered a problem with confirmed publishes in the c# client library. Basically, you cannot enable publish confirms via ConfirmSelect() more than one time on the same channel. If you do, you risk losing track of the publish acknowledgements. Why you would want to call ConfirmSelect() more than once is another question, however as there is no error raised and this limitation is not documented, I'd consider it a bug. The channel uses a counter m_nextPubSeqNo to identify published messages and store them as unconfirmed. The server acknowledges the published messages using the same identifier and this permits the channel to confirm delivery. However, ModelBase.ConfirmSelect() sets m_nextPubSeqNo to 1 regardless of whether the channel has already had confirms enabled by a previous call to ConfirmSelect(). On the server side this sequence counter is not reset. The two become desynchronised and acknowledgements arrive that do not correspond to the messages published. Functions like WaitForConfirms() wait forever as messages are never confirmed. After comparing the implementation of the java client, there is definitely a divergence of behaviour between the two. In the java client nextPublishSeqNo is set to 1 only if it was previously 0. In the c# client, no such test is made. ModelBase.cs: 973 public void ConfirmSelect() 974 { 975 m_nextPubSeqNo = 1; 976 _Private_ConfirmSelect(false); 977 } ChannelN.java: 1054 public Confirm.SelectOk confirmSelect() 1055 throws IOException 1056 { 1057 if (nextPublishSeqNo == 0) nextPublishSeqNo = 1; 1058 return (Confirm.SelectOk) 1059 exnWrappingRpc(new Confirm.Select(false)).getMethod(); 1060 1061 } A correction of this behaviour would be trivial, I hope my description has helped! Regards Cordialement, Robert Higgins Ing?nieur R&D rhi at np6.com Tel : +33 (0)5 57 92 41 21 Fax : +33 (0)5 57 92 07 17 www.np6.com Bordeaux 32 av Canteranne? 33600 Pessac? T. 05 57 92 41 21 Paris 131 bd S?bastopol 75002 Paris T. 01 75 43 76 10 London 58 Broadwick Street London W1F 7AL? T. +44 207 434 7383? From mklishin at gopivotal.com Fri Feb 28 10:23:47 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Fri, 28 Feb 2014 14:23:47 +0400 Subject: [rabbitmq-discuss] Problem with c# client ModelBase.ConfirmSelect() In-Reply-To: <5A1884FA08C6B74D8D1B5F047268FF1F2A4170DD@exchange2> References: <5A1884FA08C6B74D8D1B5F047268FF1F2A4170DD@exchange2> Message-ID: On 28 Feb 2014, at 14:07, Robert Higgins wrote: > Why you would want to call ConfirmSelect() more than once is another question, however as there is no error raised and this limitation is not documented, I'd consider it a bug. Yes, it should be idempotent. Thanks for reporting! MK Software Engineer, Pivotal/RabbitMQ From michael.laing at nytimes.com Fri Feb 28 12:45:42 2014 From: michael.laing at nytimes.com (Laing, Michael) Date: Fri, 28 Feb 2014 07:45:42 -0500 Subject: [rabbitmq-discuss] Unexaplainable behaviour with shovel plugin. In-Reply-To: References: <530F2996.1090605@rabbitmq.com> <530F3006.9050501@rabbitmq.com> <530F3BEC.2080206@rabbitmq.com> <530F6CDD.4080006@rabbitmq.com> Message-ID: Our 'wholesale' core topology is like a pancake, with many clusters spread out into regions of the world, currently 3. The pancake has 3 communication layers: 'input' for swapping inputs for replicated processing, 'output' for distributing processing results, and the 'postoffice' for general communication. I experimented a lot with federation a year ago and had a few working iterations but found it difficult to create a reliable, maintainable configuration for our use case - federation tries to do so much for you. So I turned to shovels for more simplicity and control at the expense of more difficult configuration. Some of our core clusters support the 'retail' layer of instances that gateway to clients (candles?). We are introducing federation into one of these communication links because we want the propagation of client bindings from the gateway instance to the core - an excellent feature of federation and an important refinement for us. Initially I had thought that the 'new' federation replaced the 'old' shovel, but this is not true - each tool has its place although their capabilities overlap. With easier configuration in 3.3, the lowly shovel may get its due! ml On Fri, Feb 28, 2014 at 4:45 AM, Ben Hood <0x6e6562 at gmail.com> wrote: > On Thu, Feb 27, 2014 at 5:13 PM, Laing, Michael > wrote: > > Ah yes - I must have carried that thought over when we switched from > > federation to shovels :) > > What was it about federation that brought you to switch from > federation to shovels? > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mordyovits at yahoo.com Fri Feb 28 15:08:01 2014 From: mordyovits at yahoo.com (Mordy Ovits) Date: Fri, 28 Feb 2014 07:08:01 -0800 (PST) Subject: [rabbitmq-discuss] Robust zone-aware topology? In-Reply-To: <531048F5.4090308@rabbitmq.com> References: <1393539431.9325.YahooMailNeo@web160802.mail.bf1.yahoo.com> <530FBDAD.7090906@rabbitmq.com> <1393548356.78437.YahooMailNeo@web160802.mail.bf1.yahoo.com> <531048F5.4090308@rabbitmq.com> Message-ID: <1393600081.59827.YahooMailNeo@web160805.mail.bf1.yahoo.com> > As the sentence you quoted states, the criteria for when messages are > pulled down is threefold. In particular note the last part, i.e. "the > upstream queue has 'spare' messages that are not being consumed". > In other words, messages are only pulled to the downstream if the > upstream consumers cannot keep up. But doesn't that mean that downstream won't help out an upstream when downstream is actively moving messages, even if upstream is not being drained?? IOW, if consumers in Miami are happily taking messages from the miami queue, they won't steal messages from the new_york queue even if the consumers in New York are down and new_york is filling up?? And couldn't a slow day in Miami (no jobs for them) cause the consumers in Miami to start picking off messages from new_york, unnecessarily causing cross-zone work cost?? I don't want consumers in Miami to do New York work just because new_york has a queue depth of 2 while miami is quiet. Federated queues seem like a pull behavior for LB/throughput, but HA is more of a push behavior; when a exchange is in trouble, it pushes its messages elsewhere. > Right, so in the event that upstream consumers cannot keep up, messages > would be pulled to the downstream and processed by downstream consumers, > albeit more slowly. That results in a higher overall throughput than > leaving the messages on the upstream. Can't see what's wrong with that. I'm not looking for increased throughput, at least not at the expense of zone-locality of messages.? I want messages to stay local to a zone unless it simply can't be handled there.? Miami isn't very far from New York, but Singapore is.? I think my alternate-exchange design accomplishes that, but I'm concerned about a-e routing loops (still unexplained). Thanks, Mordy From matthias at rabbitmq.com Fri Feb 28 15:30:58 2014 From: matthias at rabbitmq.com (Matthias Radestock) Date: Fri, 28 Feb 2014 15:30:58 +0000 Subject: [rabbitmq-discuss] Robust zone-aware topology? In-Reply-To: <1393600081.59827.YahooMailNeo@web160805.mail.bf1.yahoo.com> References: <1393539431.9325.YahooMailNeo@web160802.mail.bf1.yahoo.com> <530FBDAD.7090906@rabbitmq.com> <1393548356.78437.YahooMailNeo@web160802.mail.bf1.yahoo.com> <531048F5.4090308@rabbitmq.com> <1393600081.59827.YahooMailNeo@web160805.mail.bf1.yahoo.com> Message-ID: <5310ABB2.4060908@rabbitmq.com> On 28/02/14 15:08, Mordy Ovits wrote: > I don't want consumers in Miami to do New York work just because > new_york has a queue depth of 2 while miami is quiet. You say that but does it really cause so much of a problem that it requires inventing an entirely new and complex way of doing things instead of using the capability that rabbit ships with out of the box? > I'm concerned about a-e routing loops. Don't worry about them. They are eliminated. > I think my alternate-exchange design accomplishes that In your a-e design, messages that are in the auto-delete queue when the last consumer disconnects will be lost. Is that acceptable? Matthias. From dmcintyre at gopivotal.com Fri Feb 28 15:46:05 2014 From: dmcintyre at gopivotal.com (Duncan McIntyre) Date: Fri, 28 Feb 2014 15:46:05 +0000 Subject: [rabbitmq-discuss] Robust zone-aware topology? In-Reply-To: <1393600081.59827.YahooMailNeo@web160805.mail.bf1.yahoo.com> References: <1393539431.9325.YahooMailNeo@web160802.mail.bf1.yahoo.com> <530FBDAD.7090906@rabbitmq.com> <1393548356.78437.YahooMailNeo@web160802.mail.bf1.yahoo.com> <531048F5.4090308@rabbitmq.com> <1393600081.59827.YahooMailNeo@web160805.mail.bf1.yahoo.com> Message-ID: How about this: Give new_york_queue: a message-ttl policy and a dead-letter exchange -> miami_outbound_queue a queue length and an alternate exchange -> miami_outbound_queue Use federation or shovel to move the contents of miami_outbound_queue over to miami. So if new york runs slow or starts to back up, messages end up being routed to elsewhere. --- Duncan -------------- next part -------------- An HTML attachment was scrubbed... URL: From 0x6e6562 at gmail.com Fri Feb 28 18:14:33 2014 From: 0x6e6562 at gmail.com (Ben Hood) Date: Fri, 28 Feb 2014 18:14:33 +0000 Subject: [rabbitmq-discuss] Unexaplainable behaviour with shovel plugin. In-Reply-To: References: <530F2996.1090605@rabbitmq.com> <530F3006.9050501@rabbitmq.com> <530F3BEC.2080206@rabbitmq.com> <530F6CDD.4080006@rabbitmq.com> Message-ID: Michael, On Fri, Feb 28, 2014 at 12:45 PM, Laing, Michael wrote: > So I turned to shovels for more simplicity and control at the expense of > more difficult configuration. Yes, it is quite a low level tool, but I guess sometimes your requirements are intricate enough to need to reach down to the lower layer. > Some of our core clusters support the 'retail' layer of instances that > gateway to clients (candles?). We are introducing federation into one of > these communication links because we want the propagation of client bindings > from the gateway instance to the core - an excellent feature of federation > and an important refinement for us. Using federation to implement an AMQP gateway seems like a common pattern. One wonders why it didn't go into the AMQP spec .... > Initially I had thought that the 'new' federation replaced the 'old' shovel, > but this is not true - each tool has its place although their capabilities > overlap. > > With easier configuration in 3.3, the lowly shovel may get its due! It's interesting to see that the shovel still lives on, despite it being quite an agricultural component. What sort of message volumes are you guys processing with this, BTW? Thanks for being so detailed about your experiences, it's much appreciated. Cheers, Ben From mklishin at gopivotal.com Fri Feb 28 18:54:10 2014 From: mklishin at gopivotal.com (Michael Klishin) Date: Fri, 28 Feb 2014 22:54:10 +0400 Subject: [rabbitmq-discuss] Problem with c# client ModelBase.ConfirmSelect() In-Reply-To: <5A1884FA08C6B74D8D1B5F047268FF1F2A4170DD@exchange2> References: <5A1884FA08C6B74D8D1B5F047268FF1F2A4170DD@exchange2> Message-ID: <44F9A897-D2E8-4367-AF6E-54BF307BB22E@rabbitmq.com> On 28 Feb 2014, at 14:07, Robert Higgins wrote: > A correction of this behaviour would be trivial, I hope my description has helped! This is fixed and hopefully will make it into 3.2.4: https://github.com/rabbitmq/rabbitmq-dotnet-client/compare/stable...bug26047 MK Software Engineer, Pivotal/RabbitMQ From mordyovits at yahoo.com Fri Feb 28 19:07:52 2014 From: mordyovits at yahoo.com (Mordy Ovits) Date: Fri, 28 Feb 2014 11:07:52 -0800 (PST) Subject: [rabbitmq-discuss] Robust zone-aware topology? In-Reply-To: <5310ABB2.4060908@rabbitmq.com> References: <1393539431.9325.YahooMailNeo@web160802.mail.bf1.yahoo.com> <530FBDAD.7090906@rabbitmq.com> <1393548356.78437.YahooMailNeo@web160802.mail.bf1.yahoo.com> <531048F5.4090308@rabbitmq.com> <1393600081.59827.YahooMailNeo@web160805.mail.bf1.yahoo.com> <5310ABB2.4060908@rabbitmq.com> Message-ID: <1393614472.92602.YahooMailNeo@web160803.mail.bf1.yahoo.com> >> I don't want consumers in Miami to do New York work just because >> new_york has a queue depth of 2 while miami is quiet. > > You say that but does it really cause so much of a problem that > it requires inventing an entirely new and complex way of doing > things instead of using the capability that rabbit ships with > out of the box? Crossing zones is something I'd only want to do as a last resort.? Executing a job in Singapore with data in Chicago is a bad idea. And is a-e so complex or out of the ordinary?? It seems a simpler feature than federation. > In your a-e design, messages that are in the auto-delete queue when > the last consumer disconnects will be lost. Is that acceptable? It's not great, that's for sure!? That's why I'm unsure about the design I came up with and asked the experts. Thanks, Mordy From mordyovits at yahoo.com Fri Feb 28 19:12:37 2014 From: mordyovits at yahoo.com (Mordy Ovits) Date: Fri, 28 Feb 2014 11:12:37 -0800 (PST) Subject: [rabbitmq-discuss] Robust zone-aware topology? In-Reply-To: References: <1393539431.9325.YahooMailNeo@web160802.mail.bf1.yahoo.com> <530FBDAD.7090906@rabbitmq.com> <1393548356.78437.YahooMailNeo@web160802.mail.bf1.yahoo.com> <531048F5.4090308@rabbitmq.com> <1393600081.59827.YahooMailNeo@web160805.mail.bf1.yahoo.com> Message-ID: <1393614757.56882.YahooMailNeo@web160806.mail.bf1.yahoo.com> > Give new_york_queue: > a message-ttl policy and a dead-letter exchange -> miami_outbound_queue > a queue length and an alternate exchange -> miami_outbound_queue > Use federation or shovel to move the contents of miami_outbound_queue > over to miami. > > So if new york runs slow or starts to back up, messages end up > being routed to elsewhere. Oooh, this sounds promising.? I can't think of a scenario where it would do the Wrong Thing, like send a message to another zone in a non-dire situation.? Also, not relying on a-e to move messages to the other zone means the zone's exchanges don't have to all be in the same cluster/node. I will definitely try this. Thanks! Mordy From KGanann at kroll.com Fri Feb 28 20:13:13 2014 From: KGanann at kroll.com (Ganann, Kale) Date: Fri, 28 Feb 2014 20:13:13 +0000 Subject: [rabbitmq-discuss] rabbitmqctl reset not working In-Reply-To: References: <6DB033025329784B9280ABD9516177FCA0BFC099@USEPX2PMXMBX12.corp.altegrity.com> Message-ID: <6DB033025329784B9280ABD9516177FCA0CD3CEA@usbpx2pmxmbx12> Boom. That did it, thank you! Thanks, Kale From: rabbitmq-discuss [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Michael Klishin Sent: Sunday, February 23, 2014 3:54 AM To: Discussions about RabbitMQ Subject: Re: [rabbitmq-discuss] rabbitmqctl reset not working 2014-02-23 13:22 GMT+04:00 Ganann, Kale >: I had to reboot it to move it, and now if I try to start Rabbit, it of course complains that it thinks it?s part of the cluster and the other nodes disagree, and it won?t start. But when I try to run rabbitmqctl reset or force_reset, it responds with a nodedown error. Is there some way to get this working short of a rebuild? Do I have to run some command to get erlang running without the RabbitMQ server on top of it? If you want to reset the node and don't care about the data it may have, you can simply remove its Mnesia directory, then start the node. -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin This communication contains information that is confidential, proprietary in nature, and may also be attorney-client privileged and/or work product privileged. It is for the exclusive use of the intended recipient(s). If you are not the intended recipient(s) or the person responsible for delivering it to the intended recipient(s), please note that any form of dissemination, distribution or copying of this communication is strictly prohibited and may be unlawful. If you have received this communication in error, please immediately notify the sender by replying to this message and delete this email immediately. Thank you for your cooperation. Please be advised that neither Altegrity, its affiliates, its employees or agents accept liability for any errors, omissions or damages caused by delays of receipt or by any virus infection in this message or its attachments, or which may otherwise arise as a result of this e-mail transmission. -------------- next part -------------- An HTML attachment was scrubbed... URL: