From Rohit.Patel2 at techmahindra.com Tue Oct 1 06:29:25 2013 From: Rohit.Patel2 at techmahindra.com (Rohit Patle) Date: Tue, 1 Oct 2013 05:29:25 +0000 Subject: [rabbitmq-discuss] Undelivered messages at Ready queue. In-Reply-To: <690240CF-A0F4-4F8B-B852-172B1A4C49CA@rabbitmq.com> References: <27E054594442884E9A46DBCF9AE7408160FDFA@BSDMSATMBX001.mahindrasatyam.ad>, <690240CF-A0F4-4F8B-B852-172B1A4C49CA@rabbitmq.com> Message-ID: <27E054594442884E9A46DBCF9AE7408160FE45@BSDMSATMBX001.mahindrasatyam.ad> Dear Michael, Thanks for your reply. Here I am sharing some more Info so that we are on the same page, I am using rabbitmq-c-master for communication along with RabbitMQ 3.1.5, Erlang R16B01. My client machine is on Dynamic DHCP. > You may be declaring queues as exclusive, then they will be removed when the connection that declared them closes (possibly due to a network partition, not application action). Or you may be declaring them as auto-delete, in which case they are removed when the last consumer is cancelled. Finally, queues can have fixed life time. My queues are not exclusive but they are auto-delete. However I am not closing my consumer still the queue is removed by the RabbitMQ server. > My app is an app which supposed to be run 24x7x356. same for server as well. How to establish reliable connection between server and client so that there should not be any communication break ? Please suggest. One way is to detect failures you can recover from (e.g. network failures), reconnect and recover (redeclare, rebind) your topology. This varies from client to client, e.g. Ruby and Clojure clients support automatic recovery while Java client requires developers to explicitly inspect shutdown reason. Any way for rabbitmq-c-master to achieve reconnect and recover? If you connect to RabbitMQ over WAN, you may want to run a local node and connect it to the remote WAN one with Shovel [1] and use the local node. Shovel will recover from network failures gracefully and connection loss with a LAN-local machine is less likely. Thank you for your suggestion. Let me explore more on Shovel [1] and come back to you on it. > 2. My message from client is not getting delivered to the server and they reside at Server queues(ready state). If I try sending message again from client, my server listener is not able to receive any more client messages as the client published messages are getting accumulated in server ready queue. The first screenshot indicates that there are delivered messages but they are not acknowledged. The second one only has queues with messages ready. Are the two states related two each other? Please refer queue r_0_4, which is Durable queue and one message is in ready queue but not getting deliver to the server even though the respective listener is ready to listen, what would be the reason? Please also refer the second screen-shot attached here with having queues name as r_0_3 and r_0_4 with which the message there in queues only but not getting deliver to the respective listener. I checked the listener as you suggested it I waiting at amqp_simple_wait_frame_noblock for Message. Please suggest. Did you check that the queues with messages have consumers? If you use basic.get instead of basic.consume, then it sounds like a consumer application issue. >>> Yes the respective consumer is waiting at server side in my design, the api's I am using is as: amqp_basic_consume(CTMServerInstParam->CL_Master_Connect.conn, CTMServerInstParam->CL_Config_Connect.listner_channel, CTMServerInstParam->CL_Config_Connect.queuename, AMQP_EMPTY_BYTES, 0, 1, 0, AMQP_EMPTY_TABLE); for consume and "result = amqp_simple_wait_frame_noblock(conn, &frame, &t.tv_sec); for waiting for to listen" Please suggest. Please suggest. Thanks you, 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 michael at rabbitmq.com Tue Oct 1 08:52:56 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Tue, 1 Oct 2013 11:52:56 +0400 Subject: [rabbitmq-discuss] Undelivered messages at Ready queue. In-Reply-To: <27E054594442884E9A46DBCF9AE7408160FE45@BSDMSATMBX001.mahindrasatyam.ad> References: <27E054594442884E9A46DBCF9AE7408160FDFA@BSDMSATMBX001.mahindrasatyam.ad>, <690240CF-A0F4-4F8B-B852-172B1A4C49CA@rabbitmq.com> <27E054594442884E9A46DBCF9AE7408160FE45@BSDMSATMBX001.mahindrasatyam.ad> Message-ID: On oct 1, 2013, at 9:29 a.m., Rohit Patle wrote: > My queues are not exclusive but they are auto-delete. However I am not closing my consumer still the queue is removed by the RabbitMQ server. This likely means that somehow a consumer is cancelled. > Please refer queue r_0_4, which is Durable queue and one message is in ready queue but not getting deliver to the server even though the respective listener is ready to listen, what would be the reason? Are you sure that there is a consumer on this queue? Does management UI or rabbitmqctl suggest so? Unexpectedly disappearing auto-deleted queues and messages not being delivered suggests to me that consumers are cancelled or go away for another reason. > Any way for rabbitmq-c-master to achieve reconnect and recover? I'm not familiar with librabbitmq-c but doubt it supports automatic recovery. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From michael at rabbitmq.com Tue Oct 1 08:54:31 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Tue, 1 Oct 2013 11:54:31 +0400 Subject: [rabbitmq-discuss] Fwd: Undelivered messages at Ready queue. References: <27E054594442884E9A46DBCF9AE7408160FEFC@BSDMSATMBX001.mahindrasatyam.ad> Message-ID: <2CF8F8A1-456A-47E4-A64D-C46AA18F1159@rabbitmq.com> Begin forwarded message: > From: Rohit Patle > Subject: FW: Undelivered messages at Ready queue. > Date: 1 de octubre de 2013 9:37:51 a.m. GMT+04:00 > To: Michael Klishin > > Hi, > > Sorry the attachment is messing with my earlier mail, Please refer the same here and suggest. > > Thanks you, > 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. MK -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: single_msg_at_ready_queue.png Type: image/png Size: 104318 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: multiple_msg_at_ready_queue.png Type: image/png Size: 106032 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From michael at rabbitmq.com Tue Oct 1 08:55:47 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Tue, 1 Oct 2013 11:55:47 +0400 Subject: [rabbitmq-discuss] Undelivered messages at Ready queue. In-Reply-To: <27E054594442884E9A46DBCF9AE7408160FEFC@BSDMSATMBX001.mahindrasatyam.ad> References: <27E054594442884E9A46DBCF9AE7408160FDFA@BSDMSATMBX001.mahindrasatyam.ad>, <690240CF-A0F4-4F8B-B852-172B1A4C49CA@rabbitmq.com>, <27E054594442884E9A46DBCF9AE7408160FE45@BSDMSATMBX001.mahindrasatyam.ad> <27E054594442884E9A46DBCF9AE7408160FEFC@BSDMSATMBX001.mahindrasatyam.ad> Message-ID: <447F4543-DE1F-4A30-B147-7A339BE2015D@rabbitmq.com> On oct 1, 2013, at 9:37 a.m., Rohit Patle wrote: > Sorry the attachment is messing with my earlier mail, Please refer the same here and suggest. Both screenshots do not make it any clearer whether there are any consumers. Please provide a queue information page for one of the queues that have messages ready (simply click a queue name link and you will get to that page). MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From brian.santiago at gmail.com Tue Oct 1 08:56:55 2013 From: brian.santiago at gmail.com (=?ISO-8859-1?Q?Santi_Nu=F1ez=2DCacho?=) Date: Tue, 1 Oct 2013 09:56:55 +0200 Subject: [rabbitmq-discuss] memory leak rabbitmq 3.1.5 In-Reply-To: References: <7c569223-7049-4993-8690-9333de7056b4@googlegroups.com> <5244067D.3040109@rabbitmq.com> <52442745.50401@rabbitmq.com> <52442F32.5030103@rabbitmq.com> <52443FAA.8050909@rabbitmq.com> <52458CF8.6030707@rabbitmq.com> Message-ID: I disable TCP_CHECK on keepalived configuration and the memory stabilized. @emile, do you use a specific configuration of keepalived that would bypass this problem? I got this: real_server XX.XX.XX.XX 61613 { weight 1 TCP_CHECK { connect_timeout 2 connect_port 61613 } On Mon, Sep 30, 2013 at 1:11 PM, Santi Nu?ez-Cacho wrote: > In the same moment I stopped keepalived the memory stabilize. > > I attach the tcpdump output for 61613 port. ( it should be just keepalived > connections from the other balanced > server, as this cluster has no queues ) > > > On Fri, Sep 27, 2013 at 3:49 PM, Emile Joubert wrote: > >> >> Hi. >> >> On 26/09/13 15:18, Santi Nu?ez-Cacho wrote: >> >> > =INFO REPORT==== 26-Sep-2013::16:12:46 === >> > accepting STOMP connection <0.19254.0> (XX:49217 -> YY:61613) >> > >> > =INFO REPORT==== 26-Sep-2013::16:12:46 === >> > closing STOMP connection <0.19254.0> (XX:49217 -> YY:61613) >> >> I've attempted to reproduce this problem from your description but did >> not succeed. Can supply a network packet capture file of TCP traffic >> between the broker and the load-balancer under the conditions that lead >> to the leak? Tools such as tcpdump can create such a file. >> >> >> >> >> -Emile >> >> >> >> >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From emile at rabbitmq.com Tue Oct 1 10:01:40 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Tue, 01 Oct 2013 10:01:40 +0100 Subject: [rabbitmq-discuss] memory leak rabbitmq 3.1.5 In-Reply-To: References: <7c569223-7049-4993-8690-9333de7056b4@googlegroups.com> <5244067D.3040109@rabbitmq.com> <52442745.50401@rabbitmq.com> <52442F32.5030103@rabbitmq.com> <52443FAA.8050909@rabbitmq.com> <52458CF8.6030707@rabbitmq.com> Message-ID: <524A8F74.7050203@rabbitmq.com> Hi, On 01/10/13 08:56, Santi Nu?ez-Cacho wrote: > I disable TCP_CHECK on keepalived configuration and the memory stabilized. > @emile, do you use a specific configuration of keepalived that would > bypass this problem? Thanks for the network packet capture. This showed that connections are being forced closed using TCP resets. I've managed to reproduce the issue and a fix will follow shortly. STOMP is the only protocol supported by RabbitMQ affected by this issue. A workaround in the meantime would be to use a configurations that does not close the network connections by resetting. -Emile From Michal.Skorepa at Honeywell.com Tue Oct 1 10:22:14 2013 From: Michal.Skorepa at Honeywell.com (Skorepa, Michal) Date: Tue, 1 Oct 2013 09:22:14 +0000 Subject: [rabbitmq-discuss] SSL connection - ASN1 error Message-ID: Hello, I am getting an exception in SSL connection establishment by AMQP Erlang client (used by an application which is running as a RMQ plugin): {error,{cannot_start_application,public_key,{not_started,asn1}}} I am running RabbitMQ 3.1.5 and Erlang R16B01. I know there have been some issues in older versions of Rabbit, but it should have been fixed since 3.1.2, I suppose. Can anybody clarify what the problem is? Thank you, Michal -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Tue Oct 1 10:33:56 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Tue, 01 Oct 2013 10:33:56 +0100 Subject: [rabbitmq-discuss] mirrored cluster crashes after node failure In-Reply-To: <53507612-76b6-4788-a83a-a7169bf85349@googlegroups.com> References: <53507612-76b6-4788-a83a-a7169bf85349@googlegroups.com> Message-ID: <524A9704.2010305@rabbitmq.com> That's not how things should go. Could you post the complete logs somewhere in case there's anything pointing to what happened? Cheers, Simon On 30/09/13 19:34, Matt Wheeler wrote: > We have a 3 node rabbitmq cluster consisting of 2 disk nodes and one > memory node. (disk nodes are rabbitmq-00 and 01, memory node is core-01) > > queues are durable and mirrored (show +2 in control panel, etc.) and > show syncronized: > > # rabbitmqctl list_queues name slave_pids synchronised_slave_pids > Listing queues ... > ... > SVC_mailbox_lookup[<'rabbit at rabbitmq-01'.2.301.0>, > <'rabbit at core-01'.1.268.0>][<'rabbit at core-01'.1.268.0>, > <'rabbit at rabbitmq-01'.2.301.0>] > ... > > # rabbitmqctl list_policies > Listing policies ... > /ha-all^SVC_{"ha-mode":"all"}0 > ...done. > > > We put in SSD mounted to '/var/lib/rabbitmq' to host the mnesia database > on rabbitmq-00/01. we only did a single drive figuring that if the disk > failed the node would crash and the others in the HA cluster would take > over - all clients have been coded for failover. > > The SSD on rabbitmq-00 failed. i don't have logs of that event from > rabbitmq-00's point of view - for some reason it didn't write out anything. > > I do have it from rabbitmq-01's: > > =INFO REPORT==== 26-Sep-2013::16:07:20 === > Mirrored-queue (queue 'SVC_mailbox_lookup' in vhost '/'): Slave > <'rabbit at rabbitmq-01'.3.785.0> > saw > deaths of mirrors <'rabbit at rabbitmq-00'.3.1415.0> > > > > =INFO REPORT==== 26-Sep-2013::16:07:20 === > Mirrored-queue (queue 'SVC_mailbox_lookup' in vhost '/'): Promoting > slave <'rabbit at rabbitmq-01'.3.785.0> > > to master > > but then: > > =ERROR REPORT==== 26-Sep-2013::16:17:17 === > connection <0.487.0>, channel 1 - soft error: > {amqp_error,not_found, > "home node 'rabbit at core-01' of durable queue 'SVC_mailbox_lookup' in > vhost '/' is down or inaccessible", > 'queue.declare'} > > This is repeated for each queue. > > It looks like rabbitmq-01 took over as master, but then the nodes become > non-responsive because they can't write to disk on core-01 (the memory > node.) > > we shutdown whatever was still running on rabbitmq-00. and everything > was still unavailable. we then shutdown core-01 and lastly rabbitmq-01, > then restarted rabbitmq-01, but it came up with NO queues. > > is this an error with the way the HA cluster is handling failover or an > error with our configurations - should we not mix memory and disk nodes > in an HA cluster? > > I'm trying to figure this our because we want to be sure that if any > node in the cluster fails, the others take over seamlessly. our code > does that... we just need the clusters to soldier on and that no records > are lost. > > Thanks. > > > > _______________________________________________ > 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 tim at rabbitmq.com Tue Oct 1 10:42:33 2013 From: tim at rabbitmq.com (Tim Watson) Date: Tue, 1 Oct 2013 10:42:33 +0100 Subject: [rabbitmq-discuss] SSL connection - ASN1 error In-Reply-To: References: Message-ID: On 1 Oct 2013, at 10:22, Skorepa, Michal wrote: > Hello, > > I am getting an exception in SSL connection establishment by AMQP Erlang client (used by an application which is running as a RMQ plugin): > {error,{cannot_start_application,public_key,{not_started,asn1}}} > > I am running RabbitMQ 3.1.5 and Erlang R16B01. I know there have been some issues in older versions of Rabbit, but it should have been fixed since 3.1.2, I suppose. > Can anybody clarify what the problem is? Erm, it appears that we only fixed this in the broker, and not the Erlang client. I'll file a bug right now and hopefully the fix will make it into the next release. Thanks for the bug report. Tim -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Tue Oct 1 10:42:41 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Tue, 01 Oct 2013 10:42:41 +0100 Subject: [rabbitmq-discuss] SSL connection - ASN1 error In-Reply-To: References: Message-ID: <524A9911.6040603@rabbitmq.com> Hmm, I don't think we fixed that for the AMQP client. That'll get fixed in the next release. As a workaround you can configure an SSL listener for the RabbitMQ server that's hosting this plugin, or (if you control the source code to the plugin) invoking application:start(asn1) before opening an SSL client connection. Cheers, Simon On 01/10/13 10:22, Skorepa, Michal wrote: > Hello, > > I am getting an exception in SSL connection establishment by AMQP Erlang > client (used by an application which is running as a RMQ plugin): > > {error,{cannot_start_application,public_key,{not_started,asn1}}} > > I am running RabbitMQ 3.1.5 and Erlang R16B01. I know there have been > some issues in older versions of Rabbit, but it should have been fixed > since 3.1.2, I suppose. > > Can anybody clarify what the problem is? > > Thank you, > > Michal > > > > _______________________________________________ > 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 Michal.Skorepa at Honeywell.com Tue Oct 1 13:06:06 2013 From: Michal.Skorepa at Honeywell.com (Skorepa, Michal) Date: Tue, 1 Oct 2013 12:06:06 +0000 Subject: [rabbitmq-discuss] SSL connection - ASN1 error In-Reply-To: <524A9911.6040603@rabbitmq.com> References: <524A9911.6040603@rabbitmq.com> Message-ID: Thank you, Simon. But unfortunately neither of the proposed workarounds worked for me. Both produced the same error: {{{{badmatch,error},[{tls_connection,dh_master_secret,5,[{file,"tls_connection.erl"},{line,2093}]},{tls_connection,certify,2,[{file,"tls_connection.erl"},{line,544}]},{tls_connection,next_state,4,[{file,"tls_connection.erl"},{line,2537}]},{gen_fsm,handle_msg,7,[{file,"gen_fsm.erl"},{line,505}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,239}]}]},{gen_fsm,sync_send_all_state_event,[<0.324.0>,{start,infinity},infinity]}},{gen_server,call,[<0.292.0>,connect,infinity]}} Do you have any other suggestions? Also, when do you plan to release a new version of AMQP Erlang client? Michal -----Original Message----- From: Simon MacMullen [mailto:simon at rabbitmq.com] Sent: 1. ??jna 2013 11:43 To: Discussions about RabbitMQ Cc: Skorepa, Michal Subject: Re: [rabbitmq-discuss] SSL connection - ASN1 error Hmm, I don't think we fixed that for the AMQP client. That'll get fixed in the next release. As a workaround you can configure an SSL listener for the RabbitMQ server that's hosting this plugin, or (if you control the source code to the plugin) invoking application:start(asn1) before opening an SSL client connection. Cheers, Simon On 01/10/13 10:22, Skorepa, Michal wrote: > Hello, > > I am getting an exception in SSL connection establishment by AMQP > Erlang client (used by an application which is running as a RMQ plugin): > > {error,{cannot_start_application,public_key,{not_started,asn1}}} > > I am running RabbitMQ 3.1.5 and Erlang R16B01. I know there have been > some issues in older versions of Rabbit, but it should have been fixed > since 3.1.2, I suppose. > > Can anybody clarify what the problem is? > > Thank you, > > Michal > > > > _______________________________________________ > 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 k.madnani84 at gmail.com Tue Oct 1 15:27:22 2013 From: k.madnani84 at gmail.com (k.madnani84) Date: Tue, 1 Oct 2013 07:27:22 -0700 (PDT) Subject: [rabbitmq-discuss] Performance and load testing of RMQ In-Reply-To: <5245A786.6070804@rabbitmq.com> References: <1379341875107-29675.post@n5.nabble.com> <1379432411568-29725.post@n5.nabble.com> <52387984.3020902@rabbitmq.com> <523C1354.2020801@rabbitmq.com> <1380129657177-29914.post@n5.nabble.com> <5243FF42.6090703@rabbitmq.com> <1380295091861-29990.post@n5.nabble.com> <5245A786.6070804@rabbitmq.com> Message-ID: <1380637642131-30060.post@n5.nabble.com> I was testing this client with 1000 Producers and 1000 consumers each with different queue totalling of 1000 queues but my server crashed giving out of memory issue.Could RabbitMQ not handle these many numbers? Exception in thread "pool-855-thread-3" java.lang.OutOfMemoryError: unable to create new native thread at java.lang.Thread.start0(Native Method) at java.lang.Thread.start(Thread.java:640) at java.util.concurrent.ThreadPoolExecutor.addIfUnderCorePoolSize(ThreadPoolExecutor.java:703) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:652) at com.rabbitmq.client.impl.ConsumerWorkService$WorkPoolRunnable.run(ConsumerWorkService.java:80) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) DefaultExceptionHandler: Consumer com.rabbitmq.client.QueueingConsumer at 89c1ee (amq.ctag-_AGKYg8YrJ-D7GC4hulVgg) method handleDelivery for channel AMQChannel(amqp://rbtadmin at 130.4.147.117:5692/,1) threw an exception for channel AMQChannel(amqp://rbtadmin at 130.4.147.117:5692/,1): java.lang.OutOfMemoryError: unable to create new native thread at java.lang.Thread.start0(Native Method) at java.lang.Thread.start(Thread.java:640) at java.util.concurrent.ThreadPoolExecutor.addIfUnderCorePoolSize(ThreadPoolExecutor.java:703) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:652) at com.rabbitmq.client.impl.ConsumerWorkService.addWork(ConsumerWorkService.java:62) at com.rabbitmq.client.impl.ConsumerDispatcher.execute(ConsumerDispatcher.java:185) at com.rabbitmq.client.impl.ConsumerDispatcher.executeUnlessShuttingDown(ConsumerDispatcher.java:180) at com.rabbitmq.client.impl.ConsumerDispatcher.handleDelivery(ConsumerDispatcher.java:117) at com.rabbitmq.client.impl.ChannelN.processAsync(ChannelN.java:345) at com.rabbitmq.client.impl.AMQChannel.handleCompleteInboundCommand(AMQChannel.java:144) at com.rabbitmq.client.impl.AMQChannel.handleFrame(AMQChannel.java:91) at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:533) -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Performance-and-load-testing-of-RMQ-tp29675p30060.html Sent from the RabbitMQ mailing list archive at Nabble.com. From simon at rabbitmq.com Tue Oct 1 15:36:05 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Tue, 01 Oct 2013 15:36:05 +0100 Subject: [rabbitmq-discuss] Performance and load testing of RMQ In-Reply-To: <1380637642131-30060.post@n5.nabble.com> References: <1379341875107-29675.post@n5.nabble.com> <1379432411568-29725.post@n5.nabble.com> <52387984.3020902@rabbitmq.com> <523C1354.2020801@rabbitmq.com> <1380129657177-29914.post@n5.nabble.com> <5243FF42.6090703@rabbitmq.com> <1380295091861-29990.post@n5.nabble.com> <5245A786.6070804@rabbitmq.com> <1380637642131-30060.post@n5.nabble.com> Message-ID: <524ADDD5.2070802@rabbitmq.com> On 01/10/13 15:27, k.madnani84 wrote: > I was testing this client with 1000 Producers and 1000 consumers each with > different queue totalling of 1000 queues but my server crashed giving out of > memory issue.Could RabbitMQ not handle these many numbers? The server certainly can (and I don't think it crashed). The Java client, as used by MulticastMain can run into OS limitations. > Exception in thread "pool-855-thread-3" java.lang.OutOfMemoryError: unable > to create new native thread The Java client will create one Thread per Connection. So creating lots of Connections from a single machine can cause you to hit the limit imposed by many OSes (1024 by default on many Linux distros). "man ulimit" might help you increase the number of connections you can make from the Java client. Or use more than one machine. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From sp345s at att.com Tue Oct 1 15:37:58 2013 From: sp345s at att.com (PATAR, SAGAR) Date: Tue, 1 Oct 2013 14:37:58 +0000 Subject: [rabbitmq-discuss] configure external data store(like database) for message durability in rabbitmq In-Reply-To: <50193A7C-BA84-4BD5-AB1E-038E337CDD91@rabbitmq.com> References: <59BF56992750434F89F8EBE141E64B1D0181F60D@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D0181F679@GAALPA1MSGUSR9C.ITServices.sbc.com> <50193A7C-BA84-4BD5-AB1E-038E337CDD91@rabbitmq.com> Message-ID: <59BF56992750434F89F8EBE141E64B1D0181F8EB@GAALPA1MSGUSR9C.ITServices.sbc.com> Thanks Michael .. Looks like mirrored queues will work for us .. I was wondering if the rabbitmq-java-client--3.1.5 has the capability to seamlessly connect to the cluster in case of failovers to Slaves or masters ?? or do we have to wrap the reconnect logic .. For multiple hosts and port .. can we use the below amqp URL ... amqp://username1:password1 at hostName1:portNumber1,hostname2:portNumber2,hostname3:portname4/virtualHost __________________________________________________________ ConnectionFactory factory = new ConnectionFactory(); factory.setUri("amqp://username1:password1 at hostName1:portNumber1,hostname2:portNumber2,hostname3:portname4/virtualHost"); Connection conn = factory.newConnection(); Channel channel = conn.createChannel().,. Also appreciate if we can get some links to java client tutorial connecting to clustered env , Also the spring integration ... -----Original Message----- From: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Michael Klishin Sent: Monday, September 30, 2013 11:42 AM To: Discussions about RabbitMQ Subject: Re: [rabbitmq-discuss] configure external data store(like database) for message durability in rabbitmq On sep 30, 2013, at 7:37 p.m., "PATAR, SAGAR" wrote: > My assumption is when we have a file store for message durability and if one of the node goes down in the cluster the messages not been consumed yet must have been stored in that node file system and will stay till the node is back up ... those message will not be accessible by other active nodes in the cluster because the file store for that node is not accessible to other nodes....and the messages will be delayed ... > > I am not sure how this scenario is handled ...seems to be a common problem Using mirrored queues or asynchronous replication (using Shovel or Federation plugins). See http://www.rabbitmq.com/distributed.html http://www.rabbitmq.com/clustering.html http://www.rabbitmq.com/ha.html MK From k.madnani84 at gmail.com Tue Oct 1 15:44:27 2013 From: k.madnani84 at gmail.com (k.madnani84) Date: Tue, 1 Oct 2013 07:44:27 -0700 (PDT) Subject: [rabbitmq-discuss] /lib64/libz.so.1: no version information available Message-ID: <1380638667135-30063.post@n5.nabble.com> Hi,Whenever i run the status command in rabbitmqctl i get this warning at the top and then the output:/opt/app/rabbitmq/sbin/rabbitmqctl status/opt/app/erlang15/lib/erlang/erts-5.9.3.1/bin/beam.smp: /lib64/libz.so.1: no version information available (required by /opt/app/erlang15/lib/erlang/erts-5.9.3.1/bin/beam.smp)I am using RabbitMQ 3.1.5, Erlang R15B03.Earlier when i used RabbitMQ with 3.1.3 i dint get this issue.Is this a compatibility issue.What do i need to do to fix this? -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/lib64-libz-so-1-no-version-information-available-tp30063.html Sent from the RabbitMQ mailing list archive at Nabble.com. -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Tue Oct 1 15:52:26 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Tue, 01 Oct 2013 15:52:26 +0100 Subject: [rabbitmq-discuss] /lib64/libz.so.1: no version information available In-Reply-To: <1380638667135-30063.post@n5.nabble.com> References: <1380638667135-30063.post@n5.nabble.com> Message-ID: <524AE1AA.40603@rabbitmq.com> A quick Google suggests that the zlib on your system might not be the one you compiled Erlang against. Anyway, it's not really a RabbitMQ problem... Cheers, Simon On 01/10/13 15:44, k.madnani84 wrote: > Hi, Whenever i run the status command in rabbitmqctl i get this warning > at the top and then the output: /opt/app/rabbitmq/sbin/rabbitmqctl > status /opt/app/erlang15/lib/erlang/erts-5.9.3.1/bin/beam.smp: > /lib64/libz.so.1: no version information available (required by > /opt/app/erlang15/lib/erlang/erts-5.9.3.1/bin/beam.smp) I am using > RabbitMQ 3.1.5, Erlang R15B03.Earlier when i used RabbitMQ with 3.1.3 i > dint get this issue. Is this a compatibility issue.What do i need to do > to fix this? > ------------------------------------------------------------------------ > View this message in context: /lib64/libz.so.1: no version information > available > > 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 > -- Simon MacMullen RabbitMQ, Pivotal From grussell at gopivotal.com Tue Oct 1 15:55:58 2013 From: grussell at gopivotal.com (Gary Russell) Date: Tue, 1 Oct 2013 10:55:58 -0400 Subject: [rabbitmq-discuss] configure external data store(like database) for message durability in rabbitmq In-Reply-To: <59BF56992750434F89F8EBE141E64B1D0181F8EB@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D0181F60D@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D0181F679@GAALPA1MSGUSR9C.ITServices.sbc.com> <50193A7C-BA84-4BD5-AB1E-038E337CDD91@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D0181F8EB@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: >Also the spring integration... If you are using Spring-AMQP, you supply the list of host:port using the 'addresses' attribute on the CachingConnectionFactory... http://docs.spring.io/spring-amqp/reference/html/amqp.html#d4e209 On Tue, Oct 1, 2013 at 10:37 AM, PATAR, SAGAR wrote: > Thanks Michael .. > > Looks like mirrored queues will work for us .. > I was wondering if the rabbitmq-java-client--3.1.5 has the capability to > seamlessly connect to the cluster in case of failovers to Slaves or masters > ?? or do we have to wrap the reconnect logic .. > > For multiple hosts and port .. can we use the below amqp URL ... > > amqp://username1:password1 at hostName1 > :portNumber1,hostname2:portNumber2,hostname3:portname4/virtualHost > > __________________________________________________________ > > ConnectionFactory factory = new ConnectionFactory(); > factory.setUri("amqp://username1:password1 at hostName1 > :portNumber1,hostname2:portNumber2,hostname3:portname4/virtualHost"); > Connection conn = factory.newConnection(); > Channel channel = conn.createChannel().,. > > Also appreciate if we can get some links to java client tutorial > connecting to clustered env , Also the spring integration ... > > > -----Original Message----- > From: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto: > rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Michael Klishin > Sent: Monday, September 30, 2013 11:42 AM > To: Discussions about RabbitMQ > Subject: Re: [rabbitmq-discuss] configure external data store(like > database) for message durability in rabbitmq > > On sep 30, 2013, at 7:37 p.m., "PATAR, SAGAR" wrote: > > > My assumption is when we have a file store for message durability and if > one of the node goes down in the cluster the messages not been consumed yet > must have been stored in that node file system and will stay till the node > is back up ... those message will not be accessible by other active nodes > in the cluster because the file store for that node is not accessible to > other nodes....and the messages will be delayed ... > > > > I am not sure how this scenario is handled ...seems to be a common > problem > > Using mirrored queues or asynchronous replication (using Shovel or > Federation plugins). > > See > > http://www.rabbitmq.com/distributed.html > http://www.rabbitmq.com/clustering.html > http://www.rabbitmq.com/ha.html > > MK > > > > _______________________________________________ > 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 brian.santiago at gmail.com Tue Oct 1 15:57:09 2013 From: brian.santiago at gmail.com (=?ISO-8859-1?Q?Santi_Nu=F1ez=2DCacho?=) Date: Tue, 1 Oct 2013 16:57:09 +0200 Subject: [rabbitmq-discuss] memory leak rabbitmq 3.1.5 In-Reply-To: <524A8F74.7050203@rabbitmq.com> References: <7c569223-7049-4993-8690-9333de7056b4@googlegroups.com> <5244067D.3040109@rabbitmq.com> <52442745.50401@rabbitmq.com> <52442F32.5030103@rabbitmq.com> <52443FAA.8050909@rabbitmq.com> <52458CF8.6030707@rabbitmq.com> <524A8F74.7050203@rabbitmq.com> Message-ID: I changed the keepalived tcp_check by other type called misc_check ( a check that can be done by yourself ) This check close the connection ( a simple nc execution ) , and everything start to work again. And the memory stop growing and got stabilized. On Tue, Oct 1, 2013 at 11:01 AM, Emile Joubert wrote: > > Hi, > > On 01/10/13 08:56, Santi Nu?ez-Cacho wrote: > > I disable TCP_CHECK on keepalived configuration and the memory > stabilized. > > @emile, do you use a specific configuration of keepalived that would > > bypass this problem? > > Thanks for the network packet capture. This showed that connections are > being forced closed using TCP resets. I've managed to reproduce the > issue and a fix will follow shortly. STOMP is the only protocol > supported by RabbitMQ affected by this issue. > > A workaround in the meantime would be to use a configurations that does > not close the network connections by resetting. > > > > -Emile > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael at rabbitmq.com Tue Oct 1 15:59:41 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Tue, 1 Oct 2013 18:59:41 +0400 Subject: [rabbitmq-discuss] configure external data store(like database) for message durability in rabbitmq In-Reply-To: <59BF56992750434F89F8EBE141E64B1D0181F8EB@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D0181F60D@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D0181F679@GAALPA1MSGUSR9C.ITServices.sbc.com> <50193A7C-BA84-4BD5-AB1E-038E337CDD91@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D0181F8EB@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: On oct 1, 2013, at 6:37 p.m., "PATAR, SAGAR" wrote: > I was wondering if the rabbitmq-java-client--3.1.5 has the capability to seamlessly connect to the cluster in case of failovers to Slaves or masters ?? or do we have to wrap the reconnect logic .. You can connect to any node for both publishing and consuming. Performance characteristics will vary depending on whether the node you connect to is master for the queue(s) you use but otherwise any node will work just as well as any other. > For multiple hosts and port .. can we use the below amqp URL ... > > amqp://username1:password1 at hostName1:portNumber1,hostname2:portNumber2,hostname3:portname4/virtualHost I don't think you can list multiple host:port pairs in the URI but there is a ConnectionFactory#newConnection version that will connect to the first reachable node. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From simon at rabbitmq.com Tue Oct 1 15:59:52 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Tue, 01 Oct 2013 15:59:52 +0100 Subject: [rabbitmq-discuss] memory leak rabbitmq 3.1.5 In-Reply-To: References: <7c569223-7049-4993-8690-9333de7056b4@googlegroups.com> <5244067D.3040109@rabbitmq.com> <52442745.50401@rabbitmq.com> <52442F32.5030103@rabbitmq.com> <52443FAA.8050909@rabbitmq.com> <52458CF8.6030707@rabbitmq.com> <524A8F74.7050203@rabbitmq.com> Message-ID: <524AE368.1060109@rabbitmq.com> Cool! And this should be fixed in tonight's nightly build BTW. Cheers, Simon On 01/10/13 15:57, Santi Nu?ez-Cacho wrote: > I changed the keepalived tcp_check by other type called misc_check ( a > check that can be done by yourself ) > This check close the connection ( a simple nc execution ) , and > everything start to work again. And the memory stop growing and got > stabilized. > > > On Tue, Oct 1, 2013 at 11:01 AM, Emile Joubert > wrote: > > > Hi, > > On 01/10/13 08:56, Santi Nu?ez-Cacho wrote: > > I disable TCP_CHECK on keepalived configuration and the memory > stabilized. > > @emile, do you use a specific configuration of keepalived that would > > bypass this problem? > > Thanks for the network packet capture. This showed that connections are > being forced closed using TCP resets. I've managed to reproduce the > issue and a fix will follow shortly. STOMP is the only protocol > supported by RabbitMQ affected by this issue. > > A workaround in the meantime would be to use a configurations that does > not close the network connections by resetting. > > > > -Emile > > > > > -- Simon MacMullen RabbitMQ, Pivotal From sp345s at att.com Tue Oct 1 16:13:36 2013 From: sp345s at att.com (PATAR, SAGAR) Date: Tue, 1 Oct 2013 15:13:36 +0000 Subject: [rabbitmq-discuss] configure external data store(like database) for message durability in rabbitmq In-Reply-To: References: <59BF56992750434F89F8EBE141E64B1D0181F60D@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D0181F679@GAALPA1MSGUSR9C.ITServices.sbc.com> <50193A7C-BA84-4BD5-AB1E-038E337CDD91@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D0181F8EB@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: <59BF56992750434F89F8EBE141E64B1D0181F961@GAALPA1MSGUSR9C.ITServices.sbc.com> Thanks.. We are using MDB's and deploying them in JBOSS AS 5.1 ... Just wanted to make sure that it is supported .. Can you please provide us some examples on how to configure MDB's to a rabbitMQ queues or topics .. -----Original Message----- From: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Michael Klishin Sent: Tuesday, October 01, 2013 11:00 AM To: Discussions about RabbitMQ Subject: Re: [rabbitmq-discuss] configure external data store(like database) for message durability in rabbitmq On oct 1, 2013, at 6:37 p.m., "PATAR, SAGAR" wrote: > I was wondering if the rabbitmq-java-client--3.1.5 has the capability to seamlessly connect to the cluster in case of failovers to Slaves or masters ?? or do we have to wrap the reconnect logic .. You can connect to any node for both publishing and consuming. Performance characteristics will vary depending on whether the node you connect to is master for the queue(s) you use but otherwise any node will work just as well as any other. > For multiple hosts and port .. can we use the below amqp URL ... > > amqp://username1:password1 at hostName1:portNumber1,hostname2:portNumber2,hostname3:portname4/virtualHost I don't think you can list multiple host:port pairs in the URI but there is a ConnectionFactory#newConnection version that will connect to the first reachable node. MK From michael at rabbitmq.com Tue Oct 1 16:22:12 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Tue, 1 Oct 2013 19:22:12 +0400 Subject: [rabbitmq-discuss] Performance and load testing of RMQ In-Reply-To: <524ADDD5.2070802@rabbitmq.com> References: <1379341875107-29675.post@n5.nabble.com> <1379432411568-29725.post@n5.nabble.com> <52387984.3020902@rabbitmq.com> <523C1354.2020801@rabbitmq.com> <1380129657177-29914.post@n5.nabble.com> <5243FF42.6090703@rabbitmq.com> <1380295091861-29990.post@n5.nabble.com> <5245A786.6070804@rabbitmq.com> <1380637642131-30060.post@n5.nabble.com> <524ADDD5.2070802@rabbitmq.com> Message-ID: <57DF0A00-AABE-4F20-BD0A-01EE0D14255F@rabbitmq.com> > "man ulimit" might help you increase the number of connections you can make from the Java client. You can list current limits with ulimit -a. The limit you are looking for is "max user processes" (-u). See [1] for example. 1. http://red.ht/GzI7C6 MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From xani666 at gmail.com Tue Oct 1 16:55:37 2013 From: xani666 at gmail.com (Mariusz Gronczewski) Date: Tue, 1 Oct 2013 08:55:37 -0700 (PDT) Subject: [rabbitmq-discuss] Debugging RabbitMQ memory usage Message-ID: <8adc7fd0-2e20-48b6-bf36-ed2ca4d43136@googlegroups.com> Hi, I have 2 clusers, 2 nodes each with same configuration. One node is serving most of the traffic (about 100 req/sec via STOMP/SSL, basically zero messages staying in queues) while other is "backup". Plugins are management, management_federation, federation and stomp) I have noticed that on clusterA, master node eats above 2GB RAM (after 2 days of uptime, slowly growing), mostly in "Plugins" and "Binaries", and in clusterB both nodes are below 200MB RAM usage. Only difference is that on clusterA stats are gathered on same node serving traffic while on clusterB stats are on "secondary" node. Software configuration is basically identical (I used puppet to deploy both at same time), and clusterA is on slower machines, but by no means overloaded (using maybe 5% CPU). version: RabbitMQ 3.1.5.40927, Erlang R15B01, but same thing occurs on current stable 3.1.5 Is there any way to debug what uses it and why it is leaking memory ? Cheers Mariusz -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Tue Oct 1 17:12:21 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Tue, 01 Oct 2013 17:12:21 +0100 Subject: [rabbitmq-discuss] Debugging RabbitMQ memory usage In-Reply-To: <8adc7fd0-2e20-48b6-bf36-ed2ca4d43136@googlegroups.com> References: <8adc7fd0-2e20-48b6-bf36-ed2ca4d43136@googlegroups.com> Message-ID: <524AF465.2070301@rabbitmq.com> First of all, could you be seeing the same as this: http://rabbitmq.1065348.n5.nabble.com/memory-leak-rabbitmq-3-1-5-td29924.html ? The smoking gun is $ rabbitmqctl eval \ 'length(supervisor:which_children(rabbit_stomp_client_sup_sup)).' returning a number much larger than the number of open STOMP connections on the leaky node. Cheers, Simon On 01/10/13 16:55, Mariusz Gronczewski wrote: > Hi, > > I have 2 clusers, 2 nodes each with same configuration. One node is > serving most of the traffic (about 100 req/sec via STOMP/SSL, basically > zero messages staying in queues) while other is "backup". Plugins are > management, management_federation, federation and stomp) > > I have noticed that on clusterA, master node eats above 2GB RAM (after 2 > days of uptime, slowly growing), mostly in "Plugins" and "Binaries", and > in clusterB both nodes are below 200MB RAM usage. Only difference is > that on clusterA stats are gathered on same node serving traffic while > on clusterB stats are on "secondary" node. > > Software configuration is basically identical (I used puppet to deploy > both at same time), and clusterA is on slower machines, but by no means > overloaded (using maybe 5% CPU). > > version: RabbitMQ 3.1.5.40927, Erlang R15B01, but same thing occurs on > current stable 3.1.5 > > Is there any way to debug what uses it and why it is leaking memory ? > > Cheers > Mariusz > > > _______________________________________________ > 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 sysfalcon at gmail.com Tue Oct 1 18:17:45 2013 From: sysfalcon at gmail.com (Peter Sokolowski) Date: Tue, 1 Oct 2013 19:17:45 +0200 Subject: [rabbitmq-discuss] RabbitMQ - strange synchronization behavior In-Reply-To: <52441FDA.6040005@rabbitmq.com> References: <5243F01C.5030205@rabbitmq.com> <52441FDA.6040005@rabbitmq.com> Message-ID: You're right the problem is related to the disk (if the messages are stored in memory synchronization takes less than 2 minutes) I'm sure: the messages are 512 bytes, there aren't any unacknowledged messages, the disk is not particularly slow From michael.s.klishin at gmail.com Tue Oct 1 18:28:34 2013 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Tue, 1 Oct 2013 21:28:34 +0400 Subject: [rabbitmq-discuss] RabbitMQ - strange synchronization behavior In-Reply-To: References: <5243F01C.5030205@rabbitmq.com> <52441FDA.6040005@rabbitmq.com> Message-ID: 2013/10/1 Peter Sokolowski > I'm sure: the messages are 512 bytes, there aren't any unacknowledged > messages, the disk is not particularly slow > Peter, Can you run iostat and vmstat when synchronization is in progress and post some example results? -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From videlalvaro at gmail.com Tue Oct 1 18:43:55 2013 From: videlalvaro at gmail.com (Alvaro Videla) Date: Tue, 1 Oct 2013 12:43:55 -0500 Subject: [rabbitmq-discuss] question about librabbitmq Message-ID: Hi, Would it be possible to have a C library called amqp or amqp_framing or something like that that only provides the required functions for encoding/decoding the AMQP protocol? Something like what's on amqp_framing.c and related files. That library then could be linked from PHP and create an extension for it. Then I could use it from my php-amqplib to speed up things. I think the same could be done from Ruby, Python, and so on. Each library developer could offer an AMQP client with the API and idiosyncrasies he/she considers best, but the underlying protocol handling would be done in C. What do you think? Regards, Alvaro -------------- next part -------------- An HTML attachment was scrubbed... URL: From sysfalcon at gmail.com Tue Oct 1 19:04:47 2013 From: sysfalcon at gmail.com (Peter Sokolowski) Date: Tue, 1 Oct 2013 20:04:47 +0200 Subject: [rabbitmq-discuss] RabbitMQ - another HA approach - shared mnesia folders Message-ID: I've made a few tests of HA in RabbitMQ based on mirroring and synchronization(with message write confirmation, 3 disk cluster nodes). For me this approach is not working properly. I found that the cluster is unstable - it's very weak.Sometimes the restarted node is not working at all (I can't join it to the cluster, even it was working properly a moment ago), sometimes queues in the whole cluster are disappearing, sometimes are blocking (e.g. after breaking synchronization process). In general: there are many pitfalls in this approach (I know that 100% HA is impossible). So I decided to make small test. I shared mnesia folder by NFS in Linux(by changing RABBITMQ_MNESIA_BASE variable). Now, installation of RabbitMQ and its mnesia folders lies on different physical machines. Finally I'm going to create two installations of RabbitMQ which share the same mnesia folders by NFS (One will be active, the other will be passive). Here's my question: I'm not sure whether this is a good direction to go to make HA in RabbitMQ without synchronization (only by sharing mnesia folders)? From gavinmroy at gmail.com Tue Oct 1 19:10:21 2013 From: gavinmroy at gmail.com (Gavin M. Roy) Date: Tue, 1 Oct 2013 14:10:21 -0400 Subject: [rabbitmq-discuss] question about librabbitmq In-Reply-To: References: Message-ID: Similar to what I was trying to achieve in Python land with github.com/gmr/pamqp -- I think it's an excellent idea. I was planning on checking the feasibility with librabbitmq of making pamqp transparently using it for framing should it be available. Cheers, Gavin On Tuesday, October 1, 2013 at 1:43 PM, Alvaro Videla wrote: > Hi, > > Would it be possible to have a C library called amqp or amqp_framing or something like that that only provides the required functions for encoding/decoding the AMQP protocol? Something like what's on amqp_framing.c and related files. > > That library then could be linked from PHP and create an extension for it. Then I could use it from my php-amqplib to speed up things. > > I think the same could be done from Ruby, Python, and so on. > > Each library developer could offer an AMQP client with the API and idiosyncrasies he/she considers best, but the underlying protocol handling would be done in C. > > What do you think? > > Regards, > > Alvaro > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com (mailto: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 Tue Oct 1 19:14:24 2013 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Tue, 1 Oct 2013 22:14:24 +0400 Subject: [rabbitmq-discuss] RabbitMQ - another HA approach - shared mnesia folders In-Reply-To: References: Message-ID: 2013/10/1 Peter Sokolowski > Here's my question: I'm not sure whether this is a good direction to > go to make HA in RabbitMQ without synchronization (only by sharing > mnesia folders)? > Sharing database directory is too likely to make it corrupt. Take a look at Federation and Shovel plugins if standard clustering does not feet your needs. Pacemaker is also an option. Relevant documentation links: http://www.rabbitmq.com/distributed.html http://www.rabbitmq.com/clustering.html http://www.rabbitmq.com/ha.html http://www.rabbitmq.com/shovel.html http://www.rabbitmq.com/federation.html http://www.rabbitmq.com/pacemaker.html -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Tue Oct 1 19:17:35 2013 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Tue, 1 Oct 2013 22:17:35 +0400 Subject: [rabbitmq-discuss] question about librabbitmq In-Reply-To: References: Message-ID: 2013/10/1 Gavin M. Roy > Similar to what I was trying to achieve in Python land with > github.com/gmr/pamqp -- I think it's an excellent idea. > amq-protocol does the same for Ruby. Producing a C library that does the same is a good idea. Designing it to support all languages and popular OSes equally well is likely not be easy. -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Tue Oct 1 19:19:28 2013 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Tue, 1 Oct 2013 22:19:28 +0400 Subject: [rabbitmq-discuss] RabbitMQ - another HA approach - shared mnesia folders In-Reply-To: References: Message-ID: 2013/10/1 Michael Klishin > feet your needs. fit, even -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From videlalvaro at gmail.com Wed Oct 2 04:48:57 2013 From: videlalvaro at gmail.com (Alvaro Videla) Date: Tue, 1 Oct 2013 22:48:57 -0500 Subject: [rabbitmq-discuss] ANN php-amqplib v2.2.0 is released Message-ID: Hi, I'm happy to announce the new release of php-amqplib. You can obtain it via github: https://github.com/videlalvaro/php-amqplib/releases/tag/v2.2.0 or via packagist: https://packagist.org/packages/videlalvaro/php-amqplib Release Highlights: Performance: There's been a lot of work improving the library performance. From michael at rabbitmq.com Wed Oct 2 09:26:42 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Wed, 2 Oct 2013 12:26:42 +0400 Subject: [rabbitmq-discuss] ANN Bunny 1.0.0.rc1 Message-ID: Bunny 1.0.0.rc1 is released. There are virtually no changes from 0.10.7, so it should be very easy to give it a try. Release notes: http://blog.rubyrabbitmq.info/blog/2013/10/02/bunny-1-dot-0-0-dot-rc1-is-released/ As the blog post explains, we give Bunny 4 more cool down weeks before 1.0 final, so if you wanted to report a significant issue, now is your time to do it. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From dave at caruana.biz Tue Oct 1 12:39:51 2013 From: dave at caruana.biz (Dave Alan Caruana) Date: Tue, 1 Oct 2013 04:39:51 -0700 (PDT) Subject: [rabbitmq-discuss] using ttl and dead-letter-exchange to retry after a delay, in PHP Message-ID: hello, I am trying to use dead-letter-exchange to create a 'delayed' queue, basically my application takes input from an MQ and then posts the data (using curl) to an external website. If the post operation fails I want it to wait a set amount of time and retry. The idea is to publish these failed tries to a 'dead' queue with no consumer but with a timeout set up. On expiry of the timeout, RabbitMQ should transfer these messages to the dead-letter-exchange which would be the original queue. my code is currently here : public function publish_delay($data=false) { $connection = new AMQPConnection('localhost', 5672, 'guest', 'guest'); $channel = $connection->channel(); $channel->queue_declare('errorXchange',false,true,false,false,false, array( "x-dead-letter-exchange" => array("S", $this->channelname), "x-message-ttl" => array("I", 5000), "x-expires" => array("I", 6000) ) ); $msg = new AMQPMessage($data); $channel->basic_publish($msg,'','errorXchange'); $channel->close(); $connection->close(); } $msg -> is the message I want sent with a delay $this->channelname would be the channel I want it to go to after the delay 'errorXchange' is the dead queue with the ttl & no consumer. Currently nothing is coming through on $this->channelname (where there is a consumer, of course). I haven't understood how to debug rabbitmq or what is going wrong, and there is precious little documentation! help would be VERY welcome! regards, Dave in Malta. -------------- next part -------------- An HTML attachment was scrubbed... URL: From rabarijaonadomoina at gmail.com Tue Oct 1 16:11:07 2013 From: rabarijaonadomoina at gmail.com (Tia) Date: Tue, 1 Oct 2013 08:11:07 -0700 (PDT) Subject: [rabbitmq-discuss] {handshake_timeout,handshake} Message-ID: Hi, I get the following error in my RabbitMQ: =ERROR REPORT==== 1-Oct-2013::15:35:01 === closing AMQP connection <0.27445.0> ([::1]:48042 -> [::1]:5672): {handshake_timeout,handshake} After googling, it seems that I have to recompile RabbitMQ with a higher handshake_timeout to avoid this error. Is there any tip to improve the duration of the handshaking without recompiling RabbitMQ, with any configuration ? I send messages in a queue via a Php application, then I consume the messages with a Java application which inserts data in a PostgreSQL and MongoDB databases. My server is a Debian 7, 8Gb of RAM. RabbitMQ version 3.1.5-1. On my server, I have an instance of Apache, PostgreSQL, mySQL and MongoDB. Thanks, Tia -------------- next part -------------- An HTML attachment was scrubbed... URL: From robert.gilland at basx.com.au Wed Oct 2 07:03:17 2013 From: robert.gilland at basx.com.au (footfault) Date: Tue, 1 Oct 2013 23:03:17 -0700 (PDT) Subject: [rabbitmq-discuss] Client Acknowlegde methodology seems to fail on Temporary Queues. Message-ID: <1380693797365-30082.post@n5.nabble.com> Ever since Client Acknowledgement has been introduced we have successfully been using them. Now I went to use them with Temporary Queues and the messages didn't arrive. I then looked in the rabbit mq logs and I found this. =ERROR REPORT==== 2-Oct-2013::15:27:25 === connection <0.13523.5>, channel 1 - soft error: {amqp_error,precondition_failed,"unknown delivery tag 1",'basic.ack'} After further deliberation. I decided to change the acknowledgement method back to Auto acknowledgement. Voila. All started working again. Seems like a bug to be. RabbitmQ version is 3.15 -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Client-Acknowlegde-methodology-seems-to-fail-on-Temporary-Queues-tp30082.html Sent from the RabbitMQ mailing list archive at Nabble.com. From simon at rabbitmq.com Wed Oct 2 10:10:35 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 02 Oct 2013 10:10:35 +0100 Subject: [rabbitmq-discuss] using ttl and dead-letter-exchange to retry after a delay, in PHP In-Reply-To: References: Message-ID: <524BE30B.7020903@rabbitmq.com> On 01/10/13 12:39, Dave Alan Caruana wrote: > "x-dead-letter-exchange" => array("S", > $this->channelname), > "x-message-ttl" => array("I", 5000), > "x-expires" => array("I", 6000) > $msg -> is the message I want sent with a delay > $this->channelname would be the channel I want it to go to after the delay > 'errorXchange' is the dead queue with the ttl & no consumer. Well, the x-dead-letter-exchange argument takes... an exchange, not a channel name. You need to declare another exchange to dead letter messages to, then a queue to consume the dead-lettered messages from, bind the two, then consume from that. I'm also not sure I'd call a queue "errorXchange", might be confusing. Finally, you have set "expires" on your queue - this will cause it to delete itself after 6 seconds of inactivity. I doubt you want that. > I haven't understood how to debug rabbitmq or what is going wrong, and > there is precious little documentation! If you haven't read the tutorials I would do so - http://www.rabbitmq.com/getstarted.html. And of course see also http://www.rabbitmq.com/ttl.html and http://www.rabbitmq.com/dlx.html Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Wed Oct 2 10:13:15 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 02 Oct 2013 10:13:15 +0100 Subject: [rabbitmq-discuss] {handshake_timeout,handshake} In-Reply-To: References: Message-ID: <524BE3AB.9010109@rabbitmq.com> On 01/10/13 16:11, Tia wrote: > I get the following error in my RabbitMQ: > =ERROR REPORT==== 1-Oct-2013::15:35:01 === > closing AMQP connection <0.27445.0> ([::1]:48042 -> [::1]:5672): > {handshake_timeout,handshake} > > After googling, it seems that I have to recompile RabbitMQ with a higher > handshake_timeout to avoid this error. Well, you have to do so if it is really taking so long to do the AMQP handshake that a timeout occurs. That's really quite rare though (which is why that timeout is not currently configurable). More likely is that something is getting in the way of the handshake completing successfully. Are you seeing this every time you attempt to connect, or only sometimes? Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Wed Oct 2 10:15:10 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 02 Oct 2013 10:15:10 +0100 Subject: [rabbitmq-discuss] Client Acknowlegde methodology seems to fail on Temporary Queues. In-Reply-To: <1380693797365-30082.post@n5.nabble.com> References: <1380693797365-30082.post@n5.nabble.com> Message-ID: <524BE41E.2030407@rabbitmq.com> On 02/10/13 07:03, footfault wrote: > =ERROR REPORT==== 2-Oct-2013::15:27:25 === > connection <0.13523.5>, channel 1 - soft error: > {amqp_error,precondition_failed,"unknown delivery tag 1",'basic.ack'} > Seems like a bug to be. Yes, in your application. You must ensure that you acknowledge messages on the same channel as you received them, and only acknowledge them once. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From michael at rabbitmq.com Wed Oct 2 10:15:45 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Wed, 2 Oct 2013 13:15:45 +0400 Subject: [rabbitmq-discuss] using ttl and dead-letter-exchange to retry after a delay, in PHP In-Reply-To: References: Message-ID: <37CA68D0-5A88-42B2-ACBD-3FDC1C18AD09@rabbitmq.com> On oct 1, 2013, at 3:39 p.m., Dave Alan Caruana wrote: > Currently nothing is coming through on $this->channelname (where there is a consumer, of course). What is the value of $this->channelname? Channels have no names in the protocol. Exchanges also cannot have consumers. I suspect there is some misunderstanding going on. DLX needs to point to an exchange (any exchange), optionally with a routing key, that can route messages the way you want. See http://www.rabbitmq.com/tutorials/amqp-concepts.html if you are not sure about the concepts. You are using x-expires that is slightly higher than x-message-ttl. This will make the queue itself to be deleted. Is this intentional? MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From michael at rabbitmq.com Wed Oct 2 10:18:14 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Wed, 2 Oct 2013 13:18:14 +0400 Subject: [rabbitmq-discuss] Client Acknowlegde methodology seems to fail on Temporary Queues. In-Reply-To: <1380693797365-30082.post@n5.nabble.com> References: <1380693797365-30082.post@n5.nabble.com> Message-ID: On oct 2, 2013, at 10:03 a.m., footfault wrote: > I then looked in the rabbit mq logs and I found this. > > =ERROR REPORT==== 2-Oct-2013::15:27:25 === > connection <0.13523.5>, channel 1 - soft error: > {amqp_error,precondition_failed,"unknown delivery tag 1",'basic.ack'} This almost certainly means you are trying to ack the same delivery twice. This is an error condition and RabbitMQ will close the channel your consumer is on. Which in turn means that there will be no more deliveries on that channel. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From michael at rabbitmq.com Wed Oct 2 10:20:27 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Wed, 2 Oct 2013 13:20:27 +0400 Subject: [rabbitmq-discuss] {handshake_timeout,handshake} In-Reply-To: References: Message-ID: On oct 1, 2013, at 7:11 p.m., Tia wrote: > I get the following error in my RabbitMQ: > =ERROR REPORT==== 1-Oct-2013::15:35:01 === > closing AMQP connection <0.27445.0> ([::1]:48042 -> [::1]:5672): > {handshake_timeout,handshake} > > After googling, it seems that I have to recompile RabbitMQ with a higher handshake_timeout to avoid this error. Unless you have *really* high network latency between the client and rabbit node, it likely indicates an issue in the client that does not perform connection negotiation properly (e.g. there is an exception mid-process). MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From ceri at lshift.net Wed Oct 2 11:09:23 2013 From: ceri at lshift.net (Ceri Storey) Date: Wed, 02 Oct 2013 11:09:23 +0100 Subject: [rabbitmq-discuss] ANN Bunny 1.0.0.rc1 In-Reply-To: References: Message-ID: <524BF0D3.30500@lshift.net> (02/10/13 09:26), Michael Klishin wrote: > Bunny 1.0.0.rc1 is released. There are virtually no changes from 0.10.7, > so it should be very easy to give it a try. > > Release notes: > http://blog.rubyrabbitmq.info/blog/2013/10/02/bunny-1-dot-0-0-dot-rc1-is-released/ > > As the blog post explains, we give Bunny 4 more cool down weeks before 1.0 final, > so if you wanted to report a significant issue, now is your time to do it. This is more of a feature request, but would it be possible to add a callback for connection-level errors, rather than having them thrown on thread that created the Bunny session? I'm happy to raise a github issue, but felt it maybe warrants a little discussion first. Thanks! From michael at rabbitmq.com Wed Oct 2 12:30:38 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Wed, 2 Oct 2013 15:30:38 +0400 Subject: [rabbitmq-discuss] ANN Bunny 1.0.0.rc1 In-Reply-To: <524BF0D3.30500@lshift.net> References: <524BF0D3.30500@lshift.net> Message-ID: <6904D2FD-613E-443D-ACDF-82CB7549F869@rabbitmq.com> On oct 2, 2013, at 2:09 p.m., Ceri Storey wrote: > would it be possible to add a > callback for connection-level errors, rather than having them thrown on > thread that created the Bunny session? Connection-level exceptions *are* exceptions. They are rare, should be very visible and cannot be recovered from. What are the benefits of using callbacks? It's easy to forget to define one while exceptions are very visible. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From xani666 at gmail.com Wed Oct 2 13:18:30 2013 From: xani666 at gmail.com (Mariusz Gronczewski) Date: Wed, 2 Oct 2013 14:18:30 +0200 Subject: [rabbitmq-discuss] RabbitMQ 3.2 and federated queues In-Reply-To: <5245B80A.5000307@rabbitmq.com> References: <0faa3ea1-bfe2-4a0c-aa33-ed5159d1b0a6@googlegroups.com> <524575DE.8080201@rabbitmq.com> <52459531.8000004@rabbitmq.com> <5245B80A.5000307@rabbitmq.com> Message-ID: 2013/9/27 Simon MacMullen > On 27/09/2013 3:56PM, Mariusz Gronczewski wrote: > >> Is there any way to query exchange about what queues are subscribed to >> it over STOMP? I'd like to fix it by simply making server wait for >> client subscription to exchange before sending reply. >> > > Not over STOMP I'm afraid. You might be able to get away with using > mandatory publishing in AMQP, depending on how things are set up. > > Cheers, Simon > > Is there any way to check over STOMP if queue exists ? I've noticed that if I send message to nonexisting queue it just creates it. -- Mariusz Gronczewski (XANi) GnuPG: 0xEA8ACE64 -------------- next part -------------- An HTML attachment was scrubbed... URL: From ceri at lshift.net Wed Oct 2 13:27:45 2013 From: ceri at lshift.net (Ceri Storey) Date: Wed, 02 Oct 2013 13:27:45 +0100 Subject: [rabbitmq-discuss] ANN Bunny 1.0.0.rc1 In-Reply-To: <6904D2FD-613E-443D-ACDF-82CB7549F869@rabbitmq.com> References: <524BF0D3.30500@lshift.net> <6904D2FD-613E-443D-ACDF-82CB7549F869@rabbitmq.com> Message-ID: <524C1141.3040509@lshift.net> (02/10/13 12:30), Michael Klishin wrote: > On oct 2, 2013, at 2:09 p.m., Ceri Storey wrote: > >> would it be possible to add a >> callback for connection-level errors, rather than having them thrown on >> thread that created the Bunny session? > Connection-level exceptions *are* exceptions. They are rare, should be > very visible and cannot be recovered from. Sure, I'd agree. > What are the benefits of using callbacks? It's easy to forget to define one > while exceptions are very visible. I wouldn't suggest that we change the default behavior, as the current halt-and-catch-fire behavior is a reasonable default. The only reason I take issue with it is one of safety--at the moment, because the exceptions are thrown asynchronously to a "main" thread, you have to ensure that you're within a given dynamic extent during the entire time that you have an open Bunny session. Also, we need to ensure that any sensitive operations (ie: ones that you really don't want to have a random exception fire in the middle of) happen off that main thread. So, to give a more concrete example: We use Rack's rackup command to run our web application. So in a sense, you have a kind of inversion of control. We construct our application from a wiring module which returns a Rack-compatible callable. However, once control has returned to rackup, we no longer have control over the main thread of the application. So, currently, if an AMQP exception happens in the process, then the rackup process exits with a failure status, and would need to be restarted. Even if we boot a web server ourselves, if we run that (again) in the main thread and an AMQP exception happens, then it's possible that the server will be left in a state that it can't recover from. Eg: Listening on a given port, but with no way to re-start the process that accepts connections. Again, we could handle that in a separate thread, but I'd be reasonably confident that we won't be the only ones impacted by this. So this would be more of an optional extra along the lines of the shutdown listener in the Java client for those who need the extra control. From michael at rabbitmq.com Wed Oct 2 13:33:35 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Wed, 2 Oct 2013 16:33:35 +0400 Subject: [rabbitmq-discuss] ANN Bunny 1.0.0.rc1 In-Reply-To: <524C1141.3040509@lshift.net> References: <524BF0D3.30500@lshift.net> <6904D2FD-613E-443D-ACDF-82CB7549F869@rabbitmq.com> <524C1141.3040509@lshift.net> Message-ID: <7A08E0DC-AB48-4D5C-9A1C-DD1DF611CBDE@rabbitmq.com> On oct 2, 2013, at 4:27 p.m., Ceri Storey wrote: > So this would be more of an optional extra along the lines of the > shutdown listener in the Java client for those who need the extra control. Fair enough. Can you think of a sensible Bunny::Session#initialize option name for this? MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From ceri at lshift.net Wed Oct 2 13:52:45 2013 From: ceri at lshift.net (Ceri Storey) Date: Wed, 02 Oct 2013 13:52:45 +0100 Subject: [rabbitmq-discuss] ANN Bunny 1.0.0.rc1 In-Reply-To: <7A08E0DC-AB48-4D5C-9A1C-DD1DF611CBDE@rabbitmq.com> References: <524BF0D3.30500@lshift.net> <6904D2FD-613E-443D-ACDF-82CB7549F869@rabbitmq.com> <524C1141.3040509@lshift.net> <7A08E0DC-AB48-4D5C-9A1C-DD1DF611CBDE@rabbitmq.com> Message-ID: <524C171D.3000609@lshift.net> (02/10/13 13:33), Michael Klishin wrote: > On oct 2, 2013, at 4:27 p.m., Ceri Storey wrote: > >> So this would be more of an optional extra along the lines of the >> shutdown listener in the Java client for those who need the extra control. > Fair enough. Can you think of a sensible Bunny::Session#initialize option name > for this? Ideally, because we use RabbitMQ for managing claims on a job (ie: ensuring no two processors handle the same work item) it'd be cool to have something that gets called on general disconnections as well. So, maybe :on_connection_error for just errors, or :on_disconnect for both clean and unclean disconnects? > > MK > > > > > > _______________________________________________ > 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 at rabbitmq.com Wed Oct 2 14:07:25 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Wed, 2 Oct 2013 17:07:25 +0400 Subject: [rabbitmq-discuss] ANN Bunny 1.0.0.rc1 In-Reply-To: <524C171D.3000609@lshift.net> References: <524BF0D3.30500@lshift.net> <6904D2FD-613E-443D-ACDF-82CB7549F869@rabbitmq.com> <524C1141.3040509@lshift.net> <7A08E0DC-AB48-4D5C-9A1C-DD1DF611CBDE@rabbitmq.com> <524C171D.3000609@lshift.net> Message-ID: <43B02BA6-42AD-420D-9102-D1FF0535D64C@rabbitmq.com> On oct 2, 2013, at 4:52 p.m., Ceri Storey wrote: > Ideally, because we use RabbitMQ for managing claims on a job (ie: ensuring no two processors handle the same work item) it'd be cool to have something that gets called on general disconnections as well. So, maybe:on_connection_error for just errors, or :on_disconnect for both clean and unclean disconnects? I'm not talking about options to define callbacks, but rather to disable the current (and future default) behavior. Callbacks will be defined via methods (we already have a couple). Also, "connection error" may mislead some people to believe that it covers network connection failures, which is a separate matter. :on_connection_level_exception is the best name I can come up with so far. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From rabarijaonadomoina at gmail.com Wed Oct 2 13:21:48 2013 From: rabarijaonadomoina at gmail.com (Tia) Date: Wed, 2 Oct 2013 05:21:48 -0700 (PDT) Subject: [rabbitmq-discuss] {handshake_timeout,handshake} In-Reply-To: References: Message-ID: <398e3017-da01-47ad-a88b-53b240ddb394@googlegroups.com> Hi, Thanks for replying. Yes, I see the error every time I attempt to connect. Is there any way to find out what is the thing which slow down the handshake ? The producer Php and the consumer Java are on the same machine. So, there is no network latency. But I will look at the php script if there is any exception. Tia -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael at rabbitmq.com Wed Oct 2 14:51:00 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Wed, 2 Oct 2013 17:51:00 +0400 Subject: [rabbitmq-discuss] {handshake_timeout,handshake} In-Reply-To: <398e3017-da01-47ad-a88b-53b240ddb394@googlegroups.com> References: <398e3017-da01-47ad-a88b-53b240ddb394@googlegroups.com> Message-ID: <463F1117-557E-4762-B8A8-A91C5EFF5AE5@rabbitmq.com> On oct 2, 2013, at 4:21 p.m., Tia wrote: > Thanks for replying. Yes, I see the error every time I attempt to connect. > > Is there any way to find out what is the thing which slow down the handshake ? Wireshark or RabbitMQ tracer tool (ships with the Java client) can help you see what's going up and down the wire. Which PHP client do you use? Do you see the timeout with the PHP producer only or also with the Java consumer? MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From sp345s at att.com Wed Oct 2 15:04:28 2013 From: sp345s at att.com (PATAR, SAGAR) Date: Wed, 2 Oct 2013 14:04:28 +0000 Subject: [rabbitmq-discuss] License Message-ID: <59BF56992750434F89F8EBE141E64B1D0181FB90@GAALPA1MSGUSR9C.ITServices.sbc.com> What kind of a license do we ne to get for a commercial use .. Also do we have to purchase the support package separately or is it included with the license ... For failover scenarios between cluster located in 2 different data centers (WAN) I guess we should be able to use Federation/Shovel .. .. Can we sync up the two clusters only on few exchanges instead of all the all the exchanges .. we don't want to get into the message/data traffic issues we just wanted to safeguard few type of messages only ... Is it possible ?? Thanks in advance .. Sagar , Patur Sr. Software Engineer AT&T - Digital Life, Innovative Services 754 Peachtree St, Atlanta, GA 30308 Office - 404.986.6577 sp345s at att.com [cid:image001.png at 01CDF950.CBA0B7E0] -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.png Type: image/png Size: 3976 bytes Desc: image001.png URL: From farooq.khan at emc.com Wed Oct 2 15:05:24 2013 From: farooq.khan at emc.com (Khan, Farooq) Date: Wed, 2 Oct 2013 10:05:24 -0400 Subject: [rabbitmq-discuss] AMQP Connections over a Socks Proxy Message-ID: Hi, I was hoping that by setting the jvm system properties "socksProxyHost" and "socksProxyPort" Spring AMQP ConnectionFactory would go over the proxy however it does not. I attempted to browser through the code and I reached upto here in the Class: com.rabbitmq.client.ConnectionFactory in AMQP Client Library (I browsed the code via GrepCode) 436 protected FrameHandler createFrameHandler(Address addr) 437 throws IOException { 438 439 String hostName = addr.getHost(); 440 int portNumber = portOrDefault(addr.getPort()); 441 Socket socket = null; 442 try { 443 socket = factory.createSocket(); 444 configureSocket(socket); 445 socket.connect(new InetSocketAddress(hostName, portNumber), 446 connectionTimeout); 447 return createFrameHandler(socket); 448 } catch (IOException ioe) { 449 quietTrySocketClose(socket); 450 throw ioe; 451 } 452 } This certainly does not honor the JVM proxy settings. Or am I looking at the wrong place. My Question: Is there a way to make the amqp connection go over a socks proxy? Thanks Farooq -------------- next part -------------- An HTML attachment was scrubbed... URL: From emile at rabbitmq.com Wed Oct 2 15:38:41 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Wed, 02 Oct 2013 15:38:41 +0100 Subject: [rabbitmq-discuss] License In-Reply-To: <59BF56992750434F89F8EBE141E64B1D0181FB90@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D0181FB90@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: <524C2FF1.1020303@rabbitmq.com> Hi, On 02/10/13 15:04, PATAR, SAGAR wrote: > What kind of a license do we ne to get for a commercial use .. Also do > we have to purchase the support package separately or is it included > with the license ? You can buy commercial support for RabbitMQ, either for the MPL licensed version or the vFabric packaged version under the VMware EULA: http://www.vmware.com/uk/download/eula/universal_eula.html In this case you also get entitlement to the JMS client. If you have further questions please send to support at rabbitmq.com > For failover scenarios between cluster located in 2 different data > centers (WAN) I guess we should be able to use Federation/Shovel .. .. You should avoid clusters that span unreliable networks. See http://www.rabbitmq.com/partitions.html http://www.rabbitmq.com/distributed.html > Can we sync up the two clusters only on few exchanges instead of all the > all the exchanges .. we don?t want to get into the message/data traffic > issues we just wanted to safeguard few type of messages only ? Is it > possible ?? You can define a high-availability policy that causes only a subset of queues to be mirrored. For details see http://www.rabbitmq.com/ha.html http://www.rabbitmq.com/parameters.html#policies -Emile From sp345s at att.com Wed Oct 2 15:43:00 2013 From: sp345s at att.com (PATAR, SAGAR) Date: Wed, 2 Oct 2013 14:43:00 +0000 Subject: [rabbitmq-discuss] License In-Reply-To: <524C2FF1.1020303@rabbitmq.com> References: <59BF56992750434F89F8EBE141E64B1D0181FB90@GAALPA1MSGUSR9C.ITServices.sbc.com> <524C2FF1.1020303@rabbitmq.com> Message-ID: <59BF56992750434F89F8EBE141E64B1D0181FBF1@GAALPA1MSGUSR9C.ITServices.sbc.com> In regards to the cluster ... we will be having 2 different clusters .. one of them will be a backup just in case the primary cluster goes down ...we wanted to check if federation can be used to sync up these two different env's on a WAN on just few queues... -----Original Message----- From: Emile Joubert [mailto:emile at rabbitmq.com] Sent: Wednesday, October 02, 2013 10:39 AM To: Discussions about RabbitMQ Cc: PATAR, SAGAR Subject: Re: [rabbitmq-discuss] License Hi, On 02/10/13 15:04, PATAR, SAGAR wrote: > What kind of a license do we ne to get for a commercial use .. Also do > we have to purchase the support package separately or is it included > with the license ... You can buy commercial support for RabbitMQ, either for the MPL licensed version or the vFabric packaged version under the VMware EULA: http://www.vmware.com/uk/download/eula/universal_eula.html In this case you also get entitlement to the JMS client. If you have further questions please send to support at rabbitmq.com > For failover scenarios between cluster located in 2 different data > centers (WAN) I guess we should be able to use Federation/Shovel .. .. You should avoid clusters that span unreliable networks. See http://www.rabbitmq.com/partitions.html http://www.rabbitmq.com/distributed.html > Can we sync up the two clusters only on few exchanges instead of all the > all the exchanges .. we don't want to get into the message/data traffic > issues we just wanted to safeguard few type of messages only ... Is it > possible ?? You can define a high-availability policy that causes only a subset of queues to be mirrored. For details see http://www.rabbitmq.com/ha.html http://www.rabbitmq.com/parameters.html#policies -Emile From emile at rabbitmq.com Wed Oct 2 17:19:07 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Wed, 02 Oct 2013 17:19:07 +0100 Subject: [rabbitmq-discuss] License In-Reply-To: <59BF56992750434F89F8EBE141E64B1D0181FBF1@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D0181FB90@GAALPA1MSGUSR9C.ITServices.sbc.com> <524C2FF1.1020303@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D0181FBF1@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: <524C477B.1050909@rabbitmq.com> Hi, On 02/10/13 15:43, PATAR, SAGAR wrote: > In regards to the cluster ... we will be having 2 different clusters > .. one of them will be a backup just in case the primary cluster goes > down ...we wanted to check if federation can be used to sync up these > two different env's on a WAN on just few queues... Yes, federation can apply to a subset of exchanges using policies. Also see http://www.rabbitmq.com/federation.html#clustering -Emile From sp345s at att.com Wed Oct 2 17:57:44 2013 From: sp345s at att.com (PATAR, SAGAR) Date: Wed, 2 Oct 2013 16:57:44 +0000 Subject: [rabbitmq-discuss] License In-Reply-To: <524C477B.1050909@rabbitmq.com> References: <59BF56992750434F89F8EBE141E64B1D0181FB90@GAALPA1MSGUSR9C.ITServices.sbc.com> <524C2FF1.1020303@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D0181FBF1@GAALPA1MSGUSR9C.ITServices.sbc.com> <524C477B.1050909@rabbitmq.com> Message-ID: <59BF56992750434F89F8EBE141E64B1D0181FCD0@GAALPA1MSGUSR9C.ITServices.sbc.com> Thanks .. We have a scenario where we need to expose our cluster to WAN so that clients can publish/subscribe for messages .. We wanted to see if rabbitMQ provides a load balancer capability so the messages/consumers are distributed evenly in the cluster (mirrored queue master/slave cluster) .. Also we want to expose an single AMQP or STOMP url to our clients so that clients are not aware of any internal changes and are not affected when we have the below scenarios ..like new slaves added or slaves removed or master changed or IP of the master/slaves change internally etc ... Do you think we need to have a Load blancer to abstract rabbitMQ to provide the above ... -----Original Message----- From: Emile Joubert [mailto:emile at rabbitmq.com] Sent: Wednesday, October 02, 2013 12:19 PM To: PATAR, SAGAR Cc: Discussions about RabbitMQ Subject: Re: [rabbitmq-discuss] License Hi, On 02/10/13 15:43, PATAR, SAGAR wrote: > In regards to the cluster ... we will be having 2 different clusters > .. one of them will be a backup just in case the primary cluster goes > down ...we wanted to check if federation can be used to sync up these > two different env's on a WAN on just few queues... Yes, federation can apply to a subset of exchanges using policies. Also see http://www.rabbitmq.com/federation.html#clustering -Emile From k.madnani84 at gmail.com Wed Oct 2 21:11:40 2013 From: k.madnani84 at gmail.com (k.madnani84) Date: Wed, 2 Oct 2013 13:11:40 -0700 (PDT) Subject: [rabbitmq-discuss] Throughput and Latency. Message-ID: <1380744700752-30107.post@n5.nabble.com> Hi, There are various factors which effect throughput and Latency of rabbitmq like auto-ack flag,persistent flag,publisher confirms,types of exchange etc. but can any body tell what throughput value could be considered as a good and considerable value and what could be considered as a bad value.Some like benchmark or threshold value. Similarly for Latency? Thanks & Regards, Kuldip Madnani -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Throughput-and-Latency-tp30107.html Sent from the RabbitMQ mailing list archive at Nabble.com. From videlalvaro at gmail.com Wed Oct 2 23:02:07 2013 From: videlalvaro at gmail.com (Alvaro Videla) Date: Wed, 2 Oct 2013 17:02:07 -0500 Subject: [rabbitmq-discuss] Throughput and Latency. In-Reply-To: <1380744700752-30107.post@n5.nabble.com> References: <1380744700752-30107.post@n5.nabble.com> Message-ID: Hi, Perhaps these blogposts could help you? http://www.rabbitmq.com/blog/2012/04/17/rabbitmq-performance-measurements-part-1/ http://www.rabbitmq.com/blog/2012/04/25/rabbitmq-performance-measurements-part-2/ Regards, Alvaro On Wed, Oct 2, 2013 at 3:11 PM, k.madnani84 wrote: > Hi, > > There are various factors which effect throughput and Latency of rabbitmq > like auto-ack flag,persistent flag,publisher confirms,types of exchange > etc. > but can any body tell what throughput value could be considered as a good > and considerable value and what could be considered as a bad value.Some > like > benchmark or threshold value. > > Similarly for Latency? > > Thanks & Regards, > Kuldip Madnani > > > > -- > View this message in context: > http://rabbitmq.1065348.n5.nabble.com/Throughput-and-Latency-tp30107.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 fgutierrezcruz at gopivotal.com Thu Oct 3 01:36:25 2013 From: fgutierrezcruz at gopivotal.com (Felipe Gutierrez Cruz) Date: Wed, 2 Oct 2013 18:36:25 -0600 Subject: [rabbitmq-discuss] Hash passwords Message-ID: <43467430-DE5E-44CB-8825-C0BF726250BB@gopivotal.com> Hi, We have a client that is asking if they can send a HASH of the password through the web console and/or programmatically. Is there any way to do that?? I found on the net that only on the REST API you can do it? Any advice? Thanks, Felipe Gutierrez Sr. Consultant SpringSource/GoPivotal M. 505-918-3563 Skype: felipeg48 -------------- next part -------------- An HTML attachment was scrubbed... URL: From fgutierrezcruz at gopivotal.com Thu Oct 3 01:44:14 2013 From: fgutierrezcruz at gopivotal.com (Felipe Gutierrez Cruz) Date: Wed, 2 Oct 2013 18:44:14 -0600 Subject: [rabbitmq-discuss] Network partitions Message-ID: Hi, We have a client with some issues with Network Partitions on their cluster, but the deal here is that they are in the same network. Also they are doing shovel to another data center. But they are having trouble with the cluster on the 1st DC. I'm requesting to the clients the logs to dig more about the problem, I'll post them later here. Any idea what this is?? Thanks, They are using the RabbitMQ 3.1.3 And its first DC is with these IP's 17.170.226.33 17.170.226.34 Then the other DC with: 17.169.10.84 17.169.10.85 Felipe Gutierrez Sr. Consultant SpringSource/GoPivotal -------------- next part -------------- An HTML attachment was scrubbed... URL: From videlalvaro at gmail.com Thu Oct 3 02:27:58 2013 From: videlalvaro at gmail.com (Alvaro Videla) Date: Wed, 2 Oct 2013 20:27:58 -0500 Subject: [rabbitmq-discuss] Network partitions In-Reply-To: References: Message-ID: While I don't know about your exact problem keep in mind that a GC pause could appear as a network partition. Also on some situation very big messages can cause network partitions since Erlang nodes won't be able to ping each other. On Wednesday, October 2, 2013, Felipe Gutierrez Cruz wrote: > Hi, We have a client with some issues with Network Partitions on their > cluster, but the deal here is that they are in the same network. > > Also they are doing shovel to another data center. But they are having > trouble with the cluster on the 1st DC. > > I'm requesting to the clients the logs to dig more about the problem, I'll > post them later here. > > Any idea what this is?? > > Thanks, > > They are using the RabbitMQ 3.1.3 > > And its first DC is with these IP's > > 17.170.226.33 > > 17.170.226.34 > > Then the other DC with: > > 17.169.10.84 > > 17.169.10.85 > > > *Felipe Gutierrez > * > *Sr. Consultant* > *SpringSource/GoPivotal* > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From k.madnani84 at gmail.com Thu Oct 3 03:54:32 2013 From: k.madnani84 at gmail.com (k.madnani84) Date: Wed, 2 Oct 2013 19:54:32 -0700 (PDT) Subject: [rabbitmq-discuss] Throughput and Latency. In-Reply-To: References: <1380744700752-30107.post@n5.nabble.com> Message-ID: <1380768872968-30112.post@n5.nabble.com> That actually doesnt gives me a benchmark because the test is being executed in one of the fastest machine and throughput is very high.I was looking some considerable values. -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Throughput-and-Latency-tp30107p30112.html Sent from the RabbitMQ mailing list archive at Nabble.com. From sekhar434145 at gmail.com Thu Oct 3 06:41:09 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Thu, 3 Oct 2013 11:11:09 +0530 Subject: [rabbitmq-discuss] Diff b/w running RabbitMQ server as an application or as an service? Message-ID: Hi, While going through the documentation, I came across two terms, one is *application *and other is *service. *Can anyone please explain what is the difference between running RabbitMQ server as an application or as an service? And which one need to use in development? Thanks, Pandi -------------- next part -------------- An HTML attachment was scrubbed... URL: From sekhar434145 at gmail.com Thu Oct 3 07:31:22 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Thu, 3 Oct 2013 12:01:22 +0530 Subject: [rabbitmq-discuss] rabbitmq-env.conf file location in windows? Message-ID: Hi, What is the location of *rabbitmq-env.conf *file in windows to configure environment variable related to rabbitmq? Thanks, Pandi -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Thu Oct 3 08:12:41 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 03 Oct 2013 08:12:41 +0100 Subject: [rabbitmq-discuss] rabbitmq-env.conf file location in windows? In-Reply-To: References: Message-ID: <524D18E9.3090700@rabbitmq.com> There isn't one. You have to configure environment variables via the control panel. Cheers, Simon On 03/10/2013 7:31AM, Rajasekhar P wrote: > Hi, > > What is the location of *rabbitmq-env.conf *file in windows to configure > environment variable related to rabbitmq? > > > Thanks, > Pandi > > > _______________________________________________ > 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 simon at rabbitmq.com Thu Oct 3 08:14:28 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 03 Oct 2013 08:14:28 +0100 Subject: [rabbitmq-discuss] Diff b/w running RabbitMQ server as an application or as an service? In-Reply-To: References: Message-ID: <524D1954.7010806@rabbitmq.com> On 03/10/2013 6:41AM, Rajasekhar P wrote: > While going through the documentation, I came across two terms, one is > *application *and other is *service. *Can anyone please explain what is > the difference between running RabbitMQ server as an application or as > an service? This is in the context of Windows. "As a service" -> running in the background, started and stopped via the services control panel. "As an application" -> running in the foreground, started from the start menu or cmd.exe. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From sekhar434145 at gmail.com Thu Oct 3 08:23:08 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Thu, 3 Oct 2013 12:53:08 +0530 Subject: [rabbitmq-discuss] rabbitmq-env.conf file location in windows? In-Reply-To: <524D18E9.3090700@rabbitmq.com> References: <524D18E9.3090700@rabbitmq.com> Message-ID: Thanks for the reply Simon. But in the documentation http://www.rabbitmq.com/man/rabbitmq-env.conf.5.man.html we can configure ENVT variables in etc/rabbitmq/rabbitmq-env.conf file instead of setting in control panel. What I have done is created rabbitmq-env.conf file under %appdata%/RabbitMQ/rabbitmq folder with the below configuration and restarted the server. But node name is not changing. # I am a complete /etc/rabbitmq/rabbitmq-env.conf file. # Comment lines start with a hash character. # This is a /bin/sh script file - use ordinary envt var syntax NODENAME=hare Could you please tell me where am doing the mistake? On Thu, Oct 3, 2013 at 12:42 PM, Simon MacMullen wrote: > There isn't one. You have to configure environment variables via the > control panel. > > Cheers, Simon > > > On 03/10/2013 7:31AM, Rajasekhar P wrote: > >> Hi, >> >> What is the location of *rabbitmq-env.conf *file in windows to configure >> >> environment variable related to rabbitmq? >> >> >> Thanks, >> Pandi >> >> >> ______________________________**_________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.**rabbitmq.com >> https://lists.rabbitmq.com/**cgi-bin/mailman/listinfo/**rabbitmq-discuss >> >> > -- > Simon MacMullen > RabbitMQ, Pivotal > -------------- next part -------------- An HTML attachment was scrubbed... URL: From brian.santiago at gmail.com Thu Oct 3 09:27:29 2013 From: brian.santiago at gmail.com (=?UTF-8?Q?Santi_Nu=C3=B1ez-Cacho?=) Date: Thu, 3 Oct 2013 01:27:29 -0700 (PDT) Subject: [rabbitmq-discuss] cluster upgrade 3.0 -> 3.1 - Downtime. Message-ID: <22ba23b0-81f2-42e5-945a-535fb38f1e8d@googlegroups.com> Hi, We want to upgrade cluster from 3.0.1 => 3.1.5 Centos 6.4, cluster consisting of 2 nodes. rabbitmq documentation claims that downtime is needed because 3.0.1 and 3.1.5 cannot be mixed in a cluster. In order to take the cluster down, or find a method to not to, I want to know if this will be fixed in the future. I mean, this "not same versions running in the same cluster" If newer versions fix that, I won't care too much, because this will be a unique job maintenance downtime. But if this could happen in the future, maybe I should work a "upgrade cluster method without downtime" out. Cheers! -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael at rabbitmq.com Thu Oct 3 09:29:33 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Thu, 3 Oct 2013 12:29:33 +0400 Subject: [rabbitmq-discuss] Network partitions In-Reply-To: References: Message-ID: <90A0167F-D3A6-4DC1-834E-C79194B06F27@rabbitmq.com> On oct 3, 2013, at 4:44 a.m., Felipe Gutierrez Cruz wrote: > We have a client with some issues with Network Partitions on their cluster, but the deal here is that they are in the same network. It can be due to a misconfiguration, hardware failure and many other reasons. Only with a full system log there is a chance of diagnosing the issue. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From brian.santiago at gmail.com Thu Oct 3 09:30:12 2013 From: brian.santiago at gmail.com (=?UTF-8?Q?Santi_Nu=C3=B1ez-Cacho?=) Date: Thu, 3 Oct 2013 01:30:12 -0700 (PDT) Subject: [rabbitmq-discuss] Debugging RabbitMQ memory usage In-Reply-To: <8adc7fd0-2e20-48b6-bf36-ed2ca4d43136@googlegroups.com> References: <8adc7fd0-2e20-48b6-bf36-ed2ca4d43136@googlegroups.com> Message-ID: <064aadd9-01a1-48a4-93e8-42715ad84b8e@googlegroups.com> Are you using keepalived as LVS On Tuesday, October 1, 2013 5:55:37 PM UTC+2, Mariusz Gronczewski wrote: > > Hi, > > I have 2 clusers, 2 nodes each with same configuration. One node is > serving most of the traffic (about 100 req/sec via STOMP/SSL, basically > zero messages staying in queues) while other is "backup". Plugins are > management, management_federation, federation and stomp) > > I have noticed that on clusterA, master node eats above 2GB RAM (after 2 > days of uptime, slowly growing), mostly in "Plugins" and "Binaries", and in > clusterB both nodes are below 200MB RAM usage. Only difference is that on > clusterA stats are gathered on same node serving traffic while on clusterB > stats are on "secondary" node. > > Software configuration is basically identical (I used puppet to deploy > both at same time), and clusterA is on slower machines, but by no means > overloaded (using maybe 5% CPU). > > version: RabbitMQ 3.1.5.40927, Erlang R15B01, but same thing occurs on > current stable 3.1.5 > > Is there any way to debug what uses it and why it is leaking memory ? > > Cheers > Mariusz > -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael at rabbitmq.com Thu Oct 3 09:39:40 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Thu, 3 Oct 2013 12:39:40 +0400 Subject: [rabbitmq-discuss] Throughput and Latency. In-Reply-To: <1380768872968-30112.post@n5.nabble.com> References: <1380744700752-30107.post@n5.nabble.com> <1380768872968-30112.post@n5.nabble.com> Message-ID: On oct 3, 2013, at 6:54 a.m., k.madnani84 wrote: > That actually doesnt gives me a benchmark because the test is being executed > in one of the fastest machine and throughput is very high.I was looking some > considerable values. Unfortunately, it's not possible to tell what "good throughput" or "good latency" without knowing anything about * Median message size * Hardware used by nodes * Peak network capacity * Whether messages are published as persistent (and thus, have to be stored on disk) * How many queues are used in the workload * What client library is used * What exchange type is used (some are significantly less efficient algorithmically) * What concurrency rate is used with the load tool. What kind of hardware it uses. * TCP stack settings * What other software may be running on the same hardware and so on. On reasonably recent, medium tier hardware (say, last 3 years), it's known that a single Rabbit node can demonstrate throughput in the 25-35K msg/s range for transient messages. You can increase overall throughput by adding more nodes, more queues and connecting directly to nodes that host master for a particular queue (to avoid additional intra-cluster traffic routing). Ultimately, the good number is the one that works well for your problem and has some headroom for load peaks. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From michael at rabbitmq.com Thu Oct 3 09:44:07 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Thu, 3 Oct 2013 12:44:07 +0400 Subject: [rabbitmq-discuss] cluster upgrade 3.0 -> 3.1 - Downtime. In-Reply-To: <22ba23b0-81f2-42e5-945a-535fb38f1e8d@googlegroups.com> References: <22ba23b0-81f2-42e5-945a-535fb38f1e8d@googlegroups.com> Message-ID: <353EB40E-1AA1-4701-B445-5AF02A7658DD@rabbitmq.com> On oct 3, 2013, at 12:27 p.m., Santi Nu?ez-Cacho wrote: > In order to take the cluster down, or find a method to not to, I want to know if this will be fixed in the future. I mean, this "not same versions running in the same cluster" Unlikely. Inter-node communication protocol and many other things may change between minor or major (but not point/patch) releases. If you are looking for full cluster upgrade options, a separate hot standby cluster that's connected over Shovel or Federation plugins is one way to do it. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From emile at rabbitmq.com Thu Oct 3 09:47:46 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Thu, 03 Oct 2013 09:47:46 +0100 Subject: [rabbitmq-discuss] cluster upgrade 3.0 -> 3.1 - Downtime. In-Reply-To: <22ba23b0-81f2-42e5-945a-535fb38f1e8d@googlegroups.com> References: <22ba23b0-81f2-42e5-945a-535fb38f1e8d@googlegroups.com> Message-ID: <524D2F32.1080706@rabbitmq.com> Hi, On 03/10/13 09:27, Santi Nu?ez-Cacho wrote: > rabbitmq documentation claims that downtime is needed because 3.0.1 and > 3.1.5 cannot be mixed in a cluster. There are no immediate plans to support seamless upgrades across major versions. In general only upgrades between patch versions (e.g. 3.0.x to 3.0.y) can be performed without downtime. The exceptions are that 3.1.4 and 3.1.5 are not compatible with other older 3.1.x versions in the same cluster, and 3.0.0 is not compatible with newer versions from the 3.0.x series. See https://www.rabbitmq.com/clustering.html#upgrading -Emile From brian.santiago at gmail.com Thu Oct 3 09:49:08 2013 From: brian.santiago at gmail.com (=?ISO-8859-1?Q?Santi_Nu=F1ez=2DCacho?=) Date: Thu, 3 Oct 2013 10:49:08 +0200 Subject: [rabbitmq-discuss] cluster upgrade 3.0 -> 3.1 - Downtime. In-Reply-To: <524D2F32.1080706@rabbitmq.com> References: <22ba23b0-81f2-42e5-945a-535fb38f1e8d@googlegroups.com> <524D2F32.1080706@rabbitmq.com> Message-ID: what about next future releases ? will be compatible 3.2 with 3.1 ? On Thu, Oct 3, 2013 at 10:47 AM, Emile Joubert wrote: > > Hi, > > On 03/10/13 09:27, Santi Nu?ez-Cacho wrote: > > > rabbitmq documentation claims that downtime is needed because 3.0.1 and > > 3.1.5 cannot be mixed in a cluster. > > There are no immediate plans to support seamless upgrades across major > versions. > > In general only upgrades between patch versions (e.g. 3.0.x to 3.0.y) > can be performed without downtime. The exceptions are that 3.1.4 and > 3.1.5 are not compatible with other older 3.1.x versions in the same > cluster, and 3.0.0 is not compatible with newer versions from the 3.0.x > series. > See https://www.rabbitmq.com/clustering.html#upgrading > > > > > > -Emile > -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Thu Oct 3 09:52:36 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 03 Oct 2013 09:52:36 +0100 Subject: [rabbitmq-discuss] Throughput and Latency. In-Reply-To: References: <1380744700752-30107.post@n5.nabble.com> <1380768872968-30112.post@n5.nabble.com> Message-ID: <524D3054.1050103@rabbitmq.com> On 03/10/2013 9:39AM, Michael Klishin wrote: > On reasonably recent, medium tier hardware (say, last 3 years), it's known that a single > Rabbit node can demonstrate throughput in the 25-35K msg/s range for transient > messages. That's for a single producer / single queue / single consumer workload though, which will typically not use all the cores in a modern machine at 100%. So with more connections and queues you should be able to get more. But as Michael says, there are so many variables here that it's really best to do your own testing. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From emile at rabbitmq.com Thu Oct 3 09:52:56 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Thu, 03 Oct 2013 09:52:56 +0100 Subject: [rabbitmq-discuss] cluster upgrade 3.0 -> 3.1 - Downtime. In-Reply-To: References: <22ba23b0-81f2-42e5-945a-535fb38f1e8d@googlegroups.com> <524D2F32.1080706@rabbitmq.com> Message-ID: <524D3068.5090008@rabbitmq.com> On 03/10/13 09:49, Santi Nu?ez-Cacho wrote: > what about next future releases ? > will be compatible 3.2 with 3.1 ? There are no immediate plans to support seamless upgrades across major versions such as 3.1.x to 3.2.y. Upgrading a cluster of 3.1.x nodes to 3.2.y will require the cluster to be shut down. Please see http://www.rabbitmq.com/clustering.html#upgrading -Emile From simon at rabbitmq.com Thu Oct 3 09:55:33 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 03 Oct 2013 09:55:33 +0100 Subject: [rabbitmq-discuss] rabbitmq-env.conf file location in windows? In-Reply-To: References: <524D18E9.3090700@rabbitmq.com> Message-ID: <524D3105.80705@rabbitmq.com> On 03/10/2013 8:23AM, Rajasekhar P wrote: > Thanks for the reply Simon. > > But in the documentation > http://www.rabbitmq.com/man/rabbitmq-env.conf.5.man.html we can > configure ENVT variables in etc/rabbitmq/rabbitmq-env.conf file instead > of setting in control panel. That man page pertains to Unix. http://www.rabbitmq.com/configure.html says "On Unix-based systems (including Linux, MacOSX) you can create/edit rabbitmq-env.conf to define environment variables." Really, it doesn't work on Windows. Now, maybe it should, but it doesn't. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Thu Oct 3 10:21:03 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 03 Oct 2013 10:21:03 +0100 Subject: [rabbitmq-discuss] Network partitions In-Reply-To: References: Message-ID: <524D36FF.8040805@rabbitmq.com> On 03/10/2013 2:27AM, Alvaro Videla wrote: > While I don't know about your exact problem keep in mind that a GC pause > could appear as a network partition. Err, what? Where did you get that idea? > Also on some situation very big messages can cause network partitions > since Erlang nodes won't be able to ping each other. This is sadly still true. I had some idea that this was fixed in recent Erlang versions but I just tested with R16B01 and it's not. It's pretty hard to run into though - you need to be sending huge enough messages that each message takes a multiple of net_ticktime (i.e. by default 60 seconds) to transfer. I was only able to replicate it by building a cluster across a poor-quality wifi link. Which is obviously not recommended. Still, even the theoretical possibility is disquieting, so I think a future RabbitMQ release will chunk large messages across clusters. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Thu Oct 3 10:23:33 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 03 Oct 2013 10:23:33 +0100 Subject: [rabbitmq-discuss] Hash passwords In-Reply-To: <43467430-DE5E-44CB-8825-C0BF726250BB@gopivotal.com> References: <43467430-DE5E-44CB-8825-C0BF726250BB@gopivotal.com> Message-ID: <524D3795.4020702@rabbitmq.com> On 03/10/2013 1:36AM, Felipe Gutierrez Cruz wrote: > We have a client that is asking if they can send a HASH of the password > through the web console and/or programmatically. > Is there any way to do that?? I found on the net that only on the REST > API you can do it? Yes, you can only do that with the HTTP API. The web UI uses that underneath, but we don't expose that function through the add-user UI. You could craft a special configuration for "import configuration" to do it via the UI. Not sure what you mean by "programmatically" if not through the HTTP API. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From emile at rabbitmq.com Thu Oct 3 11:12:11 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Thu, 03 Oct 2013 11:12:11 +0100 Subject: [rabbitmq-discuss] AMQP Connections over a Socks Proxy In-Reply-To: References: Message-ID: <524D42FB.8060306@rabbitmq.com> Hi, On 02/10/13 15:05, Khan, Farooq wrote: > I was hoping that by setting the jvm system properties "socksProxyHost" > and "socksProxyPort" Spring AMQP ConnectionFactory would go over the > proxy however it does not. > This certainly does not honor the JVM proxy settings. Or am I looking at > the wrong place. My understanding is that the JVM implementation intercepts these properties and establishes connections differently based on their value. You should see the effect without needing to recompile or change either your own application or the client library. (If your proxy requires authentication then code changes may be necessary.) I would suggest confirming that your JVM behaves as expected with the supplied parameters by testing with a simpler piece of code first, and then try the same with the library. -Emile From xani666 at gmail.com Thu Oct 3 11:34:35 2013 From: xani666 at gmail.com (Mariusz Gronczewski) Date: Thu, 3 Oct 2013 03:34:35 -0700 (PDT) Subject: [rabbitmq-discuss] Debugging RabbitMQ memory usage In-Reply-To: <064aadd9-01a1-48a4-93e8-42715ad84b8e@googlegroups.com> References: <8adc7fd0-2e20-48b6-bf36-ed2ca4d43136@googlegroups.com> <064aadd9-01a1-48a4-93e8-42715ad84b8e@googlegroups.com> Message-ID: <4983133e-791a-4520-b89d-562aafc3f92f@googlegroups.com> Nope, just heartbeat IP On Thursday, October 3, 2013 10:30:12 AM UTC+2, Santi Nu?ez-Cacho wrote: > > Are you using keepalived as LVS > > On Tuesday, October 1, 2013 5:55:37 PM UTC+2, Mariusz Gronczewski wrote: >> >> Hi, >> >> I have 2 clusers, 2 nodes each with same configuration. One node is >> serving most of the traffic (about 100 req/sec via STOMP/SSL, basically >> zero messages staying in queues) while other is "backup". Plugins are >> management, management_federation, federation and stomp) >> >> I have noticed that on clusterA, master node eats above 2GB RAM (after 2 >> days of uptime, slowly growing), mostly in "Plugins" and "Binaries", and in >> clusterB both nodes are below 200MB RAM usage. Only difference is that on >> clusterA stats are gathered on same node serving traffic while on clusterB >> stats are on "secondary" node. >> >> Software configuration is basically identical (I used puppet to deploy >> both at same time), and clusterA is on slower machines, but by no means >> overloaded (using maybe 5% CPU). >> >> version: RabbitMQ 3.1.5.40927, Erlang R15B01, but same thing occurs on >> current stable 3.1.5 >> >> Is there any way to debug what uses it and why it is leaking memory ? >> >> Cheers >> Mariusz >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From anandlramadurg at gmail.com Thu Oct 3 11:20:15 2013 From: anandlramadurg at gmail.com (Anand Ramadurg) Date: Thu, 3 Oct 2013 03:20:15 -0700 (PDT) Subject: [rabbitmq-discuss] CRL support In-Reply-To: <1312283298.17699.15.camel@vicbristol6.hpl.hp.com> References: <1312283298.17699.15.camel@vicbristol6.hpl.hp.com> Message-ID: <71c23d9f-c44a-40d2-92b0-f92b5ac49881@googlegroups.com> CRL functionality still not present in latest rabbitmq? If anybody created a erlang module to check this explicitly using {verify_fun, {YourModuleName, YourFunctionName}}, please share it. On Tuesday, August 2, 2011 4:38:18 PM UTC+5:30, Andrea Rosa wrote: > > Hi > > I am working with RabbitMQ with the SSL encryption enabled and > everything works fine. > I implemented a client and server authentication but if a client send a > revoked certificate the server accept the connection, I read that the > CRL is not yet supported by the new_ssl Erlang module, but I need to > manage also CRLs. > Do someone else facing with the same problem? > Have you experienced with some workaround to guarantee that a revoked > certificate is not accepted by Rabbit? > > Cheers > -- > Andrea > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq... at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From anandlramadurg at gmail.com Thu Oct 3 11:25:11 2013 From: anandlramadurg at gmail.com (Anand Ramadurg) Date: Thu, 3 Oct 2013 15:55:11 +0530 Subject: [rabbitmq-discuss] CRL support in RabbitMQ Message-ID: Default functionality of SSL rabbitmq doesnt validate if client certificate is already revoked or not. I need to enable this functionality. How should we do this? Some other forums i came to know that we need write an erlang module to do it. To hook your verification function into rabbit (nb: this is untested) ... 1) write an erlang module containing (and exporting) that function 2) In the rabbit/ssl_options section of the rabbitmq.config, add an entry {verify_fun, {YourModuleName, YourFunctionName}}. I have absolutely no idea on erlang , can somebody share a piece of sample code/steps to do it? Or is there any way to implement CRL functionality. Thanks in advance. -Anand -------------- next part -------------- An HTML attachment was scrubbed... URL: From emile at rabbitmq.com Thu Oct 3 12:55:25 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Thu, 03 Oct 2013 12:55:25 +0100 Subject: [rabbitmq-discuss] License In-Reply-To: <59BF56992750434F89F8EBE141E64B1D0181FCD0@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D0181FB90@GAALPA1MSGUSR9C.ITServices.sbc.com> <524C2FF1.1020303@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D0181FBF1@GAALPA1MSGUSR9C.ITServices.sbc.com> <524C477B.1050909@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D0181FCD0@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: <524D5B2D.8020504@rabbitmq.com> Hi, On 02/10/13 17:57, PATAR, SAGAR wrote: > We have a scenario where we need to expose our cluster to WAN so that > clients can publish/subscribe for messages .. We wanted to see if > rabbitMQ provides a load balancer capability so the > messages/consumers are distributed evenly in the cluster (mirrored > queue master/slave cluster) .. No, the broker does not include a load balancer. You may be able to insert one on the network though. > Do you think we need to have a Load blancer to abstract rabbitMQ to > provide the above ... Yes, you could place a load-balancer in front of the broker and configure it with the addresses of all the nodes in the cluster. The load balancer must be configured in such a way that consumers connected to a failed master node aren't transparently reconnected to a different node, because their subscription will need to be renewed. -Emile From emile at rabbitmq.com Thu Oct 3 14:10:55 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Thu, 03 Oct 2013 14:10:55 +0100 Subject: [rabbitmq-discuss] CRL support in RabbitMQ In-Reply-To: References: Message-ID: <524D6CDF.3050009@rabbitmq.com> On 03/10/13 11:25, Anand Ramadurg wrote: > I have absolutely no idea on erlang , can somebody share a piece of > sample code/steps to do it? Or is there any way to implement CRL > functionality. I can't find any public examples that you might use as a template, but even then this is pretty challenging for a first Erlang project. The feature you need may be implemented in Erlang at some point in the future. The erlang-questions mailing list is perhaps a better forum to get feedback. -Emile From fgutierrezcruz at gopivotal.com Thu Oct 3 15:11:18 2013 From: fgutierrezcruz at gopivotal.com (Felipe Gutierrez Cruz) Date: Thu, 3 Oct 2013 08:11:18 -0600 Subject: [rabbitmq-discuss] Hash passwords In-Reply-To: <524D3795.4020702@rabbitmq.com> References: <43467430-DE5E-44CB-8825-C0BF726250BB@gopivotal.com> <524D3795.4020702@rabbitmq.com> Message-ID: <01BC807F-AA01-4A3F-B5BD-C1DD548D247C@gopivotal.com> Hi Simon, Thanks for the response, The client wanted to know if through the Java API, you can pass the password hash and if that would be accepted (that's what I meant programmatically) Thanks again! Felipe Gutierrez Sr. Consultant SpringSource/GoPivotal On Oct 3, 2013, at 3:23 AM, Simon MacMullen wrote: > On 03/10/2013 1:36AM, Felipe Gutierrez Cruz wrote: >> We have a client that is asking if they can send a HASH of the password >> through the web console and/or programmatically. >> Is there any way to do that?? I found on the net that only on the REST >> API you can do it? > > Yes, you can only do that with the HTTP API. The web UI uses that underneath, but we don't expose that function through the add-user UI. You could craft a special configuration for "import configuration" to do it via the UI. > > Not sure what you mean by "programmatically" if not through the HTTP API. > > Cheers, Simon > > -- > Simon MacMullen > RabbitMQ, Pivotal -------------- next part -------------- An HTML attachment was scrubbed... URL: From fgutierrezcruz at gopivotal.com Thu Oct 3 15:15:05 2013 From: fgutierrezcruz at gopivotal.com (Felipe Gutierrez Cruz) Date: Thu, 3 Oct 2013 08:15:05 -0600 Subject: [rabbitmq-discuss] Network partitions In-Reply-To: <524D36FF.8040805@rabbitmq.com> References: <524D36FF.8040805@rabbitmq.com> Message-ID: Thanks Simon, Alvaro, I don't think they are using big messages at least less that 2k. I'll start looking at the logs, to see what I can find. Thanks again Felipe Gutierrez Sr. Consultant SpringSource/GoPivotal On Oct 3, 2013, at 3:21 AM, Simon MacMullen wrote: > On 03/10/2013 2:27AM, Alvaro Videla wrote: >> While I don't know about your exact problem keep in mind that a GC pause >> could appear as a network partition. > > Err, what? Where did you get that idea? > >> Also on some situation very big messages can cause network partitions >> since Erlang nodes won't be able to ping each other. > > This is sadly still true. I had some idea that this was fixed in recent Erlang versions but I just tested with R16B01 and it's not. > > It's pretty hard to run into though - you need to be sending huge enough messages that each message takes a multiple of net_ticktime (i.e. by default 60 seconds) to transfer. > > I was only able to replicate it by building a cluster across a poor-quality wifi link. Which is obviously not recommended. > > Still, even the theoretical possibility is disquieting, so I think a future RabbitMQ release will chunk large messages across clusters. > > Cheers, Simon > > -- > Simon MacMullen > RabbitMQ, Pivotal -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Thu Oct 3 15:20:27 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 03 Oct 2013 15:20:27 +0100 Subject: [rabbitmq-discuss] Hash passwords In-Reply-To: <01BC807F-AA01-4A3F-B5BD-C1DD548D247C@gopivotal.com> References: <43467430-DE5E-44CB-8825-C0BF726250BB@gopivotal.com> <524D3795.4020702@rabbitmq.com> <01BC807F-AA01-4A3F-B5BD-C1DD548D247C@gopivotal.com> Message-ID: <524D7D2B.6020009@rabbitmq.com> On 03/10/2013 3:11PM, Felipe Gutierrez Cruz wrote: > The client wanted to know if through the Java API, you can pass the > password hash and if that would be accepted (that's what I meant > programmatically) Ah, right. I assume they would hope that by doing that they would improve the security of the system "by not sending passwords in plaintext". In fact they would make the system *less* secure by doing so. Why do we hash and salt the password anyway? To try to make sure that if a hashed / salted password somehow leaks, then it can't be used to access the system. But if we allowed AMQP clients to authenticate password hashes, that would no longer be true - the hash would in effect *become* the password, so we would have lost the benefits of hashing in the first place. Now, there are some SASL mechanisms that allow you to do challenge-response authentication, such that the password does not go over the wire in plaintext. But the only one that's remotely standardised is CRAM-MD5 - and that requires you to store an *unsalted* MD5 hash - not a brilliant idea. So we don't support CRAM-MD5 or anything like it in RabbitMQ. The state of the art of challenge-response SASL auth for passwords has basically died - as far as I can see because it's hard to do it right, and SSL *does* get it right while also securing the entire transport. So the short answer is: use SSL if you want to be safe from wire-level snooping. Accept no substitutes! Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From tiagoboldt at gmail.com Thu Oct 3 15:43:45 2013 From: tiagoboldt at gmail.com (Tiago Boldt Sousa) Date: Thu, 3 Oct 2013 07:43:45 -0700 (PDT) Subject: [rabbitmq-discuss] Per-Connection Queue Creation and Deletion Message-ID: <83f4eaad-2c6c-4425-98fc-43d1035c4333@googlegroups.com> Hi, I've been adopting RabbitMQ in a new project. I'll need a clustered environment to support system failure and high-demand. On to the problem: queues must be created as exclusive whenever a client connects. If the client disconnects, I want the queue to be deleted, freeing its resources. Furthermore, queue binding to topics must be limited with per-credential permissions. Concluding, I would like to constraint connection to create only exclusive queues (that would auto-delete when the connection closes) and only bind such queue to a list of topics I would allow, configured per user account. I'm not being able to either limit queue creation to exclusive, nor limit the topics a client can subscribe to. I could impose this constraint based on VHOSTS, but that would require the dynamic creation of VHOSTS and probably hundreds of them. Is this possible in RabbitMQ? Is there a better approach to it? Best regards -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael at rabbitmq.com Thu Oct 3 16:13:44 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Thu, 3 Oct 2013 19:13:44 +0400 Subject: [rabbitmq-discuss] Per-Connection Queue Creation and Deletion In-Reply-To: <83f4eaad-2c6c-4425-98fc-43d1035c4333@googlegroups.com> References: <83f4eaad-2c6c-4425-98fc-43d1035c4333@googlegroups.com> Message-ID: <31BC2E34-1BBD-45C2-8AFC-2609E7457D15@rabbitmq.com> On oct 3, 2013, at 6:43 p.m., Tiago Boldt Sousa wrote: > I'm not being able to either limit queue creation to exclusive, This is not supported by access control. > nor limit the topics a client can subscribe to. Message distribution happens during routing, not consumption. You can limit what exchanges and queues a user can use, see http://www.rabbitmq.com/access-control.html > I could impose this constraint based on VHOSTS, but that would require the dynamic creation of VHOSTS and probably hundreds of them. Hundreds of vhosts is not a high number. While somewhat inconvenient, this may work well in practice. > Is this possible in RabbitMQ? Is there a better approach to it? You can enforce exclusive queue creation in your application code. As far as topic restrictions, you can create several users and limit their access only to particular topic exchanges. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From tiagoboldt at gmail.com Thu Oct 3 16:29:32 2013 From: tiagoboldt at gmail.com (Tiago Boldt Sousa) Date: Thu, 3 Oct 2013 16:29:32 +0100 Subject: [rabbitmq-discuss] Per-Connection Queue Creation and Deletion In-Reply-To: <31BC2E34-1BBD-45C2-8AFC-2609E7457D15@rabbitmq.com> References: <83f4eaad-2c6c-4425-98fc-43d1035c4333@googlegroups.com> <31BC2E34-1BBD-45C2-8AFC-2609E7457D15@rabbitmq.com> Message-ID: On Thu, Oct 3, 2013 at 4:13 PM, Michael Klishin wrote: > > On oct 3, 2013, at 6:43 p.m., Tiago Boldt Sousa > wrote: > > > I'm not being able to either limit queue creation to exclusive, > > This is not supported by access control. > Then I'll be forced to create queues per client before they connect, as I don't want them possibly leave zombie queues on the system, limiting only clients to read from queues. I can also bind these queues to the proper topics myself. One question remains: I could discard messages who have no client connected. Otherwise, these queues will be filled up quickly. Is there any way to do so, other than using x-message-ttl and set a ttl per-message? Thanks for the support -- Tiago Boldt Sousa Assistant Lecturer - Faculdade de Engenharia da Universidade do Porto PhD Student - Faculdade de Engenharia da Universidade do Porto Researcher - USIG / INESC TEC -------------- next part -------------- An HTML attachment was scrubbed... URL: From videlalvaro at gmail.com Thu Oct 3 16:56:10 2013 From: videlalvaro at gmail.com (Alvaro Videla) Date: Thu, 3 Oct 2013 10:56:10 -0500 Subject: [rabbitmq-discuss] Network partitions In-Reply-To: <524D36FF.8040805@rabbitmq.com> References: <524D36FF.8040805@rabbitmq.com> Message-ID: On Thu, Oct 3, 2013 at 4:21 AM, Simon MacMullen wrote: > On 03/10/2013 2:27AM, Alvaro Videla wrote: > >> While I don't know about your exact problem keep in mind that a GC pause >> could appear as a network partition. >> > > Err, what? Where did you get that idea? On the following blog post and other CAP Theorem discussions on HN/Twitter/etc: http://aphyr.com/posts/288-the-network-is-reliable Regards, Alvaro -------------- next part -------------- An HTML attachment was scrubbed... URL: From ceri at lshift.net Thu Oct 3 17:02:30 2013 From: ceri at lshift.net (Ceri Storey) Date: Thu, 03 Oct 2013 17:02:30 +0100 Subject: [rabbitmq-discuss] Network partitions In-Reply-To: References: <524D36FF.8040805@rabbitmq.com> Message-ID: <524D9516.8030907@lshift.net> (03/10/13 16:56), Alvaro Videla wrote: > > On Thu, Oct 3, 2013 at 4:21 AM, Simon MacMullen > wrote: > > On 03/10/2013 2:27AM, Alvaro Videla wrote: > > While I don't know about your exact problem keep in mind that > a GC pause > could appear as a network partition. > > > Err, what? Where did you get that idea? > > > On the following blog post and other CAP Theorem discussions on > HN/Twitter/etc: http://aphyr.com/posts/288-the-network-is-reliable Thankfully, the Erlang VM having per-process heaps (and so keeping them small) should help avoid that in practice. :) -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Thu Oct 3 17:02:30 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 03 Oct 2013 17:02:30 +0100 Subject: [rabbitmq-discuss] Network partitions In-Reply-To: References: <524D36FF.8040805@rabbitmq.com> Message-ID: <524D9516.4070300@rabbitmq.com> On 03/10/2013 4:56PM, Alvaro Videla wrote: > Err, what? Where did you get that idea? > > > On the following blog post and other CAP Theorem discussions on > HN/Twitter/etc: http://aphyr.com/posts/288-the-network-is-reliable Oh, I see. But that's not talking about Erlang specifically. Other GCed languages such as Java tend to have a global heap - GC is done globally and the whole server process hangs while this happens. It's easy to see how a node could be considered dead in this scenario. But Erlang has a per-process heap - so each individual connection / queue / channel / etc has its own small GC pause while the rest of the server keeps going. And the underlying node-down detection is done by the Erlang VM anyway, using non-GCed native code. So I don't think this is a possibility for RabbitMQ. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From sp345s at att.com Thu Oct 3 19:00:06 2013 From: sp345s at att.com (PATAR, SAGAR) Date: Thu, 3 Oct 2013 18:00:06 +0000 Subject: [rabbitmq-discuss] binding key Message-ID: <59BF56992750434F89F8EBE141E64B1D018200A3@GAALPA1MSGUSR9C.ITServices.sbc.com> We have an exchange and have added some binding's ... There are some messages which doesn't have any binding key ... I am not sure how to route the messages without binding key or undefined or wrong binding key for which binding is not defined .... I don't want to consume all the messages just the one's which are not bind.. -------------- next part -------------- An HTML attachment was scrubbed... URL: From videlalvaro at gmail.com Thu Oct 3 19:05:09 2013 From: videlalvaro at gmail.com (Alvaro Videla) Date: Thu, 3 Oct 2013 13:05:09 -0500 Subject: [rabbitmq-discuss] binding key In-Reply-To: <59BF56992750434F89F8EBE141E64B1D018200A3@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D018200A3@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: See "Alternate Exchanges": http://www.rabbitmq.com/ae.html On Thu, Oct 3, 2013 at 1:00 PM, PATAR, SAGAR wrote: > We have an exchange and have added some binding?s ? There are some > messages which doesn?t have any binding key ? I am not sure how to route > the messages without binding key or undefined or wrong binding key for > which binding is not defined ?.**** > > I don?t want to consume all the messages just the one?s which are not > bind..**** > > _______________________________________________ > 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 at rabbitmq.com Thu Oct 3 19:07:22 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Thu, 3 Oct 2013 22:07:22 +0400 Subject: [rabbitmq-discuss] binding key In-Reply-To: <59BF56992750434F89F8EBE141E64B1D018200A3@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D018200A3@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: <75FA1C48-2248-448F-88D7-23B371EF7634@rabbitmq.com> On oct 3, 2013, at 10:00 p.m., "PATAR, SAGAR" wrote: > There are some messages which doesn?t have any binding key ? I am not sure how to route the messages without binding key or undefined or wrong binding key for which binding is not defined ?. Some exchange types (e.g. fanout) do not use routing keys at all. Are you sure that you need routing keys? If a message cannot be routed anywhere, there are several options: * If it's published as mandatory, it will be returned to the client * If there is an alternate exchange specified, it will be tried * Finally, the message will be discarded You need to choose the right exchange type and one of the options above for unroutable messages according to the topology you want to build. RabbitMQ tutorial demonstrate several very common scenarios. > I don?t want to consume all the messages just the one?s which are not bind Bindings matter during routing. Once a message is routed to one or more queues, it can be consumed regardless of the routing key. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From sp345s at att.com Thu Oct 3 19:46:43 2013 From: sp345s at att.com (PATAR, SAGAR) Date: Thu, 3 Oct 2013 18:46:43 +0000 Subject: [rabbitmq-discuss] binding key In-Reply-To: <75FA1C48-2248-448F-88D7-23B371EF7634@rabbitmq.com> References: <59BF56992750434F89F8EBE141E64B1D018200A3@GAALPA1MSGUSR9C.ITServices.sbc.com> <75FA1C48-2248-448F-88D7-23B371EF7634@rabbitmq.com> Message-ID: <59BF56992750434F89F8EBE141E64B1D01820154@GAALPA1MSGUSR9C.ITServices.sbc.com> Thanks .. We are using management console to configure the exchanges and bindings .. During the configuration we see arguments .. not sure how to use it and any scenarios they might be useful.. -----Original Message----- From: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Michael Klishin Sent: Thursday, October 03, 2013 2:07 PM To: Discussions about RabbitMQ Subject: Re: [rabbitmq-discuss] binding key On oct 3, 2013, at 10:00 p.m., "PATAR, SAGAR" wrote: > There are some messages which doesn't have any binding key ... I am not sure how to route the messages without binding key or undefined or wrong binding key for which binding is not defined .... Some exchange types (e.g. fanout) do not use routing keys at all. Are you sure that you need routing keys? If a message cannot be routed anywhere, there are several options: * If it's published as mandatory, it will be returned to the client * If there is an alternate exchange specified, it will be tried * Finally, the message will be discarded You need to choose the right exchange type and one of the options above for unroutable messages according to the topology you want to build. RabbitMQ tutorial demonstrate several very common scenarios. > I don't want to consume all the messages just the one's which are not bind Bindings matter during routing. Once a message is routed to one or more queues, it can be consumed regardless of the routing key. MK From sp345s at att.com Thu Oct 3 20:25:56 2013 From: sp345s at att.com (PATAR, SAGAR) Date: Thu, 3 Oct 2013 19:25:56 +0000 Subject: [rabbitmq-discuss] integration with jboss 5.1 as Message-ID: <59BF56992750434F89F8EBE141E64B1D01820180@GAALPA1MSGUSR9C.ITServices.sbc.com> We are using jboss 5.1 as .. Just wanted to make sure that we should be able to subscribe the messages through MDB's deployed in jboss5.1 as ... Sagar , Patur Sr. Software Engineer AT&T - Digital Life, Innovative Services 754 Peachtree St, Atlanta, GA 30308 Office - 404.986.6577 sp345s at att.com [cid:image001.png at 01CDF950.CBA0B7E0] -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.png Type: image/png Size: 3976 bytes Desc: image001.png URL: From michael at rabbitmq.com Thu Oct 3 20:32:12 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Thu, 3 Oct 2013 23:32:12 +0400 Subject: [rabbitmq-discuss] integration with jboss 5.1 as In-Reply-To: <59BF56992750434F89F8EBE141E64B1D01820180@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D01820180@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: <6AFFF9F9-C9F6-4FB8-969B-BDE5CF3CC2B1@rabbitmq.com> On oct 3, 2013, at 11:25 p.m., "PATAR, SAGAR" wrote: > Just wanted to make sure that we should be able to subscribe the messages through MDB?s deployed in jboss5.1 as ? MDB's rely on JMS. JMS client for RabbitMQ is available as part of (commercial) vFabric Suite, see http://pubs.vmware.com/vfabric53/index.jsp?topic=/com.vmware.vfabric.rabbitmq.3.0/jms-client/install-configure-client.html MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From sp345s at att.com Thu Oct 3 20:42:35 2013 From: sp345s at att.com (PATAR, SAGAR) Date: Thu, 3 Oct 2013 19:42:35 +0000 Subject: [rabbitmq-discuss] multiple binding key's Message-ID: <59BF56992750434F89F8EBE141E64B1D018201AF@GAALPA1MSGUSR9C.ITServices.sbc.com> We have a scenario where we will be sending all out messages to an exchange and based on a binding key we need to send messages to different exchanges and from there we might have to forward it to different exchange's as well ... But since only one binding key can be sent via message, how will we be able to achieve the multiple routing scenario .. Example : Exchange A to Exchange B (b.k=dl*) Exchange B to Exchange C (b.k=dlC*) Exchange A to Exchange D(b.k=kkD*) etc Sagar , Patur Sr. Software Engineer AT&T - Digital Life, Innovative Services 754 Peachtree St, Atlanta, GA 30308 Office - 404.986.6577 sp345s at att.com [cid:image001.png at 01CDF950.CBA0B7E0] -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.png Type: image/png Size: 3976 bytes Desc: image001.png URL: From michael at rabbitmq.com Thu Oct 3 20:51:03 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Thu, 3 Oct 2013 23:51:03 +0400 Subject: [rabbitmq-discuss] multiple binding key's In-Reply-To: <59BF56992750434F89F8EBE141E64B1D018201AF@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D018201AF@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: On oct 3, 2013, at 11:42 p.m., "PATAR, SAGAR" wrote: > But since only one binding key can be sent via message, how will we be able to achieve the multiple routing scenario Using topic exchanges that support patterns: http://www.rabbitmq.com/tutorials/tutorial-five-java.html Also, are you sure you need 3 layers of exchange-to-exchange bindings? E2E is a relatively rarely used feature mostly useful for message stream replication and audit purposes. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From graeme at sudo.ca Thu Oct 3 22:03:16 2013 From: graeme at sudo.ca (Graeme N) Date: Thu, 3 Oct 2013 14:03:16 -0700 Subject: [rabbitmq-discuss] Feature Req / Bug list Message-ID: Hey everyone, I've recently been doing a deployment of a 5 node rabbit cluster, and found some rough edges I thought I should share. I realize many of these are feature reqs, but I'm hoping that I just haven't discovered the proper configuration to deal with some of these issues, or have misunderstood Rabbit's behaviour. If not, hopefully they can become feature req items that'll make a dev schedule at some point. All items below were discovered while deploying 3.1.5 over the past few days. Hosts in question have 24 sandy bridge HT cores, 64GB of RAM, XFS filesystem, running on CentOS 6. Cluster is 5 nodes, with a default HA policy on all queues of exact/3/automatic-sync. HA / Clustering: - expected queues to be distributed evenly among cluster machines, instead got all queues on first 3 machines in the cluster, nothing on the last 2. - expected message reads from a mirror machine for a queue to do the read i/o locally, so as to spread out workload, but it appears to always go to the host where the queue was created. - this led to a single node with ~35k active open filehandles, and 4 nodes with ~90. not an optimum distribution of read workload. - expected that if system a queue was created on is permanently removed (shut down and "rabbitmqctl forget_cluster_node hostname"'d), automatic sync would ensure there's the right number of copies replicated, but instead it just left every single queue under replicated. - when a new policy is applied that defines specific replication nodes, or a number of copies using 'exact, and auto-sync is set, sometimes it just syncs the first replica and leaves any others unsynced and calls it job done. This is bad. - had to add a new global HA policy and delete the existing one before rabbit fixed my queue replication. - Attempted to create small per-queue policies to redistribute messages and then delete the per-queue policies, but this often leads to a inconsistent cluster state where queues continued to show as being part of a policy that was already deleted, attempt to resync, and get stuck, unable to complete or switch back to the global default policy. - sometimes the cluster refuses to accept any more policy commands. Have to fully shut down and restart the cluster to clear this condition. - sometimes policies applied to empty and inactive queues don't get correctly applied, and the queue hangs on "resyncing / 100%". this makes no sense, given the queue is empty, and requires a full cluster restart to clear. - would like to see a tool to redistribute queues amongst available cluster machines according to HA policy. Ideally something that happens automatically on queue creation, cluster membership and policy changes, but would take something manual I could run out of cron. - I've managed to get the cluster into an inconsistent state a /lot/ using the HA features, so it feels like they need more automated stress testing and bulletproofing. Persistent message storage: - it appears as if messages are put into very small batch files on the filesystem (1-20 MB) - this causes the filesystem to thrash if your IO isn't good at random IO (SATA disks) and you have lots of persistent messages (>200k messages 500kB-1MB in size) that don't fit in RAM. - this caused CentOS 6 kernel to kill erlang after stalling the XFS filesystem for > 120s. - if a node crashes, Rabbit seems to rescan the entire on-disk datastore before continuing, instead of using some sort of checkpointing or journaling system to quickly recover from a crash. - all of above should be solvable by using an existing append-only datastore like eLevelDB or Bitcask. - we solved for now by using SSDs, but this bumps up the cost of each RMQ node, and doesn't solve the node crash recovery problem, just speeds up the process somewhat. Web API: - API seems to block when cluster is busy, even for informational GETs, so you can't determine what's going on with the cluster. - Some API operations seem to block until they complete (like putting a new policy), while others return immediately even though they're definitely not completed yet (like deleting a policy). It's not documented which have which behaviour, or why they don't just all block until op is completed. Hopefully you guys can educate me on what I'm doing wrong in some of these scenarios, or how to mitigate some of these issues. Any issue that requires taking down and restarting the cluster to fix is especially troubling. Thanks, Graeme -------------- next part -------------- An HTML attachment was scrubbed... URL: From k.madnani84 at gmail.com Thu Oct 3 22:19:59 2013 From: k.madnani84 at gmail.com (k.madnani84) Date: Thu, 3 Oct 2013 14:19:59 -0700 (PDT) Subject: [rabbitmq-discuss] Is rabbitmq-jms for vFabric RabbitMQ opensource? In-Reply-To: <651BEB66-DF74-4D7B-B2CB-3595B7893DDF@rabbitmq.com> References: <31a771fd-de0c-4376-bec7-8d814fdddd37@googlegroups.com> <651BEB66-DF74-4D7B-B2CB-3595B7893DDF@rabbitmq.com> Message-ID: <1380835199073-30154.post@n5.nabble.com> Hi, Just was googling for RabbitMQ-JMS client and came across this thread.So if its not opensource,is it freeware at least or we need to purchase a license even to use it.I tried to download it from the vmware site but it gave me register option and after registering it went to some processing:(... -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Is-rabbitmq-jms-for-vFabric-RabbitMQ-opensource-tp29737p30154.html Sent from the RabbitMQ mailing list archive at Nabble.com. From videlalvaro at gmail.com Fri Oct 4 01:38:46 2013 From: videlalvaro at gmail.com (Alvaro Videla) Date: Thu, 3 Oct 2013 19:38:46 -0500 Subject: [rabbitmq-discuss] Questiong about plugins and clustering In-Reply-To: <5240049C.4060204@rabbitmq.com> References: <5240049C.4060204@rabbitmq.com> Message-ID: Emile, I started a plugin which main logic is the gen_server here: https://gist.github.com/videlalvaro/6819225 As you can see it will subscribe to mnesia system events and also it will listen into the amq.rabbitmq.log exchange. The problem is that when I make other nodes join the cluster, it will not always receive the message from the amq.rabbitmq.log exchange, also the mnesia system events appear to not always be broadcasted. Any ideas on what I might be doing wrong? Regards, Alvaro On Mon, Sep 23, 2013 at 4:06 AM, Emile Joubert wrote: > > > Hi Alvaro, > > On 21/09/13 02:53, Alvaro Videla wrote: > > > Is there a way for a plugin to know when a node joins or leaves the > > cluster? > > A plugin could subscribe to Mnesia system events that will report when > Mnesia stops and starts on nodes: > http://www.erlang.org/doc/apps/mnesia/Mnesia_chap5.html#id76679 > > Depending on the kind of plugin you are writing you could use the > information sent to the log exchange (amq.rabbitmq.log) to determine > when nodes leave and join. > > > > -Emile > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From moshima at advent.com Fri Oct 4 06:38:48 2013 From: moshima at advent.com (michi.oshima) Date: Thu, 3 Oct 2013 22:38:48 -0700 (PDT) Subject: [rabbitmq-discuss] Queue getting emptied and I don't know why... Message-ID: <1380865128187-30156.post@n5.nabble.com> Hi, I'm sorry if this is a very basic feature of RabbitMQ/AMQP, but I need help because I don't know what is going on. I set up a slow consumer (a subscription calling Next(...); .net client) which can consume a message every 2 seconds. Its queue is bound to amq.topic exchange. I would send 50 message in batch to the queue. The consumer would start retrieving messages. I would terminate the consumer after, say, receiving the first 5 messages. Then I would check the number of messages left in queue, and it would be 0. The remaining 45 unprocessed messages are gone. I would do the above experiment while monitoring the queue size on the management plugin. (management plugin has 5 second refresh rate.) The queue size would stay at 0, the 50 messages doesn't even register. I thought no-ack and prefetch might have something to do with this. I have no-ack == false and prefetch = 1. They don't seem to make any difference. I'm trying not to lose the 45 unprocessed messages. Any idea what I'm doing wrong? -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Queue-getting-emptied-and-I-don-t-know-why-tp30156.html Sent from the RabbitMQ mailing list archive at Nabble.com. From moshima at advent.com Fri Oct 4 06:57:50 2013 From: moshima at advent.com (michi.oshima) Date: Thu, 3 Oct 2013 22:57:50 -0700 (PDT) Subject: [rabbitmq-discuss] Queue getting emptied and I don't know why... In-Reply-To: <1380865128187-30156.post@n5.nabble.com> References: <1380865128187-30156.post@n5.nabble.com> Message-ID: <1380866270901-30157.post@n5.nabble.com> Sorry, it *is* the no-ack. I thought it was set to false, but it wasn't? For the Subscription class, the default for no-ack, I thought was false, but it must be true? In any case, explicitly setting it to true gave me the behavior I wanted. -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Queue-getting-emptied-and-I-don-t-know-why-tp30156p30157.html Sent from the RabbitMQ mailing list archive at Nabble.com. From sekhar434145 at gmail.com Fri Oct 4 08:05:42 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Fri, 4 Oct 2013 12:35:42 +0530 Subject: [rabbitmq-discuss] RabbitMQ log and Mnesia location in Environment variables not reflecting? Message-ID: Hi, I have changed RabbitMQ log and Mnesia location in envrironment variables as below RABBITMQ_LOG_BASE = E:\RabbitMQBase\log RABBITMQ_MNESIA_BASE = E:\RabbitMQBase\mnesia RABBITMQ_NODENAME = rabbit2 after setting above variables when I start/stop using command prompt it is giving below error *Starting node rabbit2 at xyz...* *Error: unable to connect to node rabbit2 at xyz: nodedown* * * *DIAGNOSTICS* *===========* * * *nodes in question: [rabbit2 at prajasekhar]* * * *hosts, their running nodes and ports:* *- prajasekhar: [{rabbit,1299},{rabbitmqctl2605024,1356}]* * * *current node details:* *- node name: rabbitmqctl2605024 at prajasekhar* *- home dir: C:\Documents and Settings\prajasekhar* *- cookie hash: NTK2yW1V7JNq90xPACxUwQ==* * * * * Can you please let me know why rabbitmq is not getting started after making changes in Environment variables? Thanks in advance. -------------- next part -------------- An HTML attachment was scrubbed... URL: From rabarijaonadomoina at gmail.com Fri Oct 4 08:29:12 2013 From: rabarijaonadomoina at gmail.com (Tia) Date: Fri, 4 Oct 2013 00:29:12 -0700 (PDT) Subject: [rabbitmq-discuss] {handshake_timeout,handshake} In-Reply-To: References: Message-ID: <16a62d98-f44e-41db-8030-afa536ae926f@googlegroups.com> Ok, I will take a look at these tools. I'm using a Php5 script which just sending message to an exchange. And I get the error with only the Php producer for now. Tia -------------- next part -------------- An HTML attachment was scrubbed... URL: From alan.antonuk at gmail.com Fri Oct 4 08:41:44 2013 From: alan.antonuk at gmail.com (Alan Antonuk) Date: Fri, 4 Oct 2013 00:41:44 -0700 Subject: [rabbitmq-discuss] question about librabbitmq In-Reply-To: References: Message-ID: There is a bit of discussion about doing this sort of thing in rabbitmq-c. See: https://github.com/alanxz/rabbitmq-c/issues/138 for details. At this point supporting languages other than C/C++ is not a goal, though we don't do anything to prevent user's from wrapping the library. A note: encoding/decoding AMQP wireformat isn't that complicated, I'm skeptical that farming out encoding/decoding to C would improve performance in a big way over something well-designed in PHP (I could be wrong though...) A second note: even without thinking about a public API, there's a bit more to an AMQP client than just the wireformat, there is the 'state machine' or grammar of how a connection and channel operates. Not saying a serializer/deserializer isn't useful, but its not something that is trivial to turn into a complete client. -Alan On Tue, Oct 1, 2013 at 11:17 AM, Michael Klishin < michael.s.klishin at gmail.com> wrote: > 2013/10/1 Gavin M. Roy > > Similar to what I was trying to achieve in Python land with >> github.com/gmr/pamqp -- I think it's an excellent idea. >> > > amq-protocol does the same for Ruby. > > Producing a C library that does the same is a good idea. Designing it to > support > all languages and popular OSes equally well is likely not be easy. > -- > 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 at rabbitmq.com Fri Oct 4 09:38:29 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Fri, 4 Oct 2013 12:38:29 +0400 Subject: [rabbitmq-discuss] {handshake_timeout,handshake} In-Reply-To: <16a62d98-f44e-41db-8030-afa536ae926f@googlegroups.com> References: <16a62d98-f44e-41db-8030-afa536ae926f@googlegroups.com> Message-ID: On oct 4, 2013, at 11:29 a.m., Tia wrote: > I'm using a Php5 script which just sending message to an exchange. > And I get the error with only the Php producer for now. This strongly suggests an issue with your client. Can you try the one used in RabbitMQ tutorials? [1] 1. http://www.rabbitmq.com/getstarted.html MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From michael at rabbitmq.com Fri Oct 4 09:41:10 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Fri, 4 Oct 2013 12:41:10 +0400 Subject: [rabbitmq-discuss] question about librabbitmq In-Reply-To: References: Message-ID: On oct 4, 2013, at 11:41 a.m., Alan Antonuk wrote: > A note: encoding/decoding AMQP wireformat isn't that complicated, I'm skeptical that farming out encoding/decoding to C would improve performance in a big way over something well-designed in PHP (I could be wrong though...) I think payload framing can be done more efficiently, as PHP/Ruby/Python/etc versions would likely require allocating at least N objects for N frames. Agreed that it's unlikely gonna be a massive improvement, though. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From michael at rabbitmq.com Fri Oct 4 09:44:03 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Fri, 4 Oct 2013 12:44:03 +0400 Subject: [rabbitmq-discuss] ANN Bunny 0.10.8 is released Message-ID: <8403DA8E-941E-4DFE-A7B6-B3A098D54EE3@rabbitmq.com> Bunny 0.10.8 is released with some Ruby 1.8 compatibility fixes. Release notes: http://blog.rubyrabbitmq.info/blog/2013/10/03/bunny-0-dot-10-dot-8-is-released/ MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From michael at rabbitmq.com Fri Oct 4 09:45:35 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Fri, 4 Oct 2013 12:45:35 +0400 Subject: [rabbitmq-discuss] ANN Bunny 1.0.0.rc2 is released Message-ID: <62921109-CC40-46FF-A5B1-FBE43FB0D2A7@rabbitmq.com> Bunny 1.0.0.rc2 is released with some Ruby 1.8 compatibility fixes. Release notes: http://blog.rubyrabbitmq.info/blog/2013/10/03/bunny-1-dot-0-0-dot-rc2-is-released/ If you use Bunny and haven't tried a release candidate yet, it's a good time to do so. Bunny 1.0 is currently scheduled to be released on Oct 29th. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From watson.timothy at gmail.com Fri Oct 4 09:54:20 2013 From: watson.timothy at gmail.com (Tim Watson) Date: Fri, 4 Oct 2013 09:54:20 +0100 Subject: [rabbitmq-discuss] Feature Req / Bug list In-Reply-To: References: Message-ID: <874A73DF-5283-4508-8AD2-43BC53DC9196@rabbitmq.com> On 3 Oct 2013, at 22:03, Graeme N wrote: > > All items below were discovered while deploying 3.1.5 over the past few days. Hosts in question have 24 sandy bridge HT cores, 64GB of RAM, XFS filesystem, running on CentOS 6. Cluster is 5 nodes, with a default HA policy on all queues of exact/3/automatic-sync. > That's a very strong consistency and redundency guarantee for every queue. Do you really need such strong guarantees for all of them? There is a cost to doing ha. > HA / Clustering: > > - expected queues to be distributed evenly among cluster machines, instead got all queues on first 3 machines in the cluster, nothing on the last 2. Distributed evenly in what regard? Randomly, or based on some metric? > - expected message reads from a mirror machine for a queue to do the read i/o locally, so as to spread out workload, but it appears to always go to the host where the queue was created. That's expected behaviour. In a master-slave configuration, writes have to go to the master. Odd though it may sound, reads from a queue involve writes, since we have to do accounting (of e.g., pending ACKs, position in the queue, etc), so all requests are handled by the master. > - this led to a single node with ~35k active open filehandles, and 4 nodes with ~90. not an optimum distribution of read workload. Agreed. Simon or Marthias may be able to elaborate on various things we're working on to improve workload distribution. > - expected that if system a queue was created on is permanently removed (shut down and "rabbitmqctl forget_cluster_node hostname"'d), automatic sync would ensure there's the right number of copies replicated, but instead it just left every single queue under replicated. That doesn't sound right. It's not automatic sync we're talking here either - that sounds like the policy isn't getting applied properly. > - when a new policy is applied that defines specific replication nodes, or a number of copies using 'exact, and auto-sync is set, sometimes it just syncs the first replica and leaves any others unsynced and calls it job done. This is bad. Can you provide us with a way to reproduce this? How did you detect that the remaining replicas were not sync'ed? > - Attempted to create small per-queue policies to redistribute messages and then delete the per-queue policies, but this often leads to a inconsistent cluster state where queues continued to show as being part of a policy that was already deleted, attempt to resync, and get stuck, unable to complete or switch back to the global default policy. Again, it would be helpful if you could help us to replicate this. > - sometimes the cluster refuses to accept any more policy commands. Have to fully shut down and restart the cluster to clear this condition. And this. Can you provide a run down of these policies and the order in which you're trying to apply them? Also, how busy are the queues whilst the policy changes are happening? We may need to extend our test beds to reliably reproduce such problems. > - sometimes policies applied to empty and inactive queues don't get correctly applied, and the queue hangs on "resyncing / 100%".l What!? > this makes no sense, given the queue is empty, and requires a full cluster restart to clear. Please provide the commands you invoked to get this to happen. > - I've managed to get the cluster into an inconsistent state a /lot/ using the HA features, so it feels like they need more automated stress testing and bulletproofing. If you can help us repoduce these errors, I can assure you that they'll get included in our integration tests! > > Persistent message storage: > > - it appears as if messages are put into very small batch files on the filesystem (1-20 MB) > - this causes the filesystem to thrash if your IO isn't good at random IO (SATA disks) and you have lots of persistent messages (>200k messages 500kB-1MB in size) that don't fit in RAM. > - this caused CentOS 6 kernel to kill erlang after stalling the XFS filesystem for > 120s. Iirc this is tuneable, though we don't recommend changing it. Not at u desk right now though, so I can't remember the exact details. > - if a node crashes, Rabbit seems to rescan the entire on-disk datastore before continuing, instead of using some sort of checkpointing or journaling system to quickly recover from a crash. > - all of above should be solvable by using an existing append-only datastore like eLevelDB or Bitcask. On our todo list already, at least for the message store index. > Hopefully you guys can educate me on what I'm doing wrong in some of these scenarios, or how to mitigate some of these issues. Any issue that requires taking down and restarting the cluster to fix is especially troubling. > > Thanks, > Graeme > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss From emile at rabbitmq.com Fri Oct 4 09:59:02 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Fri, 04 Oct 2013 09:59:02 +0100 Subject: [rabbitmq-discuss] Questiong about plugins and clustering In-Reply-To: References: <5240049C.4060204@rabbitmq.com> Message-ID: <524E8356.7090908@rabbitmq.com> On 04/10/13 01:38, Alvaro Videla wrote: > Any ideas on what I might be doing wrong? No I don't see any reason why some notifications would go missing. I would expect that if you receive any notifications then you should receive all. Do the missing notifications have anything in common? -Emile From ron.jaeger at thomsonreuters.com Thu Oct 3 22:40:47 2013 From: ron.jaeger at thomsonreuters.com (ron.jaeger at thomsonreuters.com) Date: Thu, 3 Oct 2013 21:40:47 +0000 Subject: [rabbitmq-discuss] Question regarding setting up a shovel within a cluster Message-ID: <7997A3D0E2B05844BE50FD03B7ED709C151A0570@C111WHRPMBX28.ERF.thomson.com> I am looking for a little help around the topic of setting up a shovel in a rabbitmq clustered environment. We have an application that will need to send messages across two different datacenters. Each datacenter will have a RabbitMQ cluster. I have set up a shovel in our lab to verify that this will meet the applications requirements. It is fairly straightforward to set up the shovel between standalone RabbitMQ nodes. However, I have ran into issues implementing the shovel between RabbitMQ clusters, with the error occurring when trying to failover the shovel from one node to another within the cluster. The problem is mostly around the queues the shovel is using. The configuration I am testing with is as follows: [ {rabbitmq_shovel, [{shovels, [{test_shovel, [{sources, [{brokers, ["amqp://guest:guest at ron-rabbitmq:5672", "amqp://guest:guest at ron-rabbitmq1:5672"] }, {declarations, [{'queue.declare', [{queue, <<"shovel_out_queue">>}, durable]}, {'exchange.declare', [{exchange, <<"shovel_exchange">>}, {type, <<"direct">>}, durable]}, {'queue.bind', [{exchange, <<"shovel_exchange">>}, {queue, <<"shovel_out_queue">>}, {routing_key, <<"shovel_rk">>}]} ]}]}, {destinations, [{broker, "amqp://guest:guest at ron-rabbitmq2:5672"}, {declarations, [{'queue.declare', [{queue, <<"shovel_in_queue">>}, durable]}, {'exchange.declare', [{exchange, <<"shovel_exchange">>}, {type, <<"direct">>}, durable]}, {'queue.bind', [{exchange, <<"shovel_exchange">>}, {queue, <<"shovel_in_queue">>}, {routing_key, <<"shovel_rk">>}]} ]}]}, {queue, <<"shovel_out_queue">>}, {ack_mode, no_ack}, {publish_properties, [{delivery_mode, 2}]}, {publish_fields, [{exchange, <<"shovel_exchange">>}, {routing_key, <<"shovel_rk">>}]}, {reconnect_delay, 5} ]} ] }] } ]. The error I am enountering is: ** Reason for termination == ** {{shutdown, {server_initiated_close,404, <<"NOT_FOUND - home node 'RABBIT1 at ron-rabbitmq' of durable queue 'shovel_out_queue' in vhost '/' is down or inaccessible">>}}, It is evident that it can't access the queue because it was on the other cluster member that is down. I have considered having the queues be transient, but there are additional risks associated with that, such as loosing messages during a node failure. I have also thought about mirroring the queues, but additional overhead may be a concern due to the high volume of traffic. Any thoughts or suggestions would be appreciated. Ron Jaeger Thomson Reuters -------------- next part -------------- An HTML attachment was scrubbed... URL: From smarotta at gmail.com Thu Oct 3 20:00:15 2013 From: smarotta at gmail.com (Steve Marotta) Date: Thu, 3 Oct 2013 12:00:15 -0700 (PDT) Subject: [rabbitmq-discuss] Server-wide persistent global "property"? Message-ID: I'm not entirely sure how to characterize what I'm looking for here, but here goes. What I want is to be able to implement, in RabbitMQ, a sort of functionality that is similar to an environment variable. Suppose I want to have a queue with a single value that one client can set and the other clients can read that value as many times as they need without that value going away until a client publishes a new value to the queue, replacing the old value with the new one. Is that possible in RabbitMQ? -------------- next part -------------- An HTML attachment was scrubbed... URL: From ceri at lshift.net Fri Oct 4 10:15:23 2013 From: ceri at lshift.net (Ceri Storey) Date: Fri, 04 Oct 2013 10:15:23 +0100 Subject: [rabbitmq-discuss] Server-wide persistent global "property"? In-Reply-To: References: Message-ID: <524E872B.1090500@lshift.net> (03/10/13 20:00), Steve Marotta wrote: > I'm not entirely sure how to characterize what I'm looking for here, > but here goes. What I want is to be able to implement, in RabbitMQ, a > sort of functionality that is similar to an environment variable. > Suppose I want to have a queue with a single value that one client can > set and the other clients can read that value as many times as they > need without that value going away until a client publishes a new > value to the queue, replacing the old value with the new one. From michael at rabbitmq.com Fri Oct 4 10:16:22 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Fri, 4 Oct 2013 13:16:22 +0400 Subject: [rabbitmq-discuss] Server-wide persistent global "property"? In-Reply-To: References: Message-ID: <58F65283-6E06-4DEB-B459-3DD442326F88@rabbitmq.com> Steve Marotta: > Is that possible in RabbitMQ? In theory yes but it will likely be unnecessarily painful. Sounds like you want Redis, ZooKeeper or etcd. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From simon at rabbitmq.com Fri Oct 4 10:25:48 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Fri, 04 Oct 2013 10:25:48 +0100 Subject: [rabbitmq-discuss] Question regarding setting up a shovel within a cluster In-Reply-To: <7997A3D0E2B05844BE50FD03B7ED709C151A0570@C111WHRPMBX28.ERF.thomson.com> References: <7997A3D0E2B05844BE50FD03B7ED709C151A0570@C111WHRPMBX28.ERF.thomson.com> Message-ID: <524E899C.9090708@rabbitmq.com> On 03/10/2013 10:40PM, ron.jaeger at thomsonreuters.com wrote: > It is evident that it can?t access the queue because it was on the other > cluster member that is down. Yes. > I have considered having the queues be > transient, but there are additional risks associated with that, such as > loosing messages during a node failure. I have also thought about > mirroring the queues, but additional overhead may be a concern due to > the high volume of traffic. Any thoughts or suggestions would be > appreciated. Well, those are the options you have. Either you care about the messages in the queue being available at all times, in which case you need mirroring, or you care about them surviving restarts but not node failures, in which case you need a durable unmirrored queue, or you don't care at all, in which case you can use a transient queue. I'm not sure what other options could exist? Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Fri Oct 4 10:29:38 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Fri, 04 Oct 2013 10:29:38 +0100 Subject: [rabbitmq-discuss] RabbitMQ log and Mnesia location in Environment variables not reflecting? In-Reply-To: References: Message-ID: <524E8A82.6070309@rabbitmq.com> On 04/10/2013 8:05AM, Rajasekhar P wrote: > I have changed RabbitMQ log and Mnesia location in envrironment > variables as below > > RABBITMQ_LOG_BASE = E:\RabbitMQBase\log > RABBITMQ_MNESIA_BASE = E:\RabbitMQBase\mnesia > RABBITMQ_NODENAME = rabbit2 > > after setting above variables when I start/stop using command prompt it > is giving below error > > /Starting node rabbit2 at xyz.../ > /Error: unable to connect to node rabbit2 at xyz: nodedown/ > /hosts, their running nodes and ports:/ > /- prajasekhar: [{rabbit,1299},{rabbitmqctl2605024,1356}]/ > Can you please let me know why rabbitmq is not getting started after > making changes in Environment variables? Well, you've told RabbitMQ to use the new node name "rabbit2" - and invocations of rabbitmqctl are trying to use that to talk to the RabbitMQ server. But it sounds like you haven't restarted the server (and reinstalled the service if you're running it as a service). Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From mandyce2006 at gmail.com Fri Oct 4 10:49:29 2013 From: mandyce2006 at gmail.com (Mandy) Date: Fri, 4 Oct 2013 02:49:29 -0700 (PDT) Subject: [rabbitmq-discuss] How RabbitMQ handles the messages in case of crash ? Message-ID: <1380880168749-30173.post@n5.nabble.com> Hello, I have 2 programs ( sender and receiver ) which are sending messages using RabbitMQ. In following scenario the RabbitMQ fails: 1. Sender sends message to Receiver. 2. Receiver's callBack method gets called which retrieves the message send by the Sender. 3. Receiver gets crashed. 4. Sender keep sending the messages. 5. Receiver gets restarted. Now the expected result is the messages sent by sender ( which I checked using command : 'rabbitmqctl list_queues' ) and which are reflected in the queues needs to be sent to receiver. But these messages are not delivered to Receiver. So, I want to know is there any way to retrieve these messages ? -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/How-RabbitMQ-handles-the-messages-in-case-of-crash-tp30173.html Sent from the RabbitMQ mailing list archive at Nabble.com. From emile at rabbitmq.com Fri Oct 4 10:49:52 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Fri, 04 Oct 2013 10:49:52 +0100 Subject: [rabbitmq-discuss] Queue getting emptied and I don't know why... In-Reply-To: <1380866270901-30157.post@n5.nabble.com> References: <1380865128187-30156.post@n5.nabble.com> <1380866270901-30157.post@n5.nabble.com> Message-ID: <524E8F40.1040508@rabbitmq.com> Hi, On 04/10/13 06:57, michi.oshima wrote: > Sorry, it *is* the no-ack. I thought it was set to false, but it wasn't? > For the Subscription class, the default for no-ack, I thought was false, but > it must be true? In any case, explicitly setting it to true gave me the > behavior I wanted. The answer certainly lies in the setting of the noAck flag. The Subscription class sets this to true by default, meaning that messages are automatically acknowledged on the server upon delivery. You should set noAck to false to make sure that messages are only removed from the queue after explicit acknowledgement from the client. -Emile From michael at rabbitmq.com Fri Oct 4 11:10:45 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Fri, 4 Oct 2013 14:10:45 +0400 Subject: [rabbitmq-discuss] How RabbitMQ handles the messages in case of crash ? In-Reply-To: <1380880168749-30173.post@n5.nabble.com> References: <1380880168749-30173.post@n5.nabble.com> Message-ID: <87EC95CD-8990-4252-B168-67BFD9E0DD47@rabbitmq.com> On oct 4, 2013, at 1:49 p.m., Mandy wrote: > 1. Sender sends message to Receiver. > 2. Receiver's callBack method gets called which retrieves the message send > by the Sender. > 3. Receiver gets crashed. > 4. Sender keep sending the messages. > 5. Receiver gets restarted. > Now the expected result is the messages sent by sender ( which I checked > using command : 'rabbitmqctl list_queues' ) and which are reflected in the > queues needs to be sent to receiver. > But these messages are not delivered to Receiver. > > So, I want to know is there any way to retrieve these messages ? As long as the queue(s) used are not deleted when the consumer fails, new messages will be routed there and will happily sit there waiting for consumers to come back up. If you use manual acknowledgements, all unacknowledged messages will be requeued as soon as rabbitmq notices that consumer connect (technically, channel) is closed. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From japperly at gopivotal.com Fri Oct 4 11:37:15 2013 From: japperly at gopivotal.com (Jim Apperly) Date: Fri, 4 Oct 2013 11:37:15 +0100 Subject: [rabbitmq-discuss] Is rabbitmq-jms for vFabric RabbitMQ opensource? In-Reply-To: <1380835199073-30154.post@n5.nabble.com> References: <31a771fd-de0c-4376-bec7-8d814fdddd37@googlegroups.com> <651BEB66-DF74-4D7B-B2CB-3595B7893DDF@rabbitmq.com> <1380835199073-30154.post@n5.nabble.com> Message-ID: Hello, The RabbitMQ JMS client is not open source or free. A valid license for commercial RabbitMQ or vFabric Suite Advanced is required. Thanks, Jim On 3 October 2013 22:19, k.madnani84 wrote: > Hi, > > Just was googling for RabbitMQ-JMS client and came across this thread.So if > its not opensource,is it freeware at least or we need to purchase a license > even to use it.I tried to download it from the vmware site but it gave me > register option and after registering it went to some processing:(... > > > > -- > View this message in context: > http://rabbitmq.1065348.n5.nabble.com/Is-rabbitmq-jms-for-vFabric-RabbitMQ-opensource-tp29737p30154.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 frank.shearar at gmail.com Fri Oct 4 11:38:09 2013 From: frank.shearar at gmail.com (Frank Shearar) Date: Fri, 4 Oct 2013 11:38:09 +0100 Subject: [rabbitmq-discuss] Server-wide persistent global "property"? In-Reply-To: <58F65283-6E06-4DEB-B459-3DD442326F88@rabbitmq.com> References: <58F65283-6E06-4DEB-B459-3DD442326F88@rabbitmq.com> Message-ID: On 4 October 2013 10:16, Michael Klishin wrote: > Steve Marotta: > >> Is that possible in RabbitMQ? > > In theory yes but it will likely be unnecessarily painful. > > Sounds like you want Redis, ZooKeeper or etcd. But if you insisted on using RabbitMQ you could look at using a Last value caching exchange: https://github.com/simonmacmullen/rabbitmq-lvc-plugin frank > MK From mandyce2006 at gmail.com Fri Oct 4 11:52:26 2013 From: mandyce2006 at gmail.com (Mandy) Date: Fri, 4 Oct 2013 03:52:26 -0700 (PDT) Subject: [rabbitmq-discuss] How RabbitMQ handles the messages in case of crash ? In-Reply-To: <87EC95CD-8990-4252-B168-67BFD9E0DD47@rabbitmq.com> References: <1380880168749-30173.post@n5.nabble.com> <87EC95CD-8990-4252-B168-67BFD9E0DD47@rabbitmq.com> Message-ID: <1380883945998-30178.post@n5.nabble.com> How receiver program come to know if there are any messages in its queue ? Since when sender sends any message on receiver's queue, its callback method gets called. While creating the exchange do I need to set any flags? ( flags like durable, auto_delete ) -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/How-RabbitMQ-handles-the-messages-in-case-of-crash-tp30173p30178.html Sent from the RabbitMQ mailing list archive at Nabble.com. From michael at rabbitmq.com Fri Oct 4 11:57:30 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Fri, 4 Oct 2013 14:57:30 +0400 Subject: [rabbitmq-discuss] How RabbitMQ handles the messages in case of crash ? In-Reply-To: <1380883945998-30178.post@n5.nabble.com> References: <1380880168749-30173.post@n5.nabble.com> <87EC95CD-8990-4252-B168-67BFD9E0DD47@rabbitmq.com> <1380883945998-30178.post@n5.nabble.com> Message-ID: On oct 4, 2013, at 2:52 p.m., Mandy wrote: > How receiver program come to know if there are any messages in its queue ? You can use queue.declare and check the number of messages on queue.declare-ok (the response). > Since when sender sends any message on receiver's queue, its callback method > gets called. If you don't want messages to be pushed to the consumer, use basic.get (which is very similar to HTTP GET) instead of basic.consume. > While creating the exchange do I need to set any flags? ( flags like > durable, auto_delete ) Exclusive queues can be only be used on one connection and will be removed what that connection is closed. Auto-delete queues will be automaticlly deleted when the last consumer disconnects (but never if there was never was a consumer). Sounds like you want a non-exclusive, non-autodelete queue. Make it durable if you want it to survive RabbitMQ restart. I recommend that you take a look at the tutorials that explain queue attributes and much more: http://www.rabbitmq.com/getstarted.html. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From oc.tsdb at gmail.com Fri Oct 4 12:24:02 2013 From: oc.tsdb at gmail.com (oc tsdb) Date: Fri, 4 Oct 2013 16:54:02 +0530 Subject: [rabbitmq-discuss] Rabbitmq start-up failure Message-ID: Hi, We installed rabbitmq-3.1.5 & while trying to start the rabbitmq from the perl script we are seeing the rabbitmq process gets killed after 3-5 secs & the following error is seen in the logs Error description: {error, {cannot_delete_plugins_expand_dir, ["/var/lib/rabbitmq/mnesia/rabbit at localhost-plugins-expand", {cannot_delete, "/var/lib/rabbitmq/mnesia/rabbit at localhost-plugins-expand /amqp_client-3.1.5/include/amqp_client_internal.hrl", eacces}]}} Log files (may contain more information): /var/log/rabbitmq/rabbit at localhost.log /var/log/rabbitmq/rabbit at localhost-sasl.log Stack trace: [{rabbit_plugins,prepare_plugins,3}, {rabbit,'-boot/0-fun-1-',0}, {rabbit,start_it,1}, {init,start_it,1}, {init,start_em,1}] We created a src rpm from the downloaded copy of the code , which will install the rpm binaries in the deisred location. In our case the binaries like rabbitmq-server in installed in */opt/lib/rabbitmq/lib/rabbitmq-3.1.5/sbin/ *& also *in /opt/sbin/.* When we try to start the rabbitmq from the */opt/lib/rabbitmq/lib/rabbitmq-3.1.5/sbin/ *using */opt/lib/rabbitmq/lib/rabbitmq-3.1.5/sbin/rabbitmq-server start*command its working fine. Where as if we try to start from */opt/sbin/ *by using*/optsbin/rabbitmq-server start * , its giving the above error. Our requirement is that we should be able to start the rabbitmq from /opt/sbin/. Any help is much appreciated. Thank you :) -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Fri Oct 4 12:31:18 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Fri, 04 Oct 2013 12:31:18 +0100 Subject: [rabbitmq-discuss] Rabbitmq start-up failure In-Reply-To: References: Message-ID: <524EA706.9000502@rabbitmq.com> On 04/10/2013 12:24PM, oc tsdb wrote: > Error description: > {error, > {cannot_delete_plugins_expand_dir, > ["/var/lib/rabbitmq/mnesia/rabbit at localhost-plugins-expand", > {cannot_delete, > > "/var/lib/rabbitmq/mnesia/rabbit at localhost-plugins-expand/amqp_client-3.1.5/include/amqp_client_internal.hrl", > eacces}]}} In other words the startup failed because the rabbitmq user could not access files under /var/lib/rabbitmq. Presumably you have modified the RPM to not create that directory with the appropriate permissions? In which case you'll need to get your RPM to redirect RabbitMQ to use a different directory. See http://www.rabbitmq.com/relocate.html and http://www.rabbitmq.com/configure.html Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From michael at rabbitmq.com Fri Oct 4 12:33:17 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Fri, 4 Oct 2013 15:33:17 +0400 Subject: [rabbitmq-discuss] Rabbitmq start-up failure In-Reply-To: References: Message-ID: <78FA13D0-771F-4064-89B1-9356C4C33852@rabbitmq.com> On oct 4, 2013, at 3:24 p.m., oc tsdb wrote: > Error description: > {error, > {cannot_delete_plugins_expand_dir, > ["/var/lib/rabbitmq/mnesia/rabbit at localhost-plugins-expand", > {cannot_delete, > "/var/lib/rabbitmq/mnesia/rabbit at localhost-plugins-expand/amqp_client-3.1.5/include/amqp_client_internal.hrl", > eacces}]}} Is /var/lib/rabbitmq/mnesia writeable by the user rabbitmq-server uses? If not, you may want to modify RABBITMQ_HOME and similar env varialbes, see http://www.rabbitmq.com/configure.html. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From bison_art at o2.pl Fri Oct 4 12:54:50 2013 From: bison_art at o2.pl (rabbit15) Date: Fri, 4 Oct 2013 04:54:50 -0700 (PDT) Subject: [rabbitmq-discuss] Order in Queues (FIFO) Message-ID: <1380887690808-30183.post@n5.nabble.com> Hi, I have question about order of messages in queues of RabbitMQ. Here are my messages 1 {"timestamp":"2013-08-20 11:00:27","type":"published","node":"rabbit at debian","exchange":"FUS","queue":"none","routing_keys":["ctrl"],"properties":{"reply_to":"AVS","correlation_id":"0","content_type":"fuosn"},"payload":"AA=="} 2 {"timestamp":"2013-08-20 11:00:27","type":"received","node":"rabbit at debian","exchange":"FUS","queue":"FUSControlQ","routing_keys":["ctrl"],"properties":{"reply_to":"AVS","correlation_id":"0","content_type":"fuosn"},"payload":"AA=="} 3 {"timestamp":"2013-08-20 11:00:27","type":"published","node":"rabbit at debian","exchange":"AVS","queue":"none","routing_keys":["fu_data"],"properties":{"content_type":"furi"},"payload":"DwABDAAAAAEIAAEAAAABCwACAAAACHRlbXBsYXRlCwADAAAANGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9qYm9zc3dzL0ZVUy9mdXNQYWNrYWdlLnBhY2thZ2ULAAQAAAA4aHR0cDovL2xvY2FsaG9zdDo4MDgwL2pib3Nzd3MvRlVTL2Z1c1NpZ25hdHVyZS5zaWduYXR1cmUIAAYAAABACwAHAAAAQDAwMDEwMjAzMDQwNTA2MDcwODA5MEEwQjBDMEQwRTBGMTAxMTEyMTMxNDE1MTYxNzE4MTkxQTFCMUMxRDFFMUYIABQAAAAAAAA="} 4 {"timestamp":"2013-08-20 11:00:27","type":"published","node":"rabbit at debian","exchange":"AVS","queue":"none","routing_keys":["fu_data"],"properties":{"content_type":"furi"},"payload":"DwACDAAAAAEIAAEAAAABCwACAAAACHRlbXBsYXRlCwADAAAANGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9qYm9zc3dzL0ZVUy9mdXNQYWNrYWdlLnBhY2thZ2ULAAQAAAA4aHR0cDovL2xvY2FsaG9zdDo4MDgwL2pib3Nzd3MvRlVTL2Z1c1NpZ25hdHVyZS5zaWduYXR1cmUIAAYAAABACwAHAAAAQDAwMDEwMjAzMDQwNTA2MDcwODA5MEEwQjBDMEQwRTBGMTAxMTEyMTMxNDE1MTYxNzE4MTkxQTFCMUMxRDFFMUYIAApSE0xFCAALUhNMRggADAAAAAAIABQAAAAAAAA="} 5 {"timestamp":"2013-08-20 11:00:27","type":"published","node":"rabbit at debian","exchange":"AVS","queue":"none","routing_keys":["fu_data"],"properties":{"content_type":"furi"},"payload":"DwADDAAAAAEIAAEAAAABCAACAAAAAQ8AAwoAAAABAADdzLuqAAEIAAcAAAAACgAIAAAAAAAAHLAMAAkIAAEAAAAAAAgAFAAAAAAADwAEDAAAAAEIAGUAAAABCgBmAADdzLuqAAEIAGcAAAABCABoAAAABgwACggAAQAAAAAACAAUAAAAAAAA"} 6 {"timestamp":"2013-08-20 11:00:27","type":"received","node":"rabbit at debian","exchange":"AVS","queue":"TAVSDataQ","routing_keys":["fu_data"],"properties":{"content_type":"furi"},"payload":"DwACDAAAAAEIAAEAAAABCwACAAAACHRlbXBsYXRlCwADAAAANGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9qYm9zc3dzL0ZVUy9mdXNQYWNrYWdlLnBhY2thZ2ULAAQAAAA4aHR0cDovL2xvY2FsaG9zdDo4MDgwL2pib3Nzd3MvRlVTL2Z1c1NpZ25hdHVyZS5zaWduYXR1cmUIAAYAAABACwAHAAAAQDAwMDEwMjAzMDQwNTA2MDcwODA5MEEwQjBDMEQwRTBGMTAxMTEyMTMxNDE1MTYxNzE4MTkxQTFCMUMxRDFFMUYIAApSE0xFCAALUhNMRggADAAAAAAIABQAAAAAAAA="} 7 {"timestamp":"2013-08-20 11:00:27","type":"received","node":"rabbit at debian","exchange":"AVS","queue":"TAVSDataQ","routing_keys":["fu_data"],"properties":{"content_type":"furi"},"payload":"DwADDAAAAAEIAAEAAAABCAACAAAAAQ8AAwoAAAABAADdzLuqAAEIAAcAAAAACgAIAAAAAAAAHLAMAAkIAAEAAAAAAAgAFAAAAAAADwAEDAAAAAEIAGUAAAABCgBmAADdzLuqAAEIAGcAAAABCABoAAAABgwACggAAQAAAAAACAAUAAAAAAAA"} 8 {"timestamp":"2013-08-20 11:00:27","type":"received","node":"rabbit at debian","exchange":"AVS","queue":"TAVSDataQ","routing_keys":["fu_data"],"properties":{"content_type":"furi"},"payload":"DwABDAAAAAEIAAEAAAABCwACAAAACHRlbXBsYXRlCwADAAAANGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9qYm9zc3dzL0ZVUy9mdXNQYWNrYWdlLnBhY2thZ2ULAAQAAAA4aHR0cDovL2xvY2FsaG9zdDo4MDgwL2pib3Nzd3MvRlVTL2Z1c1NpZ25hdHVyZS5zaWduYXR1cmUIAAYAAABACwAHAAAAQDAwMDEwMjAzMDQwNTA2MDcwODA5MEEwQjBDMEQwRTBGMTAxMTEyMTMxNDE1MTYxNzE4MTkxQTFCMUMxRDFFMUYIABQAAAAAAAA="} problem is that messages order is different while publishing and receiving, not only in rabbit log but as well in applications using it (one connection, one channel per both application) eq. payload sent to rabbit in in order - line: 3, 4, 5 but receiving is in order line: 6(same msg as 4), 7(same message as 5), 8 (same message as 3) - which gives payloads order 4,5,3 Cheers, Artur -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Order-in-Queues-FIFO-tp30183.html Sent from the RabbitMQ mailing list archive at Nabble.com. From michael at rabbitmq.com Fri Oct 4 13:21:16 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Fri, 4 Oct 2013 16:21:16 +0400 Subject: [rabbitmq-discuss] Order in Queues (FIFO) In-Reply-To: <1380887690808-30183.post@n5.nabble.com> References: <1380887690808-30183.post@n5.nabble.com> Message-ID: <3FC2577D-7F4B-4C94-A771-4FBBE5BEDA69@rabbitmq.com> On oct 4, 2013, at 3:54 p.m., rabbit15 wrote: > eq. payload sent to rabbit in in order - line: 3, 4, 5 > but receiving is in order line: 6(same msg as 4), 7(same message as 5), 8 > (same message as 3) - which gives payloads order 4,5,3 RabbitMQ queues are FIFO but there are several factors that you need to take into account: * Messages can be requeued * There can be multiple consumers per queue * Multiple messages can be pushed to a consumer in rapid succession. Deliveries can be dispatched in a thread pool and processed concurrently (this is indeed what several popular clients do) What code produced the log above? Printing to stdout is not a very reliable way when it comes to determining the order. Updating a synchronized collection of some kind and inspecting it is a more reliable way. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From Punit.Jain at emc.com Fri Oct 4 14:13:49 2013 From: Punit.Jain at emc.com (Jain, Punit) Date: Fri, 4 Oct 2013 09:13:49 -0400 Subject: [rabbitmq-discuss] rabbitmq-c: how to detect broker failure Message-ID: Hi, I am using rabbitmq-c amqp client (0.2.0) to publish messages to RabbitMQ broker. I want to be notified in case of broker failure. Is there a way to detect this? Any method or exception, which may notify us about this error while establishing a connection or publishing message? Thanks, Punit -------------- next part -------------- An HTML attachment was scrubbed... URL: From sp345s at att.com Fri Oct 4 15:06:27 2013 From: sp345s at att.com (PATAR, SAGAR) Date: Fri, 4 Oct 2013 14:06:27 +0000 Subject: [rabbitmq-discuss] mirrored queue cluster Message-ID: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> In the Master / Slave Mirrored queue cluster architecture will the slave be handling the load and is it scalable ... ?? From the documentation it looks like master does all the work .. not sure how scalability can be achieved through this approach .. -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael at rabbitmq.com Fri Oct 4 15:13:16 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Fri, 4 Oct 2013 18:13:16 +0400 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: On oct 4, 2013, at 6:06 p.m., "PATAR, SAGAR" wrote: > From the documentation it looks like master does all the work .. Correct. > not sure how scalability can be achieved through this approach At the moment, by using multiple queues. A single queue won't let you to take advantage of multiple cores or CPUs on a node, too. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From simon at rabbitmq.com Fri Oct 4 15:22:44 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Fri, 04 Oct 2013 15:22:44 +0100 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: <524ECF34.70802@rabbitmq.com> On 04/10/2013 3:13PM, Michael Klishin wrote: > On oct 4, 2013, at 6:06 p.m., "PATAR, SAGAR" wrote: > >> From the documentation it looks like master does all the work .. > > Correct. Just to add to / clarify this: the slaves *also* do (almost all) the work - the queues are after all mirrored, the masters and the slaves have to all do the same work... Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From sp345s at att.com Fri Oct 4 15:25:06 2013 From: sp345s at att.com (PATAR, SAGAR) Date: Fri, 4 Oct 2013 14:25:06 +0000 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: <524ECF34.70802@rabbitmq.com> References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> <524ECF34.70802@rabbitmq.com> Message-ID: <59BF56992750434F89F8EBE141E64B1D018203BB@GAALPA1MSGUSR9C.ITServices.sbc.com> Adding more slaves to the cluster will increase the capacity the cluster handles.. Is the statement correct?? -----Original Message----- From: Simon MacMullen [mailto:simon at rabbitmq.com] Sent: Friday, October 04, 2013 10:23 AM To: Discussions about RabbitMQ Cc: Michael Klishin; PATAR, SAGAR Subject: Re: [rabbitmq-discuss] mirrored queue cluster On 04/10/2013 3:13PM, Michael Klishin wrote: > On oct 4, 2013, at 6:06 p.m., "PATAR, SAGAR" wrote: > >> From the documentation it looks like master does all the work .. > > Correct. Just to add to / clarify this: the slaves *also* do (almost all) the work - the queues are after all mirrored, the masters and the slaves have to all do the same work... Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From michael at rabbitmq.com Fri Oct 4 15:28:41 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Fri, 4 Oct 2013 18:28:41 +0400 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: <59BF56992750434F89F8EBE141E64B1D018203BB@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> <524ECF34.70802@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018203BB@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: <6D8EE34F-52D8-4392-9026-CA31D486A59E@rabbitmq.com> On oct 4, 2013, at 6:25 p.m., "PATAR, SAGAR" wrote: > Adding more slaves to the cluster will increase the capacity the cluster handles.. Is the statement correct?? Total throughput capacity but not throughput of a single queue. If you add more nodes and distribute queues between them roughly evenly, then yes. Note that if you mirror a queue to *all* cluster nodes, adding more nodes increases overall load of the cluster. Most of the time, though, it's perfectly fine to only mirror to a subset (say, 2-3) nodes. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From simon at rabbitmq.com Fri Oct 4 15:28:46 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Fri, 04 Oct 2013 15:28:46 +0100 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: <59BF56992750434F89F8EBE141E64B1D018203BB@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> <524ECF34.70802@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018203BB@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: <524ED09E.6050209@rabbitmq.com> On 04/10/2013 3:25PM, PATAR, SAGAR wrote: > Adding more slaves to the cluster will increase the capacity the > cluster handles.. Is the statement correct?? The cluster does not have slaves. Queues have slaves. Adding more nodes to the cluster will increase the capacity of the cluster to run more queues. Adding more slaves to a queue will not make it faster. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From watson.timothy at gmail.com Fri Oct 4 15:33:39 2013 From: watson.timothy at gmail.com (Tim Watson) Date: Fri, 4 Oct 2013 15:33:39 +0100 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: <59BF56992750434F89F8EBE141E64B1D018203BB@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> <524ECF34.70802@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018203BB@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: <4CD01CF1-FBCB-4A32-9AFB-519B0FCA37DC@rabbitmq.com> On 4 Oct 2013, at 15:25, "PATAR, SAGAR" wrote: > Adding more slaves to the cluster will increase the capacity the cluster handles.. Is the statement correct?? > No, adding slaves creates redundancy but doesn't increase capacity. If anything, it will decrease capacity (in terms of being able to mod data through the cluster) due to the added overhead. Mirroring is a fault tolerance feature, not a load/capacity increasing one. Hth. Tim From sp345s at att.com Fri Oct 4 15:38:01 2013 From: sp345s at att.com (PATAR, SAGAR) Date: Fri, 4 Oct 2013 14:38:01 +0000 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: <4CD01CF1-FBCB-4A32-9AFB-519B0FCA37DC@rabbitmq.com> References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> <524ECF34.70802@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018203BB@GAALPA1MSGUSR9C.ITServices.sbc.com> <4CD01CF1-FBCB-4A32-9AFB-519B0FCA37DC@rabbitmq.com> Message-ID: <59BF56992750434F89F8EBE141E64B1D018203EA@GAALPA1MSGUSR9C.ITServices.sbc.com> What approach do you guys suggest to have both fault tolerance and scalability as our load increases .. -----Original Message----- From: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Tim Watson Sent: Friday, October 04, 2013 10:34 AM To: Discussions about RabbitMQ Cc: Discussions about RabbitMQ Subject: Re: [rabbitmq-discuss] mirrored queue cluster On 4 Oct 2013, at 15:25, "PATAR, SAGAR" wrote: > Adding more slaves to the cluster will increase the capacity the cluster handles.. Is the statement correct?? > No, adding slaves creates redundancy but doesn't increase capacity. If anything, it will decrease capacity (in terms of being able to mod data through the cluster) due to the added overhead. Mirroring is a fault tolerance feature, not a load/capacity increasing one. Hth. Tim _______________________________________________ rabbitmq-discuss mailing list rabbitmq-discuss at lists.rabbitmq.com https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss From sp345s at att.com Fri Oct 4 15:40:23 2013 From: sp345s at att.com (PATAR, SAGAR) Date: Fri, 4 Oct 2013 14:40:23 +0000 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: <59BF56992750434F89F8EBE141E64B1D018203F5@GAALPA1MSGUSR9C.ITServices.sbc.com> Below when u say queues ..do you mean Exchanges ?? Do you suggest to have separate queues per consuming system (dynamically by the consumer ??) -----Original Message----- From: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Michael Klishin Sent: Friday, October 04, 2013 10:13 AM To: Discussions about RabbitMQ Subject: Re: [rabbitmq-discuss] mirrored queue cluster On oct 4, 2013, at 6:06 p.m., "PATAR, SAGAR" wrote: > From the documentation it looks like master does all the work .. Correct. > not sure how scalability can be achieved through this approach At the moment, by using multiple queues. A single queue won't let you to take advantage of multiple cores or CPUs on a node, too. MK From richard at raseley.com Fri Oct 4 15:40:45 2013 From: richard at raseley.com (Richard Raseley) Date: Fri, 4 Oct 2013 07:40:45 -0700 Subject: [rabbitmq-discuss] Determining Cause of Flow-Control Invocation Message-ID: We currently use RabbitMQ as a broker for a subset of our overall logging platform. Recently, we attempted to add an additional category of logging that would result in additional load of approximately 2,000 msg/sec with an average message size of approximately 2KB. Upon adding this additional category of logging, we noticed a couple things: (1) Our consumers were not able to keep up with the flow of messages, so they began to build up in the queue (our developers are working on fixing this). (2) We began to see RabbitMQ invoke flow-control in the form of TCP back-pressure on our producers. My initial thought was that since we were using durable queues with persistent messages that when the consumers weren't immediately picking up the messages, RabbitMQ was attempting to persist them to disk in order to satisfy the persistence & durability requirements and it couldn't keep up. But in following up with my developers this morning it seems that they are in fact no publishing the messages as persistent and being that (based on my understanding) a non-persistent message published to a durable queue is not written to disk, this threw my initial theory out the windows (I still have to verify their claim of non-persistence). So, my question is - what other things can I look at to determine the cause of the invocation of flow control. Additional relevant information is as follows: (*) 2x RabbitMQ Nodes Running 3.1.3 in a clustered configuration. (*) Each node has 8x 2GHzCPU cores and 4GB of RAM. (*) At no time during the window in question did CPU utilization reach >15% (*) At no time during the window in question did memory utilization reach >50% (*) In looking at the logs during the window in question I can see events which I think are associated with the various publishers disconnecting (I am not sure if our producer code is handling flow-control gracefully) but nothing that seems to indicate why this happened. Any help would be greatly appreciated. Regards, Richard -------------- next part -------------- An HTML attachment was scrubbed... URL: From sp345s at att.com Fri Oct 4 15:43:36 2013 From: sp345s at att.com (PATAR, SAGAR) Date: Fri, 4 Oct 2013 14:43:36 +0000 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: <59BF56992750434F89F8EBE141E64B1D01820414@GAALPA1MSGUSR9C.ITServices.sbc.com> In a cluster can we have only few queues as mirrored for fault tolerance and rest of the queues for high load processing?? -----Original Message----- From: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Michael Klishin Sent: Friday, October 04, 2013 10:13 AM To: Discussions about RabbitMQ Subject: Re: [rabbitmq-discuss] mirrored queue cluster On oct 4, 2013, at 6:06 p.m., "PATAR, SAGAR" wrote: > From the documentation it looks like master does all the work .. Correct. > not sure how scalability can be achieved through this approach At the moment, by using multiple queues. A single queue won't let you to take advantage of multiple cores or CPUs on a node, too. MK From richard at raseley.com Fri Oct 4 15:44:44 2013 From: richard at raseley.com (Richard Raseley) Date: Fri, 4 Oct 2013 07:44:44 -0700 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: <59BF56992750434F89F8EBE141E64B1D018203EA@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> <524ECF34.70802@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018203BB@GAALPA1MSGUSR9C.ITServices.sbc.com> <4CD01CF1-FBCB-4A32-9AFB-519B0FCA37DC@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018203EA@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: One option which we've considered, but not yet implemented is load balancing connections between a pool (in F5 parlance) of multiple clusters with identical configurations. The challenge in this case is ensuring as even of distribution as possible both for consumers and producers so you don't end up with a backlog of messages in one cluster or wasted capacity. On Fri, Oct 4, 2013 at 7:38 AM, PATAR, SAGAR wrote: > What approach do you guys suggest to have both fault tolerance and > scalability as our load increases .. > > -----Original Message----- > From: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto: > rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Tim Watson > Sent: Friday, October 04, 2013 10:34 AM > To: Discussions about RabbitMQ > Cc: Discussions about RabbitMQ > Subject: Re: [rabbitmq-discuss] mirrored queue cluster > > On 4 Oct 2013, at 15:25, "PATAR, SAGAR" wrote: > > > Adding more slaves to the cluster will increase the capacity the cluster > handles.. Is the statement correct?? > > > > No, adding slaves creates redundancy but doesn't increase capacity. If > anything, it will decrease capacity (in terms of being able to mod data > through the cluster) due to the added overhead. Mirroring is a fault > tolerance feature, not a load/capacity increasing one. > > Hth. > > Tim > _______________________________________________ > 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 at rabbitmq.com Fri Oct 4 15:48:16 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Fri, 4 Oct 2013 18:48:16 +0400 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: <59BF56992750434F89F8EBE141E64B1D018203F5@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D018203F5@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: <9D8B2AA2-4083-41FC-9AC8-A5850DB4AC9B@rabbitmq.com> On oct 4, 2013, at 6:40 p.m., "PATAR, SAGAR" wrote: > Below when u say queues ..do you mean Exchanges ?? When I say "queues" I mean "queues". > Do you suggest to have separate queues per consuming system (dynamically by the consumer ??) I'm not sure what "consuming system" means but yes, if you can use multiple queues in some cases, do that. E.g. if you are streaming log events and have 5 severities, you can use a Single Giant Queue? (SGQ) or 5 smaller queues, one per severity. 5 smaller queues will both utilize your hardware resources better and will let you distributed the load across nodes. SGQ is not a great design decision in general, but especially so for loaded systems. Note that it's perfectly fine and not uncommon for a single application or instance to consume from multiple queues. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From simon at rabbitmq.com Fri Oct 4 15:48:47 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Fri, 04 Oct 2013 15:48:47 +0100 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> <524ECF34.70802@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018203BB@GAALPA1MSGUSR9C.ITServices.sbc.com> <4CD01CF1-FBCB-4A32-9AFB-519B0FCA37DC@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018203EA@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: <524ED54F.1010001@rabbitmq.com> On 04/10/2013 3:44PM, Richard Raseley wrote: > The challenge in this case is ensuring as even of distribution as > possible both for consumers and producers so you don't end up with a > backlog of messages in one cluster or wasted capacity. Federated queues in the next release (3.2.0) will help with this, by load balancing messages "after the fact". Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From sp345s at att.com Fri Oct 4 15:51:57 2013 From: sp345s at att.com (PATAR, SAGAR) Date: Fri, 4 Oct 2013 14:51:57 +0000 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: <524ED09E.6050209@rabbitmq.com> References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> <524ECF34.70802@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018203BB@GAALPA1MSGUSR9C.ITServices.sbc.com> <524ED09E.6050209@rabbitmq.com> Message-ID: <59BF56992750434F89F8EBE141E64B1D01820459@GAALPA1MSGUSR9C.ITServices.sbc.com> So let's say we have 6 nodes in a cluster ... I can user 3 nodes for master/slave mirror architecture for few queues and how will the other 3 node help us ?? -----Original Message----- From: Simon MacMullen [mailto:simon at rabbitmq.com] Sent: Friday, October 04, 2013 10:29 AM To: PATAR, SAGAR Cc: Discussions about RabbitMQ; Michael Klishin Subject: Re: [rabbitmq-discuss] mirrored queue cluster On 04/10/2013 3:25PM, PATAR, SAGAR wrote: > Adding more slaves to the cluster will increase the capacity the > cluster handles.. Is the statement correct?? The cluster does not have slaves. Queues have slaves. Adding more nodes to the cluster will increase the capacity of the cluster to run more queues. Adding more slaves to a queue will not make it faster. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From michael at rabbitmq.com Fri Oct 4 15:54:38 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Fri, 4 Oct 2013 18:54:38 +0400 Subject: [rabbitmq-discuss] Determining Cause of Flow-Control Invocation In-Reply-To: References: Message-ID: <0BB3C931-EA1D-499C-98DD-8337952A07C9@rabbitmq.com> On oct 4, 2013, at 6:40 p.m., Richard Raseley wrote: > So, my question is - what other things can I look at to determine the cause of the invocation of flow control There are 3 cases when RabbitMQ will block publishers (until the underlying problem is resolved): * It consumes more RAM than vm_high_memory_watermark * Node has less disk space left than the configured minimum limit * RabbitMQ process is out of available file descriptors (ulimit -n) See http://www.rabbitmq.com/memory.html for more details. RabbitMQ log should have very visible messages when one of the above happens. In the first two cases the only solution is to increase capacity of your consumers so that they drain messages and all alarms unblock. Alternatively, if your data is temporary in nature, you can set TTL on messages [1]. In the latter case (file descriptors) you should configure open file handles limit for the Rabbit process or use fewer connections. 1. http://www.rabbitmq.com/ttl.html MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From simon at rabbitmq.com Fri Oct 4 15:55:58 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Fri, 04 Oct 2013 15:55:58 +0100 Subject: [rabbitmq-discuss] Determining Cause of Flow-Control Invocation In-Reply-To: References: Message-ID: <524ED6FE.6080200@rabbitmq.com> On 04/10/2013 3:40PM, Richard Raseley wrote: > So, my question is - what other things can I look at to determine the > cause of the invocation of flow control. Additional relevant information > is as follows: Each queue can only use 100% of one core, so it is possible to hit flow control without using 100% CPU of all cores (if everything goes through one queue). Also: queues with transient messages can start to page to disc if there is any memory pressure. This is not very easy to observe in current releases (we aim to make it clearer), but you can look at backing_queue_status in rabbitmqctl and the HTTP API - if ram_msg_count + ram_ack_count != messages then the queue is paging. This is definitely an area where we aim to improve things. 3.2.0 will already make paging rather easier to observe and control. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Fri Oct 4 16:00:09 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Fri, 04 Oct 2013 16:00:09 +0100 Subject: [rabbitmq-discuss] Determining Cause of Flow-Control Invocation In-Reply-To: <0BB3C931-EA1D-499C-98DD-8337952A07C9@rabbitmq.com> References: <0BB3C931-EA1D-499C-98DD-8337952A07C9@rabbitmq.com> Message-ID: <524ED7F9.1040709@rabbitmq.com> On 04/10/2013 3:54PM, Michael Klishin wrote: >> >So, my question is - what other things can I look at to determine the cause of the invocation of flow control > There are 3 cases when RabbitMQ will block publishers (until the underlying problem > is resolved): > > * It consumes more RAM than vm_high_memory_watermark > * Node has less disk space left than the configured minimum limit > * RabbitMQ process is out of available file descriptors (ulimit -n) I think the OP was talking about this: http://www.rabbitmq.com/memory.html#per-connection not this: http://www.rabbitmq.com/memory.html#memsup I think so, anyway. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From michael at rabbitmq.com Fri Oct 4 16:04:21 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Fri, 4 Oct 2013 19:04:21 +0400 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: <59BF56992750434F89F8EBE141E64B1D01820459@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> <524ECF34.70802@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018203BB@GAALPA1MSGUSR9C.ITServices.sbc.com> <524ED09E.6050209@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D01820459@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: <55E33773-2DC5-434D-AE77-DF56F24A6BD5@rabbitmq.com> On oct 4, 2013, at 6:51 p.m., "PATAR, SAGAR" wrote: > So let's say we have 6 nodes in a cluster ... I can user 3 nodes for master/slave mirror architecture for few queues and how will the other 3 node help us ?? Put a proxy in front of the cluster. Make your clients connect to it. This will make sure queues (masters) are roughly evenly distributed between nodes. Use replication factor = 2 or 3 for mirrored queues. Try modeling your apps to use more queues, e.g. every consumer could use one or more queues. As load increases, add one or two more cluster nodes, more consumers and more producers (as needed). If your cluster will use more queues in total, you should see increased overall throughput, while maintaining redundancy with mirrored queues. It may become an issue that the proxy itself becomes a bottleneck (e.g. its network link is completely saturated). You can have multiple of those and make some clients connect to proxy1, some to proxy2, etc, as network capacity permits. There are other factors impacting cluster throughput and having a proxy is not an absolutely best way to ensure data locality (avoiding messages being routed between cluster nodes), but I hope these guidelines give you some idea. If you have more specific questions or can explain what your topology and workflow look like, we may be able to provide more specific recommendations. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From michael.laing at nytimes.com Fri Oct 4 16:28:58 2013 From: michael.laing at nytimes.com (Laing, Michael) Date: Fri, 4 Oct 2013 11:28:58 -0400 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: <9D8B2AA2-4083-41FC-9AC8-A5850DB4AC9B@rabbitmq.com> References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D018203F5@GAALPA1MSGUSR9C.ITServices.sbc.com> <9D8B2AA2-4083-41FC-9AC8-A5850DB4AC9B@rabbitmq.com> Message-ID: We run mirrored queues within multiple parallel clusters in the 'backend'. Internal apps are load-balanced into these 'pipelines'. 'Frontend' rabbits consume from each pipeline, and serve client apps via load balancers, and our own gateway. The 'frontends' autoscale out, depending upon actual load and predicted load. The 'backends' are first scaled up (larger boxes) and then more pipelines are added (scale out). One piece of advice for performance: do not use persistence. We use Cassandra for that purpose: replica resolution, journaling, etc., and can continuously run analysis a couple minutes after the fact that shows latencies, outages, and so forth across the entire fabric from an application point of view. In fact our project is called 'nyt?a?rik'. Our deployment spans multiple AWS regions, multiple zones per region, and is headless. We're currently transitioning into production so we don't have much time to discuss, but we will do comprehensive blog posts, github projects etc about the architecture including detailed configurations, frameworks, and so forth later this year/early next. Almost all components will be open-sourced. Michael On Fri, Oct 4, 2013 at 10:48 AM, Michael Klishin wrote: > > On oct 4, 2013, at 6:40 p.m., "PATAR, SAGAR" wrote: > > > Below when u say queues ..do you mean Exchanges ?? > > When I say "queues" I mean "queues". > > > Do you suggest to have separate queues per consuming system (dynamically > by the consumer ??) > > I'm not sure what "consuming system" means but yes, if you can use > multiple queues in > some cases, do that. E.g. if you are streaming log events and have 5 > severities, > you can use a Single Giant Queue? (SGQ) or 5 smaller queues, one per > severity. 5 smaller > queues will both utilize your hardware resources better and will let you > distributed > the load across nodes. > > SGQ is not a great design decision in general, but especially so for > loaded systems. > > Note that it's perfectly fine and not uncommon for a single application or > instance > to consume from multiple queues. > > MK > > > > > _______________________________________________ > 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.jaeger at thomsonreuters.com Fri Oct 4 17:23:12 2013 From: ron.jaeger at thomsonreuters.com (ron.jaeger at thomsonreuters.com) Date: Fri, 4 Oct 2013 16:23:12 +0000 Subject: [rabbitmq-discuss] Question regarding setting up a shovel between two clusters Message-ID: <7997A3D0E2B05844BE50FD03B7ED709C151A1848@C111WHRPMBX28.ERF.thomson.com> I am looking for a little help setting up a shovel between two rabbitmq clusters. We have an application that will need to send messages between two different datacenters. Each datacenter will have a RabbitMQ cluster. I have set up a shovel in our lab to verify that this will meet the applications requirements. It is fairly straightforward to set up the shovel between standalone RabbitMQ nodes. However, I have ran into issues implementing the shovel with RabbitMQ clusters. The shovel encounters an error when trying to failover the shovel from one node to another within the source cluster. The problem appears to be around the source queue the shovel is using. The configuration I am testing with is as follows: [ {rabbitmq_shovel, [{shovels, [{test_shovel, [{sources, [{brokers, ["amqp://guest:guest at ron-rabbitmq:5672", "amqp://guest:guest at ron-rabbitmq1:5672"] }, {declarations, [{'queue.declare', [{queue, <<"shovel_out_queue">>}, durable]}, {'exchange.declare', [{exchange, <<"shovel_exchange">>}, {type, <<"direct">>}, durable]}, {'queue.bind', [{exchange, <<"shovel_exchange">>}, {queue, <<"shovel_out_queue">>}, {routing_key, <<"shovel_rk">>}]} ]}]}, {destinations, [{broker, "amqp://guest:guest at ron-rabbitmq2:5672"}, {declarations, [{'queue.declare', [{queue, <<"shovel_in_queue">>}, durable]}, {'exchange.declare', [{exchange, <<"shovel_exchange">>}, {type, <<"direct">>}, durable]}, {'queue.bind', [{exchange, <<"shovel_exchange">>}, {queue, <<"shovel_in_queue">>}, {routing_key, <<"shovel_rk">>}]} ]}]}, {queue, <<"shovel_out_queue">>}, {ack_mode, no_ack}, {publish_properties, [{delivery_mode, 2}]}, {publish_fields, [{exchange, <<"shovel_exchange">>}, {routing_key, <<"shovel_rk">>}]}, {reconnect_delay, 5} ]} ] }] } ]. The error I am enountering is: ** Reason for termination == ** {{shutdown, {server_initiated_close,404, <<"NOT_FOUND - home node 'RABBIT1 at ron-rabbitmq' of durable queue 'shovel_out_queue' in vhost '/' is down or inaccessible">>}}, It seems that it can't access the queue because it doesn't exist on the source cluster node it failed over to. I have considered having the source queue be transient, but there is the potential to lose orphaned messages with that approach. I have also thought about mirroring the queue, but additional overhead may be a concern due to the high volume of traffic. Any thoughts or suggestions would be appreciated. Ron Jaeger Thomson Reuters -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Fri Oct 4 17:32:26 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Fri, 04 Oct 2013 17:32:26 +0100 Subject: [rabbitmq-discuss] Question regarding setting up a shovel between two clusters In-Reply-To: <7997A3D0E2B05844BE50FD03B7ED709C151A1848@C111WHRPMBX28.ERF.thomson.com> References: <7997A3D0E2B05844BE50FD03B7ED709C151A1848@C111WHRPMBX28.ERF.thomson.com> Message-ID: <524EED9A.7040203@rabbitmq.com> On 04/10/2013 5:23PM, ron.jaeger at thomsonreuters.com wrote: > I am looking for a little help setting up a shovel between two rabbitmq > clusters. Hi. Did you see my answer here: http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2013-October/030674.html ? Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From ron.jaeger at thomsonreuters.com Fri Oct 4 17:53:26 2013 From: ron.jaeger at thomsonreuters.com (ron.jaeger at thomsonreuters.com) Date: Fri, 4 Oct 2013 16:53:26 +0000 Subject: [rabbitmq-discuss] Question regarding setting up a shovel between two clusters In-Reply-To: <524EED9A.7040203@rabbitmq.com> References: <7997A3D0E2B05844BE50FD03B7ED709C151A1848@C111WHRPMBX28.ERF.thomson.com> <524EED9A.7040203@rabbitmq.com> Message-ID: <7997A3D0E2B05844BE50FD03B7ED709C151A18E6@C111WHRPMBX28.ERF.thomson.com> Hi Simon, Thanks for the reply. My apologies, but I missed your initial reply. After reviewing your reply, I am curious if using federation rather than shoveling would be advantageous in this use case? Ron Jaeger PSTS Middleware CPS Thomson Reuters email: Ron.Jaeger at thomsonreuters.com phone: (651) 848-5264 Cell: (651) 236-7233 -----Original Message----- From: Simon MacMullen [mailto:simon at rabbitmq.com] Sent: Friday, October 04, 2013 11:32 AM To: Discussions about RabbitMQ Cc: Jaeger, Ron (TR Technology) Subject: Re: [rabbitmq-discuss] Question regarding setting up a shovel between two clusters On 04/10/2013 5:23PM, ron.jaeger at thomsonreuters.com wrote: > I am looking for a little help setting up a shovel between two > rabbitmq clusters. Hi. Did you see my answer here: http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2013-October/030674.html ? Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From sp345s at att.com Fri Oct 4 18:01:37 2013 From: sp345s at att.com (PATAR, SAGAR) Date: Fri, 4 Oct 2013 17:01:37 +0000 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: <9D8B2AA2-4083-41FC-9AC8-A5850DB4AC9B@rabbitmq.com> References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D018203F5@GAALPA1MSGUSR9C.ITServices.sbc.com> <9D8B2AA2-4083-41FC-9AC8-A5850DB4AC9B@rabbitmq.com> Message-ID: <59BF56992750434F89F8EBE141E64B1D018204D7@GAALPA1MSGUSR9C.ITServices.sbc.com> Thank you .. Apart from Queue.. We should be able to mirror a topic (I mean Topic Exchange) as well right... -----Original Message----- From: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Michael Klishin Sent: Friday, October 04, 2013 10:48 AM To: Discussions about RabbitMQ Subject: Re: [rabbitmq-discuss] mirrored queue cluster On oct 4, 2013, at 6:40 p.m., "PATAR, SAGAR" wrote: > Below when u say queues ..do you mean Exchanges ?? When I say "queues" I mean "queues". > Do you suggest to have separate queues per consuming system (dynamically by the consumer ??) I'm not sure what "consuming system" means but yes, if you can use multiple queues in some cases, do that. E.g. if you are streaming log events and have 5 severities, you can use a Single Giant Queue(tm) (SGQ) or 5 smaller queues, one per severity. 5 smaller queues will both utilize your hardware resources better and will let you distributed the load across nodes. SGQ is not a great design decision in general, but especially so for loaded systems. Note that it's perfectly fine and not uncommon for a single application or instance to consume from multiple queues. MK From michael at rabbitmq.com Fri Oct 4 18:06:04 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Fri, 4 Oct 2013 21:06:04 +0400 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: <59BF56992750434F89F8EBE141E64B1D018204D7@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D018203F5@GAALPA1MSGUSR9C.ITServices.sbc.com> <9D8B2AA2-4083-41FC-9AC8-A5850DB4AC9B@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204D7@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: <60E60AE4-5BEB-4C3D-9659-77570BF3BB9A@rabbitmq.com> On oct 4, 2013, at 9:01 p.m., "PATAR, SAGAR" wrote: > Thank you .. Apart from Queue.. We should be able to mirror a topic (I mean Topic Exchange) as well right. All exchanges are always mirrored. They are not really separate entities, just a distributed routing table that all nodes have a copy of. That's why you can publish to any node. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From sp345s at att.com Fri Oct 4 18:15:24 2013 From: sp345s at att.com (PATAR, SAGAR) Date: Fri, 4 Oct 2013 17:15:24 +0000 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: <60E60AE4-5BEB-4C3D-9659-77570BF3BB9A@rabbitmq.com> References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D018203F5@GAALPA1MSGUSR9C.ITServices.sbc.com> <9D8B2AA2-4083-41FC-9AC8-A5850DB4AC9B@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204D7@GAALPA1MSGUSR9C.ITServices.sbc.com> <60E60AE4-5BEB-4C3D-9659-77570BF3BB9A@rabbitmq.com> Message-ID: <59BF56992750434F89F8EBE141E64B1D018204FC@GAALPA1MSGUSR9C.ITServices.sbc.com> I mean in Master/Slave architecture during the failovers ... If all exchanges are mirrored then we need to configure the exchanges which needs to be mirrored in Master/Slave .. Is that correct?? -----Original Message----- From: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Michael Klishin Sent: Friday, October 04, 2013 1:06 PM To: Discussions about RabbitMQ Subject: Re: [rabbitmq-discuss] mirrored queue cluster On oct 4, 2013, at 9:01 p.m., "PATAR, SAGAR" wrote: > Thank you .. Apart from Queue.. We should be able to mirror a topic (I mean Topic Exchange) as well right. All exchanges are always mirrored. They are not really separate entities, just a distributed routing table that all nodes have a copy of. That's why you can publish to any node. MK From smarotta at gmail.com Fri Oct 4 18:20:08 2013 From: smarotta at gmail.com (Steve Marotta) Date: Fri, 4 Oct 2013 13:20:08 -0400 Subject: [rabbitmq-discuss] Server-wide persistent global "property"? In-Reply-To: <58F65283-6E06-4DEB-B459-3DD442326F88@rabbitmq.com> References: <58F65283-6E06-4DEB-B459-3DD442326F88@rabbitmq.com> Message-ID: Thank you for the response! Is it possible, within RabbitMQ, to have a client request the last message posted on a queue? Suppose I want to publish a message to all subscribers, but one of the subscribers starts listening too late and I want it to be caught up with the others. Is there a way to do that? On Fri, Oct 4, 2013 at 5:16 AM, Michael Klishin wrote: > Steve Marotta: > > > Is that possible in RabbitMQ? > > In theory yes but it will likely be unnecessarily painful. > > Sounds like you want Redis, ZooKeeper or etcd. > > MK > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael at rabbitmq.com Fri Oct 4 18:21:05 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Fri, 4 Oct 2013 21:21:05 +0400 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: <59BF56992750434F89F8EBE141E64B1D018204FC@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D018203F5@GAALPA1MSGUSR9C.ITServices.sbc.com> <9D8B2AA2-4083-41FC-9AC8-A5850DB4AC9B@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204D7@GAALPA1MSGUSR9C.ITServices.sbc.com> <60E60AE4-5BEB-4C3D-9659-77570BF3BB9A@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204FC@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: <9A3789FF-8D4D-466D-A771-C885C7DA5E1F@rabbitmq.com> On oct 4, 2013, at 9:15 p.m., "PATAR, SAGAR" wrote: > I mean in Master/Slave architecture during the failovers ... > > If all exchanges are mirrored then we need to configure the exchanges which needs to be mirrored in Master/Slave .. Is that correct?? There is no such thing as mirrored exchanges. Exchanges ? wait for it ? do not exist. They are simply names used to load bindings (what I called the routing table) from a distributed database that all RabbitMQ cluster nodes have access to. Every node has a consistent view of all exchanges and bindings. You can use any exchange from on node w/o intra-cluster traffic, if that makes more sense. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From jkuch at gopivotal.com Fri Oct 4 18:24:26 2013 From: jkuch at gopivotal.com (Jerry Kuch) Date: Fri, 4 Oct 2013 10:24:26 -0700 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: <59BF56992750434F89F8EBE141E64B1D018204FC@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D018203F5@GAALPA1MSGUSR9C.ITServices.sbc.com> <9D8B2AA2-4083-41FC-9AC8-A5850DB4AC9B@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204D7@GAALPA1MSGUSR9C.ITServices.sbc.com> <60E60AE4-5BEB-4C3D-9659-77570BF3BB9A@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204FC@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: The notion of mirroring exchanges doesn't make sense. An exchange is essentially metadata, shared across the cluster in a distributed database. There's no living, running entity beyond that backing it, and the routing work implied by the exchange is done by the process associated with the publishing channel. A queue however is backed by a single Erlang process. A mirrored queue gains extra backing processes to support its mirrors. These processes must coordinate amongst themselves to make sure the same operations applied to the master are applied to the queues in the same order, so that a slave can be promoted to take over for its failed master. You configure mirrored queues in recent Rabbit versions by creating a policy that names the queues you want to have mirrored and specifies the details for how they're mirrored (number of replicas, locations of replicas, etc.). In older versions you configured mirrored queues at queue.declare time, which was less flexible in a number of respects. Best regards, Jerry On Fri, Oct 4, 2013 at 10:15 AM, PATAR, SAGAR wrote: > I mean in Master/Slave architecture during the failovers ... > > If all exchanges are mirrored then we need to configure the exchanges > which needs to be mirrored in Master/Slave .. Is that correct?? > > -----Original Message----- > From: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto: > rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Michael Klishin > Sent: Friday, October 04, 2013 1:06 PM > To: Discussions about RabbitMQ > Subject: Re: [rabbitmq-discuss] mirrored queue cluster > > > On oct 4, 2013, at 9:01 p.m., "PATAR, SAGAR" wrote: > > > Thank you .. Apart from Queue.. We should be able to mirror a topic (I > mean Topic Exchange) as well right. > > All exchanges are always mirrored. They are not really separate entities, > just a distributed routing > table that all nodes have a copy of. That's why you can publish to any > node. > > MK > > > > _______________________________________________ > 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 brett.r.cameron at gmail.com Fri Oct 4 18:26:28 2013 From: brett.r.cameron at gmail.com (Brett Cameron) Date: Sat, 5 Oct 2013 06:26:28 +1300 Subject: [rabbitmq-discuss] Server-wide persistent global "property"? In-Reply-To: References: <58F65283-6E06-4DEB-B459-3DD442326F88@rabbitmq.com> Message-ID: Steve, Not sure whether https://github.com/videlalvaro/rabbitmq-recent-history-exchange might in some way address the requirement? Brett On Sat, Oct 5, 2013 at 6:20 AM, Steve Marotta wrote: > Thank you for the response! > > Is it possible, within RabbitMQ, to have a client request the last message > posted on a queue? Suppose I want to publish a message to all subscribers, > but one of the subscribers starts listening too late and I want it to be > caught up with the others. Is there a way to do that? > > > On Fri, Oct 4, 2013 at 5:16 AM, Michael Klishin wrote: > >> Steve Marotta: >> >> > Is that possible in RabbitMQ? >> >> In theory yes but it will likely be unnecessarily painful. >> >> Sounds like you want Redis, ZooKeeper or etcd. >> >> MK >> >> >> >> > > _______________________________________________ > 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 richard at raseley.com Fri Oct 4 18:37:48 2013 From: richard at raseley.com (Richard Raseley) Date: Fri, 4 Oct 2013 10:37:48 -0700 Subject: [rabbitmq-discuss] Determining Cause of Flow-Control Invocation In-Reply-To: <524ED7F9.1040709@rabbitmq.com> References: <0BB3C931-EA1D-499C-98DD-8337952A07C9@rabbitmq.com> <524ED7F9.1040709@rabbitmq.com> Message-ID: Michael and Simon, Thank you for taking the time to respond to my question. Yes, I was talking about the per-connection flow-control. The thing that stands out to me is Simon's statement that each queue can only use 100% of one core. Looking back at our logging, it does seem that one core was getting close to 100% during this time period (I need to get more granular data to be sure if it hit it or not) - so this would explain what we were seeing. If that is the case, the obvious solution is to separate the load across multiple queues. I will have to think on that a while, as our current configuration was 1:1 mapping of queue to error type. Some questions: (*) When a RabbitMQ broker has multiple queues, will it automatically disperse them across the available cores? For example if I have 8 queues on a broker with 8 cores, will it automatically ensure a 1:1 mapping of queues:cores? (*) In the situation where I have been using one queue that mapped well to a logical construct (e.g 1 queue for info, 1 queue for warning, 1 queue for errors) can you share your own personal opinions on the best way to divide that up to ensure distribution across all cores (e.g. one queue per type per core, one queue per producer per type, etc.)? I have a little more digging to do. Regards, Richard On Fri, Oct 4, 2013 at 8:00 AM, Simon MacMullen wrote: > On 04/10/2013 3:54PM, Michael Klishin wrote: > >> >So, my question is - what other things can I look at to determine the >>> cause of the invocation of flow control >>> >> There are 3 cases when RabbitMQ will block publishers (until the >> underlying problem >> is resolved): >> >> * It consumes more RAM than vm_high_memory_watermark >> * Node has less disk space left than the configured minimum limit >> * RabbitMQ process is out of available file descriptors (ulimit -n) >> > > I think the OP was talking about this: > > http://www.rabbitmq.com/**memory.html#per-connection > > not this: > > http://www.rabbitmq.com/**memory.html#memsup > > I think so, anyway. > > > Cheers, Simon > > -- > Simon MacMullen > RabbitMQ, Pivotal > -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael at rabbitmq.com Fri Oct 4 18:44:44 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Fri, 4 Oct 2013 21:44:44 +0400 Subject: [rabbitmq-discuss] Determining Cause of Flow-Control Invocation In-Reply-To: References: <0BB3C931-EA1D-499C-98DD-8337952A07C9@rabbitmq.com> <524ED7F9.1040709@rabbitmq.com> Message-ID: On oct 4, 2013, at 9:37 p.m., Richard Raseley wrote: > (*) When a RabbitMQ broker has multiple queues, will it automatically disperse them across the available cores? For example if I have 8 queues on a broker with 8 cores, will it automatically ensure a 1:1 mapping of queues:cores? For all intents and purposes, you can think that the answer is "yes". 8 cores will be used, but it's a little more complicated than "1 queue per core". > > (*) In the situation where I have been using one queue that mapped well to a logical construct (e.g 1 queue for info, 1 queue for warning, 1 queue for errors) can you share your own personal opinions on the best way to divide that up to ensure distribution across all cores (e.g. one queue per type per core, one queue per producer per type, etc.)? you can implement sharding in the client. That's basically how travis-ci.org worked at some point (2012). To be more specific, you can have N queues named info.1 info.2 ? info.N and have consumers consume from all of them. Publisher can use any hashing technique you like, e.g. consistent hashing or even basic module-based caching, since there is no need to rebalance queue contents when you add or remove queues. The key issue with this is ordering. E.g. if your stream must be ordered (e.g. CI build log chunks must be), it is trickier but certainly doable. If not, you can parallelize the stream between many queues pretty trivially. See http://about.travis-ci.org/blog/2013-08-08-solving-the-puzzle-of-scalable-log-processing/ for some more insights. HTH. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From michael at rabbitmq.com Fri Oct 4 18:48:15 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Fri, 4 Oct 2013 21:48:15 +0400 Subject: [rabbitmq-discuss] Determining Cause of Flow-Control Invocation In-Reply-To: References: <0BB3C931-EA1D-499C-98DD-8337952A07C9@rabbitmq.com> <524ED7F9.1040709@rabbitmq.com> Message-ID: <32E7B10E-456D-42CE-8F01-D431E5460727@rabbitmq.com> On oct 4, 2013, at 9:44 p.m., Michael Klishin wrote: > The key issue with this is ordering. E.g. if your stream must be ordered (e.g. CI build > log chunks must be), it is trickier but certainly doable. If not, you can parallelize the > stream between many queues pretty trivially. To add to this, you can put extra information into message headers to help you reconstruct the order of chunks. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From richard at raseley.com Fri Oct 4 18:58:48 2013 From: richard at raseley.com (Richard Raseley) Date: Fri, 4 Oct 2013 10:58:48 -0700 Subject: [rabbitmq-discuss] Determining Cause of Flow-Control Invocation In-Reply-To: <32E7B10E-456D-42CE-8F01-D431E5460727@rabbitmq.com> References: <0BB3C931-EA1D-499C-98DD-8337952A07C9@rabbitmq.com> <524ED7F9.1040709@rabbitmq.com> <32E7B10E-456D-42CE-8F01-D431E5460727@rabbitmq.com> Message-ID: Michael, Thank you for your quick reply. Will you expand more on your statement "[I]t's a little more complicated than '1 queue per core'."? Thank you for your suggestion on sharding, I will review the link you provided. Regards, Richard On Fri, Oct 4, 2013 at 10:48 AM, Michael Klishin wrote: > > On oct 4, 2013, at 9:44 p.m., Michael Klishin > wrote: > > > The key issue with this is ordering. E.g. if your stream must be ordered > (e.g. CI build > > log chunks must be), it is trickier but certainly doable. If not, you > can parallelize the > > stream between many queues pretty trivially. > > To add to this, you can put extra information into message headers to help > you > reconstruct the order of chunks. > > MK > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From sp345s at att.com Fri Oct 4 19:01:39 2013 From: sp345s at att.com (PATAR, SAGAR) Date: Fri, 4 Oct 2013 18:01:39 +0000 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: <9A3789FF-8D4D-466D-A771-C885C7DA5E1F@rabbitmq.com> References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D018203F5@GAALPA1MSGUSR9C.ITServices.sbc.com> <9D8B2AA2-4083-41FC-9AC8-A5850DB4AC9B@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204D7@GAALPA1MSGUSR9C.ITServices.sbc.com> <60E60AE4-5BEB-4C3D-9659-77570BF3BB9A@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204FC@GAALPA1MSGUSR9C.ITServices.sbc.com> <9A3789FF-8D4D-466D-A771-C885C7DA5E1F@rabbitmq.com> Message-ID: <59BF56992750434F89F8EBE141E64B1D0182057B@GAALPA1MSGUSR9C.ITServices.sbc.com> Pl. find the attached design slides ..Let us know if that makes sense .. We want to have 2 cluster ..one for mirrored queues and the other regular cluster ... and we have few topics we want to mirror .. -----Original Message----- From: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Michael Klishin Sent: Friday, October 04, 2013 1:21 PM To: Discussions about RabbitMQ Subject: Re: [rabbitmq-discuss] mirrored queue cluster On oct 4, 2013, at 9:15 p.m., "PATAR, SAGAR" wrote: > I mean in Master/Slave architecture during the failovers ... > > If all exchanges are mirrored then we need to configure the exchanges which needs to be mirrored in Master/Slave .. Is that correct?? There is no such thing as mirrored exchanges. Exchanges - wait for it - do not exist. They are simply names used to load bindings (what I called the routing table) from a distributed database that all RabbitMQ cluster nodes have access to. Every node has a consistent view of all exchanges and bindings. You can use any exchange from on node w/o intra-cluster traffic, if that makes more sense. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: messaging_rabbit.pptx Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Size: 158054 bytes Desc: messaging_rabbit.pptx URL: From michael at rabbitmq.com Fri Oct 4 19:23:43 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Fri, 4 Oct 2013 22:23:43 +0400 Subject: [rabbitmq-discuss] Determining Cause of Flow-Control Invocation In-Reply-To: References: <0BB3C931-EA1D-499C-98DD-8337952A07C9@rabbitmq.com> <524ED7F9.1040709@rabbitmq.com> <32E7B10E-456D-42CE-8F01-D431E5460727@rabbitmq.com> Message-ID: On oct 4, 2013, at 9:58 p.m., Richard Raseley wrote: > Will you expand more on your statement "[I]t's a little more complicated than '1 queue per core'."? You get one Erlang process per queue. Those are scheduled to run in one or more run queues (VM queues, nothing to do with RabbitMQ queues). Recent Erlang VM versions detect how many cores are available on start and create a new run queue per core. How scheduling is performed (that is, how processes are given time to run and distributed between run queues) is not so trivial to explain and varies between SMP and non-SMP systems, see http://jlouisramblings.blogspot.ru/2013/01/how-erlang-does-scheduling.html for a fairly concise and approachable overview. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From michael at rabbitmq.com Fri Oct 4 19:29:58 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Fri, 4 Oct 2013 22:29:58 +0400 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: <59BF56992750434F89F8EBE141E64B1D0182057B@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D018203F5@GAALPA1MSGUSR9C.ITServices.sbc.com> <9D8B2AA2-4083-41FC-9AC8-A5850DB4AC9B@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204D7@GAALPA1MSGUSR9C.ITServices.sbc.com> <60E60AE4-5BEB-4C3D-9659-77570BF3BB9A@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204FC@GAALPA1MSGUSR9C.ITServices.sbc.com> <9A3789FF-8D4D-466D-A771-C885C7DA5E1F@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D0182057B@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: On oct 4, 2013, at 10:01 p.m., "PATAR, SAGAR" wrote: > We want to have 2 cluster ..one for mirrored queues and the other regular cluster ... and we have few topics we want to mirror .. Why do you need two clusters? You can have two sets of queues, some are mirrored, some are not. Then set up routing in a way that some messages are routed to the mirrored queues and others to non-mirrored queues. This likely will be much easier to operate than 2 clusters one of which does not offer redundancy. In addition, you won't have to worry about routing messages to one of the two clusters. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From graeme at sudo.ca Fri Oct 4 19:32:33 2013 From: graeme at sudo.ca (Graeme N) Date: Fri, 4 Oct 2013 11:32:33 -0700 Subject: [rabbitmq-discuss] Feature Req / Bug list In-Reply-To: <874A73DF-5283-4508-8AD2-43BC53DC9196@rabbitmq.com> References: <874A73DF-5283-4508-8AD2-43BC53DC9196@rabbitmq.com> Message-ID: On Fri, Oct 4, 2013 at 1:54 AM, Tim Watson wrote: > > All items below were discovered while deploying 3.1.5 over the past few > days. Hosts in question have 24 sandy bridge HT cores, 64GB of RAM, XFS > filesystem, running on CentOS 6. Cluster is 5 nodes, with a default HA > policy on all queues of exact/3/automatic-sync. > > > > That's a very strong consistency and redundency guarantee for every queue. > Do you really need such strong guarantees for all of them? There is a cost > to doing ha. > Yes, it's very important we never lose a message if it gets accepted for delivery. We're more than willing to pay the overhead in terms of more hardware as necessary. The 5 node count is just for initial deployment, I'd expect us to double the cluster size every year for the next 3-5 years to deal with our workload growth, even counting improvements in individual server processing power. > > - expected queues to be distributed evenly among cluster machines, > instead got all queues on first 3 machines in the cluster, nothing on the > last 2. > > Distributed evenly in what regard? Randomly, or based on some metric? > Doesn't matter. Random or round robin would be sufficient. We use in the order of 100s of queues, and so even with ~10% having a somewhat higher workload, any distribution scheme would balance the load out between machines reasonably evenly. > - expected message reads from a mirror machine for a queue to do the > read i/o locally, so as to spread out workload, but it appears to always go > to the host where the queue was created. > > That's expected behaviour. In a master-slave configuration, writes have to > go to the master. Odd though it may sound, reads from a queue involve > writes, since we have to do accounting (of e.g., pending ACKs, position in > the queue, etc), so all requests are handled by the master. > Yeah, I understand the logic around needing to do queue management and requiring locks and writing. It just doesn't make sense to me that the read can't happen locally if the data exists locally, after all appropriate queue locks and bookkeeping have completed. I imagine this is just for code simplicity rather than any technical limitation, and it's something that really isn't an issue if we can evenly balance queues between cluster hosts. I also imagine it isn't an issue for people who aren't trying to send large, persistent, binary messages through the queueing system, since they probably never run into IO limitations. > - this led to a single node with ~35k active open filehandles, and 4 > nodes with ~90. not an optimum distribution of read workload. > > Agreed. Simon or Marthias may be able to elaborate on various things we're > working on to improve workload distribution. > Great! We're doing some work on our code to manually distribute queues at creation time, but it'd be a lot better if there was a switch to pull on the rabbit end to just make it happen. > > - expected that if system a queue was created on is permanently removed > (shut down and "rabbitmqctl forget_cluster_node hostname"'d), automatic > sync would ensure there's the right number of copies replicated, but > instead it just left every single queue under replicated. > > That doesn't sound right. It's not automatic sync we're talking here > either - that sounds like the policy isn't getting applied properly. > Hmm... Well, we're just applying a global policy with the pattern ".*", and it shows as being applied in the queue information API and on the web page. I'm not sure how to check if it's fully applied otherwise, so if you've got something I can run to check that, I can definitely do some digging. > > - when a new policy is applied that defines specific replication nodes, > or a number of copies using 'exact, and auto-sync is set, sometimes it just > syncs the first replica and leaves any others unsynced and calls it job > done. This is bad. > > Can you provide us with a way to reproduce this? How did you detect that > the remaining replicas were not sync'ed? > Detection was just by looking at the queue page in the management web GUI. It shows a big blue +1 and a big red +1 next to maybe 10% of queues after applying the global queue policy after all sync ops complete. If I issue a manual sync operation on all the problem queues, then they correctly finish syncing up the 3rd data copy. I'll see if I can script up a way to reproduce it on clean set of nodes, since I'm trying not to break my prod cluster any more than I have this week. I'll e-mail the list once I've got a reproducible test case. > > - Attempted to create small per-queue policies to redistribute messages > and then delete the per-queue policies, but this often leads to a > inconsistent cluster state where queues continued to show as being part of > a policy that was already deleted, attempt to resync, and get stuck, unable > to complete or switch back to the global default policy. > > Again, it would be helpful if you could help us to replicate this. > This is 100% reproducible on our prod cluster. I've got a python script that attempts the rebalancing on a cluster, so I'll add some logic to get it to generate and populate queues to reproduce this on a fresh cluster, and e-mail that out. > > - sometimes the cluster refuses to accept any more policy commands. > Have to fully shut down and restart the cluster to clear this condition. > > And this. Can you provide a run down of these policies and the order in > which you're trying to apply them? Also, how busy are the queues whilst the > policy changes are happening? We may need to extend our test beds to > reliably reproduce such problems. > This case happens after attempting a bunch of policy operations from the previous mentioned script, so it should be easy enough to see it in action once I've got a script to reproduce the previous issue. We saw this happening with as low as 5 messages/sec on the whole cluster, so it doesn't seem to be load related. > > - sometimes policies applied to empty and inactive queues don't get > correctly applied, and the queue hangs on "resyncing / 100%".l > > What!? > Yeah. That was my reaction as well. We saw this after removing the per-queue polices created with the previous mentioned script, after the queues reverted to the global exact/3/autosync policy. I had to actually kill all of my rabbitmq instances as they wouldn't nicely shut down, and then bring the whole cluster back up to clear this. > > this makes no sense, given the queue is empty, and requires a full > cluster restart to clear. > > Please provide the commands you invoked to get this to happen. > Again, this are all things noticed after running the script mentioned above to do the per-queue policies. I didn't intentionally do anything to make these errors occur, but once I've got a script to reproduce the first set of errors on a fresh cluster, it should be easy enough to see some of these other issues, since they seem to cascade from the first set of problems. > > - I've managed to get the cluster into an inconsistent state a /lot/ > using the HA features, so it feels like they need more automated stress > testing and bulletproofing. > > If you can help us repoduce these errors, I can assure you that they'll > get included in our integration tests! > Great. I'll get to work on being able to solidly reproduce at least the first set of issues I encountered, and hopefully that'll lead to a reproduction path for some of the other ones. > > Persistent message storage: > > > > - it appears as if messages are put into very small batch files on the > filesystem (1-20 MB) > > - this causes the filesystem to thrash if your IO isn't good at random > IO (SATA disks) and you have lots of persistent messages (>200k messages > 500kB-1MB in size) that don't fit in RAM. > > - this caused CentOS 6 kernel to kill erlang after stalling the XFS > filesystem for > 120s. > > Iirc this is tuneable, though we don't recommend changing it. Not at u > desk right now though, so I can't remember the exact details. > It doesn't seem to be an issue since we've switched to SSDs, so I'm not going to spend a lot of time worrying about it. It'd just be nice to see some supported tuning options for this make a dev roadmap for the future. > > - if a node crashes, Rabbit seems to rescan the entire on-disk > datastore before continuing, instead of using some sort of checkpointing or > journaling system to quickly recover from a crash. > > - all of above should be solvable by using an existing append-only > datastore like eLevelDB or Bitcask. > > On our todo list already, at least for the message store index. > Great, glad to hear it. There's probably a lot of performance improvements to be had by using something like eleveldb or bitcask, since they do a lot to optimize disk seeks and RAM buffering, but I imagine that's a fairly ambitious amount of work that isn't high particularly high priority for you guys. Just a suggestion to think about in the long term, or to put an intern on testing. ;) In any case, I'm going to get working on reproducible test cases for all the issues we've been discussing. I'll update this thread when I have something concrete for you. Graeme -------------- next part -------------- An HTML attachment was scrubbed... URL: From videlalvaro at gmail.com Fri Oct 4 19:47:02 2013 From: videlalvaro at gmail.com (Alvaro Videla) Date: Fri, 4 Oct 2013 13:47:02 -0500 Subject: [rabbitmq-discuss] Feature Req / Bug list In-Reply-To: <874A73DF-5283-4508-8AD2-43BC53DC9196@rabbitmq.com> References: <874A73DF-5283-4508-8AD2-43BC53DC9196@rabbitmq.com> Message-ID: Hi, On Fri, Oct 4, 2013 at 3:54 AM, Tim Watson wrote: > On 3 Oct 2013, at 22:03, Graeme N wrote: > > - all of above should be solvable by using an existing append-only > datastore like eLevelDB or Bitcask. > > On our todo list already, at least for the message store index. > Have you seen these repos: https://github.com/videlalvaro/msg_store_bitcask_index https://github.com/videlalvaro/bitcask_wrapper https://github.com/videlalvaro/eleveldb_wrapper They might be outdated but, it won't be too hard to bring them up to date. -------------- next part -------------- An HTML attachment was scrubbed... URL: From graeme at sudo.ca Fri Oct 4 19:51:51 2013 From: graeme at sudo.ca (Graeme N) Date: Fri, 4 Oct 2013 11:51:51 -0700 Subject: [rabbitmq-discuss] Feature Req / Bug list In-Reply-To: References: <874A73DF-5283-4508-8AD2-43BC53DC9196@rabbitmq.com> Message-ID: On Fri, Oct 4, 2013 at 11:47 AM, Alvaro Videla wrote: > Hi, > > On Fri, Oct 4, 2013 at 3:54 AM, Tim Watson wrote: > >> On 3 Oct 2013, at 22:03, Graeme N wrote: >> > - all of above should be solvable by using an existing append-only >> datastore like eLevelDB or Bitcask. >> >> On our todo list already, at least for the message store index. >> > > Have you seen these repos: > > https://github.com/videlalvaro/msg_store_bitcask_index > https://github.com/videlalvaro/bitcask_wrapper > https://github.com/videlalvaro/eleveldb_wrapper > > They might be outdated but, it won't be too hard to bring them up to date. > > I hadn't seen these repos! Very interesting work, would love to see them merged into mainline rabbit. We're in the middle of some heavy deployment work on a number of fronts, but I'll definitely try these out when I get a chance, probably late Nov or early Dec. Thanks! -------------- next part -------------- An HTML attachment was scrubbed... URL: From richard at raseley.com Fri Oct 4 19:52:52 2013 From: richard at raseley.com (Richard Raseley) Date: Fri, 4 Oct 2013 11:52:52 -0700 Subject: [rabbitmq-discuss] Determining Cause of Flow-Control Invocation In-Reply-To: References: <0BB3C931-EA1D-499C-98DD-8337952A07C9@rabbitmq.com> <524ED7F9.1040709@rabbitmq.com> <32E7B10E-456D-42CE-8F01-D431E5460727@rabbitmq.com> Message-ID: Michael, Thank you for that explanation - it was helpful. Regards, Richard On Fri, Oct 4, 2013 at 11:23 AM, Michael Klishin wrote: > > On oct 4, 2013, at 9:58 p.m., Richard Raseley wrote: > > > Will you expand more on your statement "[I]t's a little more complicated > than '1 queue per core'."? > > You get one Erlang process per queue. Those are scheduled to run in one or > more > run queues (VM queues, nothing to do with RabbitMQ queues). Recent Erlang > VM > versions detect how many cores are available on start and create a new run > queue > per core. > > How scheduling is performed (that is, how processes are given time to run > and distributed between run queues) is not so trivial to explain and > varies between > SMP and non-SMP systems, see > > http://jlouisramblings.blogspot.ru/2013/01/how-erlang-does-scheduling.html > > for a fairly concise and approachable overview. > > MK > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael at rabbitmq.com Fri Oct 4 19:56:08 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Fri, 4 Oct 2013 22:56:08 +0400 Subject: [rabbitmq-discuss] Feature Req / Bug list In-Reply-To: References: <874A73DF-5283-4508-8AD2-43BC53DC9196@rabbitmq.com> Message-ID: <86EE9550-7FC8-43B0-A60D-77599A721A61@rabbitmq.com> On oct 4, 2013, at 10:51 p.m., Graeme N wrote: > I hadn't seen these repos! Very interesting work, would love to see them merged into mainline rabbit. We're in the middle of some heavy deployment work on a number of fronts, but I'll definitely try these out when I get a chance, probably late Nov or early Dec. There is also a message index implementation that uses Tokyo Cabinet: http://hg.rabbitmq.com/rabbitmq-toke/file/377d0c32a1e2 MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From sp345s at att.com Fri Oct 4 20:29:07 2013 From: sp345s at att.com (PATAR, SAGAR) Date: Fri, 4 Oct 2013 19:29:07 +0000 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D018203F5@GAALPA1MSGUSR9C.ITServices.sbc.com> <9D8B2AA2-4083-41FC-9AC8-A5850DB4AC9B@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204D7@GAALPA1MSGUSR9C.ITServices.sbc.com> <60E60AE4-5BEB-4C3D-9659-77570BF3BB9A@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204FC@GAALPA1MSGUSR9C.ITServices.sbc.com> <9A3789FF-8D4D-466D-A771-C885C7DA5E1F@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D0182057B@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: <59BF56992750434F89F8EBE141E64B1D01820616@GAALPA1MSGUSR9C.ITServices.sbc.com> To increase the scalability on the mirrored queues .. I guess the suggestion was to have multiple master (queues) and have a load balancer right .. Let's say we have 4 nodes ... 1) Cluster these 4 nodes and define an exchange (xyz) .. 2) Define mirrored topic (abc) on node 1 and 2 and make node 1 as master and node 2 as slave 3) Define same mirrored topic (abc) on node 3 and 4 and make node 3 as master and node 4 as slave 4) define some non -mirrored queues( nbc) in the cluster 5) from exchange(xyz) route some message to mirrored topics (abc) and some to non mirrored queues/topics (nbc) Does the above make scenes .. Also we have topics which we need to mirror ... -----Original Message----- From: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Michael Klishin Sent: Friday, October 04, 2013 2:30 PM To: Discussions about RabbitMQ Subject: Re: [rabbitmq-discuss] mirrored queue cluster On oct 4, 2013, at 10:01 p.m., "PATAR, SAGAR" wrote: > We want to have 2 cluster ..one for mirrored queues and the other regular cluster ... and we have few topics we want to mirror .. Why do you need two clusters? You can have two sets of queues, some are mirrored, some are not. Then set up routing in a way that some messages are routed to the mirrored queues and others to non-mirrored queues. This likely will be much easier to operate than 2 clusters one of which does not offer redundancy. In addition, you won't have to worry about routing messages to one of the two clusters. MK From michael at rabbitmq.com Fri Oct 4 20:36:36 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Fri, 4 Oct 2013 23:36:36 +0400 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: <59BF56992750434F89F8EBE141E64B1D01820616@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D018203F5@GAALPA1MSGUSR9C.ITServices.sbc.com> <9D8B2AA2-4083-41FC-9AC8-A5850DB4AC9B@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204D7@GAALPA1MSGUSR9C.ITServices.sbc.com> <60E60AE4-5BEB-4C3D-9659-77570BF3BB9A@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204FC@GAALPA1MSGUSR9C.ITServices.sbc.com> <9A3789FF-8D4D-466D-A771-C885C7DA5E1F@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D0182057B@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D01820616@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: On oct 4, 2013, at 11:29 p.m., "PATAR, SAGAR" wrote: > To increase the scalability on the mirrored queues .. I guess the suggestion was to have multiple master (queues) and have a load balancer right .. Load balancer between nodes in one cluster, not multiple clusters. > > Let's say we have 4 nodes ... > 1) Cluster these 4 nodes and define an exchange (xyz) .. > 2) Define mirrored topic (abc) on node 1 and 2 and make node 1 as master and node 2 as slave > 3) Define same mirrored topic (abc) on node 3 and 4 and make node 3 as master and node 4 as slave > 4) define some non -mirrored queues( nbc) in the cluster > 5) from exchange(xyz) route some message to mirrored topics (abc) and some to non mirrored queues/topics (nbc) > > Does the above make scenes Yes. To clarify: you need a proxy in front of cluster nodes to make it easier to distributed queues between them. You clients just need to connect to one endpoint and the proxy will take care of distributing connections. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From michael at rabbitmq.com Fri Oct 4 20:52:14 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Fri, 4 Oct 2013 23:52:14 +0400 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: <59BF56992750434F89F8EBE141E64B1D01820616@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D018203F5@GAALPA1MSGUSR9C.ITServices.sbc.com> <9D8B2AA2-4083-41FC-9AC8-A5850DB4AC9B@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204D7@GAALPA1MSGUSR9C.ITServices.sbc.com> <60E60AE4-5BEB-4C3D-9659-77570BF3BB9A@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204FC@GAALPA1MSGUSR9C.ITServices.sbc.com> <9A3789FF-8D4D-466D-A771-C885C7DA5E1F@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D0182057B@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D01820616@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: <9612A940-46B1-4C90-9B2A-D626557142A9@rabbitmq.com> On oct 4, 2013, at 11:29 p.m., "PATAR, SAGAR" wrote: > To increase the scalability on the mirrored queues Not the mirrored queues but the overall system. Not all queues have equally important data. In many projects, some queues can be non-mirrored. Even if all of the queues must be mirrored, you control how many mirrors every queue has. It is rarely necessary to mirror to more than 3, the probability of losing more than 2 nodes at the same time is low enough. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From sp345s at att.com Fri Oct 4 21:07:24 2013 From: sp345s at att.com (PATAR, SAGAR) Date: Fri, 4 Oct 2013 20:07:24 +0000 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D018203F5@GAALPA1MSGUSR9C.ITServices.sbc.com> <9D8B2AA2-4083-41FC-9AC8-A5850DB4AC9B@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204D7@GAALPA1MSGUSR9C.ITServices.sbc.com> <60E60AE4-5BEB-4C3D-9659-77570BF3BB9A@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204FC@GAALPA1MSGUSR9C.ITServices.sbc.com> <9A3789FF-8D4D-466D-A771-C885C7DA5E1F@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D0182057B@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D01820616@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: <59BF56992750434F89F8EBE141E64B1D01820646@GAALPA1MSGUSR9C.ITServices.sbc.com> Thank you .. It much clear now .. One basic question I have is ..we have lot of topics .... during configuration I noticed that we can select exchange as TOPIC .. does that mean it is a Topic and is eligible for mirroring ... In some of the previous posts you mentioned that exchange is kind of a routing table ..so bit confused with that .. We have multiple clients and will be subscribing to a topic ... not sure how we ne to configure so that these topics are mirrored -----Original Message----- From: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Michael Klishin Sent: Friday, October 04, 2013 3:37 PM To: Discussions about RabbitMQ Subject: Re: [rabbitmq-discuss] mirrored queue cluster On oct 4, 2013, at 11:29 p.m., "PATAR, SAGAR" wrote: > To increase the scalability on the mirrored queues .. I guess the suggestion was to have multiple master (queues) and have a load balancer right .. Load balancer between nodes in one cluster, not multiple clusters. > > Let's say we have 4 nodes ... > 1) Cluster these 4 nodes and define an exchange (xyz) .. > 2) Define mirrored topic (abc) on node 1 and 2 and make node 1 as master and node 2 as slave > 3) Define same mirrored topic (abc) on node 3 and 4 and make node 3 as master and node 4 as slave > 4) define some non -mirrored queues( nbc) in the cluster > 5) from exchange(xyz) route some message to mirrored topics (abc) and some to non mirrored queues/topics (nbc) > > Does the above make scenes Yes. To clarify: you need a proxy in front of cluster nodes to make it easier to distributed queues between them. You clients just need to connect to one endpoint and the proxy will take care of distributing connections. MK From michael at rabbitmq.com Fri Oct 4 21:13:08 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Sat, 5 Oct 2013 00:13:08 +0400 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: <59BF56992750434F89F8EBE141E64B1D01820646@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D018203F5@GAALPA1MSGUSR9C.ITServices.sbc.com> <9D8B2AA2-4083-41FC-9AC8-A5850DB4AC9B@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204D7@GAALPA1MSGUSR9C.ITServices.sbc.com> <60E60AE4-5BEB-4C3D-9659-77570BF3BB9A@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204FC@GAALPA1MSGUSR9C.ITServices.sbc.com> <9A3789FF-8D4D-466D-A771-C885C7DA5E1F@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D0182057B@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D01820616@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D01820646@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: <78AC8CD2-EA1F-447F-9695-29F345419E02@rabbitmq.com> On oct 5, 2013, at 12:07 a.m., "PATAR, SAGAR" wrote: > One basic question I have is ..we have lot of topics .... during configuration I noticed that we can select exchange as TOPIC .. does that mean it is a Topic and is eligible for mirroring ... In some of the previous posts you mentioned that exchange is kind of a routing table ..so bit confused with that .. Topic is an exchange type. Queues can be mirrored, exchanges are *always* mirrored between all nodes in a cluster. > We have multiple clients and will be subscribing to a topic ... not sure how we ne to configure so that these topics are mirrored They should consume from queues that will have messages with specific routing keys be routed to them. See http://www.rabbitmq.com/tutorials/amqp-concepts.html if it is still not clear. Message distribution happens in routing time. Mirroring after messages reach a queue. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From sp345s at att.com Fri Oct 4 21:30:36 2013 From: sp345s at att.com (PATAR, SAGAR) Date: Fri, 4 Oct 2013 20:30:36 +0000 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: <78AC8CD2-EA1F-447F-9695-29F345419E02@rabbitmq.com> References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D018203F5@GAALPA1MSGUSR9C.ITServices.sbc.com> <9D8B2AA2-4083-41FC-9AC8-A5850DB4AC9B@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204D7@GAALPA1MSGUSR9C.ITServices.sbc.com> <60E60AE4-5BEB-4C3D-9659-77570BF3BB9A@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204FC@GAALPA1MSGUSR9C.ITServices.sbc.com> <9A3789FF-8D4D-466D-A771-C885C7DA5E1F@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D0182057B@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D01820616@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D01820646@GAALPA1MSGUSR9C.ITServices.sbc.com> <78AC8CD2-EA1F-447F-9695-29F345419E02@rabbitmq.com> Message-ID: <59BF56992750434F89F8EBE141E64B1D01820671@GAALPA1MSGUSR9C.ITServices.sbc.com> Only 1 consumer can consume a message from a Queue right ... With multiple clients we are expecting multiple consumers .. and we need to have the same message consumed by all the consumers .. I have seen the tutorial from that it looks like each consumer needs to have a separate queue and so a copy of a message will be forwarded ... In case we are mirroring queues..Why do we want to mirror all the queues since they have exactly same messages ... -----Original Message----- From: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Michael Klishin Sent: Friday, October 04, 2013 4:13 PM To: Discussions about RabbitMQ Subject: Re: [rabbitmq-discuss] mirrored queue cluster On oct 5, 2013, at 12:07 a.m., "PATAR, SAGAR" wrote: > One basic question I have is ..we have lot of topics .... during configuration I noticed that we can select exchange as TOPIC .. does that mean it is a Topic and is eligible for mirroring ... In some of the previous posts you mentioned that exchange is kind of a routing table ..so bit confused with that .. Topic is an exchange type. Queues can be mirrored, exchanges are *always* mirrored between all nodes in a cluster. > We have multiple clients and will be subscribing to a topic ... not sure how we ne to configure so that these topics are mirrored They should consume from queues that will have messages with specific routing keys be routed to them. See http://www.rabbitmq.com/tutorials/amqp-concepts.html if it is still not clear. Message distribution happens in routing time. Mirroring after messages reach a queue. MK From michael at rabbitmq.com Fri Oct 4 21:38:28 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Sat, 5 Oct 2013 00:38:28 +0400 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: <59BF56992750434F89F8EBE141E64B1D01820671@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D018203F5@GAALPA1MSGUSR9C.ITServices.sbc.com> <9D8B2AA2-4083-41FC-9AC8-A5850DB4AC9B@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204D7@GAALPA1MSGUSR9C.ITServices.sbc.com> <60E60AE4-5BEB-4C3D-9659-77570BF3BB9A@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204FC@GAALPA1MSGUSR9C.ITServices.sbc.com> <9A3789FF-8D4D-466D-A771-C885C7DA5E1F@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D0182057B@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D01820616@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D01820646@GAALPA1MSGUSR9C.ITServices.sbc.com> <78AC8CD2-EA1F-447F-9695-29F345419E02@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D01820671@GAALPA1MSGUSR9C.ITServices .sbc.com > Message-ID: <628E26A3-A21F-4736-92C2-F3F21C0BBB28@rabbitmq.com> On oct 5, 2013, at 12:30 a.m., "PATAR, SAGAR" wrote: > Only 1 consumer can consume a message from a Queue right ? You can have multiple consumers per queue. On exclusive queues, they all have to be on the same connection. > With multiple clients we are expecting multiple consumers .. and we need to have the same message consumed by all the consumers .. > I have seen the tutorial from that it looks like each consumer needs to have a separate queue and so a copy of a message will be forwarded ? If that's not sufficient, you can use exchange-to-exchange bindings to first distribute messages between exchanges and those (fanout) exchanges will distribute messages between queues. That is only necessary if every consumer needs to get a copy of every message. If that's not the case, simply add as many consumers as necessary on every queue. > In case we are mirroring queues..Why do we want to mirror all the queues since they have exactly same messages ... Mirrored queues is a high availability feature. If only one node in a cluster has contents of a queue and that node fails, the entire queue content is gone. With mirrored queues, one of the mirrors is promoted to master. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From videlalvaro at gmail.com Fri Oct 4 21:49:08 2013 From: videlalvaro at gmail.com (Alvaro Videla) Date: Fri, 4 Oct 2013 15:49:08 -0500 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: <59BF56992750434F89F8EBE141E64B1D01820671@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D018203F5@GAALPA1MSGUSR9C.ITServices.sbc.com> <9D8B2AA2-4083-41FC-9AC8-A5850DB4AC9B@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204D7@GAALPA1MSGUSR9C.ITServices.sbc.com> <60E60AE4-5BEB-4C3D-9659-77570BF3BB9A@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204FC@GAALPA1MSGUSR9C.ITServices.sbc.com> <9A3789FF-8D4D-466D-A771-C885C7DA5E1F@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D0182057B@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D01820616@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D01820646@GAALPA1MSGUSR9C.ITServices.sbc.com> <78AC8CD2-EA1F-447F-9695-29F345419E02@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D01820671@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: Hi, On Fri, Oct 4, 2013 at 3:30 PM, PATAR, SAGAR wrote: > > In case we are mirroring queues..Why do we want to mirror all the queues > since they have exactly same messages ... > Keep in mind that RabbitMQ will store just one copy of the message content. What will get replicated is the state of the message, that is, if it's been consumed and so on. -------------- next part -------------- An HTML attachment was scrubbed... URL: From sp345s at att.com Fri Oct 4 21:51:16 2013 From: sp345s at att.com (PATAR, SAGAR) Date: Fri, 4 Oct 2013 20:51:16 +0000 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: <628E26A3-A21F-4736-92C2-F3F21C0BBB28@rabbitmq.com> References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D018203F5@GAALPA1MSGUSR9C.ITServices.sbc.com> <9D8B2AA2-4083-41FC-9AC8-A5850DB4AC9B@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204D7@GAALPA1MSGUSR9C.ITServices.sbc.com> <60E60AE4-5BEB-4C3D-9659-77570BF3BB9A@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204FC@GAALPA1MSGUSR9C.ITServices.sbc.com> <9A3789FF-8D4D-466D-A771-C885C7DA5E1F@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D0182057B@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D01820616@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D01820646@GAALPA1MSGUSR9C.ITServices.sbc.com> <78AC8CD2-EA1F-447F-9695-29F345419E02@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D01820671@GAALPA1MSGUSR9C.ITServices .sbc.com > <628E26A3-A21F-4736-92C2-F3F21C0BBB28@rabbitmq.com> Message-ID: <59BF56992750434F89F8EBE141E64B1D01820698@GAALPA1MSGUSR9C.ITServices.sbc.com> You can have multiple consumers per queue. On exclusive queues, they all have to be on the same connection. --> will each consumer get a copy of the message? Also connections will be different as the clients are different ... "If that's not sufficient, you can use exchange-to-exchange bindings to first distribute messages between exchanges and those (fanout) exchanges will distribute messages between queues. That is only necessary if every consumer needs to get a copy of every message. If that's not the case, simply add as many consumers as necessary on every queue." We have exactly the above scenario BUT we don't want to create multiple queues .. one for each client and have them consume a copy ... In the above case looks like we have to mirror all the queues from fanout exchange ..?? is there any way we can avoid that .. Also when a new clients come in we have to create a new Queue ..... manual change we want to avoid ...I know we can have an exchange and have them consume from there but to avoid failover scenarios we have to have a queue and then mirror it right ... -----Original Message----- From: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Michael Klishin Sent: Friday, October 04, 2013 4:38 PM To: Discussions about RabbitMQ Subject: Re: [rabbitmq-discuss] mirrored queue cluster On oct 5, 2013, at 12:30 a.m., "PATAR, SAGAR" wrote: > Only 1 consumer can consume a message from a Queue right ... You can have multiple consumers per queue. On exclusive queues, they all have to be on the same connection. > With multiple clients we are expecting multiple consumers .. and we need to have the same message consumed by all the consumers .. > I have seen the tutorial from that it looks like each consumer needs to have a separate queue and so a copy of a message will be forwarded ... If that's not sufficient, you can use exchange-to-exchange bindings to first distribute messages between exchanges and those (fanout) exchanges will distribute messages between queues. That is only necessary if every consumer needs to get a copy of every message. If that's not the case, simply add as many consumers as necessary on every queue. > In case we are mirroring queues..Why do we want to mirror all the queues since they have exactly same messages ... Mirrored queues is a high availability feature. If only one node in a cluster has contents of a queue and that node fails, the entire queue content is gone. With mirrored queues, one of the mirrors is promoted to master. MK From sp345s at att.com Fri Oct 4 21:54:33 2013 From: sp345s at att.com (PATAR, SAGAR) Date: Fri, 4 Oct 2013 20:54:33 +0000 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D018203F5@GAALPA1MSGUSR9C.ITServices.sbc.com> <9D8B2AA2-4083-41FC-9AC8-A5850DB4AC9B@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204D7@GAALPA1MSGUSR9C.ITServices.sbc.com> <60E60AE4-5BEB-4C3D-9659-77570BF3BB9A@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204FC@GAALPA1MSGUSR9C.ITServices.sbc.com> <9A3789FF-8D4D-466D-A771-C885C7DA5E1F@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D0182057B@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D01820616@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D01820646@GAALPA1MSGUSR9C.ITServices.sbc.com> <78AC8CD2-EA1F-447F-9695-29F345419E02@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D01820671@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: <59BF56992750434F89F8EBE141E64B1D018206B7@GAALPA1MSGUSR9C.ITServices.sbc.com> Ok... that makes sense ... Thanks... But still we have to manage all the mirror configurations of all the separate queues per client .. and also when a new client is introduced we have to change our configuration to create a new queue and then mirror it etc ....right From: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Alvaro Videla Sent: Friday, October 04, 2013 4:49 PM To: Discussions about RabbitMQ Subject: Re: [rabbitmq-discuss] mirrored queue cluster Hi, On Fri, Oct 4, 2013 at 3:30 PM, PATAR, SAGAR > wrote: In case we are mirroring queues..Why do we want to mirror all the queues since they have exactly same messages ... Keep in mind that RabbitMQ will store just one copy of the message content. What will get replicated is the state of the message, that is, if it's been consumed and so on. -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael at rabbitmq.com Fri Oct 4 21:59:20 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Sat, 5 Oct 2013 00:59:20 +0400 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: <59BF56992750434F89F8EBE141E64B1D018206B7@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D018203F5@GAALPA1MSGUSR9C.ITServices.sbc.com> <9D8B2AA2-4083-41FC-9AC8-A5850DB4AC9B@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204D7@GAALPA1MSGUSR9C.ITServices.sbc.com> <60E60AE4-5BEB-4C3D-9659-77570BF3BB9A@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204FC@GAALPA1MSGUSR9C.ITServices.sbc.com> <9A3789FF-8D4D-466D-A771-C885C7DA5E1F@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D0182057B@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D01820616@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D01820646@GAALPA1MSGUSR9C.ITServices.sbc.com> <78AC8CD2-EA1F-447F-9695-29F345419E02@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D01820671@GAALPA1MSGUSR9C.ITServices .sbc.com > <59BF56992750434F89F8EBE141E64B1D018206B7@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: <890C073B-BEAD-43FE-A359-BFE1897D2585@rabbitmq.com> On oct 5, 2013, at 12:54 a.m., "PATAR, SAGAR" wrote: > But still we have to manage all the mirror configurations of all the separate queues per client .. and also when a new client is introduced we have to change our configuration to create a new queue and then mirror it etc ?.right What do you mean by a new client? Can you provide a more specific example of what your topology looks like and what aspect of the system do you want to scale horizontally? Please be as specific as you can. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From k.madnani84 at gmail.com Fri Oct 4 22:01:50 2013 From: k.madnani84 at gmail.com (k.madnani84) Date: Fri, 4 Oct 2013 14:01:50 -0700 (PDT) Subject: [rabbitmq-discuss] Interoperability between Qpid-JMS client and rabbitMQ Message-ID: <1380920509998-30239.post@n5.nabble.com> Hi, I read the article on interoperability between Qpid and RabbitMQ at : http://www.rabbitmq.com/interoperability.html but there is nothing much spoken about the Qpid-JMS client. Is Qpid-JMS client compatible with RabbitMQ 3.1.5,If yes which version? -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Interoperability-between-Qpid-JMS-client-and-rabbitMQ-tp30239.html Sent from the RabbitMQ mailing list archive at Nabble.com. From anandlramadurg at gmail.com Sat Oct 5 03:23:03 2013 From: anandlramadurg at gmail.com (Anand Ramadurg) Date: Sat, 5 Oct 2013 07:53:03 +0530 Subject: [rabbitmq-discuss] Error during startup Message-ID: Hi All, I have one node cluster ( default) configuration installed on my linux machine. When it got restarted , it failed with error: Rabbitmq:3.0.1 =INFO REPORT==== 4-Oct-2013::14:48:42 === Error description: {error, {schema_integrity_check_failed, [{table_missing,mirrored_sup_childspec}]}} Stack trace: [{rabbit_mnesia,ensure_schema_integrity,0,[]}, {rabbit_mnesia,init_db,3,[]}, {rabbit_mnesia,init_db_and_upgrade,3,[]}, {rabbit_mnesia,init,0,[]}, {rabbit,'-run_boot_step/1-lc$^1/1-1-',1,[]}, {rabbit,run_boot_step,1,[]}, {rabbit,'-start/2-lc$^0/1-0-',1,[]}, {rabbit,start,2,[]}] Any idea what could be the reason? I know if we just delete mnesia db and it starts, but need to understand what would cause these kind of issues? --Anand -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael at rabbitmq.com Sat Oct 5 13:52:42 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Sat, 5 Oct 2013 16:52:42 +0400 Subject: [rabbitmq-discuss] Error during startup In-Reply-To: References: Message-ID: On oct 5, 2013, at 6:23 a.m., Anand Ramadurg wrote: > Any idea what could be the reason? I know if we just delete mnesia db and it starts, but need to understand what would cause these kind of issues? Anand, Can it be that RabbitMQ version has changed between restarts? If so, what version are you upgrading to and from? MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From Rohit.Patel2 at techmahindra.com Sat Oct 5 14:51:28 2013 From: Rohit.Patel2 at techmahindra.com (Rohit Patle) Date: Sat, 5 Oct 2013 13:51:28 +0000 Subject: [rabbitmq-discuss] rabbitmq-c automatic recovery mechanism. Message-ID: <27E054594442884E9A46DBCF9AE7408160FFE1@BSDMSATMBX001.mahindrasatyam.ad> Hi, I am using rabbitmq-c for development. Is there is any way of automatic recovery to detect network failures, reconnect and recover (redeclare, rebind). As we do have in other clients like Ruby and Clojure clients ? Thanks In Advance. 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 michael at rabbitmq.com Sat Oct 5 15:03:49 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Sat, 5 Oct 2013 18:03:49 +0400 Subject: [rabbitmq-discuss] rabbitmq-c automatic recovery mechanism. In-Reply-To: <27E054594442884E9A46DBCF9AE7408160FFE1@BSDMSATMBX001.mahindrasatyam.ad> References: <27E054594442884E9A46DBCF9AE7408160FFE1@BSDMSATMBX001.mahindrasatyam.ad> Message-ID: <51B9D705-8A6E-48B9-BFF1-84397BDB3F61@rabbitmq.com> On oct 5, 2013, at 5:51 p.m., Rohit Patle wrote: > Is there is any way of automatic recovery to detect network failures, reconnect and recover (redeclare, rebind). As we do have in other clients like Ruby and Clojure clients ? Rohit, I'm afraid rabbitmq-c does not have those features. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From sp345s at att.com Sat Oct 5 16:48:13 2013 From: sp345s at att.com (PATAR, SAGAR) Date: Sat, 5 Oct 2013 15:48:13 +0000 Subject: [rabbitmq-discuss] mirrored queue cluster Message-ID: <59BF56992750434F89F8EBE141E64B1D01820747@GAALPA1MSGUSR9C.ITServices.sbc.com> The requirement we have is a simple JMS topic with failover and persistency.. Where multiple client subscribe for the messages and when a new client is introduced NO changes in framework as the Topic is already configured for failover and persistence ..the new client will just make a connection and start consuming .. With RabbitMQ my understanding is we need to configure a new queue and mirror it and then ask the new client to consume the message ...?? Pl. check slide 3 and 4 in the attachment ... For new client do we need to configure a new mirrored queue ... All the queues should get all the messages from the exchange ... -----Original Message----- From: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Michael Klishin Sent: Friday, October 04, 2013 4:59 PM To: Discussions about RabbitMQ Subject: Re: [rabbitmq-discuss] mirrored queue cluster On oct 5, 2013, at 12:54 a.m., "PATAR, SAGAR" wrote: > But still we have to manage all the mirror configurations of all the separate queues per client .. and also when a new client is introduced we have to change our configuration to create a new queue and then mirror it etc ....right What do you mean by a new client? Can you provide a more specific example of what your topology looks like and what aspect of the system do you want to scale horizontally? Please be as specific as you can. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: messaging_rabbit.pptx Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Size: 240867 bytes Desc: messaging_rabbit.pptx URL: From vasiliyb at gmail.com Fri Oct 4 17:43:22 2013 From: vasiliyb at gmail.com (Vasiliy Boulytchev) Date: Fri, 4 Oct 2013 09:43:22 -0700 (PDT) Subject: [rabbitmq-discuss] message durability, cluster Message-ID: <2bf409b8-7970-42cc-aff9-0f4e52d99fab@googlegroups.com> Folks, Please correct me if I am wrong... After each message is published to an exchange, the client receives a confirmation that the message was received. Does this message get sent by RabbitMQ server after this message has been send to all nodes in the cluster? Does this message get sent when the message has been written to disk? Does this message get sent after a shovel policy has been applied? Thanks! -------------- next part -------------- An HTML attachment was scrubbed... URL: From dessrott at gmail.com Sat Oct 5 10:00:21 2013 From: dessrott at gmail.com (Dessyre Dangeubun) Date: Sat, 5 Oct 2013 16:00:21 +0700 Subject: [rabbitmq-discuss] Pub/sub Message-ID: Hi.. Remember me??? You said, i can used pub/sub for my project. Website A(website server) can broadcase to client. I want to ask again, can i used pub/sub it if i want make it two. Like this, website A(website server) website unuversity for input the student identity and website b (website client )as website goverment which show the list of student. If website B have events and want to show the event to website A,as a website university,,so what i must used..?? Thank you :D -------------- next part -------------- An HTML attachment was scrubbed... URL: From fahad007 at gmail.com Sun Oct 6 13:56:42 2013 From: fahad007 at gmail.com (Suhaib Fahad) Date: Sun, 6 Oct 2013 05:56:42 -0700 (PDT) Subject: [rabbitmq-discuss] RabbitMQ with STOMP, messages that are requested after 10 min delay doesn't work there after Message-ID: <3fd788c1-a160-4d11-88b2-652b5a47c2b1@googlegroups.com> Hi, I have a rabbitmq setup that uses STOMP as a means to talk to end user devices (android/websockets in the browser). The situation is there is a problem if I wait for 10 mins between messages and then try to send some message from server -> client, the client never receives it. I tried this in 2 systems, with different behaviors, - Dev VM - 4 core windows server - The issue gets reproduced very very rarely but happens after working for an hour or so - Test VM - 1 core windows server - The issue gets reproduced often immediately after 10 mins. I believe its a configuration issue, because as soon as I close my app (in android) or refresh the browser, it works immediately. Does this mean, rabbitmq somehow marks a STOMP queue stale after some timeout? Some more points to add up the discussion, - I use STOMP 1.0 definition in the header - No headers for heart-beating (its disabled by default in the protocol, so I dint add it in the header), just thought to mention it. - All messages are send using UTF8 format The server has a AMQP queue handle which is used to send messages as UTF8 format, client receives it via STOMP but listening over amqp queue by using the standards mentioned in the documentation. This works whenever I have a new connection or restart the app, but fails after I wait for 10-15 mins, Is it something related to the 1-core machine? Does Erlang has to do anything here? or rabbitmq marks the STOMP queue stale? This never happened before when I used only AMQP queues, (point to remember is I can't use AMQP in my end client apps as its very big to implement + I use the same messaging layer over the web using websockets). Any ideas or things that I need to check would be really helpful. Thanks, Suhaib -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkuch at gopivotal.com Sun Oct 6 20:35:55 2013 From: jkuch at gopivotal.com (Jerry Kuch) Date: Sun, 6 Oct 2013 12:35:55 -0700 Subject: [rabbitmq-discuss] message durability, cluster In-Reply-To: <2bf409b8-7970-42cc-aff9-0f4e52d99fab@googlegroups.com> References: <2bf409b8-7970-42cc-aff9-0f4e52d99fab@googlegroups.com> Message-ID: On Fri, Oct 4, 2013 at 9:43 AM, Vasiliy Boulytchev wrote: > Folks, > Please correct me if I am wrong... After each message is published to > an exchange, the client receives a confirmation that the message was > received. > Not by default. If you use an AMQP transaction or the RabbitMQ "publisher confirms" extension, than you can get this sort of notification, synchronously in the case of the former, and asynchronously in the case of the latter. > Does this message get sent by RabbitMQ server after this message has been > send to all nodes in the cluster? > It depends. For example if you publish to an exchange with no bound queues, your message goes nowhere. Otherwise it will be routed into bound queues according to its routing key, the exchange type, and the binding keys used. By default a queue exists, backed by a single Erlang process, on a single node in the cluster. If you're using mirrored queues, then other replicas of the queue will exist, on other nodes, and in that case the message will be replicated into the mirrors. The publish will be informed only if he's using one of the above mechanisms (transactions or publisher confirms) as for mirrored queues, the scopes of these mechanisms span all mirrors of the queue. > Does this message get sent when the message has been written to disk? > If you published your message with the persistence flag, then the operation is not considered successfully done until the queue persists the message, or in the case of mirroring, all mirrors do so. The confirmation is sent only when what you asked for is done. > Does this message get sent after a shovel policy has been applied? > I'm not sure what you mean by shovel "policy" since in recent Rabbits that term has a specific meaning. But shovel works by having an Erlang process within the source broker consume out of a queue bound to the source exchange and republish via AMQP to an exchange on a remote broker. The scope of transaction or confirm gets you only as far as the hidden queue from which shovel is pulling for republication and tells the initial publisher nothing about what the shovel did or didn't do afterward. Jerry -------------- next part -------------- An HTML attachment was scrubbed... URL: From sekhar434145 at gmail.com Mon Oct 7 05:59:17 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Mon, 7 Oct 2013 10:29:17 +0530 Subject: [rabbitmq-discuss] RabbitMQ clustering - badarg error Message-ID: Hi, Created cluster with two nodes one is disc and other is ram node. When I run the policy on the disc node it is working but am getting below error while creating policy on ram node. *C:\Program Files\RabbitMQ Server\rabbitmq_server-3.1.3\sbin>rabbitmqctl set_policy ha-all "^Queue" "{""ha-mode"":""all""}"* *Setting policy "ha-all" for pattern "^queue" to "{\"ha-mode\":\"all\"}" ... * *Error: {badarg ,[{ets,lookup,[rabbit_registry,{runtime_parameter,policy}],[]},* * {rabbit_registry,lookup_module,2,[]},* * {rabbit_runtime_parameters,lookup_component,1,[]},* * {rabbit_runtime_parameters,set_any0,4,[]},* * {rabbit_runtime_parameters,set_any,4,[]},* * {rpc,'-handle_call_call/6-fun-0-',5,* * [{file,"rpc.erl"},{line,205}]}]}* * * * * Could anyone help me on this why I am getting this error? -------------- next part -------------- An HTML attachment was scrubbed... URL: From alan.antonuk at gmail.com Mon Oct 7 07:16:30 2013 From: alan.antonuk at gmail.com (Alan Antonuk) Date: Sun, 6 Oct 2013 23:16:30 -0700 Subject: [rabbitmq-discuss] rabbitmq-c: how to detect broker failure In-Reply-To: References: Message-ID: It depends on what you mean by "broker failure". If you mean the broker hardware dies, the broker crashes, or (more likely) something interrupts the network: you'll get an network error on the client side. In rabbitmq-c this manifests itself in different ways depending on the function being called: for functions returning an int, a non-zero value is returned, for functions returning an amqp_rpc_reply_t, type will be set to AMQP_RESPONSE_LIBRARY_EXCEPTION and library_error will be set to something non-zero, and for things returning a amqp_*_t object if a NULL value is returned, calling amqp_get_last_rpc_reply() will get an amqp_rpc_reply_t which the above rule should be followed. HTH -Alan On Fri, Oct 4, 2013 at 6:13 AM, Jain, Punit wrote: > Hi,**** > > I am using rabbitmq-c amqp client (0.2.0) to publish messages to RabbitMQ > broker. I want to be notified in case of broker failure. Is there a way to > detect this?**** > > Any method or exception, which may notify us about this error while > establishing a connection or publishing message?**** > > ** ** > > Thanks,**** > > Punit**** > -------------- next part -------------- An HTML attachment was scrubbed... URL: From suchakjani at gmail.com Mon Oct 7 08:31:16 2013 From: suchakjani at gmail.com (Suchak Jani) Date: Mon, 7 Oct 2013 15:31:16 +0800 Subject: [rabbitmq-discuss] profiling Message-ID: Hi Do we have any profiling inside rabbitmq server. I want to measure the time it takes for a message to be written to a clustered durable queue, across two nodes on different boxes in a network. Within that time i would like to know 1) network time 2) disk io time 3) processing time 4) any other relevant time rabbit would take to process the message. -- Regards Suchak Jani -------------- next part -------------- An HTML attachment was scrubbed... URL: From sekhar434145 at gmail.com Mon Oct 7 08:38:21 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Mon, 7 Oct 2013 13:08:21 +0530 Subject: [rabbitmq-discuss] RabbitMQ clustering list of queues issue in One node Message-ID: I have created clustered environment with two nodes, in one node able to see the list of queues but in other node am getting the below error. Could any one explain why this odd behaviour is? C:\Program Files\RabbitMQ Server\rabbitmq_server-3.1.3\sbin>rabbitmqctl list_que ues Listing queues ... Error: {aborted,{no_exists,[rabbit_queue, {amqqueue,{resource,<<"/">>,queue,'_'}, '_','_','_','_','_','_','_','_','_'}]}} -------------- next part -------------- An HTML attachment was scrubbed... URL: From videlalvaro at gmail.com Mon Oct 7 08:39:43 2013 From: videlalvaro at gmail.com (Alvaro Videla) Date: Mon, 7 Oct 2013 02:39:43 -0500 Subject: [rabbitmq-discuss] profiling In-Reply-To: References: Message-ID: Hi, If you have a DTrace capable OS, you could compile Erlang with DTrace support and then profile every single detail from RabbitMQ. Not sure if that works in your case. Regards, Alvaro On Mon, Oct 7, 2013 at 2:31 AM, Suchak Jani wrote: > > Hi > > Do we have any profiling inside rabbitmq server. > > I want to measure the time it takes for a message to be written to a > clustered durable queue, across two nodes on different boxes in a network. > > Within that time i would like to know > 1) network time > 2) disk io time > 3) processing time > 4) any other relevant time rabbit would take to process the message. > > -- > Regards > > Suchak Jani > > > _______________________________________________ > 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 emile at rabbitmq.com Mon Oct 7 09:13:35 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Mon, 07 Oct 2013 09:13:35 +0100 Subject: [rabbitmq-discuss] RabbitMQ clustering list of queues issue in One node In-Reply-To: References: Message-ID: <52526D2F.8090200@rabbitmq.com> On 07/10/13 08:38, Rajasekhar P wrote: > Listing queues ... > Error: {aborted,{no_exists,[rabbit_queue, > {amqqueue,{resource,<<"/">>,queue,'_'}, > > '_','_','_','_','_','_','_','_','_'}]}} You will get this error if you tried to cluster the nodes, but left out the last step: "rabbitmqctl start_app". Make sure you follow the instructions here: http://www.rabbitmq.com/clustering.html If that's not the problem then please supply the output of "rabbitmqctl report" for both nodes as well as the logfiles. -Emile From watson.timothy at gmail.com Mon Oct 7 09:20:48 2013 From: watson.timothy at gmail.com (Tim Watson) Date: Mon, 7 Oct 2013 09:20:48 +0100 Subject: [rabbitmq-discuss] RabbitMQ clustering list of queues issue in One node In-Reply-To: References: Message-ID: <574013F6-539A-41A4-A303-1B1C5E0527AB@rabbitmq.com> On 7 Oct 2013, at 08:38, Rajasekhar P wrote: > Could any one explain why this odd behaviour is? > > > C:\Program Files\RabbitMQ Server\rabbitmq_server-3.1.3\sbin>rabbitmqctl list_que > ues > Listing queues ... > Error: {aborted,{no_exists,[rabbit_queue, > {amqqueue,{resource,<<"/">>,queue,'_'}, > '_','_','_','_','_','_','_','_','_'}]}} What do the results of 'rabbitmqctl status' look like on the broken node? From emile at rabbitmq.com Mon Oct 7 09:28:21 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Mon, 07 Oct 2013 09:28:21 +0100 Subject: [rabbitmq-discuss] RabbitMQ clustering - badarg error In-Reply-To: References: Message-ID: <525270A5.7010403@rabbitmq.com> On 07/10/13 05:59, Rajasekhar P wrote: > {*badarg*,[{ets,lookup,[rabbit_registry,{runtime_parameter,policy}],[]},/ You will get errors like this if you tried to cluster the nodes, but left out the last step: "rabbitmqctl start_app". You will get an error for many "rabbitmqctl" commands until the clustering is complete. -Emile From watson.timothy at gmail.com Mon Oct 7 09:28:20 2013 From: watson.timothy at gmail.com (Tim Watson) Date: Mon, 7 Oct 2013 09:28:20 +0100 Subject: [rabbitmq-discuss] profiling In-Reply-To: References: Message-ID: You could also use erlang's built in tracing, though the timings wouldn't be highly accurate. Both approaches would require a pretty deep understanding of the code base to make sense of. In most cases, it's better to measure things from an overall system standpoint, unless you're trying to benchmark internal changes to the broker. So, what is it the OP is trying to do wih these numbers? Presumably there's some goal which the performance measurements and intended to help meet? What are we trying to achieve here? I don't remember having to benchmark tomcat or Postgres internals like that, when trying to make architectural decisions or plan SLAs around those technologies, some I'm curious why benchmarking rabbit at such a low level is desirable outside the development team. Not that we're opposed to folks doing this mind you - I'm quite happy to share some info about how to use erlang's tracing, dtrace/system-tap, etop and other tools of you're really keen on doing so. I just wonder why our MulticastMain performance measurememt tool isn't enough for your benchmarking requirements. Cheers, Tim On 7 Oct 2013, at 08:39, Alvaro Videla wrote: > Hi, > > If you have a DTrace capable OS, you could compile Erlang with DTrace support and then profile every single detail from RabbitMQ. > > Not sure if that works in your case. > > Regards, > > Alvaro > > > On Mon, Oct 7, 2013 at 2:31 AM, Suchak Jani wrote: > > Hi > > Do we have any profiling inside rabbitmq server. > > I want to measure the time it takes for a message to be written to a clustered durable queue, across two nodes on different boxes in a network. > > Within that time i would like to know > 1) network time > 2) disk io time > 3) processing time > 4) any other relevant time rabbit would take to process the message. > > -- > Regards > > Suchak Jani > > > _______________________________________________ > 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 sekhar434145 at gmail.com Mon Oct 7 09:28:48 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Mon, 7 Oct 2013 13:58:48 +0530 Subject: [rabbitmq-discuss] RabbitMQ clustering list of queues issue in One node In-Reply-To: <574013F6-539A-41A4-A303-1B1C5E0527AB@rabbitmq.com> References: <574013F6-539A-41A4-A303-1B1C5E0527AB@rabbitmq.com> Message-ID: rabbitmqct status as below - C:\Program Files\RabbitMQ Server\rabbitmq_server-3.1.3\sbin>rabbitmqctl status Status of node rabbit2 at zbc ... [{pid,20648}, {running_applications,[{xmerl,"XML parser","1.3.3"}, {sasl,"SASL CXC 138 11","2.3.2"}, {stdlib,"ERTS CXC 138 10","1.19.2"}, {kernel,"ERTS CXC 138 10","2.16.2"}]}, {os,{win32,nt}}, {erlang_version,"Erlang R16B01 (erts-5.10.2) [smp:4:4] [async-threads:30]\n"}, {memory,[{total,20374416}, {connection_procs,0}, {queue_procs,0}, {plugins,0}, {other_proc,8793388}, {mnesia,0}, {mgmt_db,0}, {msg_index,0}, {other_ets,345604}, {binary,20064}, {code,8587935}, {atom,428361}, {other_system,2199064}]}, {processes,[{limit,1048576},{used,46}]}, {run_queue,0}, {uptime,247245}] ...done. On Mon, Oct 7, 2013 at 1:50 PM, Tim Watson wrote: > On 7 Oct 2013, at 08:38, Rajasekhar P wrote: > > > Could any one explain why this odd behaviour is? > > > > > > C:\Program Files\RabbitMQ Server\rabbitmq_server-3.1.3\sbin>rabbitmqctl > list_que > > ues > > Listing queues ... > > Error: {aborted,{no_exists,[rabbit_queue, > > {amqqueue,{resource,<<"/">>,queue,'_'}, > > > '_','_','_','_','_','_','_','_','_'}]}} > > What do the results of 'rabbitmqctl status' look like on the broken node? > _______________________________________________ > 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 watson.timothy at gmail.com Mon Oct 7 09:29:28 2013 From: watson.timothy at gmail.com (Tim Watson) Date: Mon, 7 Oct 2013 09:29:28 +0100 Subject: [rabbitmq-discuss] RabbitMQ clustering list of queues issue in One node In-Reply-To: <574013F6-539A-41A4-A303-1B1C5E0527AB@rabbitmq.com> References: <574013F6-539A-41A4-A303-1B1C5E0527AB@rabbitmq.com> Message-ID: <6DACDF9A-00AD-434D-B426-419FB01FCBB6@rabbitmq.com> Oh just ignore me - Emile got right to the point anyway. The node is probably not restarted after clustering. On 7 Oct 2013, at 09:20, Tim Watson wrote: > On 7 Oct 2013, at 08:38, Rajasekhar P wrote: > >> Could any one explain why this odd behaviour is? >> >> >> C:\Program Files\RabbitMQ Server\rabbitmq_server-3.1.3\sbin>rabbitmqctl list_que >> ues >> Listing queues ... >> Error: {aborted,{no_exists,[rabbit_queue, >> {amqqueue,{resource,<<"/">>,queue,'_'}, >> '_','_','_','_','_','_','_','_','_'}]}} > > What do the results of 'rabbitmqctl status' look like on the broken node? > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss From sekhar434145 at gmail.com Mon Oct 7 09:33:47 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Mon, 7 Oct 2013 14:03:47 +0530 Subject: [rabbitmq-discuss] RabbitMQ clustering list of queues issue in One node In-Reply-To: <6DACDF9A-00AD-434D-B426-419FB01FCBB6@rabbitmq.com> References: <574013F6-539A-41A4-A303-1B1C5E0527AB@rabbitmq.com> <6DACDF9A-00AD-434D-B426-419FB01FCBB6@rabbitmq.com> Message-ID: Thanks Tim & Emile.. after restarting it working... Thank you. On Mon, Oct 7, 2013 at 1:59 PM, Tim Watson wrote: > Oh just ignore me - Emile got right to the point anyway. The node is > probably not restarted after clustering. > > On 7 Oct 2013, at 09:20, Tim Watson wrote: > > > On 7 Oct 2013, at 08:38, Rajasekhar P wrote: > > > >> Could any one explain why this odd behaviour is? > >> > >> > >> C:\Program Files\RabbitMQ Server\rabbitmq_server-3.1.3\sbin>rabbitmqctl > list_que > >> ues > >> Listing queues ... > >> Error: {aborted,{no_exists,[rabbit_queue, > >> {amqqueue,{resource,<<"/">>,queue,'_'}, > >> > '_','_','_','_','_','_','_','_','_'}]}} > > > > What do the results of 'rabbitmqctl status' look like on the broken node? > > _______________________________________________ > > 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 oc.tsdb at gmail.com Mon Oct 7 09:35:37 2013 From: oc.tsdb at gmail.com (oc tsdb) Date: Mon, 7 Oct 2013 14:05:37 +0530 Subject: [rabbitmq-discuss] Regarding plug-in Message-ID: Hi, If we install the rabbitmq-3.1.5 from rpm , and start the rabbitmq-server , will the plug-ins be enabled by default? thanks for the help. :) -------------- next part -------------- An HTML attachment was scrubbed... URL: From watson.timothy at gmail.com Mon Oct 7 10:03:56 2013 From: watson.timothy at gmail.com (Tim Watson) Date: Mon, 7 Oct 2013 10:03:56 +0100 Subject: [rabbitmq-discuss] Regarding plug-in In-Reply-To: References: Message-ID: <929DAEFE-BC14-4B25-BCC8-1DB06D1C87D5@rabbitmq.com> On 7 Oct 2013, at 09:35, oc tsdb wrote: > If we install the rabbitmq-3.1.5 from rpm , and start the rabbitmq-server , will the plug-ins be enabled by default? No, you'll have to explicitly enable plugins. See http://www.rabbitmq.com/plugins.html. From emile at rabbitmq.com Mon Oct 7 10:20:22 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Mon, 07 Oct 2013 10:20:22 +0100 Subject: [rabbitmq-discuss] RabbitMQ with STOMP, messages that are requested after 10 min delay doesn't work there after In-Reply-To: <3fd788c1-a160-4d11-88b2-652b5a47c2b1@googlegroups.com> References: <3fd788c1-a160-4d11-88b2-652b5a47c2b1@googlegroups.com> Message-ID: <52527CD6.9090900@rabbitmq.com> Hi, On 06/10/13 13:56, Suhaib Fahad wrote: > the client never receives it. You say the client never receives it - how far does the message get? Does it get to the queue? Does it time-out? Is it possible that some other consumer gets the message instead? Does the broker logfile contain any entries that might pertain to the problem? Have you eliminated the possibility that this is due to an error in the client implementation? -Emile From emile at rabbitmq.com Mon Oct 7 10:25:49 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Mon, 07 Oct 2013 10:25:49 +0100 Subject: [rabbitmq-discuss] Pub/sub In-Reply-To: References: Message-ID: <52527E1D.6020002@rabbitmq.com> On 05/10/13 10:00, Dessyre Dangeubun wrote: > You said, i can used pub/sub for my project. Website A(website server) > can broadcase to client. Yes, you can use pub/sub if you wish to broadcast information from one application to another. See the relevant tutorial example for a more detailed discussion: http://www.rabbitmq.com/tutorials/tutorial-one-python.html In your case the WebsiteA is the publisher and WebsiteB is the subscriber. -Emile From s.sciarrati at gmail.com Mon Oct 7 10:41:55 2013 From: s.sciarrati at gmail.com (Simone Sciarrati) Date: Mon, 7 Oct 2013 11:41:55 +0200 Subject: [rabbitmq-discuss] ETS memory usage Message-ID: Hi, I am investigating memory usage on one of our nodes in a cluster of 3 x c1.xlarge instances in ec2, ubuntu 12.04, RabbitMQ 2.8.4 and Erlang R14B04 (2 disk nodes and one ram node) . We are planning to upgrade to 3.1.x but regardless of the version I would like to understand how to extract information about what is consuming the memory. Right now, one of the nodes is showing 2.3GB used (high watermark 2.7GB), where 2GB are held in ETS according to the management console: 1> ets:i(). id name type size mem owner ---------------------------------------------------------------------------- 12 cookies set 0 300 auth 4111 code set 733 82416 code_server 8208 code_names set 53 7387 code_server 49169 mnesia_subscr duplicate_bag 1 307 mnesia_subscr 65570 httpc_manager__session_cookie_db bag 0 300 httpc_manager 90149 file_handle_cache_client set 51 1194 file_handle_cache 94244 file_handle_cache_elders set 36 696 file_handle_cache 98339 ign_requests set 0 300 inet_gethost_native 102438 ign_req_index set 0 300 inet_gethost_native 229436 vertices set 0 300 rabbit 233533 edges set 0 300 rabbit 237630 neighbours bag 2 314 rabbit 253993 rabbit_memory_monitor set 35 1118 rabbit_memory_monitor 446504 rabbit_msg_store_file_summary ordered_set 1 104 msg_store_transient 450623 rabbit_msg_store_ets_index set 6565 99801 msg_store_transient 454720 rabbit_msg_store_shared_file_handles ordered_set 0 90 msg_store_transient 458817 rabbit_msg_store_cur_file set 6562 447542 msg_store_transient 462914 rabbit_msg_store_flying set 0 300 msg_store_transient 467013 rabbit_msg_store_file_summary ordered_set 384 5466 msg_store_persistent 471110 rabbit_msg_store_ets_index set 2627724 39819062 msg_store_persistent 475207 rabbit_msg_store_shared_file_handles ordered_set 803 13741 msg_store_persistent 479304 rabbit_msg_store_cur_file set 9193 553491 msg_store_persistent 483401 rabbit_msg_store_flying set 0 300 msg_store_persistent 2625617 anon ordered_set 67 15491 <0.9548.283> 2629654 anon ordered_set 1308748 215451711 <0.9548.283> 2633803 anon ordered_set 2562 187731 <0.9548.283> 2637898 anon ordered_set 809 42884 <0.9548.283> 2641996 anon ordered_set 642 70378 <0.9548.283> 2646094 anon ordered_set 134 7406 <0.9548.283> 2650189 anon ordered_set 177 10405 <0.9548.283> 3072079 mnesia_transient_decision set 24 684 mnesia_recover 3092563 mnesia_transient_decision set 23 668 mnesia_recover 3162139 mnesia_transient_decision set 6 396 mnesia_recover 3182612 shell_records ordered_set 0 90 <0.24264.361> ac_tab ac_tab set 90 5663 application_controller disk_log_names disk_log_names set 0 300 disk_log_server disk_log_pids disk_log_pids set 0 300 disk_log_server file_io_servers file_io_servers set 2 468 file_server_2 global_locks global_locks set 0 300 global_name_server global_names global_names set 1 319 global_name_server global_names_ext global_names_ext set 0 300 global_name_server global_pid_ids global_pid_ids bag 0 300 global_name_server global_pid_names global_pid_names bag 2 317 global_name_server gm_group gm_group set 0 300 mnesia_monitor httpc_manager__handler_db httpc_manager__handler_db set 0 300 httpc_manager httpc_manager__session_db httpc_manager__session_db set 0 300 httpc_manager inet_cache inet_cache bag 0 300 inet_db inet_db inet_db set 29 615 inet_db inet_hosts_byaddr inet_hosts_byaddr bag 0 300 inet_db inet_hosts_byname inet_hosts_byname bag 0 300 inet_db inet_hosts_file_byaddr inet_hosts_file_byaddr bag 0 300 inet_db inet_hosts_file_byname inet_hosts_file_byname bag 0 300 inet_db mirrored_sup_childspec mirrored_sup_childspec ordered_set 1 116 mnesia_monitor mnesia_decision mnesia_decision set 1 308 mnesia_recover mnesia_gvar mnesia_gvar set 704 12494 mnesia_monitor mnesia_held_locks mnesia_held_locks bag 0 300 mnesia_locker mnesia_lock_queue mnesia_lock_queue bag 0 300 mnesia_locker mnesia_stats mnesia_stats set 7 349 mnesia_monitor mnesia_sticky_locks mnesia_sticky_locks set 0 300 mnesia_locker mnesia_tid_locks mnesia_tid_locks bag 0 300 mnesia_locker pg2_fixed_table pg2_fixed_table ordered_set 14 310 pg2_fixed pg_local_table pg_local_table ordered_set 0 90 pg_local rabbit_durable_exchange rabbit_durable_exchange set 51 1657 mnesia_monitor rabbit_durable_queue rabbit_durable_queue set 57 1978 mnesia_monitor rabbit_durable_route rabbit_durable_route set 118 5477 mnesia_monitor rabbit_exchange rabbit_exchange set 51 1657 mnesia_monitor rabbit_exchange_serial rabbit_exchange_serial set 0 300 mnesia_monitor rabbit_listener rabbit_listener bag 3 468 mnesia_monitor rabbit_queue rabbit_queue set 66 2323 mnesia_monitor rabbit_registry rabbit_registry set 7 370 rabbit_registry rabbit_reverse_route rabbit_reverse_route ordered_set 162 7530 mnesia_monitor rabbit_route rabbit_route ordered_set 162 7530 mnesia_monitor rabbit_semi_durable_route rabbit_semi_durable_route ordered_set 118 5385 mnesia_monitor rabbit_topic_trie_binding rabbit_topic_trie_binding ordered_set 96 4489 mnesia_monitor rabbit_topic_trie_edge rabbit_topic_trie_edge ordered_set 56 2299 mnesia_monitor rabbit_topic_trie_node rabbit_topic_trie_node ordered_set 93 2892 mnesia_monitor rabbit_user rabbit_user set 2 338 mnesia_monitor rabbit_user_permission rabbit_user_permission set 1 332 mnesia_monitor rabbit_vhost rabbit_vhost set 1 311 mnesia_monitor schema schema set 19 2695 mnesia_monitor sys_dist sys_dist set 3 423 net_kernel timer_interval_tab timer_interval_tab set 6 420 timer_server timer_tab timer_tab ordered_set 6 255 timer_server ok According to this output the 2 tables that are consuming most of the memory are: 2629654 anon ordered_set 1308748 215451711 <0.9548.283> 471110 rabbit_msg_store_ets_index set 2627724 39819062 msg_store_persistent Where the first one is: <0.9548.283> rabbit_mgmt_db:init/1 2584 27448279 0 Looking at this output the sum of the memory doesn't seem to add up to > 2GB, also the number of objects in the rabbit_msg_store_ets_index is > 2.5 millions, which doesn't seem correct when the number of messages in all queues on this node isn't more than 150k at any time (perhaps my understanding of this number is incorrect and it doesn't relate to the # of messages). All queues are durable. Any help in understanding where the memory might be used would be greatly appreciated, this is a generic question not specifically tied to the RabbitMQ version (same or different problem might present with later versions at some point in time). Thanks a lot, Simone From simon at rabbitmq.com Mon Oct 7 11:33:26 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Mon, 07 Oct 2013 11:33:26 +0100 Subject: [rabbitmq-discuss] Question regarding setting up a shovel between two clusters In-Reply-To: <7997A3D0E2B05844BE50FD03B7ED709C151A18E6@C111WHRPMBX28.ERF.thomson.com> References: <7997A3D0E2B05844BE50FD03B7ED709C151A1848@C111WHRPMBX28.ERF.thomson.com> <524EED9A.7040203@rabbitmq.com> <7997A3D0E2B05844BE50FD03B7ED709C151A18E6@C111WHRPMBX28.ERF.thomson.com> Message-ID: <52528DF6.3090801@rabbitmq.com> Well, your initial question was really about the differences between transient unmirrored / durable unmirrored / durable mirrored queues. And federation won't change any of those characteristics. (It uses queues to buffer messages upstream). Cheers, Simon On 04/10/2013 5:53PM, ron.jaeger at thomsonreuters.com wrote: > Hi Simon, > Thanks for the reply. My apologies, but I missed your initial reply. After reviewing your reply, I am curious if using federation rather than shoveling would be advantageous in this use case? > > Ron Jaeger > PSTS Middleware CPS > Thomson Reuters > email: Ron.Jaeger at thomsonreuters.com > phone: (651) 848-5264 > Cell: (651) 236-7233 > > > -----Original Message----- > From: Simon MacMullen [mailto:simon at rabbitmq.com] > Sent: Friday, October 04, 2013 11:32 AM > To: Discussions about RabbitMQ > Cc: Jaeger, Ron (TR Technology) > Subject: Re: [rabbitmq-discuss] Question regarding setting up a shovel between two clusters > > On 04/10/2013 5:23PM, ron.jaeger at thomsonreuters.com wrote: >> I am looking for a little help setting up a shovel between two >> rabbitmq clusters. > > Hi. Did you see my answer here: > > http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2013-October/030674.html > > ? > > Cheers, Simon > > -- > Simon MacMullen > RabbitMQ, Pivotal > -- Simon MacMullen RabbitMQ, Pivotal From sekhar434145 at gmail.com Mon Oct 7 12:01:55 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Mon, 7 Oct 2013 16:31:55 +0530 Subject: [rabbitmq-discuss] RabbitMQ clustering issue - exception while stopping the running node Message-ID: I have created clustered environment with two nodes and started producer and consumer at the same time. After sometime stopped one node but consumer is not running on other rabbitmq node. After stopping the running node it is giving below warning? WARN [.listener.SimpleMessageListenerContainer]: Consumer raised exception, processing can restart if the connection factory supports it com.rabbitmq.client.ShutdownSignalException: connection error; reason: {#method(reply-code=541, reply-text=INTERNAL_ERROR, class-id=0, method-id=0), null, ""} at com.rabbitmq.client.impl.AMQConnection.startShutdown(AMQConnection.java:678) at com.rabbitmq.client.impl.AMQConnection.shutdown(AMQConnection.java:668) at com.rabbitmq.client.impl.AMQConnection.handleConnectionClose(AMQConnection.java:624) at com.rabbitmq.client.impl.AMQConnection.processControlCommand(AMQConnection.java:598) at com.rabbitmq.client.impl.AMQConnection$1.processAsync(AMQConnection.java:96) at com.rabbitmq.client.impl.AMQChannel.handleCompleteInboundCommand(AMQChannel.java:144) at com.rabbitmq.client.impl.AMQChannel.handleFrame(AMQChannel.java:91) at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:523) INFO [.listener.SimpleMessageListenerContainer]: Restarting Consumer: tag=[amq.ctag-5CJ3YJYfMZDnJOnXsds6_Q], channel=Cached Rabbit Channel: AMQChannel(amqp://guest at 192.168.97.70:5672/,1), acknowledgeMode=AUTO local queue size=0 and the configuration is - CachingConnectionFactory connectionFactory = new CachingConnectionFactory(); connectionFactory.setAddresses("node1:5672,node2:5672"); Along with above query, I have below queries in my mind- 1> How to differenciate master and slave in rabbitmq cluster? 2> Is there any load balancer do we need ti maintain ? 3> How to dispatch requests to to particular node like below, 1-100 queues => Node1 101-200 queues => Node2 201-300 queues => Node3, etc Thanks in advance. -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Mon Oct 7 12:16:38 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Mon, 07 Oct 2013 12:16:38 +0100 Subject: [rabbitmq-discuss] ETS memory usage In-Reply-To: References: Message-ID: <52529816.90702@rabbitmq.com> On 07/10/2013 10:41AM, Simone Sciarrati wrote: > I am investigating memory usage on one of our nodes in a cluster of 3 > x c1.xlarge instances in ec2, ubuntu 12.04, RabbitMQ 2.8.4 and Erlang > R14B04 (2 disk nodes and one ram node) . We are planning to upgrade to > 3.1.x but regardless of the version I would like to understand how to > extract information about what is consuming the memory. You are aware that later versions of RabbitMQ do some of this for you? http://www.rabbitmq.com/memory-use.html > Right now, one of the nodes is showing 2.3GB used (high watermark > 2.7GB), where 2GB are held in ETS according to the management console: > According to this output the 2 tables that are consuming most of the memory are: > > 2629654 anon ordered_set 1308748 215451711 <0.9548.283> > 471110 rabbit_msg_store_ets_index set 2627724 39819062 > msg_store_persistent > Looking at this output the sum of the memory doesn't seem to add up to >> 2GB IIRC the output from some of the ETS statistics functions are sometimes in words rather than bytes. Also we reported discrepancies between the globally reported ETS memory use and the per-table use that I think were fixed in later versions of Erlang. >, also the number of objects in the rabbit_msg_store_ets_index is >> 2.5 millions, which doesn't seem correct when the number of messages > in all queues on this node isn't more than 150k at any time (perhaps > my understanding of this number is incorrect and it doesn't relate to > the # of messages). It should do. If the server is very active it may lag behind the real state of affairs (i.e. a message might have been consumed but not yet removed from the message store index). > Any help in understanding where the memory might be used would be > greatly appreciated, this is a generic question not specifically tied > to the RabbitMQ version (same or different problem might present with > later versions at some point in time). The bulk of your memory is going to the mgmt stats db, mostly (if I'm counting correctly) on the channels table. There was a bug (fixed in 3.0.3) where stats on connections / channels would leak when a node that was not running the stats DB went down with active connections / channels. If that has happened a few times that would explain what you're seeing. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From s.sciarrati at gmail.com Mon Oct 7 12:50:06 2013 From: s.sciarrati at gmail.com (Simone Sciarrati) Date: Mon, 7 Oct 2013 13:50:06 +0200 Subject: [rabbitmq-discuss] ETS memory usage In-Reply-To: <52529816.90702@rabbitmq.com> References: <52529816.90702@rabbitmq.com> Message-ID: Hi, Thanks a lot. This node has the most active active queue and it is also the stats node for the cluster, I can see it is doing lots of IO compared to the other nodes and as you say it might be lagging behind. Is there a way to move the stats to another node in the cluster without having to restart RabbitMQ? Thanks, Simone On Mon, Oct 7, 2013 at 1:16 PM, Simon MacMullen wrote: > On 07/10/2013 10:41AM, Simone Sciarrati wrote: >> >> I am investigating memory usage on one of our nodes in a cluster of 3 >> x c1.xlarge instances in ec2, ubuntu 12.04, RabbitMQ 2.8.4 and Erlang >> R14B04 (2 disk nodes and one ram node) . We are planning to upgrade to >> 3.1.x but regardless of the version I would like to understand how to >> extract information about what is consuming the memory. > > > You are aware that later versions of RabbitMQ do some of this for you? > http://www.rabbitmq.com/memory-use.html > > >> Right now, one of the nodes is showing 2.3GB used (high watermark >> 2.7GB), where 2GB are held in ETS according to the management console: > > > > > >> According to this output the 2 tables that are consuming most of the >> memory are: >> >> 2629654 anon ordered_set 1308748 215451711 >> <0.9548.283> >> 471110 rabbit_msg_store_ets_index set 2627724 39819062 >> msg_store_persistent > > > > > >> Looking at this output the sum of the memory doesn't seem to add up to >>> >>> 2GB > > > IIRC the output from some of the ETS statistics functions are sometimes in > words rather than bytes. > > Also we reported discrepancies between the globally reported ETS memory use > and the per-table use that I think were fixed in later versions of Erlang. > > >> , also the number of objects in the rabbit_msg_store_ets_index is >>> >>> 2.5 millions, which doesn't seem correct when the number of messages >> >> in all queues on this node isn't more than 150k at any time (perhaps >> my understanding of this number is incorrect and it doesn't relate to >> the # of messages). > > > It should do. If the server is very active it may lag behind the real state > of affairs (i.e. a message might have been consumed but not yet removed from > the message store index). > > >> Any help in understanding where the memory might be used would be >> greatly appreciated, this is a generic question not specifically tied >> to the RabbitMQ version (same or different problem might present with >> later versions at some point in time). > > > The bulk of your memory is going to the mgmt stats db, mostly (if I'm > counting correctly) on the channels table. There was a bug (fixed in 3.0.3) > where stats on connections / channels would leak when a node that was not > running the stats DB went down with active connections / channels. If that > has happened a few times that would explain what you're seeing. > > Cheers, Simon > > -- > Simon MacMullen > RabbitMQ, Pivotal From emile at rabbitmq.com Mon Oct 7 13:02:29 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Mon, 07 Oct 2013 13:02:29 +0100 Subject: [rabbitmq-discuss] RabbitMQ crash report In-Reply-To: <52457610.9000700@rabbitmq.com> References: <1380097272338-29893.post@n5.nabble.com> <52457610.9000700@rabbitmq.com> Message-ID: <5252A2D5.5060600@rabbitmq.com> Hi Carl, On 27/09/13 13:12, Emile Joubert wrote: >> =CRASH REPORT==== 25-Sep-2013::07:40:26 === > > As much context as possible will be useful here. Will you be able to > supply the complete regular and sasl logs for the nodes that the > extracts were taken from? From carl.hoerberg at gmail.com Mon Oct 7 13:03:23 2013 From: carl.hoerberg at gmail.com (=?utf-8?Q?Carl_H=C3=B6rberg?=) Date: Mon, 7 Oct 2013 20:03:23 +0800 Subject: [rabbitmq-discuss] RabbitMQ crash report In-Reply-To: <5252A2D5.5060600@rabbitmq.com> References: <1380097272338-29893.post@n5.nabble.com> <52457610.9000700@rabbitmq.com> <5252A2D5.5060600@rabbitmq.com> Message-ID: <94C6350F3A2E4A619991FAF8ADCC088A@gmail.com> ok, thanks for taking the time!! :)) On Monday 7 October 2013 at 20:02, Emile Joubert wrote: > > Hi Carl, > > On 27/09/13 13:12, Emile Joubert wrote: > > > > =CRASH REPORT==== 25-Sep-2013::07:40:26 === > > > > As much context as possible will be useful here. Will you be able to > > supply the complete regular and sasl logs for the nodes that the > > extracts were taken from? > > > > > From the logs that you sent I can see that the likely root cause is a > problem that has been fixed, but not released yet. You can either build > the broker from source (from the "stable" branch) or wait for the next > release, which will include the fix. The release notes will reference > the fix as "bug25757". > > > -Emile From emile at rabbitmq.com Mon Oct 7 13:20:47 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Mon, 07 Oct 2013 13:20:47 +0100 Subject: [rabbitmq-discuss] RabbitMQ clustering issue - exception while stopping the running node In-Reply-To: References: Message-ID: <5252A71F.70204@rabbitmq.com> Hi, On 07/10/13 12:01, Rajasekhar P wrote: > com.rabbitmq.client.ShutdownSignalException: connection error; reason: > {#method(reply-code=541, reply-text=INTERNAL_ERROR, > class-id=0, method-id=0), null, ""} This means an internal error occurred. Please check the broker logfile and sasl log and let us know what it says. > 1> How to differenciate master and slave in rabbitmq cluster? Different queues can have a master on different nodes, so there is no overall master. "rabbitmqctl list_qeueus name pid" will report the master as part of the pid field. > 2> Is there any load balancer do we need ti maintain ? A load-balancer is not required or prohibited. > 3> How to dispatch requests to to particular node like below, > 1-100 queues => Node1 > 101-200 queues => Node2 > 201-300 queues => Node3, etc By default queues are created on the node that the peer is connected to, so your application could connect to node1, declare 100 queues, connect to node2, declare 100 queues and so on. In this way queues will be distributed across your cluster. If you want to make sure that requests are distributed evenly then consider use of the consistent hash exchange: https://github.com/rabbitmq/rabbitmq-consistent-hash-exchange -Emile From sp345s at att.com Mon Oct 7 13:32:17 2013 From: sp345s at att.com (PATAR, SAGAR) Date: Mon, 7 Oct 2013 12:32:17 +0000 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: <628E26A3-A21F-4736-92C2-F3F21C0BBB28@rabbitmq.com> References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D018203F5@GAALPA1MSGUSR9C.ITServices.sbc.com> <9D8B2AA2-4083-41FC-9AC8-A5850DB4AC9B@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204D7@GAALPA1MSGUSR9C.ITServices.sbc.com> <60E60AE4-5BEB-4C3D-9659-77570BF3BB9A@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204FC@GAALPA1MSGUSR9C.ITServices.sbc.com> <9A3789FF-8D4D-466D-A771-C885C7DA5E1F@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D0182057B@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D01820616@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D01820646@GAALPA1MSGUSR9C.ITServices.sbc.com> <78AC8CD2-EA1F-447F-9695-29F345419E02@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D01820671@GAALPA1MSGUSR9C.ITServices .sbc.com > <628E26A3-A21F-4736-92C2-F3F21C0BBB28@rabbitmq.com> Message-ID: <59BF56992750434F89F8EBE141E64B1D018209B1@GAALPA1MSGUSR9C.ITServices.sbc.com> Below when you say " You can have multiple consumers per queue. On exclusive queues, they all have to be on the same connection." will each consumer get a copy of the message on the same queue ..my understanding is only one consumer wins and gets the message ...?? Also in our scenario we can't have consumers spanning from same connection ... PL. find the attached PPT having the network topology and the slide 4 has a scenario where we introduce a new client ... Do we need to create a new queue for it .. Our scenario is a simple pub/sub .. where all the consumers should get the same message .. and we have to implement the high availability and durability features for failover scenarios ... Please suggest ... -----Original Message----- From: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Michael Klishin Sent: Friday, October 04, 2013 4:38 PM To: Discussions about RabbitMQ Subject: Re: [rabbitmq-discuss] mirrored queue cluster On oct 5, 2013, at 12:30 a.m., "PATAR, SAGAR" wrote: > Only 1 consumer can consume a message from a Queue right ... You can have multiple consumers per queue. On exclusive queues, they all have to be on the same connection. > With multiple clients we are expecting multiple consumers .. and we need to have the same message consumed by all the consumers .. > I have seen the tutorial from that it looks like each consumer needs to have a separate queue and so a copy of a message will be forwarded ... If that's not sufficient, you can use exchange-to-exchange bindings to first distribute messages between exchanges and those (fanout) exchanges will distribute messages between queues. That is only necessary if every consumer needs to get a copy of every message. If that's not the case, simply add as many consumers as necessary on every queue. > In case we are mirroring queues..Why do we want to mirror all the queues since they have exactly same messages ... Mirrored queues is a high availability feature. If only one node in a cluster has contents of a queue and that node fails, the entire queue content is gone. With mirrored queues, one of the mirrors is promoted to master. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: messaging_rabbit.pptx Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Size: 240867 bytes Desc: messaging_rabbit.pptx URL: From simon at rabbitmq.com Mon Oct 7 13:36:27 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Mon, 07 Oct 2013 13:36:27 +0100 Subject: [rabbitmq-discuss] ETS memory usage In-Reply-To: References: <52529816.90702@rabbitmq.com> Message-ID: <5252AACB.7060904@rabbitmq.com> Yes, I believe so. Cheers, Simon On 07/10/2013 1:32PM, Simone Sciarrati wrote: > I think I found the answer in a previous post > (http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2012-April/019446.html): > > You should be able to do: > > rabbitmqctl eval 'application:stop(rabbitmq_management).' > rabbitmqctl eval 'application:start(rabbitmq_management).' > > to just restart the management plugin. > > I assume if I just stop it another node in the cluster will take the stats. > > Simone > > On Mon, Oct 7, 2013 at 1:50 PM, Simone Sciarrati wrote: >> Hi, >> >> Thanks a lot. This node has the most active active queue and it is >> also the stats node for the cluster, I can see it is doing lots of IO >> compared to the other nodes and as you say it might be lagging behind. >> Is there a way to move the stats to another node in the cluster >> without having to restart RabbitMQ? >> >> Thanks, >> >> Simone >> >> On Mon, Oct 7, 2013 at 1:16 PM, Simon MacMullen wrote: >>> On 07/10/2013 10:41AM, Simone Sciarrati wrote: >>>> >>>> I am investigating memory usage on one of our nodes in a cluster of 3 >>>> x c1.xlarge instances in ec2, ubuntu 12.04, RabbitMQ 2.8.4 and Erlang >>>> R14B04 (2 disk nodes and one ram node) . We are planning to upgrade to >>>> 3.1.x but regardless of the version I would like to understand how to >>>> extract information about what is consuming the memory. >>> >>> >>> You are aware that later versions of RabbitMQ do some of this for you? >>> http://www.rabbitmq.com/memory-use.html >>> >>> >>>> Right now, one of the nodes is showing 2.3GB used (high watermark >>>> 2.7GB), where 2GB are held in ETS according to the management console: >>> >>> >>> >>> >>> >>>> According to this output the 2 tables that are consuming most of the >>>> memory are: >>>> >>>> 2629654 anon ordered_set 1308748 215451711 >>>> <0.9548.283> >>>> 471110 rabbit_msg_store_ets_index set 2627724 39819062 >>>> msg_store_persistent >>> >>> >>> >>> >>> >>>> Looking at this output the sum of the memory doesn't seem to add up to >>>>> >>>>> 2GB >>> >>> >>> IIRC the output from some of the ETS statistics functions are sometimes in >>> words rather than bytes. >>> >>> Also we reported discrepancies between the globally reported ETS memory use >>> and the per-table use that I think were fixed in later versions of Erlang. >>> >>> >>>> , also the number of objects in the rabbit_msg_store_ets_index is >>>>> >>>>> 2.5 millions, which doesn't seem correct when the number of messages >>>> >>>> in all queues on this node isn't more than 150k at any time (perhaps >>>> my understanding of this number is incorrect and it doesn't relate to >>>> the # of messages). >>> >>> >>> It should do. If the server is very active it may lag behind the real state >>> of affairs (i.e. a message might have been consumed but not yet removed from >>> the message store index). >>> >>> >>>> Any help in understanding where the memory might be used would be >>>> greatly appreciated, this is a generic question not specifically tied >>>> to the RabbitMQ version (same or different problem might present with >>>> later versions at some point in time). >>> >>> >>> The bulk of your memory is going to the mgmt stats db, mostly (if I'm >>> counting correctly) on the channels table. There was a bug (fixed in 3.0.3) >>> where stats on connections / channels would leak when a node that was not >>> running the stats DB went down with active connections / channels. If that >>> has happened a few times that would explain what you're seeing. >>> >>> Cheers, Simon >>> >>> -- >>> Simon MacMullen >>> RabbitMQ, Pivotal -- Simon MacMullen RabbitMQ, Pivotal From s.sciarrati at gmail.com Mon Oct 7 13:50:21 2013 From: s.sciarrati at gmail.com (Simone Sciarrati) Date: Mon, 7 Oct 2013 14:50:21 +0200 Subject: [rabbitmq-discuss] ETS memory usage In-Reply-To: <5252AACB.7060904@rabbitmq.com> References: <52529816.90702@rabbitmq.com> <5252AACB.7060904@rabbitmq.com> Message-ID: Hi, For the record, that worked as expected, the memory usage dropped 1.3GB to normal (around 1G) and another node in the cluster became the stats node. The command took some time to complete (2/3 minutes) but there was no interruption of service. Simone On Mon, Oct 7, 2013 at 2:36 PM, Simon MacMullen wrote: > Yes, I believe so. > > Cheers, Simon > > > On 07/10/2013 1:32PM, Simone Sciarrati wrote: >> >> I think I found the answer in a previous post >> >> (http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2012-April/019446.html): >> >> You should be able to do: >> >> rabbitmqctl eval 'application:stop(rabbitmq_management).' >> rabbitmqctl eval 'application:start(rabbitmq_management).' >> >> to just restart the management plugin. >> >> I assume if I just stop it another node in the cluster will take the >> stats. >> >> Simone >> >> On Mon, Oct 7, 2013 at 1:50 PM, Simone Sciarrati >> wrote: >>> >>> Hi, >>> >>> Thanks a lot. This node has the most active active queue and it is >>> also the stats node for the cluster, I can see it is doing lots of IO >>> compared to the other nodes and as you say it might be lagging behind. >>> Is there a way to move the stats to another node in the cluster >>> without having to restart RabbitMQ? >>> >>> Thanks, >>> >>> Simone >>> >>> On Mon, Oct 7, 2013 at 1:16 PM, Simon MacMullen >>> wrote: >>>> >>>> On 07/10/2013 10:41AM, Simone Sciarrati wrote: >>>>> >>>>> >>>>> I am investigating memory usage on one of our nodes in a cluster of 3 >>>>> x c1.xlarge instances in ec2, ubuntu 12.04, RabbitMQ 2.8.4 and Erlang >>>>> R14B04 (2 disk nodes and one ram node) . We are planning to upgrade to >>>>> 3.1.x but regardless of the version I would like to understand how to >>>>> extract information about what is consuming the memory. >>>> >>>> >>>> >>>> You are aware that later versions of RabbitMQ do some of this for you? >>>> http://www.rabbitmq.com/memory-use.html >>>> >>>> >>>>> Right now, one of the nodes is showing 2.3GB used (high watermark >>>>> 2.7GB), where 2GB are held in ETS according to the management console: >>>> >>>> >>>> >>>> >>>> >>>> >>>>> According to this output the 2 tables that are consuming most of the >>>>> memory are: >>>>> >>>>> 2629654 anon ordered_set 1308748 215451711 >>>>> <0.9548.283> >>>>> 471110 rabbit_msg_store_ets_index set 2627724 39819062 >>>>> msg_store_persistent >>>> >>>> >>>> >>>> >>>> >>>> >>>>> Looking at this output the sum of the memory doesn't seem to add up to >>>>>> >>>>>> >>>>>> 2GB >>>> >>>> >>>> >>>> IIRC the output from some of the ETS statistics functions are sometimes >>>> in >>>> words rather than bytes. >>>> >>>> Also we reported discrepancies between the globally reported ETS memory >>>> use >>>> and the per-table use that I think were fixed in later versions of >>>> Erlang. >>>> >>>> >>>>> , also the number of objects in the rabbit_msg_store_ets_index is >>>>>> >>>>>> >>>>>> 2.5 millions, which doesn't seem correct when the number of messages >>>>> >>>>> >>>>> in all queues on this node isn't more than 150k at any time (perhaps >>>>> my understanding of this number is incorrect and it doesn't relate to >>>>> the # of messages). >>>> >>>> >>>> >>>> It should do. If the server is very active it may lag behind the real >>>> state >>>> of affairs (i.e. a message might have been consumed but not yet removed >>>> from >>>> the message store index). >>>> >>>> >>>>> Any help in understanding where the memory might be used would be >>>>> greatly appreciated, this is a generic question not specifically tied >>>>> to the RabbitMQ version (same or different problem might present with >>>>> later versions at some point in time). >>>> >>>> >>>> >>>> The bulk of your memory is going to the mgmt stats db, mostly (if I'm >>>> counting correctly) on the channels table. There was a bug (fixed in >>>> 3.0.3) >>>> where stats on connections / channels would leak when a node that was >>>> not >>>> running the stats DB went down with active connections / channels. If >>>> that >>>> has happened a few times that would explain what you're seeing. >>>> >>>> Cheers, Simon >>>> >>>> -- >>>> Simon MacMullen >>>> RabbitMQ, Pivotal > > > -- > Simon MacMullen > RabbitMQ, Pivotal From Punit.Jain at emc.com Mon Oct 7 14:01:42 2013 From: Punit.Jain at emc.com (Jain, Punit) Date: Mon, 7 Oct 2013 09:01:42 -0400 Subject: [rabbitmq-discuss] rabbitmq-c: how to detect broker failure In-Reply-To: References: Message-ID: Thank you, Alan. Yes, I mean "broker failure" in the same sense as you have explained. I am using AMQP_RESPONSE_LIBRARY_EXCEPTION as an indication of broker failure. What does "library_error = 0" signify with that exception? - Punit From: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Alan Antonuk Sent: Monday, October 07, 2013 11:47 AM To: Jain, Punit Cc: rabbitmq-discuss at lists.rabbitmq.com Subject: Re: [rabbitmq-discuss] rabbitmq-c: how to detect broker failure It depends on what you mean by "broker failure". If you mean the broker hardware dies, the broker crashes, or (more likely) something interrupts the network: you'll get an network error on the client side. In rabbitmq-c this manifests itself in different ways depending on the function being called: for functions returning an int, a non-zero value is returned, for functions returning an amqp_rpc_reply_t, type will be set to AMQP_RESPONSE_LIBRARY_EXCEPTION and library_error will be set to something non-zero, and for things returning a amqp_*_t object if a NULL value is returned, calling amqp_get_last_rpc_reply() will get an amqp_rpc_reply_t which the above rule should be followed. HTH -Alan On Fri, Oct 4, 2013 at 6:13 AM, Jain, Punit > wrote: Hi, I am using rabbitmq-c amqp client (0.2.0) to publish messages to RabbitMQ broker. I want to be notified in case of broker failure. Is there a way to detect this? Any method or exception, which may notify us about this error while establishing a connection or publishing message? Thanks, Punit -------------- next part -------------- An HTML attachment was scrubbed... URL: From oleg.lyalikov at gmail.com Mon Oct 7 13:08:53 2013 From: oleg.lyalikov at gmail.com (Oleg Lyalikov) Date: Mon, 7 Oct 2013 16:08:53 +0400 Subject: [rabbitmq-discuss] Long timeout if server host becomes unreachable Message-ID: Hello, I tried to search some discussion on this topic but didn't find. The problem : the client sends some messages to the server on another host and at some moment server host becomes unreachable (network is down, host is powered off, etc). As a result the sender thread is blocked while writing to socket and recognizes network failure after some time which is not comfortable (> 15 min for our rhel machine). I tried to tune some tcp/socket settings but didn't succeed. Here is a part of thread dump when the thread is stuck: "main" prio=10 tid=0xf7505800 nid=0x2c3e runnable [0xf7728000] java.lang.Thread.State: RUNNABLE at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109) at java.net.SocketOutputStream.write(SocketOutputStream.java:153) at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140) - locked <0xb4532608> (a java.io.BufferedOutputStream) at java.io.DataOutputStream.flush(DataOutputStream.java:123) at com.rabbitmq.client.impl.SocketFrameHandler.flush(SocketFrameHandler.java:142) at com.rabbitmq.client.impl.AMQConnection.flush(AMQConnection.java:488) at com.rabbitmq.client.impl.AMQCommand.transmit(AMQCommand.java:125) at com.rabbitmq.client.impl.AMQChannel.quiescingTransmit(AMQChannel.java:316) - locked <0xb4532ee8> (a java.lang.Object) at com.rabbitmq.client.impl.AMQChannel.transmit(AMQChannel.java:292) - locked <0xb4532ee8> (a java.lang.Object) at com.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java:634) at com.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java:617) at com.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java:608) "AMQP Connection 172.17.32.170:5672" prio=10 tid=0xac15d800 nid=0x2c5c waiting for monitor entry [0xacb56000] java.lang.Thread.State: BLOCKED (on object monitor) at com.rabbitmq.client.impl.AMQChannel.processShutdownSignal(AMQChannel.java:263) - waiting to lock <0xb4532ee8> (a java.lang.Object) at com.rabbitmq.client.impl.ChannelN.startProcessShutdownSignal(ChannelN.java:259) at com.rabbitmq.client.impl.ChannelN.processShutdownSignal(ChannelN.java:283) at com.rabbitmq.client.impl.ChannelManager.handleSignal(ChannelManager.java:90) at com.rabbitmq.client.impl.AMQConnection.finishShutdown(AMQConnection.java:696) at com.rabbitmq.client.impl.AMQConnection.shutdown(AMQConnection.java:669) at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:550) "pool-2-thread-1" prio=10 tid=0xac167000 nid=0x2c60 waiting for monitor entry [0xac77d000] java.lang.Thread.State: BLOCKED (on object monitor) at java.io.BufferedOutputStream.write(BufferedOutputStream.java:94) - waiting to lock <0xb4532608> (a java.io.BufferedOutputStream) at java.io.DataOutputStream.writeByte(DataOutputStream.java:153) at com.rabbitmq.client.impl.Frame.writeTo(Frame.java:189) at com.rabbitmq.client.impl.SocketFrameHandler.writeFrame(SocketFrameHandler.java:137) - locked <0xb45325f0> (a java.io.DataOutputStream) at com.rabbitmq.client.impl.HeartbeatSender$HeartbeatRunnable.run(HeartbeatSender.java:133) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:722) RabbitMQ server v 3.0.2, client (java) v 3.0.1, both run on rhel 6.4. Do you know if there is some setting which can manage this timeout period (OS level / JVM level / client library level)? Also the thread "AMQP Connection ..." seems is blocked on monitor object while trying to make shutdown - could it be a bug which prevents to make shutdown in time? Thanks, Oleg -------------- next part -------------- An HTML attachment was scrubbed... URL: From oleg.lyalikov at gmail.com Mon Oct 7 13:26:20 2013 From: oleg.lyalikov at gmail.com (Oleg Lyalikov) Date: Mon, 7 Oct 2013 05:26:20 -0700 (PDT) Subject: [rabbitmq-discuss] Long timeout if server host becomes unreachable Message-ID: <1381148780469-30275.post@n5.nabble.com> Hello, I tried to search some discussion on this topic but didn't find. The problem : the client sends some messages to the server on another host and at some moment server host becomes unreachable (network is down, host is powered off, etc). As a result the sender thread is blocked while writing to socket and recognizes network failure after some time which is not comfortable (> 15 min for our rhel machine). I tried to tune some tcp/socket settings but didn't succeed. Here is a part of thread dump when the thread is stuck: "main" prio=10 tid=0xf7505800 nid=0x2c3e runnable [0xf7728000] java.lang.Thread.State: RUNNABLE at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109) at java.net.SocketOutputStream.write(SocketOutputStream.java:153) at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140) - locked <0xb4532608> (a java.io.BufferedOutputStream) at java.io.DataOutputStream.flush(DataOutputStream.java:123) at com.rabbitmq.client.impl.SocketFrameHandler.flush(SocketFrameHandler.java:142) at com.rabbitmq.client.impl.AMQConnection.flush(AMQConnection.java:488) at com.rabbitmq.client.impl.AMQCommand.transmit(AMQCommand.java:125) at com.rabbitmq.client.impl.AMQChannel.quiescingTransmit(AMQChannel.java:316) - locked <0xb4532ee8> (a java.lang.Object) at com.rabbitmq.client.impl.AMQChannel.transmit(AMQChannel.java:292) - locked <0xb4532ee8> (a java.lang.Object) at com.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java:634) at com.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java:617) at com.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java:608) "AMQP Connection 172.17.32.170:5672" prio=10 tid=0xac15d800 nid=0x2c5c waiting for monitor entry [0xacb56000] java.lang.Thread.State: BLOCKED (on object monitor) at com.rabbitmq.client.impl.AMQChannel.processShutdownSignal(AMQChannel.java:263) - waiting to lock <0xb4532ee8> (a java.lang.Object) at com.rabbitmq.client.impl.ChannelN.startProcessShutdownSignal(ChannelN.java:259) at com.rabbitmq.client.impl.ChannelN.processShutdownSignal(ChannelN.java:283) at com.rabbitmq.client.impl.ChannelManager.handleSignal(ChannelManager.java:90) at com.rabbitmq.client.impl.AMQConnection.finishShutdown(AMQConnection.java:696) at com.rabbitmq.client.impl.AMQConnection.shutdown(AMQConnection.java:669) at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:550) "pool-2-thread-1" prio=10 tid=0xac167000 nid=0x2c60 waiting for monitor entry [0xac77d000] java.lang.Thread.State: BLOCKED (on object monitor) at java.io.BufferedOutputStream.write(BufferedOutputStream.java:94) - waiting to lock <0xb4532608> (a java.io.BufferedOutputStream) at java.io.DataOutputStream.writeByte(DataOutputStream.java:153) at com.rabbitmq.client.impl.Frame.writeTo(Frame.java:189) at com.rabbitmq.client.impl.SocketFrameHandler.writeFrame(SocketFrameHandler.java:137) - locked <0xb45325f0> (a java.io.DataOutputStream) at com.rabbitmq.client.impl.HeartbeatSender$HeartbeatRunnable.run(HeartbeatSender.java:133) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:722) RabbitMQ server v 3.0.2, client (java) v 3.0.1, both run on rhel 6.4. Do you know if there is some setting which can manage this timeout period (OS level / JVM level / client library level)? Also the thread "AMQP Connection ..." seems is blocked on monitor object while trying to shutdown - could it be a bug which prevents to make shutdown in time? Thanks, Oleg -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Long-timeout-if-server-host-becomes-unreachable-tp30275.html Sent from the RabbitMQ mailing list archive at Nabble.com. From spowell at gopivotal.com Mon Oct 7 14:35:04 2013 From: spowell at gopivotal.com (Steve Powell) Date: Mon, 7 Oct 2013 14:35:04 +0100 Subject: [rabbitmq-discuss] integration with jboss 5.1 as In-Reply-To: <6AFFF9F9-C9F6-4FB8-969B-BDE5CF3CC2B1@rabbitmq.com> References: <59BF56992750434F89F8EBE141E64B1D01820180@GAALPA1MSGUSR9C.ITServices.sbc.com> <6AFFF9F9-C9F6-4FB8-969B-BDE5CF3CC2B1@rabbitmq.com> Message-ID: <003B7B67-7B13-432E-A0C2-9002302FC002@rabbitmq.com> Just a minor correction: You should refer to http://pubs.vmware.com/vfabricRabbitMQ31/index.jsp?topic=/com.vmware.vfabric.rabbitmq.3.1/jms-client/about.html for the latest version/documentation for JMS on vFabric RabbitMQ. Steve Powell [Cell: +44-7815-838-558] [RabbitMQ, Pivotal] ?L?enfer, c?est les autres.? Sartre On 3 Oct 2013, at 20:32, Michael Klishin wrote: > On oct 3, 2013, at 11:25 p.m., "PATAR, SAGAR" wrote: > >> Just wanted to make sure that we should be able to subscribe the messages through MDB?s deployed in jboss5.1 as ? > > MDB's rely on JMS. > > JMS client for RabbitMQ is available as part of (commercial) vFabric Suite, see > http://pubs.vmware.com/vfabric53/index.jsp?topic=/com.vmware.vfabric.rabbitmq.3.0/jms-client/install-configure-client.html > > MK > > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss From michael at rabbitmq.com Mon Oct 7 14:37:03 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Mon, 7 Oct 2013 17:37:03 +0400 Subject: [rabbitmq-discuss] Long timeout if server host becomes unreachable In-Reply-To: <1381148780469-30275.post@n5.nabble.com> References: <1381148780469-30275.post@n5.nabble.com> Message-ID: <58D35FA5-3E01-402A-811F-D7E05A1488F7@rabbitmq.com> On oct 7, 2013, at 4:26 p.m., Oleg Lyalikov wrote: > "main" prio=10 tid=0xf7505800 nid=0x2c3e runnable [0xf7728000] > java.lang.Thread.State: RUNNABLE > at java.net.SocketOutputStream.socketWrite0(Native Method) > at > java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109) > at java.net.SocketOutputStream.write(SocketOutputStream.java:153) > at > java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) > at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140) > - locked <0xb4532608> (a java.io.BufferedOutputStream) > at java.io.DataOutputStream.flush(DataOutputStream.java:123) > at > com.rabbitmq.client.impl.SocketFrameHandler.flush(SocketFrameHandler.java:142) > at > com.rabbitmq.client.impl.AMQConnection.flush(AMQConnection.java:488) > at com.rabbitmq.client.impl.AMQCommand.transmit(AMQCommand.java:125) > at > com.rabbitmq.client.impl.AMQChannel.quiescingTransmit(AMQChannel.java:316) > - locked <0xb4532ee8> (a java.lang.Object) > at com.rabbitmq.client.impl.AMQChannel.transmit(AMQChannel.java:292) > - locked <0xb4532ee8> (a java.lang.Object) > at com.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java:634) > at com.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java:617) > at com.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java:608) If SocketOutputStream#socketWrite0 takes minutes to timeout, it may be worth trying setting SO_LINGER on the socket (SO_TIMEOUT sounds like what you want but I believe it only covers read operations): http://docs.oracle.com/javase/7/docs/api/java/net/Socket.html#setSoLinger(boolean,%20int) To do so, for example, you can subclass default ConnectionFactory and override #configureSocket: http://hg.rabbitmq.com/rabbitmq-java-client/file/46578678645e/src/com/rabbitmq/client/ConnectionFactory.java#l476 Note that SO_LINGER is not free of downsides: http://blog.netherlabs.nl/articles/2009/01/18/the-ultimate-so_linger-page-or-why-is-my-tcp-not-reliable http://stackoverflow.com/questions/3757289/tcp-option-so-linger-zero-when-its-required You can try reducing maximum packet age for the server, this should reduce the amount of time spent in TIME_WAIT. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From michael at rabbitmq.com Mon Oct 7 14:39:04 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Mon, 7 Oct 2013 17:39:04 +0400 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: <59BF56992750434F89F8EBE141E64B1D018209B1@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D01820391@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D018203F5@GAALPA1MSGUSR9C.ITServices.sbc.com> <9D8B2AA2-4083-41FC-9AC8-A5850DB4AC9B@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204D7@GAALPA1MSGUSR9C.ITServices.sbc.com> <60E60AE4-5BEB-4C3D-9659-77570BF3BB9A@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018204FC@GAALPA1MSGUSR9C.ITServices.sbc.com> <9A3789FF-8D4D-466D-A771-C885C7DA5E1F@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D0182057B@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D01820616@GAALPA1MSGUSR9C.ITServices.sbc.com> <59BF56992750434F89F8EBE141E64B1D01820646@GAALPA1MSGUSR9C.ITServices.sbc.com> <78AC8CD2-EA1F-447F-9695-29F345419E02@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D01820671@GAALPA1MSGUSR9C.ITServices .sbc.co m > <628E26A3-A21F-4736-92C2-F3F21C0BBB28@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D018209B1@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: <6E57103E-C9DC-4C4B-8D68-BDC42CF288FA@rabbitmq.com> On oct 7, 2013, at 4:32 p.m., "PATAR, SAGAR" wrote: > Below when you say " You can have multiple consumers per queue. On exclusive queues, they all have to be > on the same connection." > will each consumer get a copy of the message on the same queue ..my understanding is only one consumer wins and gets the message ??? Only one consumer receives a message but multiple queues can have a copy of the same message (e.g. when a fanout exchange was routing them). Note that I was explaining things in AMQP 0-9-1 terms, and now you've revealed that your requirements are framed in JMS terms, which are not exactly the same. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From michael at rabbitmq.com Mon Oct 7 14:40:48 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Mon, 7 Oct 2013 17:40:48 +0400 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: <59BF56992750434F89F8EBE141E64B1D01820747@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D01820747@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: <04C6805C-989F-4CBE-B740-BD79EBC4550F@rabbitmq.com> On oct 5, 2013, at 7:48 p.m., "PATAR, SAGAR" wrote: > The requirement we have is a simple JMS topic with failover and persistency.. > Where multiple client subscribe for the messages and when a new client is introduced NO changes in framework as the Topic is already configured for failover and persistence ..the new client will just make a connection and start consuming .. > > With RabbitMQ my understanding is we need to configure a new queue and mirror it and then ask the new client to consume the message ...?? > > Pl. check slide 3 and 4 in the attachment ... For new client do we need to configure a new mirrored queue ... All the queues should get all the messages from the exchange ... Unfortunately, I'm not familiar with how vFabric Rabbit's JMS client maps RabbitMQ protocol to JMS. Perhaps one of my colleagues has an answer for this? MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From sp345s at att.com Mon Oct 7 15:11:36 2013 From: sp345s at att.com (PATAR, SAGAR) Date: Mon, 7 Oct 2013 14:11:36 +0000 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: <04C6805C-989F-4CBE-B740-BD79EBC4550F@rabbitmq.com> References: <59BF56992750434F89F8EBE141E64B1D01820747@GAALPA1MSGUSR9C.ITServices.sbc.com> <04C6805C-989F-4CBE-B740-BD79EBC4550F@rabbitmq.com> Message-ID: <59BF56992750434F89F8EBE141E64B1D01820A40@GAALPA1MSGUSR9C.ITServices.sbc.com> Thanks Michael .. When you say NO changes in framework ...I am little confused.. Let's say a new consumer is introduced .. 1)The consumer can simply subscribe BUT there is NO way the dynamic queue is mirrored and also if the consumer has a downtime then the messages published during the downtime will be lost as the dynamic queue will be deleted .. Even if there is a feature where the dynamic queue is not deleted when the connection fails .. Can we mirror that queue and also how can we make sure when the client reconnects will it be using the same queue or will create a NEW queue... 2)If we need to mirror the queue the new consumer is going to consume from then we might have to do some confutation changes ..right?? " Note that I was explaining things in AMQP 0-9-1 terms, and now you've revealed that your requirements are framed in JMS terms, which are not exactly the same." .. Can we use Rabbit to achieve the JMS based requirements ?? -----Original Message----- From: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Michael Klishin Sent: Monday, October 07, 2013 9:41 AM To: Discussions about RabbitMQ Subject: Re: [rabbitmq-discuss] mirrored queue cluster On oct 5, 2013, at 7:48 p.m., "PATAR, SAGAR" wrote: > The requirement we have is a simple JMS topic with failover and persistency.. > Where multiple client subscribe for the messages and when a new client is introduced NO changes in framework as the Topic is already configured for failover and persistence ..the new client will just make a connection and start consuming .. > > With RabbitMQ my understanding is we need to configure a new queue and mirror it and then ask the new client to consume the message ...?? > > Pl. check slide 3 and 4 in the attachment ... For new client do we need to configure a new mirrored queue ... All the queues should get all the messages from the exchange ... Unfortunately, I'm not familiar with how vFabric Rabbit's JMS client maps RabbitMQ protocol to JMS. Perhaps one of my colleagues has an answer for this? MK From alan.antonuk at gmail.com Mon Oct 7 15:33:02 2013 From: alan.antonuk at gmail.com (Alan Antonuk) Date: Mon, 7 Oct 2013 07:33:02 -0700 Subject: [rabbitmq-discuss] rabbitmq-c: how to detect broker failure In-Reply-To: References: Message-ID: library_error = 0 means an EOF was received from the socket, so the socket has been closed. -Alan On Mon, Oct 7, 2013 at 6:01 AM, Jain, Punit wrote: > Thank you, Alan.**** > > Yes, I mean ?broker failure? in the same sense as you have explained. I am > using AMQP_RESPONSE_LIBRARY_EXCEPTION as an indication of broker failure. > What does ?library_error = 0? signify with that exception?**** > > ** ** > > - Punit**** > > ** ** > > ** ** > > *From:* rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto: > rabbitmq-discuss-bounces at lists.rabbitmq.com] *On Behalf Of *Alan Antonuk > *Sent:* Monday, October 07, 2013 11:47 AM > *To:* Jain, Punit > *Cc:* rabbitmq-discuss at lists.rabbitmq.com > *Subject:* Re: [rabbitmq-discuss] rabbitmq-c: how to detect broker failure > **** > > ** ** > > It depends on what you mean by "broker failure". **** > > ** ** > > If you mean the broker hardware dies, the broker crashes, or (more likely) > something interrupts the network: you'll get an network error on the client > side. In rabbitmq-c this manifests itself in different ways depending on > the function being called: for functions returning an int, a non-zero value > is returned, for functions returning an amqp_rpc_reply_t, type will be set > to AMQP_RESPONSE_LIBRARY_EXCEPTION and library_error will be set to > something non-zero, and for things returning a amqp_*_t object if a NULL > value is returned, calling amqp_get_last_rpc_reply() will get an > amqp_rpc_reply_t which the above rule should be followed.**** > > ** ** > > HTH**** > > -Alan**** > > ** ** > > On Fri, Oct 4, 2013 at 6:13 AM, Jain, Punit wrote:*** > * > > Hi,**** > > I am using rabbitmq-c amqp client (0.2.0) to publish messages to RabbitMQ > broker. I want to be notified in case of broker failure. Is there a way to > detect this?**** > > Any method or exception, which may notify us about this error while > establishing a connection or publishing message?**** > > **** > > Thanks,**** > > Punit**** > > ** ** > -------------- next part -------------- An HTML attachment was scrubbed... URL: From sekhar434145 at gmail.com Mon Oct 7 18:18:23 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Mon, 7 Oct 2013 22:48:23 +0530 Subject: [rabbitmq-discuss] RabbitMQ clustering fail over issue Message-ID: Created Cluster with two rabbitMQ nodes. Configuration is as below for rabbit1 and rabbit2 nodes. 1> CachingConnectionFactory connectionFactory = new CachingConnectionFactory(); connectionFactory.setAddresses("rabbit1:5672,rabbit2:5672"); 2> node types rabbit1 - disc node rabbit2 - ram node 3> producer and consumer programs sits on rabbit2 node(ie> ram node) 4> Producer sample code - String QueueName = "Queue."; for(int m=0; m<50000; m++){ // send message System.out.println(this.rabbitTemplate.getConnectionFactory().getHost()); this.rabbitTemplate.convertAndSend(m); /*Thread.sleep(100);*/ } 5> consumer code - String QueueName = "Queue."; public void run() { System.out.println("Consumer running host : " + this.connectionFactory.getHost()); SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(); container.setConnectionFactory(this.connectionFactory); container.setQueueNames(this.queueName); container.setMessageListener(new MessageListenerAdapter(new TestMessageHandler(this.connectionFactory.getHost()), new JsonMessageConverter())); container.start(); } TestMessageHandler class sample code- public TestMessageHandler(String hostName){ System.out.println("Host: " + hostName); this.hostName = hostName; } // Handle message public void handleMessage(int message) { System.out.println("handleMessage Host: " + this.hostName); System.out.println("Int : " + message); } 6> Each node executed below policy cmd> rabbitmqctl set_policy ha-all "^Queue\." "{""ha-mode"":""all""}" 7> Started producer and consumer simultaneously. Could see host name as "rabbit1" then stopped "rabbit1" node with "rabbitmqctl stop_app" command to test fail-over scenario. Then got the below error WARN [.listener.SimpleMessageListenerContainer]: Consumer raised exception, processing can restart if the connection factory supports it com.rabbitmq.client.ShutdownSignalException: connection error; reason: {#method(reply-code=541, reply-text=INTERNAL_ERROR, class-id=0, method-id=0), null, ""} at com.rabbitmq.client.impl.AMQConnection.startShutdown(AMQConnection.java:678) at com.rabbitmq.client.impl.AMQConnection.shutdown(AMQConnection.java:668) at com.rabbitmq.client.impl.AMQConnection.handleConnectionClose(AMQConnection.java:624) at com.rabbitmq.client.impl.AMQConnection.processControlCommand(AMQConnection.java:598) at com.rabbitmq.client.impl.AMQConnection$1.processAsync(AMQConnection.java:96) at com.rabbitmq.client.impl.AMQChannel.handleCompleteInboundCommand(AMQChannel.java:144) at com.rabbitmq.client.impl.AMQChannel.handleFrame(AMQChannel.java:91) at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:523) INFO [.listener.SimpleMessageListenerContainer]: Restarting Consumer: tag=[amq.ctag-5CJ3YJYfMZDnJOnXsds6_Q], channel=Cached Rabbit Channel: AMQChannel(amqp://guest at 192.168.97.70:5672/,1), acknowledgeMode=AUTO local queue size=0 after this warning, again am getting host name as "rabbit1" only. actually it should be "rabbit2" as per my understanding but its not happening. So, here are my Queries - 1> Why am getting host name as "rabbit1" even after stopping? 2> To test the fail-over do we require any load balancer? 3> If my steps are wrong for testing fail-over case, please provide steps for the same? 4> How to distribute queues/messages to particular node, as below, 1-500 messages/queues to node1, 501-1000 messages/queues to node2, etc. 5> Please let me know is there any other approach to test fail-over scenario? Appreciate any help on this. -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael at rabbitmq.com Mon Oct 7 18:23:53 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Mon, 7 Oct 2013 21:23:53 +0400 Subject: [rabbitmq-discuss] RabbitMQ clustering fail over issue In-Reply-To: References: Message-ID: On oct 7, 2013, at 9:18 p.m., Rajasekhar P wrote: > after this warning, again am getting host name as "rabbit1" only. actually it should be "rabbit2" as per my understanding but its not happening. I'm far from a spring-amqp expert but suspect it uses ConnectionFactory#newConnection with multiple addresses from RabbitMQ Java client. That method connects to the first reachable node. Since in your example rabbit1 is reachable, the client does not try to connect to other nodes. As far as 541 INTERNAL_ERROR goes, try looking at RabbitMQ log to see if there's more information. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From michael at rabbitmq.com Mon Oct 7 20:16:14 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Mon, 7 Oct 2013 23:16:14 +0400 Subject: [rabbitmq-discuss] ANN Machine Head, a Clojure MQTT client Message-ID: I've been working on a side project that I believe is relevant to the RabbitMQ community so decided to post a note to this list. Here's the announcement: http://blog.clojurewerkz.org/blog/2013/10/07/introducing-machine-head/ It has been tested with RabbitMQ MQTT plugin [1] and Mosquitto. If you are interested in telemetry, machine-to-machine communication and data processing, you will likely find MQTT and Clojure to be good tools in the domain. Now you can bridge the gap with Machine Head and RabbitMQ! Keep in mind that even though I'm posting this using a rabbitmq.com email address, Machine Head is a 100% personal project of mine (as is the rest of http://clojurewerkz.org). Thank you. 1. http://www.rabbitmq.com/mqtt.html MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From stuff at moesel.net Mon Oct 7 21:53:07 2013 From: stuff at moesel.net (Chris) Date: Mon, 7 Oct 2013 16:53:07 -0400 Subject: [rabbitmq-discuss] Federated Exchange Upstream / Downstream Names Message-ID: Hello, I was wondering if someone could please advise me on the best approach to accomplish the following: I essentially want to federate an exchange such that the "upstream" exchange name is different than the exchange name that the downstream queues bind to. Maybe a use case would explain it better... Imagine Broker A, Broker B, and Broker C. Each federates a direct exchange based on their name (for example, "A.requests", "B.requests", "C.requests"). Within each broker, however, I don't want consumers to need to know the broker name-- they should be able to bind their queues to (direct) exchange "Incoming.requests" and receive messages to "A.requests", "B.requests", or "C.requests" respectively. The best I can come up with is to actually make the federated exchanges be "fanout" exchanges, then within each broker, create the local "Incoming.requests" direct exchange, and use E2E bindings to bind the "Incoming.requests" to the federated exchange (for example "A.requests"). Is this how you would recommend it? Does this defeat RabbitMQ's smart routing? (will it cause all messages to be sent to the federated exchange since it is fanout, or will it be smart enough to consider the queue bindings on the E2E bound 'Incoming.requests' direct exchange?) If I'm not making sense, feel free to ask me to clarify. Thanks! Chris -------------- next part -------------- An HTML attachment was scrubbed... URL: From sp345s at att.com Mon Oct 7 23:50:58 2013 From: sp345s at att.com (PATAR, SAGAR) Date: Mon, 7 Oct 2013 22:50:58 +0000 Subject: [rabbitmq-discuss] binding key Message-ID: <59BF56992750434F89F8EBE141E64B1D01820C25@GAALPA1MSGUSR9C.ITServices.sbc.com> Apart from binding keys .. can we use some other header property or attribute of the message for routing ?? -----Original Message----- From: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of PATAR, SAGAR Sent: Monday, October 07, 2013 10:12 AM To: Discussions about RabbitMQ Subject: Re: [rabbitmq-discuss] mirrored queue cluster *** Security Advisory: This Message Originated Outside of AT&T ***. Reference http://cso.att.com/EmailSecurity/IDSP.html for more information. Thanks Michael .. When you say NO changes in framework ...I am little confused.. Let's say a new consumer is introduced .. 1)The consumer can simply subscribe BUT there is NO way the dynamic queue is mirrored and also if the consumer has a downtime then the messages published during the downtime will be lost as the dynamic queue will be deleted .. Even if there is a feature where the dynamic queue is not deleted when the connection fails .. Can we mirror that queue and also how can we make sure when the client reconnects will it be using the same queue or will create a NEW queue... 2)If we need to mirror the queue the new consumer is going to consume from then we might have to do some confutation changes ..right?? " Note that I was explaining things in AMQP 0-9-1 terms, and now you've revealed that your requirements are framed in JMS terms, which are not exactly the same." .. Can we use Rabbit to achieve the JMS based requirements ?? -----Original Message----- From: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Michael Klishin Sent: Monday, October 07, 2013 9:41 AM To: Discussions about RabbitMQ Subject: Re: [rabbitmq-discuss] mirrored queue cluster On oct 5, 2013, at 7:48 p.m., "PATAR, SAGAR" wrote: > The requirement we have is a simple JMS topic with failover and persistency.. > Where multiple client subscribe for the messages and when a new client is introduced NO changes in framework as the Topic is already configured for failover and persistence ..the new client will just make a connection and start consuming .. > > With RabbitMQ my understanding is we need to configure a new queue and mirror it and then ask the new client to consume the message ...?? > > Pl. check slide 3 and 4 in the attachment ... For new client do we need to configure a new mirrored queue ... All the queues should get all the messages from the exchange ... Unfortunately, I'm not familiar with how vFabric Rabbit's JMS client maps RabbitMQ protocol to JMS. Perhaps one of my colleagues has an answer for this? MK _______________________________________________ rabbitmq-discuss mailing list rabbitmq-discuss at lists.rabbitmq.com https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss From stuff at moesel.net Tue Oct 8 01:21:51 2013 From: stuff at moesel.net (Chris) Date: Mon, 7 Oct 2013 20:21:51 -0400 Subject: [rabbitmq-discuss] binding key In-Reply-To: References: <59BF56992750434F89F8EBE141E64B1D01820C25@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: Hello Sagar, AMQP defines a HEADER exchange that allows you to match based on headers. It's briefly discussed in the "AMQP Explained" document: http://www.rabbitmq.com/tutorials/amqp-concepts.html. I think I've heard that this exchange doesn't perform as efficiently as some of the others, though... In addition to the standard AMQP exchanges, there are also some custom exchanges for other routing strategies (like consistent hash exchange: http://hg.rabbitmq.com/rabbitmq-consistent-hash-exchange/file/rabbitmq_v3_1_5/README.md, or a few at the bottom of this page: http://www.rabbitmq.com/devtools.html). And if you're feeling brave, you can also create your own custom exchange... -Chris On Monday, October 7, 2013, PATAR, SAGAR wrote: > Apart from binding keys .. can we use some other header property or > attribute of the message for routing ?? > > -----Original Message----- > From: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto: > rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of PATAR, SAGAR > Sent: Monday, October 07, 2013 10:12 AM > To: Discussions about RabbitMQ > Subject: Re: [rabbitmq-discuss] mirrored queue cluster > > *** Security Advisory: This Message Originated Outside of AT&T ***. > Reference http://cso.att.com/EmailSecurity/IDSP.html for more information. > > Thanks Michael .. > When you say NO changes in framework ...I am little confused.. > > Let's say a new consumer is introduced .. > > 1)The consumer can simply subscribe BUT there is NO way the dynamic queue > is mirrored and also if the consumer has a downtime then the messages > published during the downtime will be lost as the dynamic queue will be > deleted .. Even if there is a feature where the dynamic queue is not > deleted when the connection fails .. Can we mirror that queue and also how > can we make sure when the client reconnects will it be using the same queue > or will create a NEW queue... > > 2)If we need to mirror the queue the new consumer is going to consume from > then we might have to do some confutation changes ..right?? > > " Note that I was explaining things in AMQP 0-9-1 terms, and now you've > revealed that your > requirements are framed in JMS terms, which are not exactly the same." .. > Can we use Rabbit to achieve the JMS based requirements ?? > > -----Original Message----- > From: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto: > rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Michael Klishin > Sent: Monday, October 07, 2013 9:41 AM > To: Discussions about RabbitMQ > Subject: Re: [rabbitmq-discuss] mirrored queue cluster > > > On oct 5, 2013, at 7:48 p.m., "PATAR, SAGAR" wrote: > > > The requirement we have is a simple JMS topic with failover and > persistency.. > > Where multiple client subscribe for the messages and when a new client > is introduced NO changes in framework as the Topic is already configured > for failover and persistence ..the new client will just make a connection > and start consuming .. > > > > With RabbitMQ my understanding is we need to configure a new queue and > mirror it and then ask the new client to consume the message ...?? > > > > Pl. check slide 3 and 4 in the attachment ... For new client do we need > to configure a new mirrored queue ... All the queues should get all the > messages from the exchange ... > > Unfortunately, I'm not familiar with how vFabric Rabbit's JMS client maps > RabbitMQ protocol > to JMS. > > Perhaps one of my colleagues has an answer for this? > > MK > > > > _______________________________________________ > 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 314992959 at qq.com Tue Oct 8 03:31:38 2013 From: 314992959 at qq.com (3k4b251) Date: Mon, 7 Oct 2013 19:31:38 -0700 (PDT) Subject: [rabbitmq-discuss] RabbitMq Server Memory surge Message-ID: <1381199498331-30294.post@n5.nabble.com> I created 30000 queues, it's need more than 20 minutes, is that normal? Then I found erl.exe memory increase 480 M. It's seems a little big ? Then I stoped the service and restarted it . I found that the erl.exe memory grew too fast and already use more than 1.5 G. When the memory stop grew, I try to use the command : list_queues in rabbitmqctl.bat . it didn't work and I got the error notify: unable to connect to node 'rabbitmq at WIN-4PKFO0P76F7' : nodedown. So what's the problem? -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/RabbitMq-Server-Memory-surge-tp30294.html Sent from the RabbitMQ mailing list archive at Nabble.com. From michael at rabbitmq.com Tue Oct 8 03:46:48 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Tue, 8 Oct 2013 06:46:48 +0400 Subject: [rabbitmq-discuss] binding key In-Reply-To: <59BF56992750434F89F8EBE141E64B1D01820C25@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D01820C25@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: On oct 8, 2013, at 2:50 a.m., "PATAR, SAGAR" wrote: > Apart from binding keys .. can we use some other header property or attribute of the message for routing ?? There is header exchange but it's not particularly efficient and most of the time you can do what it does by combining multiple (logical) keys in your routing key and using a topic exchange. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From michael at rabbitmq.com Tue Oct 8 04:12:11 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Tue, 8 Oct 2013 07:12:11 +0400 Subject: [rabbitmq-discuss] RabbitMq Server Memory surge In-Reply-To: <1381199498331-30294.post@n5.nabble.com> References: <1381199498331-30294.post@n5.nabble.com> Message-ID: On oct 8, 2013, at 6:31 a.m., 3k4b251 <314992959 at qq.com> wrote: > When the memory stop grew, I try to use the command : list_queues > in rabbitmqctl.bat . > it didn't work and I got the error notify: unable to connect to node > 'rabbitmq at WIN-4PKFO0P76F7' : nodedown. So what's the problem? Likely listing queues takes so long that rabbitmqctl considers the server is unreachable. Can you post rabbitmqctl report output? MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From michael at rabbitmq.com Tue Oct 8 04:16:47 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Tue, 8 Oct 2013 07:16:47 +0400 Subject: [rabbitmq-discuss] Federated Exchange Upstream / Downstream Names In-Reply-To: References: Message-ID: On oct 8, 2013, at 12:53 a.m., Chris wrote: > Imagine Broker A, Broker B, and Broker C. Each federates a direct exchange based on their name (for example, "A.requests", "B.requests", "C.requests"). Within each broker, however, I don't want consumers to need to know the broker name-- they should be able to bind their queues to (direct) exchange "Incoming.requests" and receive messages to "A.requests", "B.requests", or "C.requests" respectively. Have you considered using a topic exchange and bind as *.requests? Granted, prefix wildcards are not very efficient but if you only have a few dozens of queues bound you may even notice. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From sekhar434145 at gmail.com Tue Oct 8 05:39:11 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Tue, 8 Oct 2013 10:09:11 +0530 Subject: [rabbitmq-discuss] RabbitMQ clustering fail over issue In-Reply-To: References: Message-ID: Thanks for the reply MK. Yes, initially it is connected to rabbit1 but after stopping this node it has to connect to rabbit2 node which is one of the node in the cluster right? So, here am confusing what is the reason for not connecting to rabbit2 node? On Mon, Oct 7, 2013 at 10:53 PM, Michael Klishin wrote: > > On oct 7, 2013, at 9:18 p.m., Rajasekhar P wrote: > > > after this warning, again am getting host name as "rabbit1" only. > actually it should be "rabbit2" as per my understanding but its not > happening. > > I'm far from a spring-amqp expert but suspect it uses > ConnectionFactory#newConnection > with multiple addresses from RabbitMQ Java client. That method connects to > the first > reachable node. Since in your example rabbit1 is reachable, the client > does not > try to connect to other nodes. > > As far as 541 INTERNAL_ERROR goes, try looking at RabbitMQ log to see > if there's more information. > > MK > > > > > _______________________________________________ > 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 at rabbitmq.com Tue Oct 8 06:05:30 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Tue, 8 Oct 2013 09:05:30 +0400 Subject: [rabbitmq-discuss] RabbitMQ clustering fail over issue In-Reply-To: References: Message-ID: <285334D3-8F1C-41B3-B439-4AB8697D9BC3@rabbitmq.com> On oct 8, 2013, at 8:39 a.m., Rajasekhar P wrote: > Yes, initially it is connected to rabbit1 but after stopping this node it has to connect to rabbit2 node which is one of the node in the cluster right? Correct. Can you be more specific about how you stop a node, though? Do you completely terminate RabbitMQ process (e.g. kill it)? > So, here am confusing what is the reason for not connecting to rabbit2 node? Not sure. Can you put together a small app that can be used to reproduce the problem? Thank you. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From sekhar434145 at gmail.com Tue Oct 8 06:14:11 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Tue, 8 Oct 2013 10:44:11 +0530 Subject: [rabbitmq-discuss] RabbitMQ clustering fail over issue In-Reply-To: <285334D3-8F1C-41B3-B439-4AB8697D9BC3@rabbitmq.com> References: <285334D3-8F1C-41B3-B439-4AB8697D9BC3@rabbitmq.com> Message-ID: Please find the steps for my experiment - I have stopped rabbit1 using "C:\Program Files\RabbitMQ Server\rabbitmq_server-3.1.3\sbin>rabbitmqctl stop_app" command. here rabbit1 - one machine name and running one rabbitmq node and rabbit2 - is one more machine name running one rabbitmq node. And my producer and consumer codes are sitting in rabbit1 machine. please let me know if you need any details on the same. Thank you. On Tue, Oct 8, 2013 at 10:35 AM, Michael Klishin wrote: > > On oct 8, 2013, at 8:39 a.m., Rajasekhar P wrote: > > > Yes, initially it is connected to rabbit1 but after stopping this node > it has to connect to rabbit2 node which is one of the node in the cluster > right? > > Correct. Can you be more specific about how you stop a node, though? Do > you completely > terminate RabbitMQ process (e.g. kill it)? > > > So, here am confusing what is the reason for not connecting to rabbit2 > node? > > Not sure. Can you put together a small app that can be used to reproduce > the problem? > > Thank you. > > MK > > > > > _______________________________________________ > 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 sekhar434145 at gmail.com Tue Oct 8 06:16:49 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Tue, 8 Oct 2013 10:46:49 +0530 Subject: [rabbitmq-discuss] RabbitMQ 3.1.5 - rabbitmq.config and rabbitmq-env.config file locations in Windows? Message-ID: Where can I find the rabbitmq.config and rabbitmq-env.config files location in windows? -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael at rabbitmq.com Tue Oct 8 06:18:45 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Tue, 8 Oct 2013 09:18:45 +0400 Subject: [rabbitmq-discuss] RabbitMQ 3.1.5 - rabbitmq.config and rabbitmq-env.config file locations in Windows? In-Reply-To: References: Message-ID: <2AF7E546-5024-4EBB-AA2E-B18F979C4622@rabbitmq.com> On oct 8, 2013, at 9:16 a.m., Rajasekhar P wrote: > Where can I find the rabbitmq.config and rabbitmq-env.config files location in windows? See http://www.rabbitmq.com/configure.html#configuration-file MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From sekhar434145 at gmail.com Tue Oct 8 06:34:40 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Tue, 8 Oct 2013 11:04:40 +0530 Subject: [rabbitmq-discuss] RabbitMQ 3.1.5 - rabbitmq.config and rabbitmq-env.config file locations in Windows? In-Reply-To: <2AF7E546-5024-4EBB-AA2E-B18F979C4622@rabbitmq.com> References: <2AF7E546-5024-4EBB-AA2E-B18F979C4622@rabbitmq.com> Message-ID: I have created rabbitmq-env.conf file under %APPDATA%\RabbitMQ\ folder and restarted the RabbitMQ server, but, changes are not reflecting. below is the content in the file. # I am a complete /etc/rabbitmq/rabbitmq-env.conf file. # Comment lines start with a hash character. # This is a /bin/sh script file - use ordinary envt var syntax NODENAME=mynode -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael at rabbitmq.com Tue Oct 8 07:14:21 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Tue, 8 Oct 2013 10:14:21 +0400 Subject: [rabbitmq-discuss] RabbitMQ 3.1.5 - rabbitmq.config and rabbitmq-env.config file locations in Windows? In-Reply-To: References: <2AF7E546-5024-4EBB-AA2E-B18F979C4622@rabbitmq.com> Message-ID: <5E08FC59-DD15-4B82-863B-5C916C023007@rabbitmq.com> On oct 8, 2013, at 9:34 a.m., Rajasekhar P wrote: > I have created rabbitmq-env.conf file under %APPDATA%\RabbitMQ\ folder and restarted the RabbitMQ server, but, changes are not reflecting. below is the content in the file. To quote http://www.rabbitmq.com/configure.html "It is not used on Windows systems." On Windows, you need to set env variables using system preferences. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From sekhar434145 at gmail.com Tue Oct 8 07:23:35 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Tue, 8 Oct 2013 11:53:35 +0530 Subject: [rabbitmq-discuss] RabbitMQ 3.1.5 - rabbitmq.config and rabbitmq-env.config file locations in Windows? In-Reply-To: <5E08FC59-DD15-4B82-863B-5C916C023007@rabbitmq.com> References: <2AF7E546-5024-4EBB-AA2E-B18F979C4622@rabbitmq.com> <5E08FC59-DD15-4B82-863B-5C916C023007@rabbitmq.com> Message-ID: Thanks Michael. Able to change the name of the node by settings in ENVt variables via system preferences. What is the case if I want to create two nodes in same machine, is that possible? If yes, how to create multiple nodes in single machine? Thanks in advance. On Tue, Oct 8, 2013 at 11:44 AM, Michael Klishin wrote: > > On oct 8, 2013, at 9:34 a.m., Rajasekhar P wrote: > > > I have created rabbitmq-env.conf file under %APPDATA%\RabbitMQ\ folder > and restarted the RabbitMQ server, but, changes are not reflecting. below > is the content in the file. > > To quote http://www.rabbitmq.com/configure.html > > "It is not used on Windows systems." > > On Windows, you need to set env variables using system preferences. > > MK > > > > > _______________________________________________ > 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 at rabbitmq.com Tue Oct 8 07:29:56 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Tue, 8 Oct 2013 10:29:56 +0400 Subject: [rabbitmq-discuss] RabbitMQ 3.1.5 - rabbitmq.config and rabbitmq-env.config file locations in Windows? In-Reply-To: References: <2AF7E546-5024-4EBB-AA2E-B18F979C4622@rabbitmq.com> <5E08FC59-DD15-4B82-863B-5C916C023007@rabbitmq.com> Message-ID: <3E36AE44-A23C-42D5-BF3D-B18937F10CE3@rabbitmq.com> On oct 8, 2013, at 10:23 a.m., Rajasekhar P wrote: > What is the case if I want to create two nodes in same machine, is that possible? If yes, how to create multiple nodes in single machine? You need to override env variables (e.g. node name) per server start: http://www.rabbitmq.com/clustering.html#single-machine On Windows it's a bit tricky, you may need to do something like cmd.exe /c "set RABBITMQ_NODE=rabbit1 && [run rabbitmq]" As long as different cluster nodes have different names and use different ports (note that this includes plugins such as Management UI), you can run them on the same machine just fine. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From sekhar434145 at gmail.com Tue Oct 8 07:45:20 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Tue, 8 Oct 2013 12:15:20 +0530 Subject: [rabbitmq-discuss] RabbitMQ 3.1.5 - rabbitmq.config and rabbitmq-env.config file locations in Windows? In-Reply-To: <3E36AE44-A23C-42D5-BF3D-B18937F10CE3@rabbitmq.com> References: <2AF7E546-5024-4EBB-AA2E-B18F979C4622@rabbitmq.com> <5E08FC59-DD15-4B82-863B-5C916C023007@rabbitmq.com> <3E36AE44-A23C-42D5-BF3D-B18937F10CE3@rabbitmq.com> Message-ID: Thanks for the response Machael, will try the same. On Tue, Oct 8, 2013 at 11:59 AM, Michael Klishin wrote: > > On oct 8, 2013, at 10:23 a.m., Rajasekhar P > wrote: > > > What is the case if I want to create two nodes in same machine, is that > possible? If yes, how to create multiple nodes in single machine? > > You need to override env variables (e.g. node name) per server start: > http://www.rabbitmq.com/clustering.html#single-machine > > On Windows it's a bit tricky, you may need to do something like > > cmd.exe /c "set RABBITMQ_NODE=rabbit1 && [run rabbitmq]" > > As long as different cluster nodes have different names and use different > ports (note > that this includes plugins such as Management UI), you can run them on the > same > machine just fine. > > MK > > > > > _______________________________________________ > 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 zb.hou at shitousoft.com Tue Oct 8 08:35:13 2013 From: zb.hou at shitousoft.com (houzhibin) Date: Tue, 08 Oct 2013 15:35:13 +0800 Subject: [rabbitmq-discuss] About "Remote procedure call", handle reply queue Message-ID: <1381217713.3217.180.camel@mrhou> The replyQueue break while cycle,when rabbitmq server's programe service down; or how to set timeout of replyQueue; -- ??? RDC hou zhibin -------------------------------------------------------------------- ????????????? Shitou Software?Beijing?Co.,Ltd. ???????????17? Mobile Phone: 13311198809 E-mail?zb.hou at shitousoft.com From gregcollingham at gmail.com Mon Oct 7 17:37:44 2013 From: gregcollingham at gmail.com (Greg Collingham) Date: Mon, 7 Oct 2013 09:37:44 -0700 (PDT) Subject: [rabbitmq-discuss] mqtt websocket client Message-ID: <2dbef6af-ca62-4442-83af-3b29d9d701e6@googlegroups.com> Hi Does anyone know if it is possible to send an MQTT message to RabbitMq using WebSockets (I can do it with HiveMQ http://www.hivemq.com/demos/websocket-client/). I know STOMP is an option. Thanks in advance Greg -------------- next part -------------- An HTML attachment was scrubbed... URL: From ben at revinate.com Tue Oct 8 02:30:59 2013 From: ben at revinate.com (Ben Hidalgo) Date: Mon, 7 Oct 2013 18:30:59 -0700 (PDT) Subject: [rabbitmq-discuss] rabbitmq 3.1.5 cluster auto-configuration not working Message-ID: <66b2d732-5115-401d-816a-ccc7cb5aaacd@googlegroups.com> I've setup two Ubuntu 12.04 servers with rabbitmq running on each. From sbchand at gmail.com Mon Oct 7 16:27:48 2013 From: sbchand at gmail.com (Balachandher Srinivasan) Date: Mon, 7 Oct 2013 08:27:48 -0700 (PDT) Subject: [rabbitmq-discuss] CRL support In-Reply-To: <71c23d9f-c44a-40d2-92b0-f92b5ac49881@googlegroups.com> References: <1312283298.17699.15.camel@vicbristol6.hpl.hp.com> <71c23d9f-c44a-40d2-92b0-f92b5ac49881@googlegroups.com> Message-ID: <2602887b-fefd-4921-9538-50d0b243ba7a@googlegroups.com> Hello all, > > I am not sure whether "verify_fun" option in the rabbitmq.config file is supported/read as I couldn't see in the sources for rabbitmq-server. The only closest option what I could witness is the following in rabbit_networking.erl (line numbers 154 till 160), where it reads the "verify" option defaulting to "verify_none". % unknown_ca errors are silently ignored prior to R14B unless we % supply this verify_fun - remove when at least R14B is required case proplists:get_value(verify, SslOptsConfig, verify_none) of verify_none -> SslOptsConfig; verify_peer -> [{verify_fun, fun([]) -> true; ([_|_]) -> false end} | SslOptsConfig] end. I did check the sources from https://github.com/rabbitmq/rabbitmq-server. To me, it looks like we need to add functionality to read verify_fun option from the config file first. Am I missing something? Regards Bala -------------- next part -------------- An HTML attachment was scrubbed... URL: From sbchand at gmail.com Tue Oct 8 01:23:09 2013 From: sbchand at gmail.com (Balachandher Srinivasan) Date: Mon, 7 Oct 2013 17:23:09 -0700 (PDT) Subject: [rabbitmq-discuss] CRL support In-Reply-To: <2602887b-fefd-4921-9538-50d0b243ba7a@googlegroups.com> References: <1312283298.17699.15.camel@vicbristol6.hpl.hp.com> <71c23d9f-c44a-40d2-92b0-f92b5ac49881@googlegroups.com> <2602887b-fefd-4921-9538-50d0b243ba7a@googlegroups.com> Message-ID: <59c682a0-9a99-4105-89a2-e2ab7c459e06@googlegroups.com> Hello all, Please find below my further observations, 1. Erlang adopted a more elegant way to express higher order functions (funs), based on http://www.erlang.org/eeps/eep-0023.html. So, {Module, Function} would be typically represented as Module:Function/Arity 2. Based on the EEP mentioned above and the SSL documentation, I was able to write a test program and validate CRL successfully by referring a function either internally within the same module or from an external module. For internal module's function, I used the form, {verify_fun, {fun validate/3, []}}; for external module's function, I used the form {verify_fun, {fun cert_util:validate/3, []}}. 3. After successfully writing a test program, I tried to apply the same in rabbitmq; however, rabbitmq was unable to start and I witnessed the following in the logs, */var/log/rabbitmq/startup_log* {"could not start kernel pid",application_controller,"error in config file \"/etc/rabbitmq/rabbitmq.config\" (1): bad term"} */var/log/rabbitmq/startup_err* Crash dump was written to: erl_crash.dump could not start kernel pid (application_controller) (error in config file "/etc/rabbitmq/rabbitmq.config" (1): bad term) 4. It was clear from the above that rabbitmq was unable to take the EEP-23 form for verify_fun; so I tried reverting back the funs to old type of the form {Module, Function}. When I tried restarting, while it gave no errors and started successfully, my CRL validation function was never called. 5. RabbitMQ site suggests that in order to use SSL reliably use R14B(erts 4.0.1) as the minimum version. I tried using R16B (erts-5.10.1) on 64-bit Cent OS, which internally uses ssl-5.2.1. Also, I tried R16B01(erts-5.10.2) on 64-bit Windows 7, which internally uses ssl-5.3.1. Between these versions, there are lot of bugs fixed and enhancements applied in SSL application http://www.erlang.org/doc/apps/ssl/notes.html. To summarize, though RabbitMQ states R14B as the minimum version for reliable SSL, I wonder whether it is compatible with the latest SSL available in the recent Erlang distributions. Regards Bala -------------- next part -------------- An HTML attachment was scrubbed... URL: From warrick.fitzgerald at gmail.com Mon Oct 7 21:21:53 2013 From: warrick.fitzgerald at gmail.com (Warrick Fitzgerald) Date: Mon, 7 Oct 2013 13:21:53 -0700 (PDT) Subject: [rabbitmq-discuss] Open Connections when sender closes Message-ID: <28a796e6-536f-4f20-bd64-9dcd8fddb6d9@googlegroups.com> Hi All, I have a server that's injecting log messages into RabbitMQ. If I end the server process unexpectedly the connections seem to stay open on the server side and when the server re-starts it opens new connections. Obviously after this happens a few times there's a lot of connections open to RabbitMQ. How should this be handled? Does the server have some kind of timeout of heartbeat that can be used so that it cleans up the connections that are no longer in use? Thanks Warrick -------------- next part -------------- An HTML attachment was scrubbed... URL: From patrik.silverby at kollmorgen.com Tue Oct 8 09:38:05 2013 From: patrik.silverby at kollmorgen.com (Silverby, Patrik) Date: Tue, 8 Oct 2013 08:38:05 +0000 Subject: [rabbitmq-discuss] Detect already installed version of RabbitMQ and Erlang during setup Message-ID: Hi, Is there a way that the RabbitMQ and Erlang installation can be detected by an installer to determine if they should be installed or not? I would like to include Erlang and RabbitMQ as prerequisites to my installer. I would like the installation of the prerequisites to be conditional. So far I have found these entries in the registry (running Windows 7 x64): HKEY_LOCAL_MACHINE\SOFTWARE\Ericsson\Erlang\ErlSrv HKEY_LOCAL_MACHINE\SOFTWARE\Ericsson\Erlang\ErlSrv\1.1\RabbitMQ HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Ericsson\Erlang\5.9.3.1 Is the presence of these entries reliable to use? /Patrik Silverby Please be advised that this email may contain confidential information. If you are not the intended recipient, please notify us by email by replying to the sender and delete this message. The sender disclaims that the content of this email constitutes an offer to enter into, or the acceptance of, any agreement; provided that the foregoing does not invalidate the binding effect of any digital or other electronic reproduction of a manual signature that is included in any attachment. -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Tue Oct 8 09:41:12 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Tue, 08 Oct 2013 09:41:12 +0100 Subject: [rabbitmq-discuss] Federated Exchange Upstream / Downstream Names In-Reply-To: References: Message-ID: <5253C528.4060501@rabbitmq.com> On 07/10/2013 21:53, Chris wrote: > I essentially want to federate an exchange such that the "upstream" > exchange name is different than the exchange name that the downstream > queues bind to. You can set an "exchange" property on an upstream or an upstream set, which will override the name of the upstream exchange to connect to. It'll likely mean you need to define one upstream per downstream exchange. I see this is not explained terribly well in the documentation. Will fix. > Is this how you would recommend it? If I understand your use case, the approach above would be simpler. > Does this defeat RabbitMQ's smart routing? Yes it would. Federation only takes account of routing decisions made in the federated exchange, not any exchanges using it as a source through e2e bindings. Cheers, Simon From simon at rabbitmq.com Tue Oct 8 09:48:22 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Tue, 08 Oct 2013 09:48:22 +0100 Subject: [rabbitmq-discuss] Detect already installed version of RabbitMQ and Erlang during setup In-Reply-To: References: Message-ID: <5253C6D6.6050200@rabbitmq.com> On 08/10/2013 09:38, Silverby, Patrik wrote: > Hi, > > Is there a way that the RabbitMQ and Erlang installation can be detected > by an installer to determine if they should be installed or not? Our installer does this, see its source at http://hg.rabbitmq.com/rabbitmq-server/file/1bf3a1e2b9ed/packaging/windows-exe/rabbitmq_nsi.in tl;dr: we check HKLM Software\Ericsson\Erlang\ErlSrv (with some version checking) and HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\RabbitMQ. Cheers, Simon From simon at rabbitmq.com Tue Oct 8 10:00:33 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Tue, 08 Oct 2013 10:00:33 +0100 Subject: [rabbitmq-discuss] rabbitmq 3.1.5 cluster auto-configuration not working In-Reply-To: <66b2d732-5115-401d-816a-ccc7cb5aaacd@googlegroups.com> References: <66b2d732-5115-401d-816a-ccc7cb5aaacd@googlegroups.com> Message-ID: <5253C9B1.5020801@rabbitmq.com> On 08/10/2013 02:30, Ben Hidalgo wrote: > But I can never get them to "auto-configure" from the config file alone. > I'm not getting any errors in any logs. Note that the auto-config is only applied when the node starts for the very first time (after a reset or fresh installation). Is that the problem? Cheers, Simon From michael at rabbitmq.com Tue Oct 8 10:19:12 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Tue, 8 Oct 2013 13:19:12 +0400 Subject: [rabbitmq-discuss] About "Remote procedure call", handle reply queue In-Reply-To: <1381217713.3217.180.camel@mrhou> References: <1381217713.3217.180.camel@mrhou> Message-ID: On oct 8, 2013, at 11:35 a.m., houzhibin wrote: > The replyQueue break while cycle,when rabbitmq server's programe service > down; > > or how to set timeout of replyQueue; It depends on what language and client you use. What are they? MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From michael at rabbitmq.com Tue Oct 8 10:23:23 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Tue, 8 Oct 2013 13:23:23 +0400 Subject: [rabbitmq-discuss] Open Connections when sender closes In-Reply-To: <28a796e6-536f-4f20-bd64-9dcd8fddb6d9@googlegroups.com> References: <28a796e6-536f-4f20-bd64-9dcd8fddb6d9@googlegroups.com> Message-ID: <7F6C463D-9415-46DE-9BE1-A851FA0B0E93@rabbitmq.com> On oct 8, 2013, at 12:21 a.m., Warrick Fitzgerald wrote: > Obviously after this happens a few times there's a lot of connections open to RabbitMQ. > > How should this be handled? Does the server have some kind of timeout of heartbeat that can be used so that it cleans up the connections that are no longer in use? Those connections are very likely to be in TIME_WAIT state. Yes, detecting peer failure early is exactly what AMQP 0-9-1 heartbeats were added for: http://www.rabbitmq.com/reliability.html#connection-failures Alternatively you can try enabling SO_LINGER on the socket (if your client allows modifying socket options). See http://rabbitmq.1065348.n5.nabble.com/Long-timeout-if-server-host-becomes-unreachable-td30275.html, which is the same question about a specific client. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From oleg.lyalikov at gmail.com Tue Oct 8 10:49:11 2013 From: oleg.lyalikov at gmail.com (Oleg Lyalikov) Date: Tue, 8 Oct 2013 02:49:11 -0700 (PDT) Subject: [rabbitmq-discuss] Long timeout if server host becomes unreachable In-Reply-To: <58D35FA5-3E01-402A-811F-D7E05A1488F7@rabbitmq.com> References: <1381148780469-30275.post@n5.nabble.com> <58D35FA5-3E01-402A-811F-D7E05A1488F7@rabbitmq.com> Message-ID: Thanks for the answer Michael, Configuring SO_LINGER didn't help for socketWrite timeout. Also it seems it affects only "close" operation and also there is a code in SocketFrameHandler which already sets SO_LINGER for socket on close (1 second default): public void close() { try { _socket.setSoLinger(true, SOCKET_CLOSING_TIMEOUT); } catch (Exception _) {} try { flush(); } catch (Exception _) {} try { _socket.close(); } catch (Exception _) {} } But I even cannot close connection by myself in a separate thread - it's blocked in SocketFrameHandler#writeFrame method: Thread [Thread-0] (Suspended) owns: CommandAssembler (id=42) owns: Object (id=41) waiting for: DataOutputStream (id=34) SocketFrameHandler.writeFrame(Frame) line: 137 AMQConnection.writeFrame(Frame) line: 480 AMQCommand.transmit(AMQChannel) line: 102 AMQConnection$1(AMQChannel).quiescingTransmit(AMQCommand) line: 316 AMQConnection$1(AMQChannel).quiescingTransmit(Method) line: 298 AMQConnection$1(AMQChannel).quiescingRpc(Method, AMQChannel$RpcContinuation) line: 233 AMQConnection.close(int, String, boolean, Throwable, int, boolean) line: 800 AMQConnection.close(int, String, int) line: 724 AMQConnection.close(int) line: 710 Send$2.run() line: 118 Thread.run() line: 724 I googled a bit again, here someone asks sun to provide socket write timeout (1997 year) : http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4031100 but the answer is to use nio SocketChannels or workaround with different thread for read and write. Here someone asks ActiveMQ to provide such write timeout: https://issues.apache.org/jira/browse/AMQ-1993 and the answer is to use "transport.soWriteTimeout" parameter which is managed by ActiveMQ itself http://activemq.apache.org/maven/apidocs/org/apache/activemq/transport/WriteTimeoutFilter.html As for maximum packet age - the client connection has state "ESTABLISHED" during all 15 minutes, not TIME_WAIT. There is a setting in linux which can configure TCP retransmissions timeouts : /proc/sys/net/ipv4/tcp_retries2. By default the value is 15 and it's about 900 seconds: http://stackoverflow.com/questions/5907527/application-control-of-tcp-retransmission-on-linux It's not recommended to set the value < 100 seconds and we cannot actually change it because there are lots of other applications on the machine and we do not know consequences of such changes. So for me it looks like the RabbitMQ client library should provide possibility to set such write timeout - maybe using the same Heartbeat thread (for now this thread is blocked on "writeFrame" method like all other threads waiting freeing the lock on outputStream object). By the way I still cannot imagine any workaround for this issue but it's really critical for us. Do you think there are some? Regards, Oleg 2013/10/7 Michael Klishin [via RabbitMQ] < ml-node+s1065348n30283h10 at n5.nabble.com> > On oct 7, 2013, at 4:26 p.m., Oleg Lyalikov <[hidden email]> > wrote: > > > "main" prio=10 tid=0xf7505800 nid=0x2c3e runnable [0xf7728000] > > java.lang.Thread.State: RUNNABLE > > at java.net.SocketOutputStream.socketWrite0(Native Method) > > at > > java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109) > > at java.net.SocketOutputStream.write(SocketOutputStream.java:153) > > at > > java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) > > at > java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140) > > - locked <0xb4532608> (a java.io.BufferedOutputStream) > > at java.io.DataOutputStream.flush(DataOutputStream.java:123) > > at > > > com.rabbitmq.client.impl.SocketFrameHandler.flush(SocketFrameHandler.java:142) > > > at > > com.rabbitmq.client.impl.AMQConnection.flush(AMQConnection.java:488) > > at > com.rabbitmq.client.impl.AMQCommand.transmit(AMQCommand.java:125) > > at > > > com.rabbitmq.client.impl.AMQChannel.quiescingTransmit(AMQChannel.java:316) > > - locked <0xb4532ee8> (a java.lang.Object) > > at > com.rabbitmq.client.impl.AMQChannel.transmit(AMQChannel.java:292) > > - locked <0xb4532ee8> (a java.lang.Object) > > at > com.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java:634) > > at > com.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java:617) > > at > com.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java:608) > If SocketOutputStream#socketWrite0 takes minutes to timeout, it may be > worth trying setting SO_LINGER on the socket (SO_TIMEOUT sounds like > what you want but I believe it only covers read operations): > > > http://docs.oracle.com/javase/7/docs/api/java/net/Socket.html#setSoLinger(boolean,%20int) > > > To do so, for example, you can subclass default ConnectionFactory and > override > #configureSocket: > > > http://hg.rabbitmq.com/rabbitmq-java-client/file/46578678645e/src/com/rabbitmq/client/ConnectionFactory.java#l476 > > Note that SO_LINGER is not free of downsides: > > > http://blog.netherlabs.nl/articles/2009/01/18/the-ultimate-so_linger-page-or-why-is-my-tcp-not-reliable > > http://stackoverflow.com/questions/3757289/tcp-option-so-linger-zero-when-its-required > > You can try reducing maximum packet age for the server, this should reduce > the amount of > time spent in TIME_WAIT. > > MK > > > > > _______________________________________________ > rabbitmq-discuss mailing list > [hidden email] > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > *signature.asc* (506 bytes) Download Attachment > > > ------------------------------ > If you reply to this email, your message will be added to the discussion > below: > > http://rabbitmq.1065348.n5.nabble.com/Long-timeout-if-server-host-becomes-unreachable-tp30275p30283.html > To unsubscribe from Long timeout if server host becomes unreachable, click > here > . > NAML > -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Long-timeout-if-server-host-becomes-unreachable-tp30275p30320.html Sent from the RabbitMQ mailing list archive at Nabble.com. -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael at rabbitmq.com Tue Oct 8 10:58:00 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Tue, 8 Oct 2013 13:58:00 +0400 Subject: [rabbitmq-discuss] Long timeout if server host becomes unreachable In-Reply-To: References: <1381148780469-30275.post@n5.nabble.com> <58D35FA5-3E01-402A-811F-D7E05A1488F7@rabbitmq.com> Message-ID: <642D2229-0532-4015-A3A3-E992D9AA6485@rabbitmq.com> On oct 8, 2013, at 1:49 p.m., Oleg Lyalikov wrote: > So for me it looks like the RabbitMQ client library should provide possibility to set such write timeout - maybe using the same Heartbeat thread (for now this thread is blocked on "writeFrame" method like all other threads waiting freeing the lock on outputStream object). > > By the way I still cannot imagine any workaround for this issue but it's really critical for us. Do you think there are some? Have you tried using heartbeats with a low value (say, single digit seconds)? It was created exactly for the case when a peer goes away and TCP retransmission covers the fact. RabbitMQ Java client pretty much has to synchronize writes to the socket. You can share connection between threads w/o realizing so, e.g. by publishing from a consumer callback such as handleDelivery. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From oleg.lyalikov at gmail.com Tue Oct 8 11:11:48 2013 From: oleg.lyalikov at gmail.com (Oleg Lyalikov) Date: Tue, 8 Oct 2013 03:11:48 -0700 (PDT) Subject: [rabbitmq-discuss] Long timeout if server host becomes unreachable In-Reply-To: <642D2229-0532-4015-A3A3-E992D9AA6485@rabbitmq.com> References: <1381148780469-30275.post@n5.nabble.com> <58D35FA5-3E01-402A-811F-D7E05A1488F7@rabbitmq.com> <642D2229-0532-4015-A3A3-E992D9AA6485@rabbitmq.com> Message-ID: Yes, I used heartbeats with low value, the stack trace for that thread was in my first post, it is blocked on the same write action: "pool-2-thread-1" prio=10 tid=0xac167000 nid=0x2c60 waiting for monitor entry [0xac77d000] java.lang.Thread.State: BLOCKED (on object monitor) at java.io.BufferedOutputStream.write(BufferedOutputStream.java:94) - waiting to lock <0xb4532608> (a java.io.BufferedOutputStream) at java.io.DataOutputStream.writeByte(DataOutputStream.java:153) at com.rabbitmq.client.impl.Frame.writeTo(Frame.java:189) at com.rabbitmq.client.impl.SocketFrameHandler.writeFrame(SocketFrameHandler.java:137) - locked <0xb45325f0> (a java.io.DataOutputStream) at com.rabbitmq.client.impl.HeartbeatSender$HeartbeatRunnable.run(HeartbeatSender.java:133) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) I understand that connection can be easily used from different threads (and we actually use it that way) but there should be possibility to close connection in such blocked socket.write operation. As I mentioned ActiveMQ has such setting, there was the same socketWrite0 blocking call and they have a solution (it's open source so could be checked if it is suitable for RabbitMQ). For me the client should have possibility to set such timeout or at least have some workaround - I don't see any now. Oleg 2013/10/8 Michael Klishin [via RabbitMQ] < ml-node+s1065348n30321h88 at n5.nabble.com> > On oct 8, 2013, at 1:49 p.m., Oleg Lyalikov <[hidden email]> > wrote: > > > So for me it looks like the RabbitMQ client library should provide > possibility to set such write timeout - maybe using the same Heartbeat > thread (for now this thread is blocked on "writeFrame" method like all > other threads waiting freeing the lock on outputStream object). > > > > By the way I still cannot imagine any workaround for this issue but it's > really critical for us. Do you think there are some? > > Have you tried using heartbeats with a low value (say, single digit > seconds)? It was created > exactly for the case when a peer goes away and TCP retransmission covers > the fact. > > RabbitMQ Java client pretty much has to synchronize writes to the socket. > You can share connection > between threads w/o realizing so, e.g. by publishing from a consumer > callback such > as handleDelivery. > > MK > > > > > _______________________________________________ > rabbitmq-discuss mailing list > [hidden email] > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > *signature.asc* (506 bytes) Download Attachment > > > ------------------------------ > If you reply to this email, your message will be added to the discussion > below: > > http://rabbitmq.1065348.n5.nabble.com/Long-timeout-if-server-host-becomes-unreachable-tp30275p30321.html > To unsubscribe from Long timeout if server host becomes unreachable, click > here > . > NAML > -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Long-timeout-if-server-host-becomes-unreachable-tp30275p30322.html Sent from the RabbitMQ mailing list archive at Nabble.com. -------------- next part -------------- An HTML attachment was scrubbed... URL: From paul.bowsher at gmail.com Tue Oct 8 11:21:47 2013 From: paul.bowsher at gmail.com (Paul Bowsher) Date: Tue, 8 Oct 2013 03:21:47 -0700 (PDT) Subject: [rabbitmq-discuss] "Dead" beam.smp threads under high load Message-ID: <78190679-de67-4f66-baf5-0728d9508080@googlegroups.com> Hi, Under highish loads (upwards of 2,000 messages/s), RabbitMQ requires more than one of our CPU cores, which is fine. However, after a long (undetermined) period of uptime of the Erlang VM these scheduler threads seem to become unused. Looking in top/htop with thread views enabled, only one thread (always the same thread) is used and is constantly pegged at 99% of a core. The other threads barely reach 0.1%. We run the Erlang VM with default flags, e.g. no +S or +s options. Some information about the schedulers and CPU bindings etc: # rabbitmqctl eval 'erlang:system_info(schedulers_online).' 24 # rabbitmqctl eval 'erlang:system_info(schedulers).' 24 # rabbitmqctl eval 'erlang:system_info(cpu_topology).' [{node,[{processor,[{core,[{thread,{logical,1}},{thread,{logical,13}}]}, {core,[{thread,{logical,3}},{thread,{logical,15}}]}, {core,[{thread,{logical,5}},{thread,{logical,17}}]}, {core,[{thread,{logical,7}},{thread,{logical,19}}]}, {core,[{thread,{logical,9}},{thread,{logical,21}}]}, {core,[{thread,{logical,11}},{thread,{logical,23}}]}]}]}, {node,[{processor,[{core,[{thread,{logical,0}},{thread,{logical,12}}]}, {core,[{thread,{logical,2}},{thread,{logical,14}}]}, {core,[{thread,{logical,4}},{thread,{logical,16}}]}, {core,[{thread,{logical,6}},{thread,{logical,18}}]}, {core,[{thread,{logical,8}},{thread,{logical,20}}]}, {core,[{thread,{logical,10}},{thread,{logical,22}}]}]}]}] # rabbitmqctl eval 'erlang:system_info(logical_processors_online).' 24 # rabbitmqctl eval 'erlang:system_info(multi_scheduling).' enabled # rabbitmqctl eval 'erlang:system_info(schedulers).' 24 # rabbitmqctl eval 'erlang:system_info(scheduler_bindings).' {unbound,unbound,unbound,unbound,unbound,unbound,unbound,unbound,unbound, unbound,unbound,unbound,unbound,unbound,unbound,unbound,unbound, unbound,unbound,unbound,unbound,unbound,unbound,unbound} # rabbitmqctl eval 'erlang:system_info(threads).' true # rabbitmqctl eval 'erlang:system_info(thread_pool_size).' 30 beam command line: /usr/lib64/erlang/erts-5.10.1/bin/beam.smp -W w -K true -A30 -P 1048576 -- -root /usr/lib64/erlang -progname erl -- -home /var/lib/rabbitmq -- -pa /usr/lib/rabbitmq/lib/rabbitmq_server-3.1.0/sbin/../ebin -noshell -noinput -s rabbit boot -sname rabbit at rabbit-node-name -boot start_sasl -config /etc/rabbitmq/rabbitmq -kernel inet_default_connect_options [{nodelay,true}] -sasl errlog_type error -sasl sasl_error_logger false -rabbit error_logger {file,"/var/log/rabbitmq/rabbit at rabbit-node-name.log"} -rabbit sasl_error_logger {file,"/var/log/rabbitmq/rabbit at rabbit-node-name-sasl.log"} -rabbit enabled_plugins_file "/etc/rabbitmq/enabled_plugins" -rabbit plugins_dir "/usr/lib/rabbitmq/lib/rabbitmq_server-3.1.0/sbin/../plugins" -rabbit plugins_expand_dir "/var/lib/rabbitmq/mnesia/rabbit at rabbit-node-name-plugins-expand" -os_mon start_cpu_sup false -os_mon start_disksup false -os_mon start_memsup false -mnesia dir "/var/lib/rabbitmq/mnesia/rabbit at rabbit-node-name" htop screenshot (at not-quite-full load): http://i.imgur.com/fom6Cwa.png After this point of only one core being utilised and high loads being encountered, message throughput hits a ceiling, the run_queue grows and the Management API becomes unresponsive (we use it for a lot of monitoring). To rectify the situation, we attempted first to do a rabbitmqctl stop_app, rabbitmqctl start_app (our nodes are clustered with mirrored queues) but this didn't help. In the end we shut down the app and restarted the Erlang VM as a whole. Suddenly we see 6-8 threads all using about 70% CPU, throughput increases to where it should be, run_queue is always 0 and the Management API is fully responsive. We currently have 4 nodes in this "stuck" situation on our less-critical workloads, so we are able to provide any debugging information required. We're running 24 "cores" worth of Xeon E5645 on RHEL5.6 2.6.18-238.27.1.el5. We're running RabbitMQ both 3.1.0 and 3.1.5 on a self-compiled RPM of Erlang OTP R16B with HiPE disabled. Thanks in advance for any help, and let me know if we can provide any further information, straces, netstats etc. Paul Bowsher Senior Engineer Global Personals -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael at rabbitmq.com Tue Oct 8 11:27:23 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Tue, 8 Oct 2013 14:27:23 +0400 Subject: [rabbitmq-discuss] Long timeout if server host becomes unreachable In-Reply-To: References: <1381148780469-30275.post@n5.nabble.com> <58D35FA5-3E01-402A-811F-D7E05A1488F7@rabbitmq.com> <642D2229-0532-4015-A3A3-E992D9AA6485@rabbitmq.com> Message-ID: <019BBE75-C183-4D38-8CE8-93A20ED2AD2D@rabbitmq.com> On oct 8, 2013, at 2:11 p.m., Oleg Lyalikov wrote: > For me the client should have possibility to set such timeout or at least have some workaround - I don't see any now. Oleg, I understand your frustration. I will file a bug about this. It should be possible to getFrameHandler on a connection and close its underlying socket with SocketFrameHandler#close. It does not write any data and catches any exceptions that may arise. It also does not use the output stream which is what SocketFrameHandler#writeFrame synchronizes on. So try detecting that the peer is gone in your own code (note: this is *the* fundamental issue here, not that JDK sockets don't have a timeout API) and close the socket. I cannot tell if that may cause the write method to throw but it's worth trying. Another relatively unintrusive option I can think of is modifying SocketFramehandler to use a lock that supports timeouts. This way it would be easier to detect the issue and instantiate a new connection. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From gregcollingham at gmail.com Tue Oct 8 11:30:09 2013 From: gregcollingham at gmail.com (Greg Collingham) Date: Tue, 8 Oct 2013 03:30:09 -0700 (PDT) Subject: [rabbitmq-discuss] mqtt websocket client Message-ID: Hi Does anyone know if it is possible to send an MQTT message to RabbitMq using WebSockets (I can do it with HiveMQ http://www.hivemq.com/demos/websocket-client/). I know STOMP is an option. Thanks in advance Greg -------------- next part -------------- An HTML attachment was scrubbed... URL: From tim at rabbitmq.com Tue Oct 8 11:52:45 2013 From: tim at rabbitmq.com (Tim Watson) Date: Tue, 8 Oct 2013 11:52:45 +0100 Subject: [rabbitmq-discuss] CRL support In-Reply-To: <59c682a0-9a99-4105-89a2-e2ab7c459e06@googlegroups.com> References: <1312283298.17699.15.camel@vicbristol6.hpl.hp.com> <71c23d9f-c44a-40d2-92b0-f92b5ac49881@googlegroups.com> <2602887b-fefd-4921-9538-50d0b243ba7a@googlegroups.com> <59c682a0-9a99-4105-89a2-e2ab7c459e06@googlegroups.com> Message-ID: <277C7F5E-6A42-4E78-B1D5-730C913E6EDD@rabbitmq.com> Bala, A few things.... 1. the verify_fun is an option that Erlang's SSL application takes, not a rabbit specific item On 8 Oct 2013, at 01:23, Balachandher Srinivasan wrote: > 1. Erlang adopted a more elegant way to express higher order functions (funs), based on http://www.erlang.org/eeps/eep-0023.html. So, {Module, Function} would be typically represented as Module:Function/Arity > You can't always do that in a config file - it depends on whether you have literals or are trying to use bound variables (where no binding exists). See http://www.erlang.org/doc/man/config.html for details, but basically the file needs to conform to the same specification that file:consult/1 uses - see http://www.erlang.org/doc/man/file.html#consult-1 for more details. If you can't execute `file:consult("/path/to/your/rabbit/config")' then the config file isn't valid. > 2. Based on the EEP mentioned above and the SSL documentation, I was able to write a test program and validate CRL successfully by referring a function either internally within the same module or from an external module. For internal module's function, I used the form, {verify_fun, {fun validate/3, []}}; for external module's function, I used the form {verify_fun, {fun cert_util:validate/3, []}}. > That won't work in a config file. To test this for yourself, create a text file containing just that term: $ echo '[{verify_fun, {fun lists:foldl/3, []}}].' >> foo.config And try to parse it in the shell: Eshell V5.10.2 (abort with ^G) 1> file:consult("foo.config"). {error,{1,erl_parse,"bad term"}} > 3. After successfully writing a test program, I tried to apply the same in rabbitmq; however, rabbitmq was unable to start and I witnessed the following in the logs, > /var/log/rabbitmq/startup_log > {"could not start kernel pid",application_controller,"error in config file \"/etc/rabbitmq/rabbitmq.config\" (1): bad term"} > > /var/log/rabbitmq/startup_err > Crash dump was written to: erl_crash.dump > could not start kernel pid (application_controller) (error in config file "/etc/rabbitmq/rabbitmq.config" (1): bad term) > This indicates that the config file contains invalid syntax. As I said, the `fun Mod:Func/Arity' syntax isn't valid in a system configuration file. > 4. It was clear from the above that rabbitmq was unable to take the EEP-23 form for verify_fun; so I tried reverting back the funs to old type of the form {Module, Function}. When I tried restarting, while it gave no errors and started successfully, my CRL validation function was never called. > Looking at https://github.com/erlang/otp/blob/master/lib/ssl/src/ssl_handshake.erl#L359, it seems likely that the user fun isn't called since as the documentation states: "The verify fun will be called during the X509-path validation when an error or an extension unknown to the ssl application is encountered. Additionally it will be called when a certificate is considered valid by the path validation to allow access to each certificate in the path to the user application." > 5. RabbitMQ site suggests that in order to use SSL reliably use R14B(erts 4.0.1) as the minimum version. I tried using R16B (erts-5.10.1) on 64-bit Cent OS, which internally uses ssl-5.2.1. Also, I tried R16B01(erts-5.10.2) on 64-bit Windows 7, which internally uses ssl-5.3.1. Between these versions, there are lot of bugs fixed and enhancements applied in SSL application http://www.erlang.org/doc/apps/ssl/notes.html. > > To summarize, though RabbitMQ states R14B as the minimum version for reliable SSL, I wonder whether it is compatible with the latest SSL available in the recent Erlang distributions. > I don't see any incompatibility - Rabbit does little more than forward the options you've provided to the SSL application. It looks to me like this problem has more to do with how the SSL application handles the validate_fun. I'd suggest asking on the erlang-questions mailing list to see if you can get some more guidance there - unless someone else on rabbit-discuss has come across this before and can say more about it. If/when you find out the cause, please share the outcome with us! Thanks, Tim -------------- next part -------------- An HTML attachment was scrubbed... URL: From tim at rabbitmq.com Tue Oct 8 12:27:13 2013 From: tim at rabbitmq.com (Tim Watson) Date: Tue, 8 Oct 2013 12:27:13 +0100 Subject: [rabbitmq-discuss] CRL support In-Reply-To: <277C7F5E-6A42-4E78-B1D5-730C913E6EDD@rabbitmq.com> References: <1312283298.17699.15.camel@vicbristol6.hpl.hp.com> <71c23d9f-c44a-40d2-92b0-f92b5ac49881@googlegroups.com> <2602887b-fefd-4921-9538-50d0b243ba7a@googlegroups.com> <59c682a0-9a99-4105-89a2-e2ab7c459e06@googlegroups.com> <277C7F5E-6A42-4E78-B1D5-730C913E6EDD@rabbitmq.com> Message-ID: <981651B5-D7A7-4EEA-8EF7-3D0CA45CD63B@rabbitmq.com> On 8 Oct 2013, at 11:52, Tim Watson wrote: > I don't see any incompatibility - Rabbit does little more than forward the options you've provided to the SSL application. It looks to me like this problem has more to do with how the SSL application handles the validate_fun. That bit is true, however... > I'd suggest asking on the erlang-questions mailing list to see if you can get some more guidance there - unless someone else on rabbit-discuss has come across this before and can say more about it. > That "someone" did exist, and was kind enough to point out that the SSL application guards the use of a client supplied `verify_fun' via `is_function(Fun)', which will fail for the tuple variety of the form. We can probably wrap a tuple fun/spec in a proper fun quite easily, and therefore make this work properly. We have filed a bug to look into doing just that, and will hopefully get the fix into the next release. Sorry for any confusion and thank you for your analysis, which drew our attention to this! Cheers, Tim From emile at rabbitmq.com Tue Oct 8 12:38:48 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Tue, 08 Oct 2013 12:38:48 +0100 Subject: [rabbitmq-discuss] mqtt websocket client In-Reply-To: References: Message-ID: <5253EEC8.9020206@rabbitmq.com> Hi, On 08/10/13 11:30, Greg Collingham wrote: > Does anyone know if it is possible to send an MQTT message to RabbitMq > using WebSockets I don't think there is anything preventing this, but the necessary infrastructure does not exist. The MQTT-equivalent of this STOMP plugin would need to be written: http://hg.rabbitmq.com/rabbitmq-web-stomp/ Can you explain the motivation behind this? -Emile From gregcollingham at gmail.com Tue Oct 8 12:59:17 2013 From: gregcollingham at gmail.com (greg collingham) Date: Tue, 8 Oct 2013 12:59:17 +0100 Subject: [rabbitmq-discuss] mqtt websocket client In-Reply-To: <5253EEC8.9020206@rabbitmq.com> References: <5253EEC8.9020206@rabbitmq.com> Message-ID: Hi Emile Thanks for replying. We are looking for a light weight protocol to use to send messages from many clients to a message queue broker. MQTT fits the bill but we do not want to becoming over reliant upon a single broker or client so we are investigating which clients we can use to send MQTT to which brokers. Greg On Tue, Oct 8, 2013 at 12:38 PM, Emile Joubert wrote: > > Hi, > > On 08/10/13 11:30, Greg Collingham wrote: > > > Does anyone know if it is possible to send an MQTT message to RabbitMq > > using WebSockets > > > I don't think there is anything preventing this, but the necessary > infrastructure does not exist. The MQTT-equivalent of this STOMP plugin > would need to be written: http://hg.rabbitmq.com/rabbitmq-web-stomp/ > > Can you explain the motivation behind this? > > > > -Emile > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From grussell at gopivotal.com Tue Oct 8 13:10:39 2013 From: grussell at gopivotal.com (Gary Russell) Date: Tue, 8 Oct 2013 08:10:39 -0400 Subject: [rabbitmq-discuss] RabbitMQ clustering fail over issue In-Reply-To: References: <285334D3-8F1C-41B3-B439-4AB8697D9BC3@rabbitmq.com> Message-ID: See my comment on StackOverflow; your test case is printing the initial results of calling getHost() before creating the listener. It has nothing to do with which host you are currently connected to. Turn on DEBUG logging and you will see the switch. http://stackoverflow.com/questions/19226986/rabbitmq-cluster-fail-over-issue?noredirect=1#comment28477266_19226986 On Tue, Oct 8, 2013 at 1:14 AM, Rajasekhar P wrote: > Please find the steps for my experiment - > I have stopped rabbit1 using "C:\Program Files\RabbitMQ > Server\rabbitmq_server-3.1.3\sbin>rabbitmqctl stop_app" command. > > here rabbit1 - one machine name and running one rabbitmq node > and rabbit2 - is one more machine name running one rabbitmq node. > > And my producer and consumer codes are sitting in rabbit1 machine. please > let me know if you need any details on the same. Thank you. > > > > > On Tue, Oct 8, 2013 at 10:35 AM, Michael Klishin wrote: > >> >> On oct 8, 2013, at 8:39 a.m., Rajasekhar P >> wrote: >> >> > Yes, initially it is connected to rabbit1 but after stopping this node >> it has to connect to rabbit2 node which is one of the node in the cluster >> right? >> >> Correct. Can you be more specific about how you stop a node, though? Do >> you completely >> terminate RabbitMQ process (e.g. kill it)? >> >> > So, here am confusing what is the reason for not connecting to rabbit2 >> node? >> >> Not sure. Can you put together a small app that can be used to reproduce >> the problem? >> >> Thank you. >> >> MK >> >> >> >> >> _______________________________________________ >> 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 sekhar434145 at gmail.com Tue Oct 8 13:30:43 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Tue, 8 Oct 2013 18:00:43 +0530 Subject: [rabbitmq-discuss] RabbitMQ clustering fail over issue In-Reply-To: References: <285334D3-8F1C-41B3-B439-4AB8697D9BC3@rabbitmq.com> Message-ID: Thanks for the response Russell. I am new to this RabbitMQ and Spring AMQP. Could please let me know where do I Turn on DEBUG logs? Do you mean log folder? -------------- next part -------------- An HTML attachment was scrubbed... URL: From stuff at moesel.net Tue Oct 8 13:32:23 2013 From: stuff at moesel.net (Chris) Date: Tue, 8 Oct 2013 08:32:23 -0400 Subject: [rabbitmq-discuss] Federated Exchange Upstream / Downstream Names In-Reply-To: References: Message-ID: Hi Michael, I'm sorry-- I'm not sure I follow. If I did use a topic exchange, and all brokers federated that same exchange, then senders could specify the 'A', 'B', or 'C' in the routing key, but... the consumers in 'A', 'B', and 'C' would still need to know where they are ('A', 'B', or 'C') in order to bind their queue on the right key. Binding on '*.requests' would give them all traffic. On the other hand, if each broker federated a *different* topic exchange, then we're back in the original situation-- now binding on '*.requests' would work, but the consumers would need to know where they are to bind their queue to the right exchange. Maybe I'm misunderstanding? -Chris On Mon, Oct 7, 2013 at 11:16 PM, Michael Klishin wrote: > > On oct 8, 2013, at 12:53 a.m., Chris wrote: > > > Imagine Broker A, Broker B, and Broker C. Each federates a direct > exchange based on their name (for example, "A.requests", "B.requests", > "C.requests"). Within each broker, however, I don't want consumers to need > to know the broker name-- they should be able to bind their queues to > (direct) exchange "Incoming.requests" and receive messages to "A.requests", > "B.requests", or "C.requests" respectively. > > Have you considered using a topic exchange and bind as *.requests? > Granted, prefix wildcards are not very efficient but if you only have a > few dozens of queues > bound you may even notice. > > MK > > > > > _______________________________________________ > 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 emile at rabbitmq.com Tue Oct 8 13:33:56 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Tue, 08 Oct 2013 13:33:56 +0100 Subject: [rabbitmq-discuss] "Dead" beam.smp threads under high load In-Reply-To: <78190679-de67-4f66-baf5-0728d9508080@googlegroups.com> References: <78190679-de67-4f66-baf5-0728d9508080@googlegroups.com> Message-ID: <5253FBB4.9080508@rabbitmq.com> Hi Paul, Thanks for the detailed diagnostics. On 08/10/13 11:21, Paul Bowsher wrote: > We currently have 4 nodes in this "stuck" situation on our less-critical > workloads, so we are able to provide any debugging information required. Can you supply the output of etop? e.g. etop -node rabbit at rabbit-node-name -lines 100 -sort reductions If you can get the output of "rabbitmqctl report" that will also be useful. Is there anything noteworthy in the broker or system logfiles? Can you tell what system calls are being executed by the threads with high load? e.g. "strace -pid 6017" > We're running RabbitMQ both 3.1.0 and 3.1.5 on a self-compiled RPM Were any changes made to the sources? -Emile From stuff at moesel.net Tue Oct 8 13:36:02 2013 From: stuff at moesel.net (Chris) Date: Tue, 8 Oct 2013 08:36:02 -0400 Subject: [rabbitmq-discuss] Federated Exchange Upstream / Downstream Names In-Reply-To: <5253C528.4060501@rabbitmq.com> References: <5253C528.4060501@rabbitmq.com> Message-ID: Hi Simon, Ah! I didn't notice that bit about upstream sets, but now that you mention it, I can see what you mean... I'll look into that. I'm a little concerned about my other approach since it would create more traffic than necessary. In the end, maybe I will just need to make a way for consumers to dynamically determine their broker's dedicated exchange names. But first I'll look further into the upstream sets! Thanks, Chris On Tue, Oct 8, 2013 at 4:41 AM, Simon MacMullen wrote: > On 07/10/2013 21:53, Chris wrote: > >> I essentially want to federate an exchange such that the "upstream" >> exchange name is different than the exchange name that the downstream >> queues bind to. >> > > You can set an "exchange" property on an upstream or an upstream set, > which will override the name of the upstream exchange to connect to. It'll > likely mean you need to define one upstream per downstream exchange. > > I see this is not explained terribly well in the documentation. Will fix. > > > > > Is this how you would recommend it? >> > > If I understand your use case, the approach above would be simpler. > > > Does this defeat RabbitMQ's smart routing? >> > > Yes it would. Federation only takes account of routing decisions made in > the federated exchange, not any exchanges using it as a source through e2e > bindings. > > Cheers, Simon > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From sp345s at att.com Tue Oct 8 14:28:26 2013 From: sp345s at att.com (PATAR, SAGAR) Date: Tue, 8 Oct 2013 13:28:26 +0000 Subject: [rabbitmq-discuss] java MDB to consume messages from rabbit mq queues Message-ID: <59BF56992750434F89F8EBE141E64B1D018210C1@GAALPA1MSGUSR9C.ITServices.sbc.com> Can you pl. help me find some examples on how to configure an MDB to listen to rabbitMQ queues?? -------------- next part -------------- An HTML attachment was scrubbed... URL: From paul.bowsher at gmail.com Tue Oct 8 14:35:57 2013 From: paul.bowsher at gmail.com (Paul Bowsher) Date: Tue, 8 Oct 2013 14:35:57 +0100 Subject: [rabbitmq-discuss] "Dead" beam.smp threads under high load In-Reply-To: <5253FBB4.9080508@rabbitmq.com> References: <78190679-de67-4f66-baf5-0728d9508080@googlegroups.com> <5253FBB4.9080508@rabbitmq.com> Message-ID: Hi Emile, thanks for the reply. Nothing interesting in any logs, just standard. It's difficult to pinpoint at what point these threads die (or I guess get put to sleep and never woken up again) so we can't search the logs specifically. We're only running self-compiled RPMs because we're on RHEL5.6 and there aren't vendor-supplied RPMs. We've not made any modifications to Erlang or RabbitMQ. https://www.dropbox.com/s/tcvkjd87iwre093/straces.tar.gz is a tarball of straces for one of the nodes exhibiting this issue. The largest strace is, unsurprisingly, the thread with the high load. I've set -s 1 to protect any sensitive data. The output of rabbitmqctl report is available, is there anything specific you want? It's a lot of output, and I want to be sure not to accidentally disclose sensitive data publicly. I can send you it directly though, PM me on Freenode if this would be useful. etop output: https://gist.github.com/boffbowsh/116c4c2d953350111bc7 Thanks again for the help. Paul Paul Bowsher On Tue, Oct 8, 2013 at 1:33 PM, Emile Joubert wrote: > > Hi Paul, > > Thanks for the detailed diagnostics. > > On 08/10/13 11:21, Paul Bowsher wrote: > > > We currently have 4 nodes in this "stuck" situation on our less-critical > > workloads, so we are able to provide any debugging information required. > > Can you supply the output of etop? e.g. > etop -node rabbit at rabbit-node-name -lines 100 -sort reductions > > If you can get the output of "rabbitmqctl report" that will also be useful. > > Is there anything noteworthy in the broker or system logfiles? > > Can you tell what system calls are being executed by the threads with > high load? e.g. "strace -pid 6017" > > > We're running RabbitMQ both 3.1.0 and 3.1.5 on a self-compiled RPM > > Were any changes made to the sources? > > > > -Emile > -------------- next part -------------- An HTML attachment was scrubbed... URL: From tim at rabbitmq.com Tue Oct 8 14:42:29 2013 From: tim at rabbitmq.com (Tim Watson) Date: Tue, 8 Oct 2013 14:42:29 +0100 Subject: [rabbitmq-discuss] java MDB to consume messages from rabbit mq queues In-Reply-To: <59BF56992750434F89F8EBE141E64B1D018210C1@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D018210C1@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: <8B19309D-057C-4F74-8C31-37367A7B98D8@rabbitmq.com> Both Michael and Steve already answered this question over the last two days. MDBs require JMS, which means you will need a valid vFabric Suite license and access to the commercially available RabbitMQ JMS client. Without that, you will /not/ get MDBs to work with RabbitMQ. If you need something that is configuration/annotation driven, perhaps look into spring-amqp. Cheers, Tim On 8 Oct 2013, at 14:28, PATAR, SAGAR wrote: > Can you pl. help me find some examples on how to configure an MDB to listen to rabbitMQ queues?? > > _______________________________________________ > 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 oleg.lyalikov at gmail.com Tue Oct 8 14:48:08 2013 From: oleg.lyalikov at gmail.com (Oleg Lyalikov) Date: Tue, 8 Oct 2013 06:48:08 -0700 (PDT) Subject: [rabbitmq-discuss] Long timeout if server host becomes unreachable In-Reply-To: <019BBE75-C183-4D38-8CE8-93A20ED2AD2D@rabbitmq.com> References: <1381148780469-30275.post@n5.nabble.com> <58D35FA5-3E01-402A-811F-D7E05A1488F7@rabbitmq.com> <642D2229-0532-4015-A3A3-E992D9AA6485@rabbitmq.com> <019BBE75-C183-4D38-8CE8-93A20ED2AD2D@rabbitmq.com> Message-ID: Thanks Michael, Unfortunately SocketFrameHandler#close invokes "flush" method which then blocks again: Thread [Thread-0] (Suspended) waiting for: BufferedOutputStream (id=26) owned by: Thread [main] (Suspended) BufferedOutputStream.flush() line: 140 DataOutputStream.flush() line: 123 SocketFrameHandler.flush() line: 142 SocketFrameHandler.close() line: 147 Send$2.run() line: 131 Thread.run() line: 724 I looked at the implementation of the write timeout in ActiveMQ, here it is: http://opensourcejavaphp.net/java/activemq/org/apache/activemq/transport/WriteTimeoutFilter.java.html The solution they use looks workable - it seems they register socket write start time + keep boolean whether writing occurs right now and then check in the separate thread long delta = (filter.getWriter().isWriting() && writeStart>0)?System.currentTimeMillis() - writeStart:-1; if delta is greater than write timeout they do socket.close(). If "_socket" field is not private in SocketFrameHandler I could try overriding "close" method and invoke just _socket.close() - maybe that would help. But the field is private (maybe we can copy/paste the class and instantiate our new one but it does not look good - it would be better to just enhance existing functionality not to replace - there could be some problems with compatibility with newer versions of RabbitMQ client lib, RabbitMQ tests should be run regularly as our own tests, etc). By the way do you know why SocketFrameHandler#close method invokes "flush" first before making socket.close()? Is it ok in case of write timeout just do socket.close() without flush? As for modifying SocketFrameHandler so that it will use locks with timeouts - that could be possible but with the same drawbacks as the solution above. Both workarounds require careful testing and time, we will think about it. But I'm hoping RabbitMQ library will provide functionality to set socket write timeout in the future. Could you provide some ticket link so that we can monitor its status? Thanks, Oleg 2013/10/8 Michael Klishin [via RabbitMQ] < ml-node+s1065348n30323h50 at n5.nabble.com> > > On oct 8, 2013, at 2:11 p.m., Oleg Lyalikov <[hidden email]> > wrote: > > > For me the client should have possibility to set such timeout or at > least have some workaround - I don't see any now. > > Oleg, > > I understand your frustration. I will file a bug about this. > > It should be possible to getFrameHandler on a connection and close its > underlying > socket with SocketFrameHandler#close. It does not write any data and > catches > any exceptions that may arise. It also does not use the output stream > which is > what SocketFrameHandler#writeFrame synchronizes on. > > So try detecting that the peer is gone in your own code (note: this is > *the* fundamental > issue here, not that JDK sockets don't have a timeout API) and close the > socket. > I cannot tell if that may cause the write method to throw but it's worth > trying. > > Another relatively unintrusive option I can think of is modifying > SocketFramehandler to use a lock that supports timeouts. This way it would > be > easier to detect the issue and instantiate a new connection. > > MK > > > > > _______________________________________________ > rabbitmq-discuss mailing list > [hidden email] > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > *signature.asc* (506 bytes) Download Attachment > > > ------------------------------ > If you reply to this email, your message will be added to the discussion > below: > > http://rabbitmq.1065348.n5.nabble.com/Long-timeout-if-server-host-becomes-unreachable-tp30275p30323.html > To unsubscribe from Long timeout if server host becomes unreachable, click > here > . > NAML > -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Long-timeout-if-server-host-becomes-unreachable-tp30275p30338.html Sent from the RabbitMQ mailing list archive at Nabble.com. -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Tue Oct 8 15:03:13 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Tue, 08 Oct 2013 15:03:13 +0100 Subject: [rabbitmq-discuss] [PATCH] Suggestions for improving the RabbitMQ Erlang Client In-Reply-To: References: Message-ID: <525410A1.7050607@rabbitmq.com> First of all, thanks again for this. We were aware that the Erlang client needed some performance improvements; you've provided some very useful analysis and patches. I've been through the various changes you propose, and have some comments: On 03/09/13 13:35, Jesper Louis Andersen wrote: > The optimization is straight forward: Read as much data as possible from > the underlying socket per call. I think this is fairly uncontroversial, and I can certainly see large gains there. Should find its way into 3.2.0. > Let us look at what the `rabbit_writer` is doing. > Ouch! All writes are synchronous! > RabbitMQ itself does not use the sync writes for anything but closing > down the line. So we can probably safely change to use async writes on > the socket. You are correct that the synchronous writing hurts performance - but it's not quite enough to just switch to async calls. The test suite starts failing, for a start :-) So there is a bit of work needed here to ensure that the messages to the writer get flushed before the socket gets closed. I've started work on this, and it should end up in 3.2.0. > I would probably have chosen a design based on an ETS lookup table. And > then have kept the state in the channel process itself to maximize > parallel behaviour. In turn, we can avoid spending a lot of time > updating internal memory state in a process on the critical path which > would speed up the system by quite a lot. Also, we are paying reductions > on busy channels. This will help fairness. > > Also, this means we can do away with the channels_manager process > entirely. There is no need since a decoded message can just be forwarded > to the channel directly, skipping an unneeded message pass on the > critical decoder path. This is reasonable - but of course it's a more substantial change, unlikely to happen particularly soon. > The writer process inside RabbitMQ is something I wanted to optimize as > well, so I tried changing two things in it. First, I avoided a > recomputation of `iolist_size/1` on every received message. And I just > dropped keeping a small 1414 byte packet size around. The rationale is > this: either we will be running at a high pace in the writer code and > then easily exceed the 1414 byte packet size. In this case, bumping it > to 64 kilobytes and making few calls to the underlying port seems to be > the right thing to do. Hmm. I wasn't actually able to measure a discernable performance difference with these changes to the writer. Were you? Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From michael at rabbitmq.com Tue Oct 8 15:05:03 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Tue, 8 Oct 2013 18:05:03 +0400 Subject: [rabbitmq-discuss] Long timeout if server host becomes unreachable In-Reply-To: References: <1381148780469-30275.post@n5.nabble.com> <58D35FA5-3E01-402A-811F-D7E05A1488F7@rabbitmq.com> <642D2229-0532-4015-A3A3-E992D9AA6485@rabbitmq.com> <019BBE75-C183-4D38-8CE8-93A20ED2AD2D@rabbitmq.com> Message-ID: On oct 8, 2013, at 5:48 p.m., Oleg Lyalikov wrote: > If "_socket" field is not private in SocketFrameHandler I could try overriding "close" method and invoke just _socket.close() - maybe that would help. But the field is private (maybe we can copy/paste the class and instantiate our new one but it does not look good - it would be better to just enhance existing functionality not to replace - there could be some problems with compatibility with newer versions of RabbitMQ client lib, RabbitMQ tests should be run regularly as our own tests, etc). I understand the desire to avoid deploying a fork. However, it's already clear that the client needs to be modified somehow and you have a way to reliably reproduce the problem (is this correct?) Perhaps the fastest turnaround time would be for you to make some changes and try them out. Once a solution that works is found, we will see if it can be incorporated into the mainline. > By the way do you know why SocketFrameHandler#close method invokes "flush" first before making socket.close()? Closing a connection on the application side involves sending connection.close to RabbitMQ. > Is it ok in case of write timeout just do socket.close() without flush? In case of a write timeout, it is (we won't be using the connection once that happens anyway, right?) > As for modifying SocketFrameHandler so that it will use locks with timeouts - that could be possible but with the same drawbacks as the solution above. (nods) > Both workarounds require careful testing and time, we will think about it. But I'm hoping RabbitMQ library will provide functionality to set socket write timeout in the future. You can help with that. Contributing does involve submitting a CLA but digital ones are accepted. > Could you provide some ticket link so that we can monitor its status? rabbitmq bug tracker is not public but we accept issues that are filed on github, so I filed one you can watch: https://github.com/rabbitmq/rabbitmq-java-client/issues/11 MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From ben at revinate.com Tue Oct 8 15:40:49 2013 From: ben at revinate.com (Ben Hidalgo) Date: Tue, 8 Oct 2013 07:40:49 -0700 Subject: [rabbitmq-discuss] rabbitmq 3.1.5 cluster auto-configuration not working In-Reply-To: <5253C9B1.5020801@rabbitmq.com> References: <66b2d732-5115-401d-816a-ccc7cb5aaacd@googlegroups.com> <5253C9B1.5020801@rabbitmq.com> Message-ID: Does a "service rabbitmq-server restart" cause a reset? I've tried it on fresh install, but the config or firewall may have been wrong the first time. Thanks, Ben On Tue, Oct 8, 2013 at 2:00 AM, Simon MacMullen wrote: > On 08/10/2013 02:30, Ben Hidalgo wrote: > >> But I can never get them to "auto-configure" from the config file alone. >> I'm not getting any errors in any logs. >> > > Note that the auto-config is only applied when the node starts for the > very first time (after a reset or fresh installation). Is that the problem? > > Cheers, Simon > -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Tue Oct 8 15:44:32 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Tue, 08 Oct 2013 15:44:32 +0100 Subject: [rabbitmq-discuss] rabbitmq 3.1.5 cluster auto-configuration not working In-Reply-To: References: <66b2d732-5115-401d-816a-ccc7cb5aaacd@googlegroups.com> <5253C9B1.5020801@rabbitmq.com> Message-ID: <52541A50.6040004@rabbitmq.com> On 08/10/13 15:40, Ben Hidalgo wrote: > Does a "service rabbitmq-server restart" cause a reset? I've tried it > on fresh install, but the config or firewall may have been wrong the > first time. No. Only "rabbitmqctl reset" causes a reset - it deletes all persistent storage so we wouldn't want to do that on restart... Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From emile at rabbitmq.com Tue Oct 8 15:53:17 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Tue, 08 Oct 2013 15:53:17 +0100 Subject: [rabbitmq-discuss] "Dead" beam.smp threads under high load In-Reply-To: References: <78190679-de67-4f66-baf5-0728d9508080@googlegroups.com> <5253FBB4.9080508@rabbitmq.com> Message-ID: <52541C5D.7040102@rabbitmq.com> On 08/10/13 14:35, Paul Bowsher wrote: > https://www.dropbox.com/s/tcvkjd87iwre093/straces.tar.gz is a tarball of > straces > etop output: https://gist.github.com/boffbowsh/116c4c2d953350111bc7 The etop output doesn't show any Erlang process consuming an outrageous amount of CPU, while one of the threads in the strace output appears to be stuck in a loop. This points to a problem within the Erlang VM rather than the Erlang code being executed. Try upgrading to the latest version of Erlang, and also try downgrading, in case this is a problem that was recently introduced. Also try running with defaults in rabbitmq.config. If the problem persists then it may be worth asking over at the erlang-questions mailing list. -Emile From gnieman at gopivotal.com Tue Oct 8 15:53:50 2013 From: gnieman at gopivotal.com (Greg Nieman) Date: Tue, 08 Oct 2013 10:53:50 -0400 Subject: [rabbitmq-discuss] integration with jboss 5.1 as In-Reply-To: References: Message-ID: <52541C7E.4040203@gopivotal.com> I've been thinking about this for a bit, and I'm not entirely sure I understand what you are getting at. I could be way off here, but at least to my understanding the JMS client is an intermediary layer that exists at the producer and consumer level and allows an application to interact with RabbitMQ in the same fashion it would with a JMS messaging server. So to my thinking you would use this if you wanted to switch from an existing JMS server to RabbitMQ using AMQP without completely rewriting the code that already existed. Since the overall approach is much different. But in this case you haven't really changed the mechanism of the message queue at all. It's still RabbitMQ based, sending and receiving messages via AMQP. It's just that to the the producer and consumer code it kind of looks like JMS now. You publish a message using an API that looks like JMS, but it still goes out across the wire as AMQP. And when you consume it, same thing. Which is why the discussion of MDB's here confuses me. Since it appears as though you want to consume what you publish to a RabbitMQ server via an MDB deployed in JBoss. Being more of a Spring, Message Driven Pojo oriented than a JEE/JMS/MDB person I'm stretching a bit here. But it seems to me that if this is what you are looking to do it's not going to just work out of the box with the JMS client. OK, so you have a bunch of messages in RabbitMQ. How are they going to get consumed by JBoss? The container wants a JMS message so it can call it's MDB's. But in the classic case what it's getting those messages from is a JMS queue in that same container. Or alternatively, I'm pretty sure it's possible to create a Resource Adapter that consumes from a non-installed message broker. I know, for instance you can consume from ActiveMQ and route the messages to Glassfish MDB's. But you have to write a Resource Adapter first. I would expect something similar for JBoss. In which you'd create an adapter using the RabbitMQ JMS client that would consumer the messages from the RabbitMQ server and get them into to a usable format for your MDB's. But I don't know. That seems like an awful lot of work. Even more than you'd be saving by reusing some existing JMS codebase. Seems like it would be easier to just use Spring AMQP to consume from the Rabbit queue and rework the MDB code base so they consume as pojos perhaps. Again, not exactly sure what you are trying to do. On oct 3, 2013, at 11:25 p.m., "PATAR, SAGAR" wrote: Just wanted to make sure that we should be able to subscribe the messages through MDB?s deployed in jboss5.1 as ? From tim at rabbitmq.com Tue Oct 8 16:08:24 2013 From: tim at rabbitmq.com (Tim Watson) Date: Tue, 8 Oct 2013 16:08:24 +0100 Subject: [rabbitmq-discuss] integration with jboss 5.1 as In-Reply-To: <52541C7E.4040203@gopivotal.com> References: <52541C7E.4040203@gopivotal.com> Message-ID: Greg, On 8 Oct 2013, at 15:53, Greg Nieman wrote: > OK, so you have a bunch of messages in RabbitMQ. How are they going to get consumed by JBoss? The container wants a JMS message so it can call it's MDB's. But in the classic case what it's getting those messages from is a JMS queue in that same container. Really? I thought it was just attaching to a (possibly durable) consumer? > Or alternatively, I'm pretty sure it's possible to create a Resource Adapter that consumes from a non-installed message broker. Indeed. > I know, for instance you can consume from ActiveMQ and route the messages to Glassfish MDB's. But you have to write a Resource Adapter first. I would expect something similar for JBoss. In which you'd create an adapter using the RabbitMQ JMS client that would consumer the messages from the RabbitMQ server and get them into to a usable format for your MDB's. I see what you mean. I've not had to dig into JBoss enough to know whether this is really the case, but if it is necessary to provide a Resource Adapter in order to bind to a JMS compliant messaging component in order to use MDBs in JBoss, then that's probably something that the person wanting to use MDBs in JBoss will need to do. > > But I don't know. That seems like an awful lot of work. Even more than you'd be saving by reusing some existing JMS codebase. Seems like it would be easier to just use Spring AMQP to consume from the Rabbit queue and rework the MDB code base so they consume as pojos perhaps. +1, IMHO. I really wasn't aware of the requirement to build a custom Resource Adapter though - I though the MDB implementation(s) provided that OOTB for any compliant JMS interface. Cheers, Tim From oleg.lyalikov at gmail.com Tue Oct 8 16:39:06 2013 From: oleg.lyalikov at gmail.com (Oleg Lyalikov) Date: Tue, 8 Oct 2013 08:39:06 -0700 (PDT) Subject: [rabbitmq-discuss] Long timeout if server host becomes unreachable In-Reply-To: References: <1381148780469-30275.post@n5.nabble.com> <58D35FA5-3E01-402A-811F-D7E05A1488F7@rabbitmq.com> <642D2229-0532-4015-A3A3-E992D9AA6485@rabbitmq.com> <019BBE75-C183-4D38-8CE8-93A20ED2AD2D@rabbitmq.com> Message-ID: > > > If "_socket" field is not private in SocketFrameHandler I could try > overriding "close" method and invoke just _socket.close() - maybe that > would help. But the field is private (maybe we can copy/paste the class and > instantiate our new one but it does not look good - it would be better to > just enhance existing functionality not to replace - there could be some > problems with compatibility with newer versions of RabbitMQ client lib, > RabbitMQ tests should be run regularly as our own tests, etc). > > I understand the desire to avoid deploying a fork. However, it's already > clear that the client > needs to be modified somehow and you have a way to reliably reproduce the > problem (is this correct?) > > Perhaps the fastest turnaround time would be for you to make some changes > and try them out. > Once a solution that works is found, we will see if it can be incorporated > into the mainline. > Reproducing is not too hard - we have 2 virtual machines and just turn network off on the one machine when needed (maybe there is a better way but that was pretty enough). There is also possibility to not make copy/paste of SocketFrameHandler - we managed to get Socket object through the reflection and invoking socket.close() really caused the "socketWrite" method to throw an Exception - what was desired. The last thing to do is registering write start time and whether write is occurring right now - and separate thread can successfully close socket when timeout expires. We also have another specific solution - actually the problem appeared in our HA configuration and components connected always to the "primary" RabbitMQ host (with possibility to switch to backup and vice versa). When primary host is shutdowned we observe this behavior. So now we want to try to connect to "localhost" RabbitMQ first, we have an HA configuration between RabbitMQ servers though we didn't do much tests with it but we hope that solution can solve the problem for the majority of the cases. But still blocked write can arise in some cases. So we keep first solution in mind but for now it's unknown if we will make fix. If we do we will share it so that it can help faster incorporating into the library. > > Both workarounds require careful testing and time, we will think about > it. But I'm hoping RabbitMQ library will provide functionality to set > socket write timeout in the future. > > You can help with that. Contributing does involve submitting a CLA but > digital ones > are accepted. > > > Could you provide some ticket link so that we can monitor its status? > > rabbitmq bug tracker is not public but we accept issues that are filed on > github, so I filed > one you can watch: > > https://github.com/rabbitmq/rabbitmq-java-client/issues/11 > > MK > > Thank you very much for all your help, Oleg -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Long-timeout-if-server-host-becomes-unreachable-tp30275p30344.html Sent from the RabbitMQ mailing list archive at Nabble.com. -------------- next part -------------- An HTML attachment was scrubbed... URL: From ben at revinate.com Tue Oct 8 17:50:42 2013 From: ben at revinate.com (Ben Hidalgo) Date: Tue, 8 Oct 2013 09:50:42 -0700 Subject: [rabbitmq-discuss] rabbitmq 3.1.5 cluster auto-configuration not working In-Reply-To: <52541A50.6040004@rabbitmq.com> References: <66b2d732-5115-401d-816a-ccc7cb5aaacd@googlegroups.com> <5253C9B1.5020801@rabbitmq.com> <52541A50.6040004@rabbitmq.com> Message-ID: I'm having trouble resetting. One node1, I can stop_app/start_app but reset gives: Error: {timeout_waiting_for_tables,[rabbit_user,rabbit_user_permission, rabbit_vhost,rabbit_durable_route, rabbit_durable_exchange, rabbit_runtime_parameters, rabbit_durable_queue]} On node2, I can stop_app/start_app but reset gives: Resetting node rabbit at testrabbit02 ... Error: {no_running_cluster_nodes,"You cannot leave a cluster if no online nodes are present."} I eventually started/stopped/reset until it came up with the cluster correctly formed and cluster_status was successful but... What is the sequence for cleanly reinitializing Rabbit and Erlang on a two node cluster? I'm trying to setup a production config with Chef. If you've used it, Chef requires idempotency and strongly prefers file based management. Could you recommend any "Rabbit + Chef" tutorials or best practices? I'm familiar with the OpsCode cookbook. Thanks, Ben On Tue, Oct 8, 2013 at 7:44 AM, Simon MacMullen wrote: > On 08/10/13 15:40, Ben Hidalgo wrote: > >> Does a "service rabbitmq-server restart" cause a reset? I've tried it >> on fresh install, but the config or firewall may have been wrong the >> first time. >> > > No. Only "rabbitmqctl reset" causes a reset - it deletes all persistent > storage so we wouldn't want to do that on restart... > > Cheers, Simon > > -- > Simon MacMullen > RabbitMQ, Pivotal > -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Tue Oct 8 19:05:32 2013 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Tue, 8 Oct 2013 22:05:32 +0400 Subject: [rabbitmq-discuss] ANN Langohr 1.6.0-beta1 Message-ID: Langohr [1] is a Clojure client for RabbitMQ. 1.6.0-beta1 introduces automatic connection recovery improvements. Release notes: http://blog.clojurewerkz.org/blog/2013/10/08/langohr-1-dot-6-0-beta1-is-released/ 1. http://clojurerabbitmq.info -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From myownfitness at gmail.com Tue Oct 8 20:34:55 2013 From: myownfitness at gmail.com (MyOwnFitness) Date: Tue, 8 Oct 2013 12:34:55 -0700 Subject: [rabbitmq-discuss] Multi vhost access with static LDAP Message-ID: Hey Everyone! I have been trying to figure this out for a couple days, and have made progress due to this post: http://rabbitmq.1065348.n5.nabble.com/Per-queue-exchange-ACL-via-LDAP-plugin-td25331.html I guess my question stems from that post. I currently have multiple users and vhost's. Some users need to read queues on different vhost's and some need to configure the vhost. At the bottom the tag_queries works, but i need to remove management. Here is what i was hoping to get help with: 1. I need to be able to have TestUser2 configure queues, exchanges, etc... on vhost "One_". The easy: 2. TestUser3 to read the queues from "One_" (easy). Now the twist: 3. TestUser4 is on a different vhost "Sec_" that should be able to configure, and they should have no access to "One_" vhost, they will also have another user consuming. My question is how do i separate the two vhost's in the config file, and still maintain access control? Do i have 2 "vhost_access_query"? but then how do i set the permissions for each? ** Also, all LDAP is 100% static, i cannot add groups or attributes. ** Here is the sample of the excerpt from my rabbitmq.conf: {rabbitmq_auth_backend_ldap, > > [{servers, ["ldap_server.com"]}, > > {user_dn_pattern, "cn=${username},ou=System,dc=Test"}, > > {use_ssl, true}, > > {ssl_options, {certfile, "/etc/rabbitmq/ssl/test.cer"}}, > > {port, 443}, > > {log, true}, > > {other_bind, as_user}, > > {resource_access_query, > > {for, [{resource, exchange, {constant, false}}, > > {resource, queue, > > {for, [{permission, configure, {constant, >> false}}, > > {permission, write, {constant, >> false}}, > > {permission, read, > > {match, {string, "TestUser3"}, >> {string, "^${username}"}} > > }]}} > > ]} > > } > > {tag_queries, [{administrator, {match, {string, >> "TestUser1"}, {string, "^${username}"}}}]} > > ]} > > As always, thank you for any help or direction you can point me in! -------------- next part -------------- An HTML attachment was scrubbed... URL: From vasiliyb at gmail.com Tue Oct 8 20:57:57 2013 From: vasiliyb at gmail.com (Vasiliy Boulytchev) Date: Tue, 8 Oct 2013 15:57:57 -0400 Subject: [rabbitmq-discuss] RabbitMQ Message Queue count limitation Message-ID: Folks, What is the maximum amount of message queues (with a highavailability policy applied) that can exist on a RabbitMQ Cluster? Thanks! -- Vasiliy Boulytchev -------------- next part -------------- An HTML attachment was scrubbed... URL: From e34_520 at yahoo.com Tue Oct 8 21:17:16 2013 From: e34_520 at yahoo.com (Choo) Date: Tue, 8 Oct 2013 13:17:16 -0700 (PDT) Subject: [rabbitmq-discuss] Connection blocked by "flow" for more than 600 seconds Message-ID: <1381263436076-30349.post@n5.nabble.com> Hi All, I'm newbies to RabbitMQ, and wonder if you could help suggesting on the issue I'm facing while implementing PoC environment. RabbitMQ 3.1.5, Erlang R16B01 on RHEL, 2 servers in Ram+Disc mode cluster, memory 128 GB each, the application is very fast pacing - publishing and subscribing a lot of data from queues (up to 100 tps). After running application for a couple of minutes, the connection reports "blocked", and waiting does not make any good as it blocked for more than 600 seconds. And happens all the time. 10.95.212.10:51961 -> 10.95.212.12:5672 750.270197 flow 10.95.212.10:51962 -> 10.95.212.12:5672 754.216011 flow 10.95.212.10:51963 -> 10.95.212.12:5672 510.589429 flow 10.95.212.10:51964 -> 10.95.212.12:5672 425.485488 flow 10.95.212.10:51965 -> 10.95.212.12:5672 441.14789 flow 10.95.212.10:51966 -> 10.95.212.12:5672 163.170952 flow 10.95.212.10:51967 -> 10.95.212.12:5672 3.059871 flow 10.95.212.10:51968 -> 10.95.212.12:5672 426.142116 flow 10.95.212.10:51969 -> 10.95.212.12:5672 766.418793 flow 10.95.212.10:51970 -> 10.95.212.12:5672 768.384091 flow 10.95.212.10:51971 -> 10.95.212.12:5672 162.18209 flow 10.95.212.10:51973 -> 10.95.212.12:5672 68.669802 flow 10.95.212.10:51974 -> 10.95.212.12:5672 754.631573 flow 10.95.212.10:51975 -> 10.95.212.12:5672 754.435615 flow 10.95.212.10:51976 -> 10.95.212.12:5672 68.507427 flow 10.95.212.10:51979 -> 10.95.212.12:5672 441.270346 flow 10.95.212.10:51980 -> 10.95.212.12:5672 441.121977 flow 10.95.212.10:51983 -> 10.95.212.12:5672 68.646785 flow And for status: {memory, [{total,3859855376}, {connection_procs,88174824}, {queue_procs,244276080}, {plugins,985632}, {other_proc,265771096}, {mnesia,2432752}, {mgmt_db,101090840}, {msg_index,592688264}, {other_ets,588080336}, {binary,1939595920}, {code,19746169}, {atom,703377}, {other_system,16310086}]}, {vm_memory_high_watermark,0.85}, {vm_memory_limit,115011143065}, {disk_free_limit,1000000000}, {disk_free,91763609600}, Any suggestion would be very welcome. Thank you, and Best Regards, Choo -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Connection-blocked-by-flow-for-more-than-600-seconds-tp30349.html Sent from the RabbitMQ mailing list archive at Nabble.com. From michael.s.klishin at gmail.com Tue Oct 8 21:54:01 2013 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Wed, 9 Oct 2013 00:54:01 +0400 Subject: [rabbitmq-discuss] Connection blocked by "flow" for more than 600 seconds In-Reply-To: <1381263436076-30349.post@n5.nabble.com> References: <1381263436076-30349.post@n5.nabble.com> Message-ID: 2013/10/9 Choo > Any suggestion would be very welcome. RabbitMQ logs all alarms so it should be clear what resource is low. It doesn't have to be RAM, can be free disk space or number of file descriptors. Publishers will be blocked until all alarms clear. -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From e34_520 at yahoo.com Tue Oct 8 22:29:20 2013 From: e34_520 at yahoo.com (Choo) Date: Tue, 8 Oct 2013 14:29:20 -0700 (PDT) Subject: [rabbitmq-discuss] Connection blocked by "flow" for more than 600 seconds In-Reply-To: References: <1381263436076-30349.post@n5.nabble.com> Message-ID: <1381267760478-30351.post@n5.nabble.com> Hi MK, Thank you for your suggestion. There seems to be one: {file_descriptors, [{total_limit,924}, {total_used,909}, {sockets_limit,829}, {sockets_used,379}]}, Will try to fix this one, and keep you all updated how it goes. : ) Choo -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Connection-blocked-by-flow-for-more-than-600-seconds-tp30349p30351.html Sent from the RabbitMQ mailing list archive at Nabble.com. From jesper.louis.andersen at gmail.com Tue Oct 8 23:03:54 2013 From: jesper.louis.andersen at gmail.com (Jesper Louis Andersen) Date: Wed, 9 Oct 2013 00:03:54 +0200 Subject: [rabbitmq-discuss] "Dead" beam.smp threads under high load In-Reply-To: <52541C5D.7040102@rabbitmq.com> References: <78190679-de67-4f66-baf5-0728d9508080@googlegroups.com> <5253FBB4.9080508@rabbitmq.com> <52541C5D.7040102@rabbitmq.com> Message-ID: On Tue, Oct 8, 2013 at 4:53 PM, Emile Joubert wrote: > Try upgrading to the latest version of Erlang, and also try downgrading, > in case this is a problem that was recently introduced. Also try running > with defaults in rabbitmq.config. > There is a couple of flags you may try to set on the Erlang VM. Most notably the flag which forces schedulers to wake up again. If that solves it, you might have found the problem. Also, avoid R16B01 which has some nasty trouble. -- J. -------------- next part -------------- An HTML attachment was scrubbed... URL: From matthias at rabbitmq.com Tue Oct 8 23:07:37 2013 From: matthias at rabbitmq.com (Matthias Radestock) Date: Tue, 08 Oct 2013 23:07:37 +0100 Subject: [rabbitmq-discuss] Connection blocked by "flow" for more than 600 seconds In-Reply-To: <1381267760478-30351.post@n5.nabble.com> References: <1381263436076-30349.post@n5.nabble.com> <1381267760478-30351.post@n5.nabble.com> Message-ID: <52548229.9000502@rabbitmq.com> On 08/10/13 22:29, Choo wrote: > Thank you for your suggestion. There seems to be one: > > {file_descriptors, > [{total_limit,924}, > {total_used,909}, > {sockets_limit,829}, > {sockets_used,379}]}, > > Will try to fix this one, and keep you all updated how it goes. : ) The above is fine, actually. Rabbit will use available file descriptors when it deems that beneficial. As you can see in the above, the limits haven't actually been reached. As Michael suggested, please check the logs for alarms. From your previous 'rabbitmqctl status' output, I suspect the disk alarm has been triggered. Matthias. From e34_520 at yahoo.com Wed Oct 9 00:09:05 2013 From: e34_520 at yahoo.com (Choo) Date: Tue, 8 Oct 2013 16:09:05 -0700 (PDT) Subject: [rabbitmq-discuss] Connection blocked by "flow" for more than 600 seconds In-Reply-To: <52548229.9000502@rabbitmq.com> References: <1381263436076-30349.post@n5.nabble.com> <1381267760478-30351.post@n5.nabble.com> <52548229.9000502@rabbitmq.com> Message-ID: <1381273745546-30354.post@n5.nabble.com> Hi Matthias, Thank you for suggestion. I have adjusted the file_descriptor as below: {erlang_version, "Erlang R16B01 (erts-5.10.2) [source-bdf5300] [64-bit] [smp:40:40] [async-threads:30] [hipe] [kernel-poll:true]\n"}, {memory, [{total,3176523080}, {connection_procs,122464344}, {queue_procs,1248670152}, {plugins,748048}, {other_proc,72262776}, {mnesia,2432784}, {mgmt_db,10208}, {msg_index,289132896}, {other_ets,191916432}, {binary,1208094960}, {code,19312210}, {atom,703377}, {other_system,20774893}]}, {vm_memory_high_watermark,0.85}, {vm_memory_limit,115011143065}, {disk_free_limit,1000000000}, {disk_free,92036349952}, {file_descriptors, [{total_limit,10140}, {total_used,4907}, {sockets_limit,9124}, {sockets_used,376}]}, {processes,[{limit,1048576},{used,3980}]}, So, it seems like memory is enough, file_descriptor is enough, and disk_free should still be ok. But the connection is still blocked. But good thing is, the block duration seems shorter. 10.95.212.10:42336 -> 10.95.212.12:5672 blocked 0 flow 17.306112 10.95.212.10:42338 -> 10.95.212.12:5672 blocked 0 flow 108.213992 10.95.212.10:42359 -> 10.95.212.12:5672 blocked 0 flow 36.799473 10.95.212.10:42360 -> 10.95.212.12:5672 blocked 0 flow 146.325601 10.95.212.10:42361 -> 10.95.212.12:5672 blocked 0 flow 53.655967 10.95.212.10:42374 -> 10.95.212.12:5672 blocked 0 flow 121.259312 10.95.212.10:42375 -> 10.95.212.12:5672 blocked 0 flow 139.258805 10.95.212.10:42376 -> 10.95.212.12:5672 blocked 0 flow 137.210049 10.95.212.10:42377 -> 10.95.212.12:5672 blocked 0 flow 51.628542 Any other areas I should check? Thank you and Best Regards, Choo -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Connection-blocked-by-flow-for-more-than-600-seconds-tp30349p30354.html Sent from the RabbitMQ mailing list archive at Nabble.com. From matthias at rabbitmq.com Wed Oct 9 00:20:59 2013 From: matthias at rabbitmq.com (Matthias Radestock) Date: Wed, 09 Oct 2013 00:20:59 +0100 Subject: [rabbitmq-discuss] Connection blocked by "flow" for more than 600 seconds In-Reply-To: <1381273745546-30354.post@n5.nabble.com> References: <1381263436076-30349.post@n5.nabble.com> <1381267760478-30351.post@n5.nabble.com> <52548229.9000502@rabbitmq.com> <1381273745546-30354.post@n5.nabble.com> Message-ID: <5254935B.9040400@rabbitmq.com> On 09/10/13 00:09, Choo wrote: > So, it seems like memory is enough, file_descriptor is enough, and disk_free > should still be ok. But the connection is still blocked. But good thing > is, the block duration seems shorter. > > 10.95.212.10:42336 -> 10.95.212.12:5672 blocked 0 flow 17.306112 > 10.95.212.10:42338 -> 10.95.212.12:5672 blocked 0 flow 108.213992 > 10.95.212.10:42359 -> 10.95.212.12:5672 blocked 0 flow 36.799473 > 10.95.212.10:42360 -> 10.95.212.12:5672 blocked 0 flow 146.325601 > 10.95.212.10:42361 -> 10.95.212.12:5672 blocked 0 flow 53.655967 > 10.95.212.10:42374 -> 10.95.212.12:5672 blocked 0 flow 121.259312 > 10.95.212.10:42375 -> 10.95.212.12:5672 blocked 0 flow 139.258805 > 10.95.212.10:42376 -> 10.95.212.12:5672 blocked 0 flow 137.210049 > 10.95.212.10:42377 -> 10.95.212.12:5672 blocked 0 flow 51.628542 > > Any other areas I should check? You might just be seeing normal flow control behaviour. Looks like you have lots of durable queues and are publishing persistent messages. That puts a huge strain on disk i/o, so that's likely the bottleneck which causes flow control to kick in. Matthias. From e34_520 at yahoo.com Wed Oct 9 00:41:43 2013 From: e34_520 at yahoo.com (Choo) Date: Tue, 8 Oct 2013 16:41:43 -0700 (PDT) Subject: [rabbitmq-discuss] Connection blocked by "flow" for more than 600 seconds In-Reply-To: <5254935B.9040400@rabbitmq.com> References: <1381263436076-30349.post@n5.nabble.com> <1381267760478-30351.post@n5.nabble.com> <52548229.9000502@rabbitmq.com> <1381273745546-30354.post@n5.nabble.com> <5254935B.9040400@rabbitmq.com> Message-ID: <1381275703461-30356.post@n5.nabble.com> Hi Matthias, I got your point. Yes, the system is running as Ram+Disc mode on both servers in the cluster. Will try 1 Ram and 1 Disc then. : ) Thank you and Best Regards, Choo -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Connection-blocked-by-flow-for-more-than-600-seconds-tp30349p30356.html Sent from the RabbitMQ mailing list archive at Nabble.com. From 314992959 at qq.com Wed Oct 9 03:05:58 2013 From: 314992959 at qq.com (3k4b251) Date: Tue, 8 Oct 2013 19:05:58 -0700 (PDT) Subject: [rabbitmq-discuss] if stop RabbitMq Server Service, the Server try to create 'queues' folder ? Message-ID: <1381284358248-30359.post@n5.nabble.com> I create 30000 queues. And when I use : rabbitmq-service.bat stop . I found that the MQ database create a folder named queues . And try to create 30000 floders in 'queues' folder. And Server's memory increase too fast. when Server closed completely. I try to use: rabbitmq-service.bat start . So Server try to restart and I found the memory increase very fast and seems never stop , already use more thean 6G ..... -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/if-stop-RabbitMq-Server-Service-the-Server-try-to-create-queues-folder-tp30359.html Sent from the RabbitMQ mailing list archive at Nabble.com. From sekhar434145 at gmail.com Wed Oct 9 07:10:53 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Wed, 9 Oct 2013 11:40:53 +0530 Subject: [rabbitmq-discuss] Delete Queue from RabbitMQ Message-ID: How to delete some of the Queues based on Queue names from RabbitMQ server without using "raabitmqctl reset"? Thanks in advance. -------------- next part -------------- An HTML attachment was scrubbed... URL: From videlalvaro at gmail.com Wed Oct 9 07:18:30 2013 From: videlalvaro at gmail.com (Alvaro Videla) Date: Wed, 9 Oct 2013 01:18:30 -0500 Subject: [rabbitmq-discuss] Delete Queue from RabbitMQ In-Reply-To: References: Message-ID: Hi, You could send a queue.delete command over the channel, how to do that will depend on the client library you are using. See here for AMQP's queue.delete http://www.rabbitmq.com/amqp-0-9-1-quickref.html If you have the management plugin enabled, you can delete them there as well. Just browse to the queue you want to delete, and at the bottom of the page you'll find the delete button. You can also do it via curl on the command line, see more here: http://hg.rabbitmq.com/rabbitmq-management/raw-file/rabbitmq_v3_1_5/priv/www/api/index.htmlor here http://www.rabbitmq.com/management-cli.html Regards, Alvaro On Wed, Oct 9, 2013 at 1:10 AM, Rajasekhar P wrote: > How to delete some of the Queues based on Queue names from RabbitMQ server > without using "raabitmqctl reset"? Thanks in advance. > > _______________________________________________ > 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 at rabbitmq.com Wed Oct 9 07:31:30 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Wed, 9 Oct 2013 10:31:30 +0400 Subject: [rabbitmq-discuss] RabbitMQ Message Queue count limitation In-Reply-To: References: Message-ID: On oct 8, 2013, at 11:57 p.m., Vasiliy Boulytchev wrote: > What is the maximum amount of message queues (with a highavailability policy applied) that can exist on a RabbitMQ Cluster? There is no enforced limit, so it depend on how much RAM and disk space is available. Low tens of thousands is not unheard of. As far as mirroring goes, it is more important how many nodes you mirror to: mirroring to more nodes means more work and intra-cluster traffic. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From michael at rabbitmq.com Wed Oct 9 07:35:37 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Wed, 9 Oct 2013 10:35:37 +0400 Subject: [rabbitmq-discuss] if stop RabbitMq Server Service, the Server try to create 'queues' folder ? In-Reply-To: <1381284358248-30359.post@n5.nabble.com> References: <1381284358248-30359.post@n5.nabble.com> Message-ID: <05AF4AE0-F69E-411B-A789-128A7E215DD9@rabbitmq.com> On oct 9, 2013, at 6:05 a.m., 3k4b251 <314992959 at qq.com> wrote: > I create 30000 queues. And when I use : rabbitmq-service.bat stop > . > I found that the MQ database create a folder named queues . > And try to create 30000 floders in 'queues' folder. > And Server's memory increase too fast. Use rabbitmqctl report to see RAM usage breakdown. How much RAM does your machine have? If it is lower than needed for all the queues *and* messages in them, you are likely to see OS swapping. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From sekhar434145 at gmail.com Wed Oct 9 07:49:48 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Wed, 9 Oct 2013 12:19:48 +0530 Subject: [rabbitmq-discuss] Delete Queue from RabbitMQ In-Reply-To: References: Message-ID: Thanks Alvaro. With management plugin able delete specific queues. But I didn't understand the command for deleting specific queue through cmd. Here am using java client and windows as OS. Regards, Pand005 On Wed, Oct 9, 2013 at 11:48 AM, Alvaro Videla wrote: > Hi, > > You could send a queue.delete command over the channel, how to do that > will depend on the client library you are using. See here for AMQP's > queue.delete http://www.rabbitmq.com/amqp-0-9-1-quickref.html > > If you have the management plugin enabled, you can delete them there as > well. Just browse to the queue you want to delete, and at the bottom of the > page you'll find the delete button. > > You can also do it via curl on the command line, see more here: > http://hg.rabbitmq.com/rabbitmq-management/raw-file/rabbitmq_v3_1_5/priv/www/api/index.htmlor here > http://www.rabbitmq.com/management-cli.html > > Regards, > > Alvaro > > > > > On Wed, Oct 9, 2013 at 1:10 AM, Rajasekhar P wrote: > >> How to delete some of the Queues based on Queue names from RabbitMQ >> server without using "raabitmqctl reset"? Thanks in advance. >> >> _______________________________________________ >> 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 314992959 at qq.com Wed Oct 9 07:52:12 2013 From: 314992959 at qq.com (3k4b251) Date: Tue, 8 Oct 2013 23:52:12 -0700 (PDT) Subject: [rabbitmq-discuss] if stop RabbitMq Server Service, the Server try to create 'queues' folder ? In-Reply-To: <05AF4AE0-F69E-411B-A789-128A7E215DD9@rabbitmq.com> References: <1381284358248-30359.post@n5.nabble.com> <05AF4AE0-F69E-411B-A789-128A7E215DD9@rabbitmq.com> Message-ID: <1381301532757-30365.post@n5.nabble.com> (1)my machine's memory is about 8G . (2) when 30000 queues have been created , [erl.exe]'s size is about 780M . and database only have the file 'rabbit_durable_queue.DCD' and 'rabbit_durable_queue.DCL'. (3)Then I try to use command: rabbitmq-service.bat stop. I found the folder 'queues' create in database. And erl.exe's memory grew to more than 2G. And servers minutes later the service closed, I try to restart the service and found memory grew too fast, and big more than 6G.... -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/if-stop-RabbitMq-Server-Service-the-Server-try-to-create-queues-folder-tp30359p30365.html Sent from the RabbitMQ mailing list archive at Nabble.com. From videlalvaro at gmail.com Wed Oct 9 07:59:47 2013 From: videlalvaro at gmail.com (Alvaro Videla) Date: Wed, 9 Oct 2013 01:59:47 -0500 Subject: [rabbitmq-discuss] Delete Queue from RabbitMQ In-Reply-To: References: Message-ID: Here you can find an example of exchange delete: http://hg.rabbitmq.com/rabbitmq-management/raw-file/rabbitmq_v3_1_5/priv/www/api/index.html You could convert that to queue delete by checking the API docs below the example On Wed, Oct 9, 2013 at 1:49 AM, Rajasekhar P wrote: > Thanks Alvaro. With management plugin able delete specific queues. But I > didn't understand the command for deleting specific queue through cmd. Here > am using java client and windows as OS. > > Regards, > Pand005 > > > On Wed, Oct 9, 2013 at 11:48 AM, Alvaro Videla wrote: > >> Hi, >> >> You could send a queue.delete command over the channel, how to do that >> will depend on the client library you are using. See here for AMQP's >> queue.delete http://www.rabbitmq.com/amqp-0-9-1-quickref.html >> >> If you have the management plugin enabled, you can delete them there as >> well. Just browse to the queue you want to delete, and at the bottom of the >> page you'll find the delete button. >> >> You can also do it via curl on the command line, see more here: >> http://hg.rabbitmq.com/rabbitmq-management/raw-file/rabbitmq_v3_1_5/priv/www/api/index.htmlor here >> http://www.rabbitmq.com/management-cli.html >> >> Regards, >> >> Alvaro >> >> >> >> >> On Wed, Oct 9, 2013 at 1:10 AM, Rajasekhar P wrote: >> >>> How to delete some of the Queues based on Queue names from RabbitMQ >>> server without using "raabitmqctl reset"? Thanks in advance. >>> >>> _______________________________________________ >>> 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 at rabbitmq.com Wed Oct 9 08:17:33 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Wed, 9 Oct 2013 11:17:33 +0400 Subject: [rabbitmq-discuss] Delete Queue from RabbitMQ In-Reply-To: References: Message-ID: <921F009B-7250-4038-A9E3-6F47E1B02010@rabbitmq.com> On oct 9, 2013, at 10:49 a.m., Rajasekhar P wrote: > With management plugin able delete specific queues. But I didn't understand the command for deleting specific queue through cmd. Here am using java client See Channel#queueDelete in http://www.rabbitmq.com/releases/rabbitmq-java-client/v3.1.5/rabbitmq-java-client-javadoc-3.1.5/ MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From sekhar434145 at gmail.com Wed Oct 9 08:25:41 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Wed, 9 Oct 2013 12:55:41 +0530 Subject: [rabbitmq-discuss] RabbitMQ Clustering Policy issue Message-ID: Hi, I have created two rabbitmq nodes and executed below command on one of the node. rabbitmqctl set_policy ha-one "^cust1\." "{""ha-mode"":""exactly"",""ha-params"":1}" As per my understanding from the documentation https://www.rabbitmq.com/ha.html, only node having the queue starts with "cust1." has to be consumed messages from queue name "cust1.". But, here when we are running clustered nodes whatever the queues we have created all will be replicated across the nodes. So, here my question is how to test the above policy? Thanks in advance! -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael at rabbitmq.com Wed Oct 9 08:27:23 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Wed, 9 Oct 2013 11:27:23 +0400 Subject: [rabbitmq-discuss] if stop RabbitMq Server Service, the Server try to create 'queues' folder ? In-Reply-To: <1381301532757-30365.post@n5.nabble.com> References: <1381284358248-30359.post@n5.nabble.com> <05AF4AE0-F69E-411B-A789-128A7E215DD9@rabbitmq.com> <1381301532757-30365.post@n5.nabble.com> Message-ID: <094AC605-5DAB-4F7F-9D79-6505401A3FE8@rabbitmq.com> On oct 9, 2013, at 10:52 a.m., 3k4b251 <314992959 at qq.com> wrote: > (2) when 30000 queues have been created , [erl.exe]'s size is about > 780M . and database only have the file 'rabbit_durable_queue.DCD' > and 'rabbit_durable_queue.DCL'. Do you need all those queues to be durable? Can you post rabbitmqctl report right after 30K queues are created and after (if possible) you initiate the shutdown? MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From michael at rabbitmq.com Wed Oct 9 08:29:42 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Wed, 9 Oct 2013 11:29:42 +0400 Subject: [rabbitmq-discuss] RabbitMQ Clustering Policy issue In-Reply-To: References: Message-ID: <122EC819-CFF7-424E-8F7B-F56E7B75F8D7@rabbitmq.com> On oct 9, 2013, at 11:25 a.m., Rajasekhar P wrote: > As per my understanding from the documentation https://www.rabbitmq.com/ha.html, only node having the queue starts with "cust1." has to be consumed messages from queue name "cust1.". Sorry, I'm not sure what that means. > But, here when we are running clustered nodes whatever the queues we have created all will be replicated across the nodes. The policy means that queues that match the pattern will have 1 mirror. > So, here my question is how to test the above policy? Create a cluster of 2-3 nodes, declare a mirrored queue on one of them (say, rabbit1), then publish a message that ends up in that queue. Then shut that node down and consume your message from rabbit2 or rabbit3. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From michael at rabbitmq.com Wed Oct 9 08:58:08 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Wed, 9 Oct 2013 11:58:08 +0400 Subject: [rabbitmq-discuss] if stop RabbitMq Server Service, the Server try to create 'queues' folder ? In-Reply-To: <094AC605-5DAB-4F7F-9D79-6505401A3FE8@rabbitmq.com> References: <1381284358248-30359.post@n5.nabble.com> <05AF4AE0-F69E-411B-A789-128A7E215DD9@rabbitmq.com> <1381301532757-30365.post@n5.nabble.com> <094AC605-5DAB-4F7F-9D79-6505401A3FE8@rabbitmq.com> Message-ID: On oct 9, 2013, at 11:27 a.m., Michael Klishin wrote: > Do you need all those queues to be durable? Can you post rabbitmqctl report > right after 30K queues are created and after (if possible) you initiate the shutdown? And a couple of follow-up questions: * What version of rabbit do you run? * Please post rabbitmqctl status output, too. Thank you. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From brianin3d at yahoo.com Tue Oct 8 20:23:06 2013 From: brianin3d at yahoo.com (Brian Hammond) Date: Tue, 8 Oct 2013 12:23:06 -0700 (PDT) Subject: [rabbitmq-discuss] abnormally large memory use in "binaries" Message-ID: <1381260186.35774.YahooMailNeo@web122002.mail.ne1.yahoo.com> I've been seeing a problem on and off with rabbitmq using a ton of memory with few messages which is suddenly much worse today. This morning, I upgraded to (RabbitMQ 3.1.5.41008,?Erlang R14B04) using the nightly build from?08-Oct-2013. About 6 hours later I have 19GB of memory in use with 800 messages.? According to the management console, the messages are using up 2mb and 19GB is in "binaries". Is this a known issue that is being actively investigated? I'm happy to provide addition details if it will help work towards a resolution. -------------- next part -------------- An HTML attachment was scrubbed... URL: From sekhar434145 at gmail.com Wed Oct 9 09:59:30 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Wed, 9 Oct 2013 14:29:30 +0530 Subject: [rabbitmq-discuss] RabbitMQ node - unable to execute any command getting error Message-ID: Hi, After changing the node name through system preferences am unable to start the app and attached logs as well. Could please help me on this? C:\Program Files\RabbitMQ Server\rabbitmq_server-3.1.3\sbin>rabbitmqctl start_app Starting node rabbit3 at PrajasekharLT ... Error: unable to connect to node rabbit3 at PrajasekharLT: nodedown DIAGNOSTICS =========== nodes in question: [rabbit3 at PrajasekharLT] hosts, their running nodes and ports: - PrajasekharLT: [{rabbit,49189},{rabbitmqctl2964294,63950}] current node details: - node name: rabbitmqctl2964294 at PrajasekharLT - home dir: C:\Users\prajasekhar - cookie hash: v1QLGXa7l1Vw/KNxYHGGSQ== -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: log.rar Type: application/rar Size: 1535 bytes Desc: not available URL: From simon at rabbitmq.com Wed Oct 9 10:30:05 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 09 Oct 2013 10:30:05 +0100 Subject: [rabbitmq-discuss] Connection blocked by "flow" for more than 600 seconds In-Reply-To: <5254935B.9040400@rabbitmq.com> References: <1381263436076-30349.post@n5.nabble.com> <1381267760478-30351.post@n5.nabble.com> <52548229.9000502@rabbitmq.com> <1381273745546-30354.post@n5.nabble.com> <5254935B.9040400@rabbitmq.com> Message-ID: <5255221D.3050907@rabbitmq.com> On 09/10/2013 00:20, Matthias Radestock wrote: > You might just be seeing normal flow control behaviour. Looks like you > have lots of durable queues and are publishing persistent messages. That > puts a huge strain on disk i/o, so that's likely the bottleneck which > causes flow control to kick in. *Particularly* if (as the OP was originally) there is a crunch on file descriptors - with lots of queues and very few file descriptors to share among them I suspect we might see quite a slowdown. Cheers, Simon From emile at rabbitmq.com Wed Oct 9 12:25:52 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Wed, 09 Oct 2013 12:25:52 +0100 Subject: [rabbitmq-discuss] RabbitMQ node - unable to execute any command getting error In-Reply-To: References: Message-ID: <52553D40.2090905@rabbitmq.com> Hi, On 09/10/13 09:59, Rajasekhar P wrote: > Hi, After changing the node name through system preferences am unable > to start the app and attached logs as well. The broker names the database directory using the hostname. If the hostname changes, a new empty database is created. Make sure the hostname is fixed and resolvable to avoid data loss. > C:\Program Files\RabbitMQ Server\rabbitmq_server-3.1.3\sbin>rabbitmqctl start_app Depending on the environment of the shell that command might be trying to contact the node by its old or new name. Use the "-n" option to set the node explicitly or make sure the shell environment has an up-tp-date hostname. -Emile From emile at rabbitmq.com Wed Oct 9 13:41:38 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Wed, 09 Oct 2013 13:41:38 +0100 Subject: [rabbitmq-discuss] About "Remote procedure call", handle reply queue In-Reply-To: References: <1381217713.3217.180.camel@mrhou> Message-ID: <52554F02.9050706@rabbitmq.com> Hi, On 08/10/13 10:19, Michael Klishin wrote: > On oct 8, 2013, at 11:35 a.m., houzhibin wrote: >> or how to set timeout of replyQueue; > > It depends on what language and client you use. What > are they? You can get more details about how to set the time-to-live of queues and messages here: http://www.rabbitmq.com/ttl.html This illustrates the settings with Java. -Emile -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: OpenPGP digital signature URL: From Shashank.Lothe at techmahindra.com Wed Oct 9 13:56:59 2013 From: Shashank.Lothe at techmahindra.com (Lothe Shashank) Date: Wed, 9 Oct 2013 12:56:59 +0000 Subject: [rabbitmq-discuss] Rabbitmq-C amqp_basic_publish crash on connection loss Message-ID: Hi Alan, Thanks for your earlier prompt replies. I am simulating a situation to test amqp_basic_publish. I modified the amqp_sendstring example to publish a message to the broker every 3 seconds. While the messages are getting published, I stop the broker using "rabbitmqctl stop_app". As the broker is stopped, amqp_basic_publish is crashed. Code snippet as follows. while(1) { amqp_basic_properties_t props; struct timeval t; int ret; t.tv_sec = 3; t.tv_usec = 0; select(0, NULL, NULL, NULL, &t); props._flags = AMQP_BASIC_CONTENT_TYPE_FLAG | AMQP_BASIC_DELIVERY_MODE_FLAG; props.content_type = amqp_cstring_bytes("text/plain"); props.delivery_mode = 2; /* persistent delivery mode */ printf("conn %u\n",conn); ret=amqp_basic_publish(conn, 1, amqp_cstring_bytes(exchange), amqp_cstring_bytes(routingkey), 1, 0, &props, amqp_cstring_bytes(messagebody)); printf("ret=%d\n",ret); } Program output: conn 143663112 ret=0 conn 143663112 ret=0 conn 143663112 First 2 published happened properly. After that I stopped broker. The program terminated. Considering this scenario, I would like to understand 1. if there is a way to check the connection before I publish 2. if the connection value becomes NULL, as we stop the broker. 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 jesper.louis.andersen at gmail.com Wed Oct 9 14:26:37 2013 From: jesper.louis.andersen at gmail.com (Jesper Louis Andersen) Date: Wed, 9 Oct 2013 15:26:37 +0200 Subject: [rabbitmq-discuss] [PATCH] Suggestions for improving the RabbitMQ Erlang Client In-Reply-To: <525410A1.7050607@rabbitmq.com> References: <525410A1.7050607@rabbitmq.com> Message-ID: Replying inline On Tue, Oct 8, 2013 at 4:03 PM, Simon MacMullen wrote: > > You are correct that the synchronous writing hurts performance - but it's > not quite enough to just switch to async calls. The test suite starts > failing, for a start :-) > > So there is a bit of work needed here to ensure that the messages to the > writer get flushed before the socket gets closed. I've started work on > this, and it should end up in 3.2.0. > > Ah, I was afraid things might not be so obviously easy. I am glad you sorted out the more specific parts :) Thanks for the fixes. > > > This is reasonable - but of course it's a more substantial change, > unlikely to happen particularly soon. > > If we are to do that, it is better to re-imagine the whole way the stack works I think. There are other parts of the Erlang client that could do with less misery. I fail to see the need for supervisor2 and gen_server2 in the code at all for instance. > > The writer process inside RabbitMQ is something I wanted to optimize as >> well, so I tried changing two things in it. First, I avoided a >> recomputation of `iolist_size/1` on every received message. And I just >> dropped keeping a small 1414 byte packet size around. The rationale is >> this: either we will be running at a high pace in the writer code and >> then easily exceed the 1414 byte packet size. In this case, bumping it >> to 64 kilobytes and making few calls to the underlying port seems to be >> the right thing to do. >> > > Hmm. I wasn't actually able to measure a discernable performance > difference with these changes to the writer. Were you? > > Keep it as is for now. Changing this messes with latency, potentially. My worry is that you are pushing out small packets where a larger packet might be equally easy to push. This then means more work on the line between the client and the server. Keeping the outgoing queue full will prove to be a problem though with the current setup. We can't guarantee that all processes interested in pushing messages will be run before the process doing the actual sending is. And I did not manage to measure anything significantly better inside the Erlang VM with this change. Chances are you may see less kernel-processing though - but I did not measure that either. So in the interest of keeping it stable, I propose not changing it. -- J. -------------- next part -------------- An HTML attachment was scrubbed... URL: From tilak.singh at icreon.com Wed Oct 9 14:34:02 2013 From: tilak.singh at icreon.com (ding) Date: Wed, 9 Oct 2013 06:34:02 -0700 (PDT) Subject: [rabbitmq-discuss] Identifying and deleting messages from RMQ queues Message-ID: <1381325642807-30379.post@n5.nabble.com> Hi, I'm using rabbitmq in one of my project and as per requirement I first add messages into DB table and then publish them into RMQ queues. And on the other side consumer server consumes message from queues and update their status in DB (so that I can identify which messages have been consumed so far and which are yet to be consumed). Now user can cancel messages from processing. This means if user updates message status as `cancelled` then that message should not be processed by the consumer. In other word, I want to delete cancelled messages from RMQ queues so that consumer don't receive them. Is this possible to delete some selective messages from rabbitmq queues ? Thanks, Ding -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Identifying-and-deleting-messages-from-RMQ-queues-tp30379.html Sent from the RabbitMQ mailing list archive at Nabble.com. From emile at rabbitmq.com Wed Oct 9 14:50:06 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Wed, 09 Oct 2013 14:50:06 +0100 Subject: [rabbitmq-discuss] Identifying and deleting messages from RMQ queues In-Reply-To: <1381325642807-30379.post@n5.nabble.com> References: <1381325642807-30379.post@n5.nabble.com> Message-ID: <52555F0E.3070100@rabbitmq.com> Hi, On 09/10/13 14:34, ding wrote: > In other word, I want to delete cancelled messages from RMQ queues so > that consumer don't receive them. No, you can only remove messages from the front of the queue. If the message that you want to delete has not reached the front yet then you must wait for it to reach the front before it can be deleted. You may be able to send deletion messages to a separate deletion queue, and have the consumer subscribe to the deletion queue as well. If the consumer receives a deletion message then it will know to ignore the corresponding message when it reaches the front of the regular processing queue. The deletion queue will need to stay short and the consumer will have to prioritise message from the deletion queue. This will only work if there is one consumer. If there are multiple consumers then they will need to arrange to share the information from the deletion queue. This solution is also inherently racy. The broker does not guarantee the relative order of messages that travel by different paths. -Emile From anandlramadurg at gmail.com Wed Oct 9 18:23:21 2013 From: anandlramadurg at gmail.com (Anand Ramadurg) Date: Wed, 9 Oct 2013 22:53:21 +0530 Subject: [rabbitmq-discuss] RabbitMQ startup error. Message-ID: Hello RabbitMQ experts, I am having very strange intermittent issues with RabbitMQ. I do not have any rabbitmq.env file, it is using the default env properties. So it uses HOSTNAME as the node name. But sometime it fails with ... Error: unable to connect to node 'rabbit at myhostname': nodedown DIAGNOSTICS =========== nodes in question: ['rabbit at myhostname'] hosts, their running nodes and ports: - myhostname: [{rabbitmqctl21189,48500}] current node details: - node name: rabbitmqctl21189 at localhost - home dir: /var/lib/rabbitmq - cookie hash: JfYeEGa/XCxy2zvykbLdjB== Any obvious root cause of this? --Anand -------------- next part -------------- An HTML attachment was scrubbed... URL: From zachary.w.austin at gmail.com Wed Oct 9 18:50:13 2013 From: zachary.w.austin at gmail.com (Zach Austin) Date: Wed, 9 Oct 2013 10:50:13 -0700 (PDT) Subject: [rabbitmq-discuss] RabbitMQ Cluster - node hanging on join_cluster - mnesia reporting connection issues Message-ID: <972634e5-f3fd-48cd-a61f-d202e9329929@googlegroups.com> Hi All, We're having an issue getting one machine in our rabbit cluster back up and running after a reboot affected two of the 4 servers in the cluster. Here is the cluster layout: rabbit1 rabbit2 rabbit3 (master) rabbit4 rabbit1 and rabbit2 were rebooted. Rabbit2 successfully rejoined the cluster. Rabbit1 did not. Additionally, the rabbitMQ will no longer start on rabbit1. Reviewing the log on rabbit1, I find: Mnesia on 'rabbit1' could not connect to node(s) ['rabbit2'] I can ping rabbit1 from rabbit2 and vice-versa. What I've done so far: 1) Verified the erlang cookie values amongst all cluster nodes are identical 2) Verified the windows firewall is disabled on all cluster nodes. 2) Issued "rabbitmqctl forget_cluster_node rabbit1" on the rabbit3 master. 2) Deleted the mnesia database on rabbit1. 3) Successfully started RabbitMQ on rabbit1 (deleting mnesia DB did this). 4) Issued "rabbitmqctl stop_app", followed by "rabbitmqctl join_cluster rabbit3". At this point, rabbitmqctl hangs after the "cluster node... with node... " line (I waited over 15 minutes). Reviewing the log on rabbit1 again, I find the same issue logged: Mnesia on 'rabbit1' could not connect to node(s) ['rabbit2'] Can anyone point me in the direction of what I should check next? Thank you. Zach -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael at rabbitmq.com Wed Oct 9 19:28:28 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Wed, 9 Oct 2013 22:28:28 +0400 Subject: [rabbitmq-discuss] RabbitMQ Cluster - node hanging on join_cluster - mnesia reporting connection issues In-Reply-To: <972634e5-f3fd-48cd-a61f-d202e9329929@googlegroups.com> References: <972634e5-f3fd-48cd-a61f-d202e9329929@googlegroups.com> Message-ID: Zach, Can it be a firewall issue? MK On Oct 9, 2013, at 9:50 PM, Zach Austin wrote: > At this point, rabbitmqctl hangs after the "cluster node... with node... " line (I waited over 15 minutes). Reviewing the log on rabbit1 again, I find the same issue logged: Mnesia on 'rabbit1' could not connect to node(s) ['rabbit2'] > > Can anyone point me in the direction of what I should check next? -------------- next part -------------- An HTML attachment was scrubbed... URL: From zachary.w.austin at gmail.com Wed Oct 9 21:43:19 2013 From: zachary.w.austin at gmail.com (Zach Austin) Date: Wed, 9 Oct 2013 13:43:19 -0700 (PDT) Subject: [rabbitmq-discuss] RabbitMQ Cluster - node hanging on join_cluster - mnesia reporting connection issues In-Reply-To: <972634e5-f3fd-48cd-a61f-d202e9329929@googlegroups.com> References: <972634e5-f3fd-48cd-a61f-d202e9329929@googlegroups.com> Message-ID: <09127580-93c8-498f-a3ae-03897b99f571@googlegroups.com> The issue was resolved by restarting RabbitMQ on rabbit2. Not sure why this was required, especially after removing, resetting, and re-adding rabbit1. On Wednesday, October 9, 2013 12:50:13 PM UTC-5, Zach Austin wrote: > > Hi All, > > We're having an issue getting one machine in our rabbit cluster back up > and running after a reboot affected two of the 4 servers in the cluster. > > Here is the cluster layout: > rabbit1 > rabbit2 > rabbit3 (master) > rabbit4 > > rabbit1 and rabbit2 were rebooted. Rabbit2 successfully rejoined the > cluster. Rabbit1 did not. Additionally, the rabbitMQ will no longer start > on rabbit1. > > Reviewing the log on rabbit1, I find: Mnesia on 'rabbit1' could not > connect to node(s) ['rabbit2'] > > I can ping rabbit1 from rabbit2 and vice-versa. > > What I've done so far: > 1) Verified the erlang cookie values amongst all cluster nodes are > identical > 2) Verified the windows firewall is disabled on all cluster nodes. > 2) Issued "rabbitmqctl forget_cluster_node rabbit1" on the rabbit3 master. > 2) Deleted the mnesia database on rabbit1. > 3) Successfully started RabbitMQ on rabbit1 (deleting mnesia DB did this). > 4) Issued "rabbitmqctl stop_app", followed by "rabbitmqctl join_cluster > rabbit3". > > At this point, rabbitmqctl hangs after the "cluster node... with node... " > line (I waited over 15 minutes). Reviewing the log on rabbit1 again, I > find the same issue logged: Mnesia on 'rabbit1' could not connect to > node(s) ['rabbit2'] > > Can anyone point me in the direction of what I should check next? > > Thank you. > > Zach > -------------- next part -------------- An HTML attachment was scrubbed... URL: From stuff at moesel.net Wed Oct 9 22:14:43 2013 From: stuff at moesel.net (Chris) Date: Wed, 9 Oct 2013 17:14:43 -0400 Subject: [rabbitmq-discuss] Performance Implications of Federation Policies without Uplinks? Message-ID: Hi RabbitMQ Gurus, I would like to know if there is any performance penalty for having federation policies in place if there are no defined uplinks? Use Case: I'd like to configure all of the policies as part of the baseline config of my server, which may or may not eventually be used with federation. Then when it comes time to federate, I just need to define the uplink and I'm done (or when it comes time to unfederate I just remove the uplink and I'm done). Since many servers may never actually define uplinks, however, I want to ensure the pre-configured federation policies don't have any negative impact. Thanks, Chris -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael at rabbitmq.com Wed Oct 9 22:18:55 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Thu, 10 Oct 2013 01:18:55 +0400 Subject: [rabbitmq-discuss] Performance Implications of Federation Policies without Uplinks? In-Reply-To: References: Message-ID: <36B040B6-E37B-468D-B5D7-0253619314B2@rabbitmq.com> On Oct 10, 2013, at 1:14 AM, Chris wrote: > I would like to know if there is any performance penalty for having federation policies in place if there are no defined uplinks? No. Federation will run inside the same VM as Rabbit and consume a tiny amount of RAM but throughput and latency should not be affected. Also, load testing your cluster with MulticastMain would provide a much more accurate answers ;) MK From 314992959 at qq.com Thu Oct 10 03:54:03 2013 From: 314992959 at qq.com (3k4b251) Date: Wed, 9 Oct 2013 19:54:03 -0700 (PDT) Subject: [rabbitmq-discuss] if stop RabbitMq Server Service, the Server try to create 'queues' folder ? In-Reply-To: References: <1381284358248-30359.post@n5.nabble.com> <05AF4AE0-F69E-411B-A789-128A7E215DD9@rabbitmq.com> <1381301532757-30365.post@n5.nabble.com> <094AC605-5DAB-4F7F-9D79-6505401A3FE8@rabbitmq.com> Message-ID: <1381373643741-30386.post@n5.nabble.com> your question : Do you need all those queues to be durable? Can you post rabbitmqctl report 1) Yes, I try to create durable queue for every consumer , So if possible I'd like to create server million queues. 2)what's your mean about rabbitmqctl report? list_queues, list_connections? or status? your question : right after 30K queues are created and after (if possible) you initiate the shutdown? 3) Never, I wait servers minutes to make sure the erl.exe's ram don't have big change. your question : What version of rabbit do you run? 4)rabbitmq_server-3.1.5 and otp_win64_R16B02.exe Please post rabbitmqctl status output, too. 5) -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/if-stop-RabbitMq-Server-Service-the-Server-try-to-create-queues-folder-tp30359p30386.html Sent from the RabbitMQ mailing list archive at Nabble.com. From sagu.prf1 at gmail.com Thu Oct 10 05:55:15 2013 From: sagu.prf1 at gmail.com (sagu prf) Date: Wed, 9 Oct 2013 21:55:15 -0700 Subject: [rabbitmq-discuss] amqp connection vs channels vs sockets vs file descriptor Message-ID: Hello team , i am bit confused with the following thing , i can see the number of sockets used is 44000 ,file descriptor used 44010 but number of connections and channels are 110000 in less load (5 k messages in queue) messages rate ~100msgs /second (in ,del ,ack) number of channels and connections are equal (in numbers) are established state. Files descriptor also opened state .. number of consumers connected to rabbitmq is less than 10K and we are using 200 Queues in 8 vhosts . Why number of sockets are utilized in high number (established state) ? why number of connections/channels are more than sockets ? how we can reduce /close these connections ? memory is around 5GB utilization only .. rabbitmq logs i can see accepting connection and closing connection and i don't see any issues . can you pls suggest on this ? From alan.antonuk at gmail.com Thu Oct 10 07:55:41 2013 From: alan.antonuk at gmail.com (Alan Antonuk) Date: Wed, 9 Oct 2013 23:55:41 -0700 Subject: [rabbitmq-discuss] Rabbitmq-C amqp_basic_publish crash on connection loss In-Reply-To: References: Message-ID: If used correctly, rabbitmq-c should not cause your program to terminate. I would need a bit more information by what you mean by "program terminated" to help you diagnose your issue. Did it segfault? Did it abort()? If so, is there a callstack indicating where this happened? On Wed, Oct 9, 2013 at 5:56 AM, Lothe Shashank < Shashank.Lothe at techmahindra.com> wrote: > 1. if there is a way to check the connection before I publish > No, and even if there was, its entirely possible that the connection could be closed between the time the program checked to see if the connection was open and the time amqp_basic_publish() was called. > 2. if the connection value becomes NULL, as we stop the broker. > amqp_connection_state_t objects are only allocated with amqp_new_connection(), and only deallocated with amqp_destroy_connection(). No other function in rabbitmq-c should change the external facing value of an amqp_connection_state_t. Its an opaque pointer. http://stackoverflow.com/a/7553775/786714 for a better explanation on the pattern in use here. -Alan -------------- next part -------------- An HTML attachment was scrubbed... URL: From zb.hou at shitousoft.com Thu Oct 10 08:05:07 2013 From: zb.hou at shitousoft.com (houzhibin) Date: Thu, 10 Oct 2013 15:05:07 +0800 Subject: [rabbitmq-discuss] how to solve this exception? thanks ! Message-ID: <1381388707.3315.17.camel@mrhou> com.rabbitmq.client.ShutdownSignalException: channel error; reason: {#method(reply-code=406, reply-text=PRECONDITION_FAILED - unknown delivery tag 1, class-id=60, method-id=80), null, ""} at com.rabbitmq.client.QueueingConsumer.handle(QueueingConsumer.java:198) at com.rabbitmq.client.QueueingConsumer.nextDelivery(QueueingConsumer.java:215) at com.anyisheng.doctoran.rabbitmq.receive.ReceiveUserBakInfo.getBakInfo(ReceiveUserBakInfo.java:49) at com.anyisheng.doctoran.rabbitmq.receive.ReceiveUserBakInfo.run(ReceiveUserBakInfo.java:23) at java.lang.Thread.run(Thread.java:722) Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; reason: {#method(reply-code=406, reply-text=PRECONDITION_FAILED - unknown delivery tag 1, class-id=60, method-id=80), null, ""} at com.rabbitmq.client.impl.ChannelN.asyncShutdown(ChannelN.java:474) at com.rabbitmq.client.impl.ChannelN.processAsync(ChannelN.java:315) at com.rabbitmq.client.impl.AMQChannel.handleCompleteInboundCommand(AMQChannel.java:144) at com.rabbitmq.client.impl.AMQChannel.handleFrame(AMQChannel.java:91) at com.rabbitmq.client.impl.AMQConnection $MainLoop.run(AMQConnection.java:533) -- ??? RDC hou zhibin -------------------------------------------------------------------- ????????????? Shitou Software?Beijing?Co.,Ltd. ???????????17? Mobile Phone: 13311198809 E-mail?zb.hou at shitousoft.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael at rabbitmq.com Thu Oct 10 09:07:12 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Thu, 10 Oct 2013 12:07:12 +0400 Subject: [rabbitmq-discuss] how to solve this exception? thanks ! In-Reply-To: <1381388707.3315.17.camel@mrhou> References: <1381388707.3315.17.camel@mrhou> Message-ID: On Oct 10, 2013, at 11:05 AM, houzhibin wrote: > com.rabbitmq.client.ShutdownSignalException: channel error; reason: {#method(reply-code=406, reply-text=PRECONDITION_FAILED - unknown delivery tag 1, class-id=60, method-id=80), null, ""} You either ack/reject a delivery that was automatically acknowledged (see tutorial 2 [1]) or try to ack/reject a delivery that was already acked/rejected. 1. http://www.rabbitmq.com/getstarted.html MK From michael at rabbitmq.com Thu Oct 10 09:09:47 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Thu, 10 Oct 2013 12:09:47 +0400 Subject: [rabbitmq-discuss] amqp connection vs channels vs sockets vs file descriptor In-Reply-To: References: Message-ID: <3211586A-10DD-4200-9E19-4D07E442E57A@rabbitmq.com> On Oct 10, 2013, at 8:55 AM, sagu prf wrote: > Why number of sockets are utilized in high number (established state) > ? why number of connections/channels are more than sockets ? RabbitMQ uses file handles to store messages on disk and so on, not just sockets. Channels are just integers on the wire and were added to the protocol to reduce the amount of TCP connections needed for concurrent applications using AMQP 0-9-1 clients. See http://www.rabbitmq.com/tutorials/amqp-concepts.html for the overview. > how we can reduce /close these connections ? Use a single or low[er] number of connections and more channels. MK From michael at rabbitmq.com Thu Oct 10 09:12:40 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Thu, 10 Oct 2013 12:12:40 +0400 Subject: [rabbitmq-discuss] if stop RabbitMq Server Service, the Server try to create 'queues' folder ? In-Reply-To: <1381373643741-30386.post@n5.nabble.com> References: <1381284358248-30359.post@n5.nabble.com> <05AF4AE0-F69E-411B-A789-128A7E215DD9@rabbitmq.com> <1381301532757-30365.post@n5.nabble.com> <094AC605-5DAB-4F7F-9D79-6505401A3FE8@rabbitmq.com> <1381373643741-30386.post@n5.nabble.com> Message-ID: On Oct 10, 2013, at 6:54 AM, 3k4b251 <314992959 at qq.com> wrote: > 1) Yes, I try to create durable queue for every consumer , So if > possible I'd like to create server million queues. I'm afraid millions of durable queues will put quite a bit of stress on the broker during startup and, potentially, operation. Certainly RAM usage can't be low with millions of entities to keep around. > 2)what's your mean about rabbitmqctl report? list_queues, list_connections? > or status? Run rabbitmqctl report and post the output. MK From sekhar434145 at gmail.com Thu Oct 10 09:52:34 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Thu, 10 Oct 2013 14:22:34 +0530 Subject: [rabbitmq-discuss] RabbitMQ cluster - why policy is appearing in all the nodes? Message-ID: Hi Team, I have created clustered environment with two rabbitmq nodes and I have created below policy on one the node called rabbit1, => rabbitmqctl set_policy ha-one "^cust1\." "{""ha-mode"":""exactly"",""ha-params"":1}" When I execute the command "rabbitmqctl list_policies" on rabbit1 and rabbit2 nodes, both the nodes are displaying polices. Is that the right behaviour? And if it is the right behaviour, then how to run different policies in different nodes like below. If there are 4 nodes in the cluster, a> rabbit1&rabbit2 should have one pattern, say "customer" => rabbitmqctl set_policy ha-one "^customer\." "{""ha-mode"":""exactly"",""ha-params"":2}" b> rabbit3&rabbit4 should have one pattern, say "merchant" => rabbitmqctl set_policy ha-one "^merchant\." "{""ha-mode"":""exactly"",""ha-params"":2}" Please any one could explain this behavior and how to achieve? Thank you. -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael at rabbitmq.com Thu Oct 10 10:01:01 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Thu, 10 Oct 2013 13:01:01 +0400 Subject: [rabbitmq-discuss] RabbitMQ cluster - why policy is appearing in all the nodes? In-Reply-To: References: Message-ID: On Oct 10, 2013, at 12:52 PM, Rajasekhar P wrote: > When I execute the command "rabbitmqctl list_policies" on rabbit1 and rabbit2 nodes, both the nodes are displaying polices. Is that the right behaviour? It is. Your clients can connect to any node in the cluster and use it: publish and consume messages, create queues, etc. If a queue can be created on any node, then it's natural to distribute policies, no? Because of this, certain amount of cluster state is automatically propagated to all cluster nodes. Without this, clients would have to know what node exactly they are talking to and that's significantly less convenient, especially if you take things such as load balancers into the picture. MK From simon at rabbitmq.com Thu Oct 10 10:03:42 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 10 Oct 2013 10:03:42 +0100 Subject: [rabbitmq-discuss] RabbitMQ cluster - why policy is appearing in all the nodes? In-Reply-To: References: Message-ID: <52566D6E.6040303@rabbitmq.com> On 10/10/13 09:52, Rajasekhar P wrote: > When I execute the command "rabbitmqctl list_policies" on rabbit1 and > rabbit2 nodes, both the nodes are displaying polices. Is that the right > behaviour? Policies and parameters are cluster-wide. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From huitrouge at googlemail.com Thu Oct 10 14:51:46 2013 From: huitrouge at googlemail.com (Malte Hurrelmann) Date: Thu, 10 Oct 2013 06:51:46 -0700 (PDT) Subject: [rabbitmq-discuss] Wrong number of messages_ready shown in queue when using message-ttl with federation. Message-ID: <620281c7-b720-4a23-906c-1a49f93148a0@googlegroups.com> Hi, we're using a two broker setup, connected by the federation-plugin to ensure the consumers have a broker to fail over to, if the primary broker should become unreachable. Messages are published to an exchange in the master-broker with a message-ttl on them, so that they don't pile up endlessly on the main and backup broker. I noticed in some rare cases the number of "messages_ready" in a queue as shown in management_plugin / REST-API / "rabbitmqctl list_queues" is not correct and increases to grow until I do a GET on that queue. For example it shows 1000 messages and after I get 1 message of that queue next time it shows 500 messages remaining. After that the message-count is correct again. I'm planning to do some monitoring on that info, so it would be nice to have reliable info on the number of message left in the queues. Any ideas on how to fix this issue or where to get the correct amount of messages_ready elsewhere? Best regards, Malte. -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Thu Oct 10 15:16:15 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 10 Oct 2013 15:16:15 +0100 Subject: [rabbitmq-discuss] Wrong number of messages_ready shown in queue when using message-ttl with federation. In-Reply-To: <620281c7-b720-4a23-906c-1a49f93148a0@googlegroups.com> References: <620281c7-b720-4a23-906c-1a49f93148a0@googlegroups.com> Message-ID: <5256B6AF.80601@rabbitmq.com> Have you read http://www.rabbitmq.com/ttl.html#per-message-ttl-caveats? If messages expire while in the middle of a queue, they will not be removed until they reach the head of the queue. That sounds like what you're seeing. Cheers, Simon On 10/10/13 14:51, Malte Hurrelmann wrote: > Hi, > > we're using a two broker setup, connected by the federation-plugin to > ensure the consumers have a broker to fail over to, if the primary > broker should become unreachable. > Messages are published to an exchange in the master-broker with a > message-ttl on them, so that they don't pile up endlessly on the main > and backup broker. > > I noticed in some rare cases the number of "messages_ready" in a queue > as shown in management_plugin / REST-API / "rabbitmqctl list_queues" is > not correct and increases to grow until I do a GET on that queue. > For example it shows 1000 messages and after I get 1 message of that > queue next time it shows 500 messages remaining. After that the > message-count is correct again. > > I'm planning to do some monitoring on that info, so it would be nice to > have reliable info on the number of message left in the queues. > > Any ideas on how to fix this issue or where to get the correct amount of > messages_ready elsewhere? > > Best regards, > Malte. > > > _______________________________________________ > 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 huitrouge at googlemail.com Thu Oct 10 19:12:53 2013 From: huitrouge at googlemail.com (Malte Hurrelmann) Date: Thu, 10 Oct 2013 20:12:53 +0200 Subject: [rabbitmq-discuss] Wrong number of messages_ready shown in queue when using message-ttl with federation. In-Reply-To: <5256B6AF.80601@rabbitmq.com> References: <620281c7-b720-4a23-906c-1a49f93148a0@googlegroups.com> <5256B6AF.80601@rabbitmq.com> Message-ID: <1381428773.2456.25.camel@malte-VGN-CR21S-L> Ok, so if a message without or with a longer TTL is at the head of the queue this will "block" all other messages to expire until they are at head of queue themselves. In our case however, all messages are always enqueued with the same TTL (72hours), so they should all expire? So I take it this is something different? BTW. We are running RMQ 3.1.4. Regards, Malte. On Do, 2013-10-10 at 15:16 +0100, Simon MacMullen wrote: > Have you read http://www.rabbitmq.com/ttl.html#per-message-ttl-caveats? > > If messages expire while in the middle of a queue, they will not be > removed until they reach the head of the queue. That sounds like what > you're seeing. > > Cheers, Simon > > On 10/10/13 14:51, Malte Hurrelmann wrote: > > Hi, > > > > we're using a two broker setup, connected by the federation-plugin to > > ensure the consumers have a broker to fail over to, if the primary > > broker should become unreachable. > > Messages are published to an exchange in the master-broker with a > > message-ttl on them, so that they don't pile up endlessly on the main > > and backup broker. > > > > I noticed in some rare cases the number of "messages_ready" in a queue > > as shown in management_plugin / REST-API / "rabbitmqctl list_queues" is > > not correct and increases to grow until I do a GET on that queue. > > For example it shows 1000 messages and after I get 1 message of that > > queue next time it shows 500 messages remaining. After that the > > message-count is correct again. > > > > I'm planning to do some monitoring on that info, so it would be nice to > > have reliable info on the number of message left in the queues. > > > > Any ideas on how to fix this issue or where to get the correct amount of > > messages_ready elsewhere? > > > > Best regards, > > Malte. > > > > > > _______________________________________________ > > rabbitmq-discuss mailing list > > rabbitmq-discuss at lists.rabbitmq.com > > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > > > From huitrouge at googlemail.com Thu Oct 10 19:11:07 2013 From: huitrouge at googlemail.com (Malte Hurrelmann) Date: Thu, 10 Oct 2013 20:11:07 +0200 Subject: [rabbitmq-discuss] Wrong number of messages_ready shown in queue when using message-ttl with federation. In-Reply-To: <5256B6AF.80601@rabbitmq.com> References: <620281c7-b720-4a23-906c-1a49f93148a0@googlegroups.com> <5256B6AF.80601@rabbitmq.com> Message-ID: <1381428667.2456.24.camel@malte-VGN-CR21S-L> Ok, so if a message without or with a longer TTL is at the head of the queue this will "block" all other messages to expire until they are at head of queue themselves. In our case however, all messages are always enqueued with the same TTL (72hours), so they should all expire? So I take it this is something different? BTW. We are running RMQ 3.1.4. Regards, Malte. On Do, 2013-10-10 at 15:16 +0100, Simon MacMullen wrote: > Have you read http://www.rabbitmq.com/ttl.html#per-message-ttl-caveats? > > If messages expire while in the middle of a queue, they will not be > removed until they reach the head of the queue. That sounds like what > you're seeing. > > Cheers, Simon > > On 10/10/13 14:51, Malte Hurrelmann wrote: > > Hi, > > > > we're using a two broker setup, connected by the federation-plugin to > > ensure the consumers have a broker to fail over to, if the primary > > broker should become unreachable. > > Messages are published to an exchange in the master-broker with a > > message-ttl on them, so that they don't pile up endlessly on the main > > and backup broker. > > > > I noticed in some rare cases the number of "messages_ready" in a queue > > as shown in management_plugin / REST-API / "rabbitmqctl list_queues" is > > not correct and increases to grow until I do a GET on that queue. > > For example it shows 1000 messages and after I get 1 message of that > > queue next time it shows 500 messages remaining. After that the > > message-count is correct again. > > > > I'm planning to do some monitoring on that info, so it would be nice to > > have reliable info on the number of message left in the queues. > > > > Any ideas on how to fix this issue or where to get the correct amount of > > messages_ready elsewhere? > > > > Best regards, > > Malte. > > > > > > _______________________________________________ > > rabbitmq-discuss mailing list > > rabbitmq-discuss at lists.rabbitmq.com > > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > > > From Ron.Cordell at RelayHealth.com Fri Oct 11 00:30:18 2013 From: Ron.Cordell at RelayHealth.com (Cordell, Ron) Date: Thu, 10 Oct 2013 23:30:18 +0000 Subject: [rabbitmq-discuss] RabbitMQ and Clustering on Windows Message-ID: <0B8CD6850421B745BE39BC5C76019232A682701F@DDCEP50016.na.corp.mckesson.com> Hello, We've been trying to run RabbitMQ as a cluster on Windows Server 2008 R2 for some time now and are having stability issues ? namely the cluster will partition spontaneously. The cluster originally consists of 5 RabbitMQ "nodes", each running on a separate VMWare ESX server. Each instance is separated from another instance by at most two switch hops and no routers in the same cage in the data center. So while each instance is on a separate ESX physical host and in separate racks/power/etc, the network is such that there is no routing between Rabbit cluster nodes and all nodes are in the same VLAN. The racks are physically next to each other. The cluster itself is behind an F5 load balancer which provides a VIP to the application servers. The F5 round robbins to the Rabbit nodes in the cluster. The F5 attempts to connect to each node in the cluster to determine if the node is up and adds/removes from the load balancing pool automatically. All of the queues on this cluster are on the same vHost, and most of the queues are mirrored/HA queues. The version of Rabbit is 3.1.5 and Erlang 16B01, 64 bit Windows. On every environment from PERFORMANCE, STAGE, INTEGRATION and PRODUCTION we see the cluster partition. It can happen 15 minutes after starting the cluster to a number of days. Network latency is sub-millisecond between cluster nodes. We have dropped the cluster size down to 3, then 2. We have moved all nodes on the cluster to the same VMWare ESX server, which removes all of the physical networking. We have upgraded from ESX 4.5.x to ESX 5.1. We've tried every configuration we can think of but still see the cluster partition after some time. We have one environment up and running for 18 days, another for 12 days, the rest have reached, at most, 2-3 days. Network monitors show no disruptions or latency in network traffic. It doesn't matter if the application is running against the cluster or not. And yet we continue to experience these network partitions. Unfortunately I'm not able to test on a set of Linux machines in this environment. I've sent logs in previous posts and Simon has said that we have to fix our network partition problem, but as far as we can tell we don't have one. My questions are: * is this expected behavior? * Is this a Erlang on Windows problem? Is anyone running an HA cluster of similar configuration successfully on the equivalent Rabbit/Erlang versions? * Is there anything that I should be checking that we might have missed? All ideas are welcome! Cheers, Ron -------------- next part -------------- An HTML attachment was scrubbed... URL: From e34_520 at yahoo.com Fri Oct 11 03:22:32 2013 From: e34_520 at yahoo.com (Choo) Date: Thu, 10 Oct 2013 19:22:32 -0700 (PDT) Subject: [rabbitmq-discuss] Connection blocked by "flow" for more than 600 seconds In-Reply-To: <5255221D.3050907@rabbitmq.com> References: <1381263436076-30349.post@n5.nabble.com> <1381267760478-30351.post@n5.nabble.com> <52548229.9000502@rabbitmq.com> <1381273745546-30354.post@n5.nabble.com> <5254935B.9040400@rabbitmq.com> <5255221D.3050907@rabbitmq.com> Message-ID: <1381458152747-30402.post@n5.nabble.com> Hi Simon, As memory is plenty, I found that file descriptors hit the default limit, so, I bumped the limit up to 5,120, and finally to 10,240 on each nodes. It turned out that the file descriptors also touched the limit (around 10,086), and things started to go downhill. I started processes in reverse order, by starting subscriber-side first (1:42), then the bigger publishers later (1:45). The number of published messages bounced up&down, then just after 1:48, the most of the publishers were blocked. There are more than 350 of blocked connections like below now (and file descriptors are running at 7,558 + 4,647 on 2 nodes): 10.95.212.11:33751 -> 10.95.212.13:5672 blocked 1261.558817 flow 10.95.212.11:33752 -> 10.95.212.13:5672 blocked 1326.324919 flow 10.95.212.11:33753 -> 10.95.212.13:5672 blocked 1326.45322 flow 10.95.212.11:33754 -> 10.95.212.13:5672 blocked 1278.581221 flow 10.95.212.11:33755 -> 10.95.212.13:5672 blocked 1312.584426 flow 10.95.212.11:33756 -> 10.95.212.13:5672 blocked 1279.623625 flow 10.95.212.11:33757 -> 10.95.212.13:5672 blocked 1294.492535 flow 10.95.212.11:33758 -> 10.95.212.13:5672 blocked 1276.134377 flow 10.95.212.11:33759 -> 10.95.212.13:5672 blocked 1292.862081 flow 10.95.212.11:33760 -> 10.95.212.13:5672 blocked 1290.695249 flow 10.95.212.11:33761 -> 10.95.212.13:5672 blocked 1255.599642 flow 10.95.212.11:33762 -> 10.95.212.13:5672 blocked 1284.984752 flow Please kindly suggest. Thank you and Best Regards, Choo -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Connection-blocked-by-flow-for-more-than-600-seconds-tp30349p30402.html Sent from the RabbitMQ mailing list archive at Nabble.com. From 314992959 at qq.com Fri Oct 11 03:43:21 2013 From: 314992959 at qq.com (3k4b251) Date: Thu, 10 Oct 2013 19:43:21 -0700 (PDT) Subject: [rabbitmq-discuss] if stop RabbitMq Server Service, the Server try to create 'queues' folder ? In-Reply-To: References: <1381284358248-30359.post@n5.nabble.com> <05AF4AE0-F69E-411B-A789-128A7E215DD9@rabbitmq.com> <1381301532757-30365.post@n5.nabble.com> <094AC605-5DAB-4F7F-9D79-6505401A3FE8@rabbitmq.com> <1381373643741-30386.post@n5.nabble.com> Message-ID: <1381459401802-30403.post@n5.nabble.com> I found when I try to close rabbitmq server, the database try to create 'queues' folder. And memory grew up fast. What is the role of 'queues' folders in rabbitmq database? -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/if-stop-RabbitMq-Server-Service-the-Server-try-to-create-queues-folder-tp30359p30403.html Sent from the RabbitMQ mailing list archive at Nabble.com. From michael at rabbitmq.com Fri Oct 11 08:39:53 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Fri, 11 Oct 2013 11:39:53 +0400 Subject: [rabbitmq-discuss] if stop RabbitMq Server Service, the Server try to create 'queues' folder ? In-Reply-To: <1381459401802-30403.post@n5.nabble.com> References: <1381284358248-30359.post@n5.nabble.com> <05AF4AE0-F69E-411B-A789-128A7E215DD9@rabbitmq.com> <1381301532757-30365.post@n5.nabble.com> <094AC605-5DAB-4F7F-9D79-6505401A3FE8@rabbitmq.com> <1381373643741-30386.post@n5.nabble.com> <1381459401802-30403.post@n5.nabble.com> Message-ID: On Oct 11, 2013, at 6:43 AM, 3k4b251 <314992959 at qq.com> wrote: > What is the role of > 'queues' folders in rabbitmq database? It stores queue indices. MK From mkarthidreams at gmail.com Fri Oct 11 08:40:10 2013 From: mkarthidreams at gmail.com (Karthi M) Date: Fri, 11 Oct 2013 00:40:10 -0700 (PDT) Subject: [rabbitmq-discuss] rabbitmq failed to activate plugins Message-ID: Hi all, after installing rabbitmq server, i was activating the rabbitmq plugins using the cmd: * rabbitmq-plugins enable rabbitmq_management* * * but my plugins are not enabled and log show some messages as connection refused. even my rabbitmq server not started PFA, and Help. error log for activiting plugins: {error_logger,{{2013,10,11},{10,50,56}},"Protocol: ~p: register error: ~p~n",["inet_tcp",{{badmatch,{error,econnrefused}},[{inet_tcp_dist,listen,1},{net_kernel,start_protos,4},{net_kernel,start_protos,3},{net_kernel,init_node,2},{net_kernel,init,1},{gen_server,init_it,6},{proc_lib,init_p_do_apply,3}]}]} {error_logger,{{2013,10,11},{10,50,56}},crash_report,[[{initial_call,{net_kernel,init,['Argument__1']}},{pid,<0.19.0>},{registered_name,[]},{error_info,{exit,{error,badarg},[{gen_server,init_it,6},{proc_lib,init_p_do_apply,3}]}},{ancestors,[net_sup,kernel_sup,<0.9.0>]},{messages,[]},{links,[#Port<0.92>,<0.16.0>]},{dictionary,[{longnames,false}]},{trap_exit,true},{status,running},{heap_size,987},{stack_size,24},{reductions,505}],[]]} {error_logger,{{2013,10,11},{10,50,56}},supervisor_report,[{supervisor,{local,net_sup}},{errorContext,start_error},{reason,{'EXIT',nodistribution}},{offender,[{pid,undefined},{name,net_kernel},{mfargs,{net_kernel,start_link,[['rabbitmq-plugins3630',shortnames]]}},{restart_type,permanent},{shutdown,2000},{child_type,worker}]}]} {error_logger,{{2013,10,11},{10,50,56}},supervisor_report,[{supervisor,{local,kernel_sup}},{errorContext,start_error},{reason,shutdown},{offender,[{pid,undefined},{name,net_sup},{mfargs,{erl_distribution,start_link,[]}},{restart_type,permanent},{shutdown,infinity},{child_type,supervisor}]}]} {error_logger,{{2013,10,11},{10,50,56}},std_info,[{application,kernel},{exited,{shutdown,{kernel,start,[normal,[]]}}},{type,permanent}]} {"Kernel pid terminated",application_controller,"{application_start_failure,kernel,{shutdown,{kernel,start,[normal,[]]}}}"} error log while starting: Activating RabbitMQ plugins ... 0 plugins activated: ERROR: epmd error for host "karthi": address (unable to establish tcp connection) -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael at rabbitmq.com Fri Oct 11 08:46:21 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Fri, 11 Oct 2013 11:46:21 +0400 Subject: [rabbitmq-discuss] rabbitmq failed to activate plugins In-Reply-To: References: Message-ID: On Oct 11, 2013, at 11:40 AM, Karthi M wrote: > ERROR: epmd error for host "karthi": address (unable to establish tcp connection) I gather karthi is your hostname. It needs to resolve to 127.0.0.1. Add it to /etc/hosts if that's not the case. MK From Shashank.Lothe at techmahindra.com Fri Oct 11 08:50:59 2013 From: Shashank.Lothe at techmahindra.com (Lothe Shashank) Date: Fri, 11 Oct 2013 07:50:59 +0000 Subject: [rabbitmq-discuss] Rabbitmq-C amqp_basic_publish crash on connection loss Message-ID: Hi Alan, Thanks for the clarification. I am attaching the simulation herewith. I don't have a stack trace. It was abort as I couldn't get the next console print. On similar lines, for a listner, if I stop rabbitmq broker using rabbitmq_ctl stop_app, amqp_maybe_release_buffers(conn) API crashed. I believe that due to abrupt connection loss the conn value becomes invalid (though not changed) and amqp_basic_publish and amqp_maybe_release_buffers APIs fail. Could you throw some light on this and help me to understand how can I handle abrupt connection loss during publish and listen? 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: -------------- next part -------------- A non-text attachment was scrubbed... Name: amqp_sendstring.c Type: text/x-csrc Size: 4731 bytes Desc: amqp_sendstring.c URL: From luojus at gmail.com Fri Oct 11 07:58:11 2013 From: luojus at gmail.com (Petri Luojus) Date: Thu, 10 Oct 2013 23:58:11 -0700 (PDT) Subject: [rabbitmq-discuss] RabbitMQ's WebSocket broken Message-ID: <47e4346c-7cec-4f09-bb10-9e7917274958@googlegroups.com> Hello, We're using RabbitMQ in our messaging with several AMQP and STOMP over WebSocket clients. STOMP clients are using JavaScript and stomp.js (http://jmesnil.net/stomp-websocket/doc/) in browsers. However, recent stable release for Chrome fixed the following issue: http://code.google.com/p/chromium/issues/detail?id=259666. This in turn broke all Chromium-based clients, and since the WebSocket specification (http://dev.w3.org/html5/websockets/) reports "The connection will only be established if the server reports that it has selected one of these subprotocols." it is expected that this fix will be pushed to other browsers too. Following messages are changed between client and RabbitMQ, after which Chrome reports "Error during WebSocket handshake: Sec-WebSocket-Protocol mismatch". As can be seen from the response, RabbitMQ does not confirm the selected protocol. GET /stomp/websocket HTTP/1.1 Upgrade: websocket Connection: Upgrade Host: xxx.yyy:15674 Origin: null Sec-WebSocket-Protocol: v10.stomp, v11.stomp Pragma: no-cache Cache-Control: no-cache Sec-WebSocket-Key: YRpCwsRP6s2ounZHK4soEQ== Sec-WebSocket-Version: 13 Sec-WebSocket-Extensions: x-webkit-deflate-frame User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.69 Safari/537.36 Cookie: auth=bHVvanVzOk15aGthbGU1; m=1933:600%7C5|2377:large|2491:chart|2663:t|6967:t|34e2:|4e99:t|2c69:t|2a03:t|745a:t|77cb:t|5cf4:t|3a95:avg|54b5:small|29b3:60%7C5|3a8e:chart|54ae:small|29ac:600%7C5|47ba:t|e69:chart|45b9:600%7C5|4a01:t|ca3:t|79d4:chart|640c:small|678e:60%7C5|4e71:large|4d66:500|1d98:t|6cfc:t|15cc:t HTTP/1.1 101 Switching Protocols Upgrade: websocket Sec-Websocket-Accept: DGeZKxS98lD43p+4Gkhb17W29E0= Connection: Upgrade RabbitMQ is installed on CentOS 6.4 with the following versions for the server and Erlang rabbitmq-server.noarch 3.1.5-1.el6 @epel erlang.x86_64 R14B-04.2.el6 @epel Could you guys look into this issue? Br, Petri -------------- next part -------------- An HTML attachment was scrubbed... URL: From r.colton at modcloth.com Thu Oct 10 17:46:30 2013 From: r.colton at modcloth.com (Rafe Colton) Date: Thu, 10 Oct 2013 09:46:30 -0700 (PDT) Subject: [rabbitmq-discuss] Disappearing Durable Queues Message-ID: <27ad551e-3983-4159-9330-30512c905da2@googlegroups.com> Hi All, We are having a serious issue with the frequent disappearance of durable queues. The queues are not marked as auto-delete, and the queues and all of their messages are marked as durable. We have an HA cluster of 3 nodes with ha-mode: all and ha-sync-mode: automatic. Can anybody offer some advice or help? Other relevant information: Platform - SmartOS Erlang version - 15.1.3.1 RabbitMQ version - 3.1.0 And here is the error message from the sasl log: Supervisor: {local, rabbit_mirror_queue_slave_sup} Context: child_terminated Reason: {{badmatch,{error,not_found}}, [{rabbit_amqqueue_process,i,2, [{file,"src/rabbit_amqqueue_process.erl"},{line,934}]}, {rabbit_amqqueue_process,'-infos/2-lc$^0/1-0-',2, [{file,"src/rabbit_amqqueue_process.erl"},{line,921}]}, {rabbit_amqqueue_process,'-infos/2-lc$^0/1-0-',2, [{file,"src/rabbit_amqqueue_process.erl"},{line,921}]}, {rabbit_amqqueue_process,emit_stats,2, [{file,"src/rabbit_amqqueue_process.erl"},{line,994}]}, {rabbit_event,if_enabled,3, [{file,"src/rabbit_event.erl"},{line,137}]}, {rabbit_amqqueue_process,'-terminate/2-fun-3-',5, [{file,"src/rabbit_amqqueue_process.erl"},{line,164}]}, {rabbit_amqqueue_process,terminate_shutdown,2, [{file,"src/rabbit_amqqueue_process.erl"},{line,272}]}, {gen_server2,terminate,3, [{file,"src/gen_server2.erl"},{line,1031}]}]} Offender: [{pid,<0.317.0>}, {name,rabbit_mirror_queue_slave}, {mfa, {rabbit_mirror_queue_slave,start_link, [{amqqueue, {resource,<<"/">>,queue,<<"(queue name)">>}, true,false,none,[],<7009.319.0>, [<7010.311.0>], [<7010.311.0>], [{vhost,<<"/">>}, {name,<<"ha-all">>}, {pattern,<<"^.*">>}, {definition, [{<<"ha-mode">>,<<"all">>}, {<<"ha-sync-mode">>,<<"automatic">>}]}, {priority,0}], [{<7010.312.0>,<7010.311.0>}, {<7009.320.0>,<7009.319.0>}]}]}}, {restart_type,temporary}, {shutdown,4294967295}, {child_type,worker}] -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Fri Oct 11 09:21:40 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Fri, 11 Oct 2013 09:21:40 +0100 Subject: [rabbitmq-discuss] Wrong number of messages_ready shown in queue when using message-ttl with federation. In-Reply-To: <1381428773.2456.25.camel@malte-VGN-CR21S-L> References: <620281c7-b720-4a23-906c-1a49f93148a0@googlegroups.com> <5256B6AF.80601@rabbitmq.com> <1381428773.2456.25.camel@malte-VGN-CR21S-L> Message-ID: <5257B514.4000204@rabbitmq.com> On 10/10/2013 7:12PM, Malte Hurrelmann wrote: > > In our case however, all messages are always enqueued with the same TTL > (72hours), so they should all expire? > So I take it this is something different? Are you absolutely sure they all are? If all your messages have the same TTL, you could set TTL at a queue level - then you'll know that this constraint is enforced. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From michael at rabbitmq.com Fri Oct 11 09:22:08 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Fri, 11 Oct 2013 12:22:08 +0400 Subject: [rabbitmq-discuss] RabbitMQ's WebSocket broken In-Reply-To: <47e4346c-7cec-4f09-bb10-9e7917274958@googlegroups.com> References: <47e4346c-7cec-4f09-bb10-9e7917274958@googlegroups.com> Message-ID: <0580D485-462E-4D63-B376-34C27D51D80D@rabbitmq.com> On Oct 11, 2013, at 10:58 AM, Petri Luojus wrote: > Could you guys look into this issue? Petri, Will adjusting Rabbit to the way new Chrome versions work somehow affect older browsers? (I'm not a WebSockets expert, as you can tell). MK From matthias at rabbitmq.com Fri Oct 11 09:32:37 2013 From: matthias at rabbitmq.com (Matthias Radestock) Date: Fri, 11 Oct 2013 09:32:37 +0100 Subject: [rabbitmq-discuss] if stop RabbitMq Server Service, the Server try to create 'queues' folder ? In-Reply-To: References: <1381284358248-30359.post@n5.nabble.com> <05AF4AE0-F69E-411B-A789-128A7E215DD9@rabbitmq.com> <1381301532757-30365.post@n5.nabble.com> <094AC605-5DAB-4F7F-9D79-6505401A3FE8@rabbitmq.com> <1381373643741-30386.post@n5.nabble.com> <1381459401802-30403.post@n5.nabble.com> Message-ID: <5257B7A5.1020003@rabbitmq.com> On 11/10/13 08:39, Michael Klishin wrote: > > On Oct 11, 2013, at 6:43 AM, 3k4b251 <314992959 at qq.com> wrote: > >> What is the role of >> 'queues' folders in rabbitmq database? > > It stores queue indices. Furthermore, on shutdown queues write some information to the folder, to indicate that they have been shut down cleanly and facilitate faster startup. Matthias. From emile at rabbitmq.com Fri Oct 11 09:37:32 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Fri, 11 Oct 2013 09:37:32 +0100 Subject: [rabbitmq-discuss] RabbitMQ and Clustering on Windows In-Reply-To: <0B8CD6850421B745BE39BC5C76019232A682701F@DDCEP50016.na.corp.mckesson.com> References: <0B8CD6850421B745BE39BC5C76019232A682701F@DDCEP50016.na.corp.mckesson.com> Message-ID: <5257B8CC.20102@rabbitmq.com> Hi Ron, On 11/10/13 00:30, Cordell, Ron wrote: > The version of Rabbit is 3.1.5 and Erlang 16B01, 64 bit Windows. That version of Erlang should be avoided. Are you able to replicate the problem with an older or newer version? > And yet we continue to experience these network partitions. There are few ways that partitions can form without a network interruption. If the erlang cookie is changed on a subset of nodes then those nodes will leave the cluster. The Erlang distribution layer can also be stopped administratively on a node via a specific "rabbitmqctl eval" command. If you are not doing anything like that then the most likely explanation is a network problem. If you have not tried this yet you might consider increasing the net_ticktime to improve resilience in the presence of short outages: http://www.rabbitmq.com/nettick.html -Emile From emile at rabbitmq.com Fri Oct 11 09:51:21 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Fri, 11 Oct 2013 09:51:21 +0100 Subject: [rabbitmq-discuss] Disappearing Durable Queues In-Reply-To: <27ad551e-3983-4159-9330-30512c905da2@googlegroups.com> References: <27ad551e-3983-4159-9330-30512c905da2@googlegroups.com> Message-ID: <5257BC09.4080801@rabbitmq.com> Hi Rafe, On 10/10/13 17:46, Rafe Colton wrote: > Can anybody offer some advice or help? This stacktrace does not appear to be from the officially released object code. Were any changes made to the source before compiling? Are you sure the stack trace is the first error on any of the nodes? It looks like there might be another error prior to this, perhaps on another node, and perhaps in the sasl log. A large number of bugfixes have been released since 3.1.0, including one that could lead to queues crashing. Can you replicate the problem with the latest version? -Emile From emile at rabbitmq.com Fri Oct 11 09:57:07 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Fri, 11 Oct 2013 09:57:07 +0100 Subject: [rabbitmq-discuss] RabbitMQ startup error. In-Reply-To: References: Message-ID: <5257BD63.8030101@rabbitmq.com> Hi, On 09/10/13 18:23, Anand Ramadurg wrote: > Any obvious root cause of this? Some possible causes and solutions are listed on the troubleshooting page: http://www.rabbitmq.com/troubleshooting.html In your case it is possible that the broker is not running. Try to get the broker started first. -Emile From luojus at gmail.com Fri Oct 11 10:00:40 2013 From: luojus at gmail.com (Petri Luojus) Date: Fri, 11 Oct 2013 12:00:40 +0300 Subject: [rabbitmq-discuss] RabbitMQ's WebSocket broken In-Reply-To: <0580D485-462E-4D63-B376-34C27D51D80D@rabbitmq.com> References: <47e4346c-7cec-4f09-bb10-9e7917274958@googlegroups.com> <0580D485-462E-4D63-B376-34C27D51D80D@rabbitmq.com> Message-ID: https://chromiumcodereview.appspot.com/22375002/diff/9001/Source/modules/websockets/WebSocketHandshake.cppline 540-> By looking at the diff for the change, at least Chrome should accept the connections when the protocol header is present. If I interpret the code correctly, the change was made to a check to the situation where protocol header is set on the request, but the response did not have Web-Socket-Protocol header present. Current source code for the module ( https://chromium.googlesource.com/chromium/blink/+/master/Source/modules/websockets/WebSocketHandshake.cpp) indicates that the connections are accepted when the header is present and it accompanies the same protocol version, which was requested. So I think, this should not present problems with older Chromium-based browsers. I don't know about Opera/Firefox/Safari/x, but I hope they have implemented the protocol selection procedure as defined by the specification. On Fri, Oct 11, 2013 at 11:22 AM, Michael Klishin wrote: > > On Oct 11, 2013, at 10:58 AM, Petri Luojus wrote: > > > Could you guys look into this issue? > > Petri, > > Will adjusting Rabbit to the way new Chrome versions work somehow affect > older browsers? (I'm not a WebSockets expert, as you can tell). > > MK > > > > -- Petri Luojus +358 41 437 3592 Oulu, Finland luojus at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From emile at rabbitmq.com Fri Oct 11 10:07:16 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Fri, 11 Oct 2013 10:07:16 +0100 Subject: [rabbitmq-discuss] abnormally large memory use in "binaries" In-Reply-To: <1381260186.35774.YahooMailNeo@web122002.mail.ne1.yahoo.com> References: <1381260186.35774.YahooMailNeo@web122002.mail.ne1.yahoo.com> Message-ID: <5257BFC4.3050700@rabbitmq.com> Hi Brian, On 08/10/13 20:23, Brian Hammond wrote: > According to the management console, the messages are using up 2mb and > 19GB is in "binaries". That would make sense if the average message size was 24Mb. Are you sure that is not the case? -Emile From mikeb at squaremobius.net Fri Oct 11 10:17:47 2013 From: mikeb at squaremobius.net (Michael Bridgen) Date: Fri, 11 Oct 2013 10:17:47 +0100 Subject: [rabbitmq-discuss] ANN RabbitMQ client for Node.JS, amqplib v0.1.0 Message-ID: For those using RabbitMQ from Node.JS, I've just published amqplib v0.1.0 to npm. npm install amqplib This library supports AMQP 0.9.1, as well as RabbitMQ extensions. Ports of the RabbitMQ tutorials are included in the npm package and the source repository. Documentation is here: http://squaremo.github.io/amqp.node/ The github repo is here: https://github.com/squaremo/amqp.node Regards, Michael From emile at rabbitmq.com Fri Oct 11 10:20:11 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Fri, 11 Oct 2013 10:20:11 +0100 Subject: [rabbitmq-discuss] rabbitmq failed to activate plugins In-Reply-To: References: Message-ID: <5257C2CB.9020502@rabbitmq.com> Hi, On 11/10/13 08:40, Karthi M wrote: > {reason,{'EXIT',nodistribution}}, This could point to a problem with epmd - is the epmd process running? You might want to restart the process with "epmd -debug" to get more diagnostic information. Also check that a firewall is not blocking the required ports. See http://www.rabbitmq.com/clustering.html#firewall -Emile From jluzuria2001 at gmail.com Fri Oct 11 10:27:39 2013 From: jluzuria2001 at gmail.com (Jorg Eloy) Date: Fri, 11 Oct 2013 02:27:39 -0700 (PDT) Subject: [rabbitmq-discuss] other transports besides TCP Message-ID: <5fd53a4c-debb-4526-8507-f23ca60a28b8@googlegroups.com> Hi all, I'm looking another transport for AMQP in place of TCP, Nowadays, I'm trying work with UPD exchange of tonyg [https://github.com/tonyg/udp-exchange], with the plugin to rabbitmq, to get a similar scenario with publishers, consumers, queues and exchanges, But I can't get it. My actual situation is that: I send messages from the publisher to the exchange and these messages are not published, I can view in the web management tool how the delivery rate in the exchange is altered, I'm using basicPublish to publish the messages and QueueingConsumer to consume the messages, Also DatagramSockets and DatagramPackets to send and receive by UDP. But as I said before, these messages are don't received in the consumer. Including that I use the same routing keys in the messages and when I try sending messages directly to the queue created for the consumer, these messages arrive successfully Can someone know what is the error? Thanks in advance. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jluzuria2001 at gmail.com Fri Oct 11 10:38:34 2013 From: jluzuria2001 at gmail.com (Jorg Eloy) Date: Fri, 11 Oct 2013 02:38:34 -0700 (PDT) Subject: [rabbitmq-discuss] rabbitmq failed to activate plugins In-Reply-To: References: Message-ID: Are you tried add the *sudo* in front of the command? On Friday, October 11, 2013 9:40:10 AM UTC+2, Karthi M wrote: > > Hi all, > > after installing rabbitmq server, i was activating the rabbitmq > plugins using the cmd: > > * rabbitmq-plugins enable rabbitmq_management* > * > * > but my plugins are not enabled and log show some messages as connection > refused. even my rabbitmq server not started > > PFA, and Help. > > > error log for activiting plugins: > > > {error_logger,{{2013,10,11},{10,50,56}},"Protocol: ~p: register error: > ~p~n",["inet_tcp",{{badmatch,{error,econnrefused}},[{inet_tcp_dist,listen,1},{net_kernel,start_protos,4},{net_kernel,start_protos,3},{net_kernel,init_node,2},{net_kernel,init,1},{gen_server,init_it,6},{proc_lib,init_p_do_apply,3}]}]} > > {error_logger,{{2013,10,11},{10,50,56}},crash_report,[[{initial_call,{net_kernel,init,['Argument__1']}},{pid,<0.19.0>},{registered_name,[]},{error_info,{exit,{error,badarg},[{gen_server,init_it,6},{proc_lib,init_p_do_apply,3}]}},{ancestors,[net_sup,kernel_sup,<0.9.0>]},{messages,[]},{links,[#Port<0.92>,<0.16.0>]},{dictionary,[{longnames,false}]},{trap_exit,true},{status,running},{heap_size,987},{stack_size,24},{reductions,505}],[]]} > > {error_logger,{{2013,10,11},{10,50,56}},supervisor_report,[{supervisor,{local,net_sup}},{errorContext,start_error},{reason,{'EXIT',nodistribution}},{offender,[{pid,undefined},{name,net_kernel},{mfargs,{net_kernel,start_link,[['rabbitmq-plugins3630',shortnames]]}},{restart_type,permanent},{shutdown,2000},{child_type,worker}]}]} > > {error_logger,{{2013,10,11},{10,50,56}},supervisor_report,[{supervisor,{local,kernel_sup}},{errorContext,start_error},{reason,shutdown},{offender,[{pid,undefined},{name,net_sup},{mfargs,{erl_distribution,start_link,[]}},{restart_type,permanent},{shutdown,infinity},{child_type,supervisor}]}]} > > {error_logger,{{2013,10,11},{10,50,56}},std_info,[{application,kernel},{exited,{shutdown,{kernel,start,[normal,[]]}}},{type,permanent}]} > {"Kernel pid > terminated",application_controller,"{application_start_failure,kernel,{shutdown,{kernel,start,[normal,[]]}}}"} > > > error log while starting: > > > Activating RabbitMQ plugins ... > 0 plugins activated: > > ERROR: epmd error for host "karthi": address (unable to establish tcp > connection) > > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mkarthidreams at gmail.com Fri Oct 11 10:55:19 2013 From: mkarthidreams at gmail.com (Karthi M) Date: Fri, 11 Oct 2013 02:55:19 -0700 (PDT) Subject: [rabbitmq-discuss] rabbitmq failed to activate plugins In-Reply-To: References: Message-ID: <5e39fd9f-6d59-4c32-a906-54b0cb9947fa@googlegroups.com> no instead of that i have used nohup On Friday, 11 October 2013 15:08:34 UTC+5:30, Jorg Eloy wrote: > > Are you tried add the *sudo* in front of the command? > > > On Friday, October 11, 2013 9:40:10 AM UTC+2, Karthi M wrote: >> >> Hi all, >> >> after installing rabbitmq server, i was activating the rabbitmq >> plugins using the cmd: >> >> * rabbitmq-plugins enable rabbitmq_management* >> * >> * >> but my plugins are not enabled and log show some messages as connection >> refused. even my rabbitmq server not started >> >> PFA, and Help. >> >> >> error log for activiting plugins: >> >> >> {error_logger,{{2013,10,11},{10,50,56}},"Protocol: ~p: register error: >> ~p~n",["inet_tcp",{{badmatch,{error,econnrefused}},[{inet_tcp_dist,listen,1},{net_kernel,start_protos,4},{net_kernel,start_protos,3},{net_kernel,init_node,2},{net_kernel,init,1},{gen_server,init_it,6},{proc_lib,init_p_do_apply,3}]}]} >> >> {error_logger,{{2013,10,11},{10,50,56}},crash_report,[[{initial_call,{net_kernel,init,['Argument__1']}},{pid,<0.19.0>},{registered_name,[]},{error_info,{exit,{error,badarg},[{gen_server,init_it,6},{proc_lib,init_p_do_apply,3}]}},{ancestors,[net_sup,kernel_sup,<0.9.0>]},{messages,[]},{links,[#Port<0.92>,<0.16.0>]},{dictionary,[{longnames,false}]},{trap_exit,true},{status,running},{heap_size,987},{stack_size,24},{reductions,505}],[]]} >> >> {error_logger,{{2013,10,11},{10,50,56}},supervisor_report,[{supervisor,{local,net_sup}},{errorContext,start_error},{reason,{'EXIT',nodistribution}},{offender,[{pid,undefined},{name,net_kernel},{mfargs,{net_kernel,start_link,[['rabbitmq-plugins3630',shortnames]]}},{restart_type,permanent},{shutdown,2000},{child_type,worker}]}]} >> >> {error_logger,{{2013,10,11},{10,50,56}},supervisor_report,[{supervisor,{local,kernel_sup}},{errorContext,start_error},{reason,shutdown},{offender,[{pid,undefined},{name,net_sup},{mfargs,{erl_distribution,start_link,[]}},{restart_type,permanent},{shutdown,infinity},{child_type,supervisor}]}]} >> >> {error_logger,{{2013,10,11},{10,50,56}},std_info,[{application,kernel},{exited,{shutdown,{kernel,start,[normal,[]]}}},{type,permanent}]} >> {"Kernel pid >> terminated",application_controller,"{application_start_failure,kernel,{shutdown,{kernel,start,[normal,[]]}}}"} >> >> >> error log while starting: >> >> >> Activating RabbitMQ plugins ... >> 0 plugins activated: >> >> ERROR: epmd error for host "karthi": address (unable to establish tcp >> connection) >> >> >> >> >> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From mkarthidreams at gmail.com Fri Oct 11 10:55:49 2013 From: mkarthidreams at gmail.com (Karthi M) Date: Fri, 11 Oct 2013 02:55:49 -0700 (PDT) Subject: [rabbitmq-discuss] rabbitmq failed to activate plugins In-Reply-To: <5e39fd9f-6d59-4c32-a906-54b0cb9947fa@googlegroups.com> References: <5e39fd9f-6d59-4c32-a906-54b0cb9947fa@googlegroups.com> Message-ID: <14ddb2a2-9cf5-40a9-bcc3-7dad38da6edd@googlegroups.com> epmd -debug is also running and not providing any logs more than this. the problem is that i'm not able to reproduce this issue consistently. this issue is happening for some time only. i was trying to reproduce this issue with the same machine but its not consistent. for the first time of that plugin activation command will show error and when execute for the second time it will work fine. so i'm not able to get any more logs for this. On Friday, 11 October 2013 15:25:19 UTC+5:30, Karthi M wrote: > > no instead of that i have used nohup > > On Friday, 11 October 2013 15:08:34 UTC+5:30, Jorg Eloy wrote: >> >> Are you tried add the *sudo* in front of the command? >> >> >> On Friday, October 11, 2013 9:40:10 AM UTC+2, Karthi M wrote: >>> >>> Hi all, >>> >>> after installing rabbitmq server, i was activating the rabbitmq >>> plugins using the cmd: >>> >>> * rabbitmq-plugins enable rabbitmq_management* >>> * >>> * >>> but my plugins are not enabled and log show some messages as connection >>> refused. even my rabbitmq server not started >>> >>> PFA, and Help. >>> >>> >>> error log for activiting plugins: >>> >>> >>> {error_logger,{{2013,10,11},{10,50,56}},"Protocol: ~p: register error: >>> ~p~n",["inet_tcp",{{badmatch,{error,econnrefused}},[{inet_tcp_dist,listen,1},{net_kernel,start_protos,4},{net_kernel,start_protos,3},{net_kernel,init_node,2},{net_kernel,init,1},{gen_server,init_it,6},{proc_lib,init_p_do_apply,3}]}]} >>> >>> {error_logger,{{2013,10,11},{10,50,56}},crash_report,[[{initial_call,{net_kernel,init,['Argument__1']}},{pid,<0.19.0>},{registered_name,[]},{error_info,{exit,{error,badarg},[{gen_server,init_it,6},{proc_lib,init_p_do_apply,3}]}},{ancestors,[net_sup,kernel_sup,<0.9.0>]},{messages,[]},{links,[#Port<0.92>,<0.16.0>]},{dictionary,[{longnames,false}]},{trap_exit,true},{status,running},{heap_size,987},{stack_size,24},{reductions,505}],[]]} >>> >>> {error_logger,{{2013,10,11},{10,50,56}},supervisor_report,[{supervisor,{local,net_sup}},{errorContext,start_error},{reason,{'EXIT',nodistribution}},{offender,[{pid,undefined},{name,net_kernel},{mfargs,{net_kernel,start_link,[['rabbitmq-plugins3630',shortnames]]}},{restart_type,permanent},{shutdown,2000},{child_type,worker}]}]} >>> >>> {error_logger,{{2013,10,11},{10,50,56}},supervisor_report,[{supervisor,{local,kernel_sup}},{errorContext,start_error},{reason,shutdown},{offender,[{pid,undefined},{name,net_sup},{mfargs,{erl_distribution,start_link,[]}},{restart_type,permanent},{shutdown,infinity},{child_type,supervisor}]}]} >>> >>> {error_logger,{{2013,10,11},{10,50,56}},std_info,[{application,kernel},{exited,{shutdown,{kernel,start,[normal,[]]}}},{type,permanent}]} >>> {"Kernel pid >>> terminated",application_controller,"{application_start_failure,kernel,{shutdown,{kernel,start,[normal,[]]}}}"} >>> >>> >>> error log while starting: >>> >>> >>> Activating RabbitMQ plugins ... >>> 0 plugins activated: >>> >>> ERROR: epmd error for host "karthi": address (unable to establish tcp >>> connection) >>> >>> >>> >>> >>> >>> -------------- next part -------------- An HTML attachment was scrubbed... URL: From emile at rabbitmq.com Fri Oct 11 11:07:13 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Fri, 11 Oct 2013 11:07:13 +0100 Subject: [rabbitmq-discuss] Per-Connection Queue Creation and Deletion In-Reply-To: References: <83f4eaad-2c6c-4425-98fc-43d1035c4333@googlegroups.com> <31BC2E34-1BBD-45C2-8AFC-2609E7457D15@rabbitmq.com> Message-ID: <5257CDD1.7060501@rabbitmq.com> Hi, On 03/10/13 16:29, Tiago Boldt Sousa wrote: > One question remains: I could discard messages who have no client > connected. Otherwise, these queues will be filled up quickly. Is there > any way to do so, other than using x-message-ttl and set a ttl per-message? Older versions of the broker supported the "immediate" flag which is close to what you need in this case: http://www.rabbitmq.com/amqp-0-9-1-reference.html#basic.publish.immediate This was removed in version 3.0.0. A combination of queue and message TTL can be used to remove queues: http://www.rabbitmq.com/ttl.html But if queues are exclusive then this might not be necessary. If the client with the exclusive connection disconnects then the associated exclusive queues will be removed. -Emile From simon at rabbitmq.com Fri Oct 11 11:17:47 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Fri, 11 Oct 2013 11:17:47 +0100 Subject: [rabbitmq-discuss] RabbitMQ 3.2 and federated queues In-Reply-To: References: <0faa3ea1-bfe2-4a0c-aa33-ed5159d1b0a6@googlegroups.com> <524575DE.8080201@rabbitmq.com> <52459531.8000004@rabbitmq.com> <5245B80A.5000307@rabbitmq.com> Message-ID: <5257D04B.8010306@rabbitmq.com> On 02/10/2013 1:18PM, Mariusz Gronczewski wrote: > Is there any way to check over STOMP if queue exists ? I've noticed that > if I send message to nonexisting queue it just creates it. You can send to /amq/queue/whatever, that should fail rather than create the queue if the queue does not exist. There's no "real" mechanism for checking if queues exist though. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From emile at rabbitmq.com Fri Oct 11 11:23:24 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Fri, 11 Oct 2013 11:23:24 +0100 Subject: [rabbitmq-discuss] RabbitMQ 3.2 and federated queues In-Reply-To: References: <0faa3ea1-bfe2-4a0c-aa33-ed5159d1b0a6@googlegroups.com> <524575DE.8080201@rabbitmq.com> <52459531.8000004@rabbitmq.com> <5245B80A.5000307@rabbitmq.com> Message-ID: <5257D19C.9070403@rabbitmq.com> On 02/10/13 13:18, Mariusz Gronczewski wrote: > Is there any way to check over STOMP if queue exists ? I've noticed that > if I send message to nonexisting queue it just creates it. If you SUBSCRIBE to a non-existent queue, prefixed with "/amq/queue/", then you will get an error and the connection will drop. -Emile From emile at rabbitmq.com Fri Oct 11 11:49:14 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Fri, 11 Oct 2013 11:49:14 +0100 Subject: [rabbitmq-discuss] Getting the routing key from connection (web stomp) In-Reply-To: <0290a0ff-00ec-4b42-a61f-5912ff23ec6d@googlegroups.com> References: <0290a0ff-00ec-4b42-a61f-5912ff23ec6d@googlegroups.com> Message-ID: <5257D7AA.9000908@rabbitmq.com> Hi Magnus, Apologies for the delayed response to your query. On 28/09/13 22:18, Magnus Andersson wrote: > I need to get a handle on the routing key for the generated temporary > queue when using web stomp. I can't get that from the JavaScript side. If you need the name of a temporary queue then that is normally a sign that you should name the queue yourself instead of relying on a server-generated name. > My desired scenario for my event driven app. > 1) Browser client opens a websocket connection to rabbitmq web stomp > 2) When calling client.connect, the routing key is made available > (example: amq.gen-oQVllULAASDvZdXsxFADHg). *Not working today?* Opening a connection does not involve a routing key. > There is a fan-out exchange that all clients subscribe to. But I mostly > want to send messages to one dedicated client at a time. If you want to address clients individually then the clients should maintain separate individual subscriptions for that line of communication, possibly not involving temporary queue names. > The documentation is very scarce on Web Stomp and I'm new to RabbitMQ > and not particularly Erlang proficient. So I need some pointers. There are some examples that illustrate use of the plugin: http://hg.rabbitmq.com/rabbitmq-web-stomp-examples/ -Emile From simon at rabbitmq.com Fri Oct 11 12:01:04 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Fri, 11 Oct 2013 12:01:04 +0100 Subject: [rabbitmq-discuss] Multi vhost access with static LDAP In-Reply-To: References: Message-ID: <5257DA70.3060103@rabbitmq.com> On 08/10/2013 8:34PM, MyOwnFitness wrote: > My question is how do i separate the two vhost's in the config file, and > still maintain access control? > > Do i have 2 "vhost_access_query"? but then how do i set the permissions > for each? > > ** Also, all LDAP is 100% static, i cannot add groups or attributes. ** I suspect you can't do this with 3.1.5, if there's no regularity in the patterns of username and object, and the information you want isn't in LDAP. The next release will support boolean operators in the various access queries, which will allow you to combine various queries together, one per user to do this. But it sounds like what you really want is to be able to use LDAP just for authentication, and then do authorisation via the built in database. Does that sound accurate? Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Fri Oct 11 12:10:48 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Fri, 11 Oct 2013 12:10:48 +0100 Subject: [rabbitmq-discuss] other transports besides TCP In-Reply-To: <5fd53a4c-debb-4526-8507-f23ca60a28b8@googlegroups.com> References: <5fd53a4c-debb-4526-8507-f23ca60a28b8@googlegroups.com> Message-ID: <5257DCB8.8070303@rabbitmq.com> I'm afraid your message doesn't really give us much to go on, other than "it doesn't work". I suggest you try to break the problem down: when you send a UDP packet, can you see it reach the broker in wireshark? Can you see it go into a queue (bound to the UDP exchange with "#") in the management plugin? And so on. Also, out of interest, why do you want to use UDP instead of TCP? Cheers, Simon On 11/10/2013 10:27AM, Jorg Eloy wrote: > Hi all, > I'm looking another transport for AMQP in place of TCP, > Nowadays, I'm trying work with UPD exchange of tonyg > [https://github.com/tonyg/udp-exchange], with the plugin to rabbitmq, to > get a similar scenario with publishers, consumers, queues and exchanges, > But I can't get it. > > My actual situation is that: > I send messages from the publisher to the exchange and these messages > are not published, I can view in the web management tool how the > delivery rate in the exchange is altered, > I'm using basicPublish to publish the messages and QueueingConsumer to > consume the messages, Also DatagramSockets and DatagramPackets to send > and receive by UDP. > But as I said before, these messages are don't received in the consumer. > Including that I use the same routing keys in the messages and when > I try sending messages directly to the queue created for the consumer, > these messages arrive successfully > > Can someone know what is the error? > > Thanks in advance. -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Fri Oct 11 12:29:57 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Fri, 11 Oct 2013 12:29:57 +0100 Subject: [rabbitmq-discuss] Connection blocked by "flow" for more than 600 seconds In-Reply-To: <1381458152747-30402.post@n5.nabble.com> References: <1381263436076-30349.post@n5.nabble.com> <1381267760478-30351.post@n5.nabble.com> <52548229.9000502@rabbitmq.com> <1381273745546-30354.post@n5.nabble.com> <5254935B.9040400@rabbitmq.com> <5255221D.3050907@rabbitmq.com> <1381458152747-30402.post@n5.nabble.com> Message-ID: <5257E135.1000909@rabbitmq.com> OK, so your screenshot shows 750 queues and 753 connections. Was this from the same time as you had ~10k file descriptors in use? That sounds wrong. I think your publishing connections are going into flow control because there's a squeeze on file descriptors, which is causing the queues to have to share a small number of file descriptors between them - thus slowing them down. If you do have far more file descriptors in use than queues + connections, do you have any exotic plugins in use? What does "lsof -lnp " say? Cheers, Simon On 11/10/2013 3:22AM, Choo wrote: > Hi Simon, > > As memory is plenty, I found that file descriptors hit the default limit, > so, I bumped the limit up to 5,120, and finally to 10,240 on each nodes. It > turned out that the file descriptors also touched the limit (around 10,086), > and things started to go downhill. > > > > I started processes in reverse order, by starting subscriber-side first > (1:42), then the bigger publishers later (1:45). The number of published > messages bounced up&down, then just after 1:48, the most of the publishers > were blocked. > > There are more than 350 of blocked connections like below now (and file > descriptors are running at 7,558 + 4,647 on 2 nodes): > 10.95.212.11:33751 -> 10.95.212.13:5672 blocked 1261.558817 flow > 10.95.212.11:33752 -> 10.95.212.13:5672 blocked 1326.324919 flow > 10.95.212.11:33753 -> 10.95.212.13:5672 blocked 1326.45322 flow > 10.95.212.11:33754 -> 10.95.212.13:5672 blocked 1278.581221 flow > 10.95.212.11:33755 -> 10.95.212.13:5672 blocked 1312.584426 flow > 10.95.212.11:33756 -> 10.95.212.13:5672 blocked 1279.623625 flow > 10.95.212.11:33757 -> 10.95.212.13:5672 blocked 1294.492535 flow > 10.95.212.11:33758 -> 10.95.212.13:5672 blocked 1276.134377 flow > 10.95.212.11:33759 -> 10.95.212.13:5672 blocked 1292.862081 flow > 10.95.212.11:33760 -> 10.95.212.13:5672 blocked 1290.695249 flow > 10.95.212.11:33761 -> 10.95.212.13:5672 blocked 1255.599642 flow > 10.95.212.11:33762 -> 10.95.212.13:5672 blocked 1284.984752 flow > > Please kindly suggest. > > Thank you and Best Regards, > Choo > > > > -- > View this message in context: http://rabbitmq.1065348.n5.nabble.com/Connection-blocked-by-flow-for-more-than-600-seconds-tp30349p30402.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 > -- Simon MacMullen RabbitMQ, Pivotal From emile at rabbitmq.com Fri Oct 11 12:51:49 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Fri, 11 Oct 2013 12:51:49 +0100 Subject: [rabbitmq-discuss] Long pauses when closing many channels simultaneously In-Reply-To: <1380282223281-29973.post@n5.nabble.com> References: <8a7a1859-5ff0-49a3-8ba9-edef63830591@googlegroups.com> <74B331C7-6DD1-494D-94C9-7E754C7ECC82@rabbitmq.com> <1380282223281-29973.post@n5.nabble.com> Message-ID: <5257E655.80906@rabbitmq.com> Hi, On 27/09/13 12:43, mrogan wrote: > Here 99% of the channels closed in less than 1 second. The remaining 100 > channels (equal to the number of threads used) closed in a significantly > longer time. Thanks for the test code. I tried this on the latest version of the broker and was not able to reproduce the problem. All closures took less than 500ms. Can you confirm that the problem exists when using a nightly build of the broker and the Java client? -Emile From Petr.Gotthard at Honeywell.com Fri Oct 11 12:52:22 2013 From: Petr.Gotthard at Honeywell.com (Gotthard, Petr) Date: Fri, 11 Oct 2013 11:52:22 +0000 Subject: [rabbitmq-discuss] rabbitmq.config location when running as a Windows service Message-ID: Hello, I have RabbitMQ 3.1.5 installed (using the recommended procedure) at a (French) Windows Server machine. (Cannot change the machine nor the language ;-) I have the rabbitmq.config in the directory as explained at http://www.rabbitmq.com/relocate.html When I start RabbitMQ using command-line 'rabbitmq-server start', everything works fine. But when I start the RabbitMQ service, the rabbitmq.config is silently ignored. No warning nor error. Is this expected behavior? No RABBITMQ_xxx environment variable is set. Thanks a lot, Petr -------------- next part -------------- An HTML attachment was scrubbed... URL: From jesper.louis.andersen at gmail.com Fri Oct 11 12:53:06 2013 From: jesper.louis.andersen at gmail.com (Jesper Louis Andersen) Date: Fri, 11 Oct 2013 13:53:06 +0200 Subject: [rabbitmq-discuss] Connection blocked by "flow" for more than 600 seconds In-Reply-To: <5257E135.1000909@rabbitmq.com> References: <1381263436076-30349.post@n5.nabble.com> <1381267760478-30351.post@n5.nabble.com> <52548229.9000502@rabbitmq.com> <1381273745546-30354.post@n5.nabble.com> <5254935B.9040400@rabbitmq.com> <5255221D.3050907@rabbitmq.com> <1381458152747-30402.post@n5.nabble.com> <5257E135.1000909@rabbitmq.com> Message-ID: You are using R16B01. Upgrade to R16B02 at once! R16B01 has a bug which means that async worker processes are not getting used correctly (too many processes are hashed to the wrong async worker, more or less). This severely hits disk I/O on a busy machine. There are other problems with R16B01. It should be avoided if possible. On Fri, Oct 11, 2013 at 1:29 PM, Simon MacMullen wrote: > OK, so your screenshot shows 750 queues and 753 connections. Was this from > the same time as you had ~10k file descriptors in use? That sounds wrong. > > I think your publishing connections are going into flow control because > there's a squeeze on file descriptors, which is causing the queues to have > to share a small number of file descriptors between them - thus slowing > them down. > > If you do have far more file descriptors in use than queues + connections, > do you have any exotic plugins in use? What does "lsof -lnp process>" say? > > Cheers, Simon > > > On 11/10/2013 3:22AM, Choo wrote: > >> Hi Simon, >> >> As memory is plenty, I found that file descriptors hit the default limit, >> so, I bumped the limit up to 5,120, and finally to 10,240 on each nodes. >> It >> turned out that the file descriptors also touched the limit (around >> 10,086), >> and things started to go downhill. >> >> >> > >> >> I started processes in reverse order, by starting subscriber-side first >> (1:42), then the bigger publishers later (1:45). The number of published >> messages bounced up&down, then just after 1:48, the most of the publishers >> were blocked. >> >> There are more than 350 of blocked connections like below now (and file >> descriptors are running at 7,558 + 4,647 on 2 nodes): >> 10.95.212.11:33751 -> 10.95.212.13:5672 blocked 1261.558817 flow >> 10.95.212.11:33752 -> 10.95.212.13:5672 blocked 1326.324919 flow >> 10.95.212.11:33753 -> 10.95.212.13:5672 blocked 1326.45322 flow >> 10.95.212.11:33754 -> 10.95.212.13:5672 blocked 1278.581221 flow >> 10.95.212.11:33755 -> 10.95.212.13:5672 blocked 1312.584426 flow >> 10.95.212.11:33756 -> 10.95.212.13:5672 blocked 1279.623625 flow >> 10.95.212.11:33757 -> 10.95.212.13:5672 blocked 1294.492535 flow >> 10.95.212.11:33758 -> 10.95.212.13:5672 blocked 1276.134377 flow >> 10.95.212.11:33759 -> 10.95.212.13:5672 blocked 1292.862081 flow >> 10.95.212.11:33760 -> 10.95.212.13:5672 blocked 1290.695249 flow >> 10.95.212.11:33761 -> 10.95.212.13:5672 blocked 1255.599642 flow >> 10.95.212.11:33762 -> 10.95.212.13:5672 blocked 1284.984752 flow >> >> Please kindly suggest. >> >> Thank you and Best Regards, >> Choo >> >> >> >> -- >> View this message in context: http://rabbitmq.1065348.n5.** >> nabble.com/Connection-blocked-**by-flow-for-more-than-600-** >> seconds-tp30349p30402.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 >> >> > -- > Simon MacMullen > RabbitMQ, Pivotal > > ______________________________**_________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.**rabbitmq.com > https://lists.rabbitmq.com/**cgi-bin/mailman/listinfo/**rabbitmq-discuss > -- J. -------------- next part -------------- An HTML attachment was scrubbed... URL: From Shashank.Lothe at techmahindra.com Fri Oct 11 13:16:54 2013 From: Shashank.Lothe at techmahindra.com (Lothe Shashank) Date: Fri, 11 Oct 2013 12:16:54 +0000 Subject: [rabbitmq-discuss] Disappearing Durable Queues Message-ID: Hi Emile, Similar to the issue reported by Rafe, I am also facing disappearing queues on my client. I am using following versions. Client library: rabbitmq-c-master Version: 0.3.0 Server library: rabbitmq Version 3.1.5 Unlike Rafe, My client queues are not durable but auto delete and I am not using clusters. Could this be client side issue or rabbitmq server/broker side issue? Kindly suggest. I understand that latest stable client version v0.4.0 is available but is there any fix addressed for such issue? 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 emile at rabbitmq.com Fri Oct 11 13:44:28 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Fri, 11 Oct 2013 13:44:28 +0100 Subject: [rabbitmq-discuss] Disappearing Durable Queues In-Reply-To: References: Message-ID: <5257F2AC.8030303@rabbitmq.com> Hi, On 11/10/13 13:16, Lothe Shashank wrote: > Unlike Rafe, My client queues are not durable but auto delete and I am > not using clusters. Do you see anything in the broker logfile? It should be possible to tell from that whether the issue you are dealing with is related. > Could this be client side issue or rabbitmq server/broker side issue? Yes. A bug in the broker can cause queues to disappear or a disconnecting client can cause exclusive queues to disappear. -Emile From emile at rabbitmq.com Fri Oct 11 14:26:02 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Fri, 11 Oct 2013 14:26:02 +0100 Subject: [rabbitmq-discuss] rabbitmq.config location when running as a Windows service In-Reply-To: References: Message-ID: <5257FC6A.4000808@rabbitmq.com> Hi, On 11/10/13 12:52, Gotthard, Petr wrote: > I have the rabbitmq.config in the directory as explained at > http://www.rabbitmq.com/relocate.html The most common error is to create the file in the wrong directory, or forget the ".config" extension. The default location is %APPDATA%\RabbitMQ\rabbitmq.config > But when I start the RabbitMQ service, the rabbitmq.config is silently > ignored. No warning nor error. Is this expected behavior? This will happen if the config file is incorrectly named or in the wrong folder. A missing config file is not an error. -Emile From emile at rabbitmq.com Fri Oct 11 14:35:15 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Fri, 11 Oct 2013 14:35:15 +0100 Subject: [rabbitmq-discuss] rabbitmq failed to activate plugins In-Reply-To: <14ddb2a2-9cf5-40a9-bcc3-7dad38da6edd@googlegroups.com> References: <5e39fd9f-6d59-4c32-a906-54b0cb9947fa@googlegroups.com> <14ddb2a2-9cf5-40a9-bcc3-7dad38da6edd@googlegroups.com> Message-ID: <5257FE93.5000705@rabbitmq.com> Hi, On 11/10/13 10:55, Karthi M wrote: > for the first time of that plugin activation command will show error and > when execute for the second time it will work fine. > so i'm not able to get any more logs for this. Is it possible that the broker is administratively prohibited from binding to certain ports, and you get an error depending on whether the random port selected by the Erlang distribution framework is in the prohibited set? You can test this hypothesis by setting inet_dist_listen_min and inet_dist_listen_max as explained here: http://www.rabbitmq.com/clustering.html#firewall -Emile From Petr.Gotthard at Honeywell.com Fri Oct 11 14:37:12 2013 From: Petr.Gotthard at Honeywell.com (Gotthard, Petr) Date: Fri, 11 Oct 2013 13:37:12 +0000 Subject: [rabbitmq-discuss] rabbitmq.config location when running as a Windows service In-Reply-To: <5257FC6A.4000808@rabbitmq.com> References: <5257FC6A.4000808@rabbitmq.com> Message-ID: Hi, The trouble is that when I run in command-line 'rabbitmq-server start' then the config is found. However, when I run the rabbitmq service in Windows, then the config is not found. Petr -----Original Message----- From: Emile Joubert [mailto:emile at rabbitmq.com] Sent: 11. ??jna 2013 15:26 To: Discussions about RabbitMQ Cc: Gotthard, Petr Subject: Re: [rabbitmq-discuss] rabbitmq.config location when running as a Windows service Hi, On 11/10/13 12:52, Gotthard, Petr wrote: > I have the rabbitmq.config in the directory as explained at > http://www.rabbitmq.com/relocate.html The most common error is to create the file in the wrong directory, or forget the ".config" extension. The default location is %APPDATA%\RabbitMQ\rabbitmq.config > But when I start the RabbitMQ service, the rabbitmq.config is silently > ignored. No warning nor error. Is this expected behavior? This will happen if the config file is incorrectly named or in the wrong folder. A missing config file is not an error. -Emile From emile at rabbitmq.com Fri Oct 11 14:58:43 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Fri, 11 Oct 2013 14:58:43 +0100 Subject: [rabbitmq-discuss] rabbitmq.config location when running as a Windows service In-Reply-To: References: <5257FC6A.4000808@rabbitmq.com> Message-ID: <52580413.3070509@rabbitmq.com> Hi, On 11/10/13 14:37, Gotthard, Petr wrote: > The trouble is that when I run in command-line 'rabbitmq-server > start' then the config is found. However, when I run the rabbitmq > service in Windows, then the config is not found. Can you confirm whether the "Args" field in the output of "rabbitmq-service list" contains a "-config" parameter? And if you and a ".config" extension to that value, does a corresponding file exist with that name and location? Can you try the same exercise for this value? rabbitmqctl eval 'init:get_argument(config).' -Emile From Michel.Grenier at ssc-spc.gc.ca Fri Oct 11 15:14:04 2013 From: Michel.Grenier at ssc-spc.gc.ca (Grenier,Michel [CMC]) Date: Fri, 11 Oct 2013 10:14:04 -0400 Subject: [rabbitmq-discuss] how to parallelize a queue In-Reply-To: <5231CB5D.30607@rabbitmq.com> References: <5231CA7E.9080803@ontrenet.com> <5231CB5D.30607@rabbitmq.com> Message-ID: <7F414B031B795146A3697F7EF8C506676C36D7@SQYL07EXMAIL7.quebec.int.ec.gc.ca> HI rabbitmq gurus Is it possible to have 1 queue shared with X consumers and make sure that if one consumer gets a message the others don't. I am using pika. Michel Grenier (514) 421-7204 From r.colton at modcloth.com Fri Oct 11 15:23:25 2013 From: r.colton at modcloth.com (Rafe Colton) Date: Fri, 11 Oct 2013 09:23:25 -0500 Subject: [rabbitmq-discuss] Disappearing Durable Queues In-Reply-To: <5257BC09.4080801@rabbitmq.com> References: <27ad551e-3983-4159-9330-30512c905da2@googlegroups.com> <5257BC09.4080801@rabbitmq.com> Message-ID: Hi Emile, We are running this instance of RabbitMQ on SmartOS, so it is entirely possible that the code has been changed. I will ask Joyent. I am not sure that this is the first error for this occurrence, but last time this happened, I combed through logs and an error just like this was indeed the first (as far as I could find). There were error messages on the other nodes at about the same time, but the messages looked to be the same as the one I posted. The message was indeed found in the sasl log - nothing at all appears in the regular log file. Can you tell me the earliest version that has the bug fix you mentioned? I don't know that I can get 3.1.5, but I can see if it's possible. Let me know what version, and I'll respond ASAP with any more information I can find. Thanks, Rafe On Fri, Oct 11, 2013 at 3:51 AM, Emile Joubert wrote: > > > Hi Rafe, > > On 10/10/13 17:46, Rafe Colton wrote: > > > Can anybody offer some advice or help? > > This stacktrace does not appear to be from the officially released > object code. Were any changes made to the source before compiling? > > Are you sure the stack trace is the first error on any of the nodes? It > looks like there might be another error prior to this, perhaps on > another node, and perhaps in the sasl log. > > A large number of bugfixes have been released since 3.1.0, including one > that could lead to queues crashing. Can you replicate the problem with > the latest version? > > > > > -Emile > > > > > -- Rafe Colton Associate Software Engineer | ModCloth r.colton at modcloth.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From emile at rabbitmq.com Fri Oct 11 15:38:41 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Fri, 11 Oct 2013 15:38:41 +0100 Subject: [rabbitmq-discuss] Disappearing Durable Queues In-Reply-To: References: <27ad551e-3983-4159-9330-30512c905da2@googlegroups.com> <5257BC09.4080801@rabbitmq.com> Message-ID: <52580D71.8040907@rabbitmq.com> On 11/10/13 15:23, Rafe Colton wrote: > Can you tell me the earliest version that has the bug fix you mentioned? > I don't know that I can get 3.1.5, but I can see if it's possible. I would suggest using the latest stable release if you can. The stable branch only contains bugfixes. If there is a particular bugfix that is causing an issue and you wish to avoid then please let us know as soon as possible. -Emile From Tobias.Gutzmann at ist.com Fri Oct 11 15:43:08 2013 From: Tobias.Gutzmann at ist.com (Tobias Gutzmann) Date: Fri, 11 Oct 2013 14:43:08 +0000 Subject: [rabbitmq-discuss] how to parallelize a queue In-Reply-To: <7F414B031B795146A3697F7EF8C506676C36D7@SQYL07EXMAIL7.quebec.int.ec.gc.ca> References: <5231CA7E.9080803@ontrenet.com> <5231CB5D.30607@rabbitmq.com> <7F414B031B795146A3697F7EF8C506676C36D7@SQYL07EXMAIL7.quebec.int.ec.gc.ca> Message-ID: <3CE1D10F927704449D41EF6BCB35373D43FAA6@hermes> Hi, Sounds like you want a work queue: https://www.rabbitmq.com/tutorials/tutorial-two-python.html Regards, Tobias -----Ursprungligt meddelande----- Fr?n: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] F?r Grenier,Michel [CMC] Skickat: den 11 oktober 2013 16:14 Till: Discussions about RabbitMQ ?mne: [rabbitmq-discuss] how to parallelize a queue HI rabbitmq gurus Is it possible to have 1 queue shared with X consumers and make sure that if one consumer gets a message the others don't. I am using pika. Michel Grenier (514) 421-7204 _______________________________________________ rabbitmq-discuss mailing list rabbitmq-discuss at lists.rabbitmq.com https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss From myownfitness at gmail.com Fri Oct 11 16:26:40 2013 From: myownfitness at gmail.com (MyOwnFitness) Date: Fri, 11 Oct 2013 08:26:40 -0700 Subject: [rabbitmq-discuss] Multi vhost access with static LDAP In-Reply-To: <5257DA70.3060103@rabbitmq.com> References: <5257DA70.3060103@rabbitmq.com> Message-ID: Hey Simon, Currently we are running 3.1.3, havent upgraded to 3.1.5 yet. You are correct about LDAP authentication. There is no attributes in LDAP, and that team is not willing to add them. There is a naming convention where the users will have LDAP accounts like, TestUser1 and 2 and TestPub1 and 2. Is there a way to grant access to a certain vhost based on Naming convention? Also, on that same note could you have multiple vhost sections in the config? I figured out how to "match" for the tag_queries, but wasnt too sure on the multi-vhost. Could you provide an example? Thanks for the help Simon! From eimu.gray at gmail.com Fri Oct 11 14:18:20 2013 From: eimu.gray at gmail.com (eimugray) Date: Fri, 11 Oct 2013 06:18:20 -0700 (PDT) Subject: [rabbitmq-discuss] synchronising queues problem Message-ID: <1381497500317-30433.post@n5.nabble.com> hi: I meet this problem. I have to node in my cluster. rabbit at master, rabbit at slave. I create a policy rabbitmqctl set_policy master_policy "^master\." {"ha-mode":"nodes", "ha-params":["rabbit at slave"], "ha-sync-mode":"automatic"}}. after synchronising , the master queues change to exist on rabbit at slave, and the policy don't change. so the mirror can't work. help -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/synchronising-queues-problem-tp30433.html Sent from the RabbitMQ mailing list archive at Nabble.com. From emile at rabbitmq.com Fri Oct 11 16:33:21 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Fri, 11 Oct 2013 16:33:21 +0100 Subject: [rabbitmq-discuss] synchronising queues problem In-Reply-To: <1381497500317-30433.post@n5.nabble.com> References: <1381497500317-30433.post@n5.nabble.com> Message-ID: <52581A41.2050706@rabbitmq.com> Hi, On 11/10/13 14:18, eimugray wrote: > {"ha-mode":"nodes", "ha-params":["rabbit at slave"], If a policy permits a queue to exist only on one node then it is not mirrored. For the queue to be safely mirrored include more than one node in the list, or set the policy to mirror on exactly nodes (where is greater than 1), or set the policy to mirror on all nodes. -Emile From simon at rabbitmq.com Fri Oct 11 16:34:35 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Fri, 11 Oct 2013 16:34:35 +0100 Subject: [rabbitmq-discuss] synchronising queues problem In-Reply-To: <1381497500317-30433.post@n5.nabble.com> References: <1381497500317-30433.post@n5.nabble.com> Message-ID: <52581A8B.3010404@rabbitmq.com> It's not at all clear what problem you're encountering. Please describe what you were expecting to happen, and how that differed from what actually happened. Cheers, Simon On 11/10/2013 2:18PM, eimugray wrote: > hi: > I meet this problem. > I have to node in my cluster. rabbit at master, rabbit at slave. > I create a policy rabbitmqctl set_policy master_policy "^master\." > {"ha-mode":"nodes", "ha-params":["rabbit at slave"], > "ha-sync-mode":"automatic"}}. > after synchronising , the master queues change to exist on rabbit at slave, > and the policy don't change. so the mirror can't work. > help > > > > -- > View this message in context: http://rabbitmq.1065348.n5.nabble.com/synchronising-queues-problem-tp30433.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 > -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Fri Oct 11 16:39:07 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Fri, 11 Oct 2013 16:39:07 +0100 Subject: [rabbitmq-discuss] Multi vhost access with static LDAP In-Reply-To: References: <5257DA70.3060103@rabbitmq.com> Message-ID: <52581B9B.708@rabbitmq.com> On 11/10/2013 4:26PM, MyOwnFitness wrote: > There is a naming convention where the users will have LDAP accounts > like, TestUser1 and 2 and TestPub1 and 2. Is there a way to grant > access to a certain vhost based on Naming convention? You could do something like: {match, {string, "${vhost}"}, {string, "^${username}-host$"}} So that TestUser1 can log in to TestUser1-host and so on. > Also, on that > same note could you have multiple vhost sections in the config? No. Like I said, in 3.2.0 you will be able to use boolean ops to simulate this. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Fri Oct 11 16:40:10 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Fri, 11 Oct 2013 16:40:10 +0100 Subject: [rabbitmq-discuss] Connection blocked by "flow" for more than 600 seconds In-Reply-To: References: <1381263436076-30349.post@n5.nabble.com> <1381267760478-30351.post@n5.nabble.com> <52548229.9000502@rabbitmq.com> <1381273745546-30354.post@n5.nabble.com> <5254935B.9040400@rabbitmq.com> <5255221D.3050907@rabbitmq.com> <1381458152747-30402.post@n5.nabble.com> <5257E135.1000909@rabbitmq.com> Message-ID: <52581BDA.5080108@rabbitmq.com> Ouch. Didn't realise it was that bad. So should we disrecommend R16B01 in general? Cheers, Simon On 11/10/2013 12:53PM, Jesper Louis Andersen wrote: > You are using R16B01. Upgrade to R16B02 at once! R16B01 has a bug which > means that async worker processes are not getting used correctly (too > many processes are hashed to the wrong async worker, more or less). This > severely hits disk I/O on a busy machine. > > There are other problems with R16B01. It should be avoided if possible. > > > On Fri, Oct 11, 2013 at 1:29 PM, Simon MacMullen > wrote: > > OK, so your screenshot shows 750 queues and 753 connections. Was > this from the same time as you had ~10k file descriptors in use? > That sounds wrong. > > I think your publishing connections are going into flow control > because there's a squeeze on file descriptors, which is causing the > queues to have to share a small number of file descriptors between > them - thus slowing them down. > > If you do have far more file descriptors in use than queues + > connections, do you have any exotic plugins in use? What does "lsof > -lnp " say? > > Cheers, Simon > > > On 11/10/2013 3:22AM, Choo wrote: > > Hi Simon, > > As memory is plenty, I found that file descriptors hit the > default limit, > so, I bumped the limit up to 5,120, and finally to 10,240 on > each nodes. It > turned out that the file descriptors also touched the limit > (around 10,086), > and things started to go downhill. > > > > > I started processes in reverse order, by starting > subscriber-side first > (1:42), then the bigger publishers later (1:45). The number of > published > messages bounced up&down, then just after 1:48, the most of the > publishers > were blocked. > > There are more than 350 of blocked connections like below now > (and file > descriptors are running at 7,558 + 4,647 on 2 nodes): > 10.95.212.11:33751 -> > 10.95.212.13:5672 blocked 1261.558817 > flow > 10.95.212.11:33752 -> > 10.95.212.13:5672 blocked 1326.324919 > flow > 10.95.212.11:33753 -> > 10.95.212.13:5672 blocked 1326.45322 > flow > 10.95.212.11:33754 -> > 10.95.212.13:5672 blocked 1278.581221 > flow > 10.95.212.11:33755 -> > 10.95.212.13:5672 blocked 1312.584426 > flow > 10.95.212.11:33756 -> > 10.95.212.13:5672 blocked 1279.623625 > flow > 10.95.212.11:33757 -> > 10.95.212.13:5672 blocked 1294.492535 > flow > 10.95.212.11:33758 -> > 10.95.212.13:5672 blocked 1276.134377 > flow > 10.95.212.11:33759 -> > 10.95.212.13:5672 blocked 1292.862081 > flow > 10.95.212.11:33760 -> > 10.95.212.13:5672 blocked 1290.695249 > flow > 10.95.212.11:33761 -> > 10.95.212.13:5672 blocked 1255.599642 > flow > 10.95.212.11:33762 -> > 10.95.212.13:5672 blocked 1284.984752 > flow > > Please kindly suggest. > > Thank you and Best Regards, > Choo > > > > -- > View this message in context: > http://rabbitmq.1065348.n5.__nabble.com/Connection-blocked-__by-flow-for-more-than-600-__seconds-tp30349p30402.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 > > > > -- > Simon MacMullen > RabbitMQ, Pivotal > > _________________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.__rabbitmq.com > > https://lists.rabbitmq.com/__cgi-bin/mailman/listinfo/__rabbitmq-discuss > > > > > > -- > J. > > > _______________________________________________ > 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 KGanann at kroll.com Fri Oct 11 16:54:40 2013 From: KGanann at kroll.com (Ganann, Kale) Date: Fri, 11 Oct 2013 15:54:40 +0000 Subject: [rabbitmq-discuss] Rabbit connections dying from protected enviornment Message-ID: <6DB033025329784B9280ABD9516177FC67C1D2FE@usbpx2pmxmbx12> Hey all, I was hoping I could get some direction here that might help us out. We've got a RabbitMQ production cluster up, and for the majority of our environments it works great. However, we have a protected set of environments that from within it the connections keep dying. If we go to the load balanced VIP, about 25 packets or so get exchanged, then there's a 200ms lull to acknowledge a packet from Rabbit, a quick resend/reack, and then nothing until the connection dies five minutes later. If we try to go past the VIP straight to a node, it fails outright (we did update the firewall rules to point to the single node). We've pulled the app out of this environment and it works fine outside, but within it seems to always exhibit this behavior. I got one of our network guys to break down the route the packets have to take: "Client Service is behind 2 stateful Cisco ASA firewalls. They connect to a F5 LBed Rabbit MQ server that works fine when not connecting form the behind the FW. Firewall ports open are TCP 5672-5673 and 15672. Issue we having is related to the connection on TCP 5672. Under working conditions, the client spins up 3 TCP connection to the server on 5672. On the problem client, it spins up an initial 3 and immediately spins up additional connections. Upon spinning up the additional connections it leaves the previous connections open, which are eventually reset after 5 min. Thus the main issue is what is the client seeing that causing it to restart the connection. The failed connections are very repeatable, it gets about 14 packets per side. With the last packets being a ctag ### from the server, followed by a delayed ack from the client. Did try adding some overrides for the protocol on the FWs that inline. Added the below. class-map RabbitMQ description Disable connection timeouts and other for RabbitMQ match port tcp eq 5672 policy-map global_policy class RabbitMQ set connection random-sequence-number disable set connection timeout embryonic 0:00:20 tcp 0:00:00 " Any ideas on what in that sequence could be hosing us up? 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 emile at rabbitmq.com Fri Oct 11 17:11:14 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Fri, 11 Oct 2013 17:11:14 +0100 Subject: [rabbitmq-discuss] Rabbit connections dying from protected enviornment In-Reply-To: <6DB033025329784B9280ABD9516177FC67C1D2FE@usbpx2pmxmbx12> References: <6DB033025329784B9280ABD9516177FC67C1D2FE@usbpx2pmxmbx12> Message-ID: <52582322.30403@rabbitmq.com> Hi Kale, On 11/10/13 16:54, Ganann, Kale wrote: > If we try to go past the VIP straight to a node, it fails outright In what way exactly does it fail? What do the broker logfiles say? What happens if you shut down all but one of the broker nodes? > Thus the main issue is what is the client seeing that causing it to > restart the connection. That's hard to guess without knowing the logic of the client or it's network input. > Any ideas on what in that sequence could be hosing us up? It should be possible to provide better feedback if you can supply the output of connecting the client via the tracer: http://www.rabbitmq.com/javadoc/com/rabbitmq/tools/Tracer.html -Emile From myownfitness at gmail.com Fri Oct 11 18:14:07 2013 From: myownfitness at gmail.com (MyOwnFitness) Date: Fri, 11 Oct 2013 10:14:07 -0700 Subject: [rabbitmq-discuss] Multi vhost access with static LDAP In-Reply-To: <52581B9B.708@rabbitmq.com> References: <5257DA70.3060103@rabbitmq.com> <52581B9B.708@rabbitmq.com> Message-ID: Awesome, that might work... one more question... If i used: {match, {string, "${vhost}"}, {string, "^${username}-host$"}} What if TestPub1 needed to publish to TestUser1-host? From simon at rabbitmq.com Fri Oct 11 18:16:20 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Fri, 11 Oct 2013 18:16:20 +0100 Subject: [rabbitmq-discuss] Multi vhost access with static LDAP In-Reply-To: References: <5257DA70.3060103@rabbitmq.com> <52581B9B.708@rabbitmq.com> Message-ID: <52583264.4020809@rabbitmq.com> On 11/10/2013 6:14PM, MyOwnFitness wrote: > If i used: > > {match, {string, "${vhost}"}, {string, "^${username}-host$"}} > > What if TestPub1 needed to publish to TestUser1-host? > > From the above they would only get access to TestPub1-host, correct? Yes. You might be able to work something out with regex matching to get that to work. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From brianin3d at yahoo.com Fri Oct 11 18:23:38 2013 From: brianin3d at yahoo.com (Brian Hammond) Date: Fri, 11 Oct 2013 10:23:38 -0700 (PDT) Subject: [rabbitmq-discuss] abnormally large memory use in "binaries" Message-ID: <1381512218.11144.YahooMailNeo@web122004.mail.ne1.yahoo.com> It happened again today with just 500 messages in a queue where the average message size is 280B, which would be about 135k. Doesn't rabbit track message memory usage separately in the "Message store index" ? The disparity from way under 1mb to 18gb of used space makes it seem unlikely message storage is at fault unless things are just not being cleaned up (such as a memory leak). I take it from your response that this is not currently on the radar as a systemic problem. -------------- next part -------------- An HTML attachment was scrubbed... URL: From Ron.Cordell at RelayHealth.com Fri Oct 11 19:50:31 2013 From: Ron.Cordell at RelayHealth.com (Cordell, Ron) Date: Fri, 11 Oct 2013 18:50:31 +0000 Subject: [rabbitmq-discuss] RabbitMQ and Clustering on Windows In-Reply-To: <5257B8CC.20102@rabbitmq.com> Message-ID: <0B8CD6850421B745BE39BC5C76019232A68280DC@DDCEP50016.na.corp.mckesson.com> Thanks for the suggestions, Emile. Do you have a recommendation for an Erlang version that will work with Rabbit 3.1.5? When I examined the release notes for 16B02 I didn't see anything that indicated there were big issues that were corrected over 16B01. I'm thinking that I probably should give R15B03-1 a try. We will experiment with the net_ticktime to see if we see any changes. Cheers, Ron On 10/11/13 1:37 AM, "Emile Joubert" wrote: > >Hi Ron, > > >On 11/10/13 00:30, Cordell, Ron wrote: > >> The version of Rabbit is 3.1.5 and Erlang 16B01, 64 bit Windows. > >That version of Erlang should be avoided. Are you able to replicate the >problem with an older or newer version? > > >> And yet we continue to experience these network partitions. >There are few ways that partitions can form without a network >interruption. If the erlang cookie is changed on a subset of nodes then >those nodes will leave the cluster. The Erlang distribution layer can >also be stopped administratively on a node via a specific "rabbitmqctl >eval" command. If you are not doing anything like that then the most >likely explanation is a network problem. If you have not tried this yet >you might consider increasing the net_ticktime to improve resilience in >the presence of short outages: > > http://www.rabbitmq.com/nettick.html > > > > > >-Emile > > > From myownfitness at gmail.com Fri Oct 11 22:32:26 2013 From: myownfitness at gmail.com (MyOwnFitness) Date: Fri, 11 Oct 2013 14:32:26 -0700 Subject: [rabbitmq-discuss] Multi vhost access with static LDAP In-Reply-To: <52583264.4020809@rabbitmq.com> References: <5257DA70.3060103@rabbitmq.com> <52581B9B.708@rabbitmq.com> <52583264.4020809@rabbitmq.com> Message-ID: Thanks Simon! On Fri, Oct 11, 2013 at 10:16 AM, Simon MacMullen wrote: > On 11/10/2013 6:14PM, MyOwnFitness wrote: > >> If i used: >> >> {match, {string, "${vhost}"}, {string, "^${username}-host$"}} >> >> What if TestPub1 needed to publish to TestUser1-host? >> >> From the above they would only get access to TestPub1-host, correct? >> > > Yes. You might be able to work something out with regex matching to get > that to work. > > > Cheers, Simon > > -- > Simon MacMullen > RabbitMQ, Pivotal > -------------- next part -------------- An HTML attachment was scrubbed... URL: From eimu.gray at gmail.com Sat Oct 12 03:37:41 2013 From: eimu.gray at gmail.com (eimugray) Date: Fri, 11 Oct 2013 19:37:41 -0700 (PDT) Subject: [rabbitmq-discuss] synchronising queues problem In-Reply-To: <52581A41.2050706@rabbitmq.com> References: <1381497500317-30433.post@n5.nabble.com> <52581A41.2050706@rabbitmq.com> Message-ID: <1381545461292-30456.post@n5.nabble.com> it can solve my problem, thanks!! -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/synchronising-queues-problem-tp30433p30456.html Sent from the RabbitMQ mailing list archive at Nabble.com. From eimu.gray at gmail.com Sat Oct 12 03:59:39 2013 From: eimu.gray at gmail.com (eimugray) Date: Fri, 11 Oct 2013 19:59:39 -0700 (PDT) Subject: [rabbitmq-discuss] synchronising queues problem In-Reply-To: <52581A8B.3010404@rabbitmq.com> References: <1381497500317-30433.post@n5.nabble.com> <52581A8B.3010404@rabbitmq.com> Message-ID: <1381546779010-30457.post@n5.nabble.com> In a cluster, I have a queue named my_queue on rabbit at master, Then I set a policy ({"ha-mode":"nodes", "ha-params":["rabbit at slave"]}} ) and execute the command (sync_queue my_queue) on rabbit at master . After that my_queue only exist on rabbit at slave and it is not mirror, it's make a mistake. I should set ({"ha-mode":"nodes", "ha-params":["rabbit at slave", "rabbit at master"]}} ) let a queue to exist on more than one node . is it clear? Emile Joubert's explanation solve my problem. thanks for you too. -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/synchronising-queues-problem-tp30433p30457.html Sent from the RabbitMQ mailing list archive at Nabble.com. From videlalvaro at gmail.com Sat Oct 12 04:47:46 2013 From: videlalvaro at gmail.com (Alvaro Videla) Date: Fri, 11 Oct 2013 22:47:46 -0500 Subject: [rabbitmq-discuss] how to apply more than one policy to the same queue Message-ID: Hi, I'm trying to apply more than one policy to the same queue with no success. Is that possible? See the output of rabbitmqctl: $ ./scripts/rabbitmqctl list_policies Listing policies ... / federate-me queues ^test\\. {"federation-upstream-set":"all"} 0 / ha-all queues ^test\\. {"ha-mode":"all"} 0 / other-fed queues ^test\\. {"federation-upstream-set":"some"} 0 ...done. $ ./scripts/rabbitmqctl list_queues name policy Listing queues ... test.asdf other-fed test.queue other-fed test.qwer other-fed test.zxcv other-fed ...done. I'm using RabbitMQ from the default hg branch. Regards, Alvaro -------------- next part -------------- An HTML attachment was scrubbed... URL: From nvthoai at gmail.com Sun Oct 13 00:38:30 2013 From: nvthoai at gmail.com (vantheshark) Date: Sat, 12 Oct 2013 16:38:30 -0700 (PDT) Subject: [rabbitmq-discuss] Queue disappear from nodes in clusters In-Reply-To: <51F244AC.5080000@rabbitmq.com> References: <1374757972984-28393.post@n5.nabble.com> <51F133F1.6010509@rabbitmq.com> <1374796498538-28404.post@n5.nabble.com> <51F244AC.5080000@rabbitmq.com> Message-ID: <1381621110029-30461.post@n5.nabble.com> Hi Simon, This happened again today :(. So let me describe the situation : I have 3 nodes with ha. Node 1 down and 1 queue on node 2 disappeared. I tried to create the missing queue manually from Web Admin, i saw it created but no client can subscribe to this queue. Here is the sasl log: rabbit at queue2-sasl.log Hope you can help. Thanks. -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Queue-disappear-from-nodes-in-clusters-tp28393p30461.html Sent from the RabbitMQ mailing list archive at Nabble.com. From tyger2007 at yahoo.com Sun Oct 13 11:49:20 2013 From: tyger2007 at yahoo.com (=?utf-8?B?dHlnZXIyMDA3QHlhaG9vLmNvbQ==?=) Date: Sun, 13 Oct 2013 11:49:20 +0100 Subject: [rabbitmq-discuss] =?utf-8?q?Fetching_messages_from_exchange_once?= =?utf-8?q?_I_connect?= Message-ID: <429361.60959.bm@smtp107.mail.ir2.yahoo.com> Hello and good day , I am using rabbitmq for an application , I have an exchange to exchange binding like this Clientapp1 connects to rabbitmq server creates a fanout exchange and binds it to an exchange ( post exchange that is always on the server ) this is more like an exchange to exchange binding so another consumer can always try to read from a central exchange instead of binding to all the exchanges he subscribed to , I have two questions based on this implementation 1)since the central exchange(post exchange) is a topic exchange on the server with multiple clientapps binding their exchange to it , how do I route the messages effectively to consumers that have queues bound to the post exchange based on their binding keys 2)if consumer3 was not alive when the message was sent to post exchange , how does the app fetch all the sent messages once he connects to the server . Please any extra tips on this design approach is welcomed , thanks . Sent from my HTC -------------- next part -------------- An HTML attachment was scrubbed... URL: From jesper.louis.andersen at gmail.com Sun Oct 13 11:53:59 2013 From: jesper.louis.andersen at gmail.com (Jesper Louis Andersen) Date: Sun, 13 Oct 2013 12:53:59 +0200 Subject: [rabbitmq-discuss] Connection blocked by "flow" for more than 600 seconds In-Reply-To: <52581BDA.5080108@rabbitmq.com> References: <1381263436076-30349.post@n5.nabble.com> <1381267760478-30351.post@n5.nabble.com> <52548229.9000502@rabbitmq.com> <1381273745546-30354.post@n5.nabble.com> <5254935B.9040400@rabbitmq.com> <5255221D.3050907@rabbitmq.com> <1381458152747-30402.post@n5.nabble.com> <5257E135.1000909@rabbitmq.com> <52581BDA.5080108@rabbitmq.com> Message-ID: On Fri, Oct 11, 2013 at 5:40 PM, Simon MacMullen wrote: > Ouch. Didn't realise it was that bad. So should we disrecommend R16B01 in > general? > It is not a very good release for sure. Personally, I would not run that version in production, when R16B02 seems so much better. -- J. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Sun Oct 13 13:20:06 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Sun, 13 Oct 2013 16:20:06 +0400 Subject: [rabbitmq-discuss] Fetching messages from exchange once I connect In-Reply-To: <429361.60959.bm@smtp107.mail.ir2.yahoo.com> References: <429361.60959.bm@smtp107.mail.ir2.yahoo.com> Message-ID: <9E0FE653-C675-4E26-97ED-20E5B6E8C508@rabbitmq.com> On 13 Oct 2013, at 14:49, tyger2007 at yahoo.com wrote: > I am using rabbitmq for an application , I have an exchange to exchange binding like this > Clientapp1 connects to rabbitmq server creates a fanout exchange and binds it to an exchange ( post exchange that is always on the server ) this is more like an exchange to exchange binding so another consumer can always try to read from a central exchange instead of binding to all the exchanges he subscribed to , I have two questions based on this implementation > 1)since the central exchange(post exchange) is a topic exchange on the server with multiple clientapps binding their exchange to it , how do I route the messages effectively to consumers that have queues bound to the post exchange based on their binding keys Sorry but consumers do not consume from exchanges. They consume from queues which exchanges route messages to. See http://www.rabbitmq.com/tutorials/amqp-concepts.html if you need a brief intro to the concepts. > 2)if consumer3 was not alive when the message was sent to post exchange , how does the app fetch all the sent messages once he connects to the server . Again, consumers don't know anything about exchanges. If a message is published to an exchange X, then one of the following scenarios occurs: * X has queues bound to it with matching routing keys. A copy of the message is placed into each queue. * X has no bindings or none with matching routing keys. The message will either be sent to an alternate exchange (if any) or returned to the publisher (if published as mandatory) or voided. * X has exchanges bound to it. Then it works as if a copy of the message was published to every one of those exchanges (with matching routing keys). Note that exchange-to-exchange bindings are relatively rarely used by applications. Now, if a message is routed to a queue that has no consumers, it will sit there waiting for a consumer to come around or an app pull messages using basic.get. Whether messages survive RabbitMQ node restart depends on queue durability and if messages are published as persistent but otherwise, the message will sit there waiting to be consumed. MK From e34_520 at yahoo.com Sun Oct 13 13:43:01 2013 From: e34_520 at yahoo.com (Choo) Date: Sun, 13 Oct 2013 05:43:01 -0700 (PDT) Subject: [rabbitmq-discuss] Connection blocked by "flow" for more than 600 seconds In-Reply-To: References: <1381267760478-30351.post@n5.nabble.com> <52548229.9000502@rabbitmq.com> <1381273745546-30354.post@n5.nabble.com> <5254935B.9040400@rabbitmq.com> <5255221D.3050907@rabbitmq.com> <1381458152747-30402.post@n5.nabble.com> <5257E135.1000909@rabbitmq.com> <52581BDA.5080108@rabbitmq.com> Message-ID: <1381668181993-30465.post@n5.nabble.com> Hi Simon and Jesper, Thank you for the recommendation. There are about 750 queues, with 750 processes written in Perl with Net::RabbitMQ module. Each process will only open 1 connection to RabbitMQ - for both retrieving and publishing messages to the next processes. Half of 750 processes connected to node 1, and the other half to node 2. Will try upgrade to R16B02, then see how it goes. ; ) Thank you and Best Regards, Choo -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Connection-blocked-by-flow-for-more-than-600-seconds-tp30349p30465.html Sent from the RabbitMQ mailing list archive at Nabble.com. From simon at rabbitmq.com Sun Oct 13 15:55:21 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Sun, 13 Oct 2013 15:55:21 +0100 Subject: [rabbitmq-discuss] how to apply more than one policy to the same queue In-Reply-To: References: Message-ID: <525AB459.90804@rabbitmq.com> On 12/10/2013 4:47AM, Alvaro Videla wrote: > Hi, > > I'm trying to apply more than one policy to the same queue with no > success. Is that possible? No. Each exchange / queue will have at most one policy applied to it. Otherwise, if two policies applied to one object and they contradicted each other, the outcome would be unclear and difficult to visualise. So the highest priority wins, and if there are multiple policies with the same priority that could apply then one is chosen arbitrarily. If you want to define both HAness and federatedness for a queue, you can do it in one policy like: $ rabbitmqctl set_policy fed-ha '^test\.' '{"federation-upstream-set":"all","ha-mode":"all"}' Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From e34_520 at yahoo.com Sun Oct 13 16:28:35 2013 From: e34_520 at yahoo.com (Choo) Date: Sun, 13 Oct 2013 08:28:35 -0700 (PDT) Subject: [rabbitmq-discuss] Connection blocked by "flow" for more than 600 seconds In-Reply-To: <1381668181993-30465.post@n5.nabble.com> References: <52548229.9000502@rabbitmq.com> <1381273745546-30354.post@n5.nabble.com> <5254935B.9040400@rabbitmq.com> <5255221D.3050907@rabbitmq.com> <1381458152747-30402.post@n5.nabble.com> <5257E135.1000909@rabbitmq.com> <52581BDA.5080108@rabbitmq.com> <1381668181993-30465.post@n5.nabble.com> Message-ID: <1381678115717-30467.post@n5.nabble.com> Hi All, After upgrading to Erlang R16B02 with Nightly Build (RabbitMQ 3.1.5.41009), although the "File Descriptors" issue is fixed, the problem still persists. : ( We started the subscriber modules first, then publishers. As you can see, after start publisher modules, the processes worked for less than 1 minute, then blocked, then worked for another shot, and blocked, and it seemed to happen around 3-4 times, after that, the connections were forever blocked. In term of limited resources: - memory seemed plenty - file descriptor looked perfect - disk space should not be a problem Any suggestion would be very welcome. Thank you and Best Regards, Choo -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Connection-blocked-by-flow-for-more-than-600-seconds-tp30349p30467.html Sent from the RabbitMQ mailing list archive at Nabble.com. From Rohit.Patel2 at techmahindra.com Sun Oct 13 21:19:58 2013 From: Rohit.Patel2 at techmahindra.com (Rohit Patle) Date: Sun, 13 Oct 2013 20:19:58 +0000 Subject: [rabbitmq-discuss] Auto delete Queue disappears while using with direct exchange. Message-ID: <27E054594442884E9A46DBCF9AE74081610186@BSDMSATMBX001.mahindrasatyam.ad> Hi, I am creating the queues with using direct exchange and auto delete property, I am finding that my queues are getting disappears in between when application is in running state. But I kept some example listener running without exchange which are running properly without queue missing. Due to the reason I have following doubts as: 1. Is it necessary to declare the exchange prior to create the queue? (my queues have to communicate in one to one manner no need to have functionality like fanout and topic exchange.) 2. Is there any drawback of using default exchange functionality wise(queue is auto delete)? 3. Is there any way in rabbitmq-c-master from which I can catch the instance(like error checking method) where exactly my queue is gone died? Kindly 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 mklishin at gopivotal.com Sun Oct 13 21:27:33 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Mon, 14 Oct 2013 00:27:33 +0400 Subject: [rabbitmq-discuss] Auto delete Queue disappears while using with direct exchange. In-Reply-To: <27E054594442884E9A46DBCF9AE74081610186@BSDMSATMBX001.mahindrasatyam.ad> References: <27E054594442884E9A46DBCF9AE74081610186@BSDMSATMBX001.mahindrasatyam.ad> Message-ID: On oct 14, 2013, at 12:19 a.m., Rohit Patle wrote: > 1. Is it necessary to declare the exchange prior to create the queue? (my queues have to communicate in one to one manner no need to have functionality like fanout and topic exchange.) No but you need to have both (and a binding) in place before you publish messages for them to be routed. > > 2. Is there any drawback of using default exchange functionality wise(queue is auto delete)? Default exchange is for publishing "directly to a queue". This is orthogonal with auto-deletion. There are no real drawbacks except that the publisher needs to know the exact queue name. > 3. Is there any way in rabbitmq-c-master from which I can catch the instance(like error checking method) where exactly my queue is gone died? It's not exposed to clients. There are 4 reasons: * Queue is deleted using queue.delete * Queue was declared as exclusive and the connection that declared it is gone. * Queue was declared as auto-delete and the last consumer that was using it is gone or cancelled. * Queue had TTL set on it and it has expired. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From eimu.gray at gmail.com Mon Oct 14 03:42:23 2013 From: eimu.gray at gmail.com (eimugray) Date: Sun, 13 Oct 2013 19:42:23 -0700 (PDT) Subject: [rabbitmq-discuss] register_confirm_handler using the Erlang client In-Reply-To: <5245AAAA.2090605@rabbitmq.com> References: <53f11950-2a9d-498f-95c7-bb6a2cb991ff@googlegroups.com> <5245AAAA.2090605@rabbitmq.com> Message-ID: <1381718543797-30470.post@n5.nabble.com> Hi Simon: I have thought it and add code to hang the channel , It work fine. Thanks for you!! -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/register-confirm-handler-using-the-Erlang-client-tp29991p30470.html Sent from the RabbitMQ mailing list archive at Nabble.com. From emile at rabbitmq.com Mon Oct 14 10:55:42 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Mon, 14 Oct 2013 10:55:42 +0100 Subject: [rabbitmq-discuss] RabbitMQ and Clustering on Windows In-Reply-To: <0B8CD6850421B745BE39BC5C76019232A68280DC@DDCEP50016.na.corp.mckesson.com> References: <0B8CD6850421B745BE39BC5C76019232A68280DC@DDCEP50016.na.corp.mckesson.com> Message-ID: <525BBF9E.6050809@rabbitmq.com> Hi Ron, On 11/10/13 19:50, Cordell, Ron wrote: > Do you have a recommendation for an Erlang version that will work with > Rabbit 3.1.5? When I examined the release notes for 16B02 I didn't see > anything that indicated there were big issues that were corrected over > 16B01. I'm thinking that I probably should give R15B03-1 a try. Yes, or R16B02. The latest (non-alpha) Erlang version is normally recommended. Also see https://www.rabbitmq.com/which-erlang.html -Emile From emile at rabbitmq.com Mon Oct 14 11:03:51 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Mon, 14 Oct 2013 11:03:51 +0100 Subject: [rabbitmq-discuss] abnormally large memory use in "binaries" In-Reply-To: <1381512218.11144.YahooMailNeo@web122004.mail.ne1.yahoo.com> References: <1381512218.11144.YahooMailNeo@web122004.mail.ne1.yahoo.com> Message-ID: <525BC187.3040305@rabbitmq.com> Hi Brian, On 11/10/13 18:23, Brian Hammond wrote: > It happened again today with just 500 messages in a queue where the > average message size is 280B, which would be about 135k. How did you determine the average message size? Is it possible that the queue could contain a small number of extremely large messages that skew the average? > Doesn't rabbit track message memory usage separately in the "Message > store index" ? > > The disparity from way under 1mb to 18gb of used space makes it seem > unlikely message storage is at fault unless things are just not being > cleaned up (such as a memory leak). Does the memory use increase gradually or in large jumps? > I take it from your response that this is not currently on the radar as > a systemic problem. I'm not aware of any bugs that could explain the problem you describe. Could you supply the output of "rabbitmqctl report" while you observe the reported condition? -Emile From simon at rabbitmq.com Mon Oct 14 11:57:41 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Mon, 14 Oct 2013 11:57:41 +0100 Subject: [rabbitmq-discuss] ANN: Management exchange type Message-ID: <525BCE25.6040308@rabbitmq.com> There's been intermittent interest in accessing the management plugin's API over AMQP, so I wrote this: https://github.com/simonmacmullen/rabbitmq-management-exchange At the moment it's very much the simplest thing that could possibly work. It has one quite notable limitation (permissions are handled in quite a hackish way). If you find this useful, please let me know! Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From martin.rogan.inc at gmail.com Mon Oct 14 12:06:51 2013 From: martin.rogan.inc at gmail.com (mrogan) Date: Mon, 14 Oct 2013 04:06:51 -0700 (PDT) Subject: [rabbitmq-discuss] Long pauses when closing many channels simultaneously In-Reply-To: <5257E655.80906@rabbitmq.com> References: <8a7a1859-5ff0-49a3-8ba9-edef63830591@googlegroups.com> <74B331C7-6DD1-494D-94C9-7E754C7ECC82@rabbitmq.com> <1380282223281-29973.post@n5.nabble.com> <5257E655.80906@rabbitmq.com> Message-ID: <1381748811375-30473.post@n5.nabble.com> Emile Joubert wrote > Thanks for the test code. I tried this on the latest version of the > broker and was not able to reproduce the problem. All closures took less > than 500ms. Can you confirm that the problem exists when using a > nightly build of the broker and the Java client? > > -Emile That's interesting. I really wasn't expecting that! I was using the official 3.1.5 release beforehand. I tried again with last night's 3.1.5.41014 build of both the broker and Java client. I got the same results: I installed the 3.1.5.41014 broker locally using the mac-standalone distribution. I'm running OSX 10.6.8 Snow Leopard with Java 1.6.0_51. With the previous 3.1.5 tests I ran against a remote cluster over a Gb LAN where it was hosted on Scientific Linux 6.4 (a RHEL clone). None of this seemed to affect the results other than the expected extra time for the network hop. I wonder if you think it's worth me retrying the tests on Windows and/or OSX Mountain Lion with Java 1.7? Thanks, Martin -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Long-pauses-when-closing-many-channels-simultaneously-tp29937p30473.html Sent from the RabbitMQ mailing list archive at Nabble.com. From mklishin at gopivotal.com Mon Oct 14 12:11:51 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Mon, 14 Oct 2013 15:11:51 +0400 Subject: [rabbitmq-discuss] ANN Ruby RabbitMQ HTTP API 0.7.0 Message-ID: Ruby client for RabbitMQ HTTP API 0.7.0 is released. This is a minor feature release which is completely backwards compatible. Release notes: http://blog.rubyrabbitmq.info/blog/2013/10/14/rabbitmq-http-api-client-0-dot-7-0-is-released/ MK From mklishin at gopivotal.com Mon Oct 14 12:21:23 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Mon, 14 Oct 2013 15:21:23 +0400 Subject: [rabbitmq-discuss] Long pauses when closing many channels simultaneously In-Reply-To: <1381748811375-30473.post@n5.nabble.com> References: <8a7a1859-5ff0-49a3-8ba9-edef63830591@googlegroups.com> <74B331C7-6DD1-494D-94C9-7E754C7ECC82@rabbitmq.com> <1380282223281-29973.post@n5.nabble.com> <5257E655.80906@rabbitmq.com> <1381748811375-30473.post@n5.nabble.com> Message-ID: <062E8248-BAEB-47AE-8BDA-CD7182176829@rabbitmq.com> On 14 Oct 2013, at 15:06, mrogan wrote: > I wonder if you think it's worth me retrying the tests on Windows and/or OSX > Mountain Lion with Java 1.7? Given that JDK 6 is no longer supported, you should switch to JDK 7. MK From emile at rabbitmq.com Mon Oct 14 12:33:37 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Mon, 14 Oct 2013 12:33:37 +0100 Subject: [rabbitmq-discuss] Long pauses when closing many channels simultaneously In-Reply-To: <1381748811375-30473.post@n5.nabble.com> References: <8a7a1859-5ff0-49a3-8ba9-edef63830591@googlegroups.com> <74B331C7-6DD1-494D-94C9-7E754C7ECC82@rabbitmq.com> <1380282223281-29973.post@n5.nabble.com> <5257E655.80906@rabbitmq.com> <1381748811375-30473.post@n5.nabble.com> Message-ID: <525BD691.9040706@rabbitmq.com> Hi, On 14/10/13 12:06, mrogan wrote: > That's interesting. I really wasn't expecting that! I was using the official > 3.1.5 release beforehand. I tried again with last night's 3.1.5.41014 build > of both the broker and Java client. I got the same results: Can you please confirm whether you believe there still is a problem when using the latest version? There have been a number of improvements since the last release which could explain difference in behaviour when using a nightly build. > I wonder if you think it's worth me retrying the tests on Windows and/or OSX > Mountain Lion with Java 1.7? Using a different OS is unlikely to make a difference. What question are you trying to answer by doing this? -Emile From martin.rogan.inc at gmail.com Mon Oct 14 13:01:01 2013 From: martin.rogan.inc at gmail.com (mrogan) Date: Mon, 14 Oct 2013 05:01:01 -0700 (PDT) Subject: [rabbitmq-discuss] Long pauses when closing many channels simultaneously In-Reply-To: <062E8248-BAEB-47AE-8BDA-CD7182176829@rabbitmq.com> References: <8a7a1859-5ff0-49a3-8ba9-edef63830591@googlegroups.com> <74B331C7-6DD1-494D-94C9-7E754C7ECC82@rabbitmq.com> <1380282223281-29973.post@n5.nabble.com> <5257E655.80906@rabbitmq.com> <1381748811375-30473.post@n5.nabble.com> <062E8248-BAEB-47AE-8BDA-CD7182176829@rabbitmq.com> Message-ID: <1381752061648-30476.post@n5.nabble.com> Michael Klishin-2 wrote > Given that JDK 6 is no longer supported, you should switch to JDK 7. > > MK You're absolutely right, I should switch just as soon as my IT department gets around to upgrading my Mac! Java 7 is not supported on Snow Leopard and apparently it takes 2 years to upgrade it. Martin..( -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Long-pauses-when-closing-many-channels-simultaneously-tp29937p30476.html Sent from the RabbitMQ mailing list archive at Nabble.com. From mklishin at gopivotal.com Mon Oct 14 13:07:19 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Mon, 14 Oct 2013 16:07:19 +0400 Subject: [rabbitmq-discuss] Long pauses when closing many channels simultaneously In-Reply-To: <1381752061648-30476.post@n5.nabble.com> References: <8a7a1859-5ff0-49a3-8ba9-edef63830591@googlegroups.com> <74B331C7-6DD1-494D-94C9-7E754C7ECC82@rabbitmq.com> <1380282223281-29973.post@n5.nabble.com> <5257E655.80906@rabbitmq.com> <1381748811375-30473.post@n5.nabble.com> <062E8248-BAEB-47AE-8BDA-CD7182176829@rabbitmq.com> <1381752061648-30476.post@n5.nabble.com> Message-ID: On 14 Oct 2013, at 16:01, mrogan wrote: > Java 7 is not supported on Snow Leopard and > apparently it takes 2 years to upgrade it Are you aware of Oracle's own JDK 7 installers available from http://www.oracle.com/technetwork/java/javase/downloads/index.html? This may or may not be an option according to your IT dept policies but these JDKs should work on Snow Leopard. Apple no longer maintains their own JDK. MK From anandlramadurg at gmail.com Mon Oct 14 14:46:06 2013 From: anandlramadurg at gmail.com (Anand Ramadurg) Date: Mon, 14 Oct 2013 19:16:06 +0530 Subject: [rabbitmq-discuss] Fwd: RabbitMQ startup error. In-Reply-To: References: <5257BD63.8030101@rabbitmq.com> Message-ID: Hello Experts... I am still not able to find the root cause. During first time startup ( linux env) it get stuck here ( not all the time ) =INFO REPORT==== 4-Oct-2013::14:47:35 === application: *mnesia* exited: stopped type: temporary Even After waiting for 1 mintue it doesnt start. I kill the rabbitmq process and then deleted mnesia db manually and restarted rabbitmq then it came up without any issues. Any possible reason on why it get stuck at above point? --Anand On Fri, Oct 11, 2013 at 2:27 PM, Emile Joubert wrote: > > > Hi, > > On 09/10/13 18:23, Anand Ramadurg wrote: > > > Any obvious root cause of this? > > Some possible causes and solutions are listed on the troubleshooting > page: http://www.rabbitmq.com/troubleshooting.html > > In your case it is possible that the broker is not running. Try to get > the broker started first. > > > > -Emile > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From emile at rabbitmq.com Mon Oct 14 15:01:29 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Mon, 14 Oct 2013 15:01:29 +0100 Subject: [rabbitmq-discuss] Fwd: RabbitMQ startup error. In-Reply-To: References: <5257BD63.8030101@rabbitmq.com> Message-ID: <525BF939.1010301@rabbitmq.com> On 14/10/13 14:46, Anand Ramadurg wrote: > =INFO REPORT==== 4-Oct-2013::14:47:35 === > application: mnesia > exited: stopped > type: temporary Normally there are other log entries that accompany ones like this. Can you confirm that nothing else appeared in the logfile at near the same time? Are you able to provide a sequence of steps that will reproduce the problem with high likelihood? -Emile From xeonmailinglist at gmail.com Mon Oct 14 15:04:43 2013 From: xeonmailinglist at gmail.com (xeon) Date: Mon, 14 Oct 2013 15:04:43 +0100 Subject: [rabbitmq-discuss] log rabbitmq messages Message-ID: <525BF9FB.8000706@gmail.com> I launch bash commands with python, and I do this remote invocations sending remote messages to the rabbitmq. The messages get to the remote hosts, and the commands are launched, but I am waiting for the return of the invocation and it doesn't come back, althougt the remote python method returns the result of the launched bash command. I am going to illustrate this: client sends message to remote host to run "myprogram.sh" def runList(): result=executeCommand("myprogram.sh") print result the remote host has this method and receive the message from the rabbitmq: def executeCommand(command): result=run bash command. return result Myprogram.sh takes 10 minutes to run, and sometimes the client gets the response, sometimes doesn't. I don't understand why sometimes it doesn't get the result. Is it correct to return the result of the remote invocation with a simple "return result" in the remote method? Can I log the messages that rabbitmq handle? -- Thanks, -------------- next part -------------- An HTML attachment was scrubbed... URL: From emile at rabbitmq.com Mon Oct 14 15:12:37 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Mon, 14 Oct 2013 15:12:37 +0100 Subject: [rabbitmq-discuss] log rabbitmq messages In-Reply-To: <525BF9FB.8000706@gmail.com> References: <525BF9FB.8000706@gmail.com> Message-ID: <525BFBD5.9030804@rabbitmq.com> Hi, On 14/10/13 15:04, xeon wrote: > Can I log the messages that rabbitmq handle? You can get this information from the firehose tracer: http://www.rabbitmq.com/firehose.html You could also inspect the AMQP network traffic with a protocol analyser, e.g. http://www.rabbitmq.com/javadoc/com/rabbitmq/tools/Tracer.html -Emile From mklishin at gopivotal.com Mon Oct 14 15:14:34 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Mon, 14 Oct 2013 18:14:34 +0400 Subject: [rabbitmq-discuss] log rabbitmq messages In-Reply-To: <525BF9FB.8000706@gmail.com> References: <525BF9FB.8000706@gmail.com> Message-ID: On 14 Oct 2013, at 18:04, xeon wrote: > Myprogram.sh takes 10 minutes to run, and sometimes the client gets the response, sometimes doesn't. I don't understand why sometimes it doesn't get the result. Try enabling the management plugin to narrow down the issue. Are you connections still alive after 10 minutes? Are there messages in response queues? And so on. > Is it correct to return the result of the remote invocation with a simple "return result" in the remote method? You seem to be using some kind of RPC library. Can you at least say what it is? It's impossible to answer the above without knowing how the "remote invocation" works. > Can I log the messages that rabbitmq handle? You can either run a proxy that ships with the Java client: http://www.rabbitmq.com/api-guide.html or turn on event firehose: http://www.rabbitmq.com/firehose.html or use Wireshark and co. MK From anandlramadurg at gmail.com Mon Oct 14 16:02:56 2013 From: anandlramadurg at gmail.com (Anand Ramadurg) Date: Mon, 14 Oct 2013 20:32:56 +0530 Subject: [rabbitmq-discuss] Fwd: Fwd: RabbitMQ startup error. In-Reply-To: References: <5257BD63.8030101@rabbitmq.com> <525BF939.1010301@rabbitmq.com> Message-ID: These are the logs: =INFO REPORT==== 4-Oct-2013::14:47:25 === Starting RabbitMQ 3.0.1 on Erlang R16B =INFO REPORT==== 4-Oct-2013::14:47:35 === Limiting to approx 3996 file handles (3594 sockets) =INFO REPORT==== 4-Oct-2013::14:47:35 === application: *mnesia* exited: stopped type: temporary =INFO REPORT==== 4-Oct-2013::14:48:42 === Starting RabbitMQ 3.0.1 on Erlang R16B @14:48 i killed the rabbitmq and deleted mnesia db and restarted. It started without any issues. Well i cant reproduce it all the time happens once in every 10 times. On Mon, Oct 14, 2013 at 7:31 PM, Emile Joubert wrote: > On 14/10/13 14:46, Anand Ramadurg wrote: > > > =INFO REPORT==== 4-Oct-2013::14:47:35 === > > application: mnesia > > exited: stopped > > type: temporary > > Normally there are other log entries that accompany ones like this. Can > you confirm that nothing else appeared in the logfile at near the same > time? > > Are you able to provide a sequence of steps that will reproduce the > problem with high likelihood? > > > > > -Emile > -------------- next part -------------- An HTML attachment was scrubbed... URL: From sp345s at att.com Mon Oct 14 16:06:50 2013 From: sp345s at att.com (PATAR, SAGAR) Date: Mon, 14 Oct 2013 15:06:50 +0000 Subject: [rabbitmq-discuss] connection timeout exception .. Message-ID: <59BF56992750434F89F8EBE141E64B1D018261EA@GAALPA1MSGUSR9C.ITServices.sbc.com> I have installed rabbit MQ in my local and was able to access the via browser with the below URL http://localhost:15672/#/ Tried out with a simple java program .. public static void main(String[] args) throws IOException { ConnectionFactory factory = new ConnectionFactory(); factory.setHost("localhost"); factory.setPort(15672); factory.setUsername("guest"); factory.setPassword("guest"); Connection connection = factory.newConnection(); Channel channel = connection.createChannel(); String message = "Hello World!"; channel.basicPublish("dl.test.exchange","test", null , message.getBytes()); System.out.println(" [x] Sent '" + message + "'"); // channel.close(); // connection.close(); } And getting the below exception ... Not sure if there is any tweak I am missing .. Exception in thread "main" java.io.IOException at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:106) at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:102) at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:353) at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:516) at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:533) at TestSend.main(TestSend.java:16) Caused by: com.rabbitmq.client.ShutdownSignalException: connection error; reason: java.net.SocketTimeoutException: Timeout during Connection negotiation at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:67) at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:33) at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:343) at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:306) ... 3 more Caused by: java.net.SocketTimeoutException: Timeout during Connection negotiation at com.rabbitmq.client.impl.AMQConnection.handleSocketTimeout(AMQConnection.java:552) at com.rabbitmq.client.impl.AMQConnection.access$500(AMQConnection.java:53) at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:527) -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Mon Oct 14 16:16:26 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Mon, 14 Oct 2013 16:16:26 +0100 Subject: [rabbitmq-discuss] connection timeout exception .. In-Reply-To: <59BF56992750434F89F8EBE141E64B1D018261EA@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D018261EA@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: <525C0ACA.8080205@rabbitmq.com> On 14/10/2013 4:06PM, PATAR, SAGAR wrote: > factory.setPort(15672); 15672 is the port for the HTTP API / web UI. AMQP uses port 5672. You can just delete that line. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From lars.ellebo at schneider-electric.com Mon Oct 14 16:22:27 2013 From: lars.ellebo at schneider-electric.com (lars.ellebo at schneider-electric.com) Date: Mon, 14 Oct 2013 17:22:27 +0200 Subject: [rabbitmq-discuss] AUTO: Lars Ellebo is out of the office. (returning 21-10-2013) Message-ID: I am out of the office until 21-10-2013. Note: This is an automated response to your message "Re: [rabbitmq-discuss] RabbitMQ and Clustering on Windows" sent on 14/10/2013 11:55:42. This is the only notification you will receive while this person is away. -------------- next part -------------- An HTML attachment was scrubbed... URL: From k.madnani84 at gmail.com Mon Oct 14 16:29:32 2013 From: k.madnani84 at gmail.com (k.madnani84) Date: Mon, 14 Oct 2013 08:29:32 -0700 (PDT) Subject: [rabbitmq-discuss] Error in start_app through rabbitmqctl.. Message-ID: <1381764572006-30486.post@n5.nabble.com> Hi, I am trying to do start_app through rabbitmqctl after doing a stop_app on a node in a cluster but it throws me error: Error description: {could_not_start,rabbit, {bad_return, {{rabbit,start,[normal,[]]}, {'EXIT', {rabbit,failure_during_boot,{badmatch,{error,not_found}}}}}}} Log files (may contain more information): /opt/app/rabbitmq/log/CLUSTER2.log /opt/app/rabbitmq/log/CLUSTER2-sasl.log Error: {rabbit,failure_during_boot, {could_not_start,rabbit, {bad_return, {{rabbit,start,[normal,[]]}, {'EXIT', {rabbit,failure_during_boot, {badmatch,{error,not_found}}}}}}}} Later i found that if i do a reset and then do start_app it worked.Further investigating i saw that there was a queue in the node before i was doing stop_app.Is that the reason why it dint allow me to do start_app and once i did reset, queue deletes and i could do start_app? -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Error-in-start-app-through-rabbitmqctl-tp30486.html Sent from the RabbitMQ mailing list archive at Nabble.com. From simon at rabbitmq.com Mon Oct 14 16:59:19 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Mon, 14 Oct 2013 16:59:19 +0100 Subject: [rabbitmq-discuss] Error in start_app through rabbitmqctl.. In-Reply-To: <1381764572006-30486.post@n5.nabble.com> References: <1381764572006-30486.post@n5.nabble.com> Message-ID: <525C14D7.6090804@rabbitmq.com> The log files may contain more information. Do they? Cheers, Simon On 14/10/2013 4:29PM, k.madnani84 wrote: > Hi, > > I am trying to do start_app through rabbitmqctl after doing a stop_app on a > node in a cluster but it throws me error: > Error description: > {could_not_start,rabbit, > {bad_return, > {{rabbit,start,[normal,[]]}, > {'EXIT', > > {rabbit,failure_during_boot,{badmatch,{error,not_found}}}}}}} > > Log files (may contain more information): > /opt/app/rabbitmq/log/CLUSTER2.log > /opt/app/rabbitmq/log/CLUSTER2-sasl.log > > Error: {rabbit,failure_during_boot, > {could_not_start,rabbit, > {bad_return, > {{rabbit,start,[normal,[]]}, > {'EXIT', > {rabbit,failure_during_boot, > {badmatch,{error,not_found}}}}}}}} > > Later i found that if i do a reset and then do start_app it worked.Further > investigating i saw that there was a queue in the node before i was doing > stop_app.Is that the reason why it dint allow me to do start_app and once i > did reset, queue deletes and i could do start_app? > > > > -- > View this message in context: http://rabbitmq.1065348.n5.nabble.com/Error-in-start-app-through-rabbitmqctl-tp30486.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 > -- Simon MacMullen RabbitMQ, Pivotal From k.madnani84 at gmail.com Mon Oct 14 17:07:16 2013 From: k.madnani84 at gmail.com (k.madnani84) Date: Mon, 14 Oct 2013 09:07:16 -0700 (PDT) Subject: [rabbitmq-discuss] Error in start_app through rabbitmqctl.. In-Reply-To: <525C14D7.6090804@rabbitmq.com> References: <1381764572006-30486.post@n5.nabble.com> <525C14D7.6090804@rabbitmq.com> Message-ID: <1381766836950-30488.post@n5.nabble.com> Not really.Here is the logs: =INFO REPORT==== 14-Oct-2013::08:13:16 === Starting RabbitMQ 3.1.5 on Erlang R15B03 Copyright (C) 2007-2013 GoPivotal, Inc. Licensed under the MPL. See http://www.rabbitmq.com/ =INFO REPORT==== 14-Oct-2013::08:13:16 === node : CLUSTER2 at zldv0434 home dir : /opt/app/rabbitmq/data cookie hash : 2Ql8umSJiq1VXPa63ucblg== log : /opt/app/rabbitmq/log/CLUSTER2.log sasl log : /opt/app/rabbitmq/log/CLUSTER2-sasl.log database dir : /opt/app/rabbitmq/data/mnesia/CLUSTER2 =INFO REPORT==== 14-Oct-2013::08:13:16 === Limiting to approx 32686 file handles (29415 sockets) =INFO REPORT==== 14-Oct-2013::08:13:16 === Memory limit set to 4804MB of 12010MB total. =INFO REPORT==== 14-Oct-2013::08:13:16 === Disk free limit set to 1000MB =INFO REPORT==== 14-Oct-2013::08:13:16 === msg_store_transient: using rabbit_msg_store_ets_index to provide index =INFO REPORT==== 14-Oct-2013::08:13:16 === msg_store_persistent: using rabbit_msg_store_ets_index to provide index =INFO REPORT==== 14-Oct-2013::08:13:16 === Error description: {badmatch,{error,not_found}} Log files (may contain more information): /opt/app/rabbitmq/log/CLUSTER2.log /opt/app/rabbitmq/log/CLUSTER2-sasl.log Stack trace: [{rabbit_binding,recover_semi_durable_route,3,[]}, {rabbit_binding,'-recover/2-lc$^0/1-0-',3,[]}, {rabbit_binding,recover,2,[]}, {rabbit,recover,0,[]}, {rabbit,'-run_boot_step/1-lc$^1/1-1-',1,[]}, {rabbit,run_boot_step,1,[]}, {rabbit,'-start/2-lc$^0/1-0-',1,[]}, {rabbit,start,2,[]}] =INFO REPORT==== 14-Oct-2013::08:13:17 === Error description: {could_not_start,rabbit, {bad_return, {{rabbit,start,[normal,[]]}, {'EXIT', {rabbit,failure_during_boot,{badmatch,{error,not_found}}}}}}} Log files (may contain more information): /opt/app/rabbitmq/log/CLUSTER2.log /opt/app/rabbitmq/log/CLUSTER2-sasl.log -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Error-in-start-app-through-rabbitmqctl-tp30486p30488.html Sent from the RabbitMQ mailing list archive at Nabble.com. From mklishin at gopivotal.com Mon Oct 14 18:55:47 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Mon, 14 Oct 2013 21:55:47 +0400 Subject: [rabbitmq-discuss] Interoperability between Qpid-JMS client and rabbitMQ In-Reply-To: <1380920509998-30239.post@n5.nabble.com> References: <1380920509998-30239.post@n5.nabble.com> Message-ID: <37CF7831-59F3-472B-B0E4-2C5E37EF69F6@rabbitmq.com> On oct 5, 2013, at 1:01 a.m., k.madnani84 wrote: > Is Qpid-JMS client compatible with RabbitMQ 3.1.5,If yes which version? I'm afraid this may get a more timely response on the Qpid mailing list. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From sagu.prf1 at gmail.com Tue Oct 15 05:05:08 2013 From: sagu.prf1 at gmail.com (sagu prf) Date: Mon, 14 Oct 2013 21:05:08 -0700 Subject: [rabbitmq-discuss] Unable to start the cluster node but i can able to bring up as individual node.. Message-ID: Hello Team , I am getting following error while starting cluster node ..could be assist me on this ? =ERROR REPORT==== 14-Oct-2013::10:57:01 === Mnesia('rabbit at linuxserv05'): ** ERROR ** (core dumped to file: "/var/lib/rabbitmq/MnesiaCore.rabbit at linuxserv05_1381_809421_158007") ** FATAL ** Failed to merge schema: Bad cookie in table definition rabbit_user_permission: 'rabbit at linuxserv05' = {cstruct,rabbit_user_permission,set,['rabbit at linuxserv01'],['rabbit at linuxserv06','rabbit at linuxserv05','rabbit at linuxserv04'] ,[],0,read_write,false,[],[],false,user_permission,[user_vhost,permission],[],[],[],{{1376,164084,168369},'rabbit at linuxserv04'}, {{4,2},{'rabbit at linuxserv05',{1381,784616,463441}}}}, 'rabbit at linuxserv01' = {cstruct,rabbit_user_permission,set,[],['rabbit at linuxserv01'], [],0,read_write,false,[],[],false,user_permission,[user_vhost,permission],[],[],[],{{1381,794520,133541},'rabbit at linuxserv01'},{{2,0},[]}} =ERROR REPORT==== 14-Oct-2013::10:57:11 === ** Generic server mnesia_monitor terminating ** Last message in was {'EXIT',<0.46.0>,killed} ** When Server state == {state,<0.46.0>,[],[],true,[],undefined,[]} ** Reason for termination == ** killed =ERROR REPORT==== 14-Oct-2013::10:57:11 === ** Generic server mnesia_recover terminating ** Last message in was {'EXIT',<0.46.0>,killed} ** When Server state == {state,<0.46.0>,undefined,undefined,undefined,0,false, true,[]} ** Reason for termination == ** killed =ERROR REPORT==== 14-Oct-2013::10:57:11 === ** Generic server mnesia_subscr terminating ** Last message in was {'EXIT',<0.46.0>,killed} ** When Server state == {state,<0.46.0>,20502} ** Reason for termination == ** killed =INFO REPORT==== 14-Oct-2013::10:57:11 === application: mnesia exited: {shutdown,{mnesia_sup,start,[normal,[]]}} type: permanent =ERROR REPORT==== 14-Oct-2013::10:57:11 === ** Generic server mnesia_snmp_sup terminating ** Last message in was {'EXIT',<0.46.0>,killed} ** When Server state == {state, {local,mnesia_snmp_sup}, simple_one_for_one, [{child,undefined,mnesia_snmp_sup, {mnesia_snmp_hook,start,[]}, transient,3000,worker, [mnesia_snmp_sup,mnesia_snmp_hook, supervisor]}], undefined,0,86400000,[],mnesia_snmp_sup,[]} ** Reason for termination == ** killed Regards seenivasan.G From mklishin at gopivotal.com Tue Oct 15 09:13:15 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 15 Oct 2013 12:13:15 +0400 Subject: [rabbitmq-discuss] Unable to start the cluster node but i can able to bring up as individual node.. In-Reply-To: References: Message-ID: On oct 15, 2013, at 8:05 a.m., sagu prf wrote: > I am getting following error while starting cluster > node ..could be assist me on this ? Are you trying to cluster a node that has been previously in a different cluster? if so, you need to reset it first: rabbitmqctl stop_app rabbitmqctl reset rabbitmqctl start_app MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From jluzuria2001 at gmail.com Tue Oct 15 09:25:43 2013 From: jluzuria2001 at gmail.com (Jorg Eloy) Date: Tue, 15 Oct 2013 10:25:43 +0200 Subject: [rabbitmq-discuss] other transports besides TCP In-Reply-To: <5257DCB8.8070303@rabbitmq.com> References: <5fd53a4c-debb-4526-8507-f23ca60a28b8@googlegroups.com> <5257DCB8.8070303@rabbitmq.com> Message-ID: Hi Simon, Thanks for your reply, let me said that when I sent messages using UDP, these messages are bounded to the queue in the channel with this line of code: *channel.queueBind(q1, xnameRaw, "#");* When I'm using Wireshark, I can view these messages arriving to the broker but they didn't reach to the exchange. Why I'm using UDP instead of TCP is because I'm tried with AMQP to work with sensors and servers, where sensors enqueue messages using UDP due to the typical sensor data is redundant an some loss can be tolerated and the servers receive these messages using a channel protocol over TCP, The servers might use TCP to transport messages reliably. Thanks again. PD. Here I put some important lines of the code that I'm using actually to do this task. ------------------------------------------------------------------------- * String xnameRaw = "UDP raw exchage for testing"; String xtype = "x-udp"; ConnectionFactory factory = new ConnectionFactory(); Connection connection = factory.newConnection(); Channel channel = connection.createChannel(); factory.setHost(BROKERMQ); factory.setUsername("guest"); factory.setPassword("guest"); factory.setPort(PORT); Map declArgs = new HashMap(); declArgs.put("ip", "0.0.0.0"); declArgs.put("port", (short) PORT); channel.exchangeDeclare(xnameRaw, xtype, false, false, false, declArgs); String q1 = channel.queueDeclare().getQueue(); channel.queueBind(q1, xnameRaw, "#"); DatagramSocket u2 = new DatagramSocket(); DatagraPacket pOutRaw = new DatagramPacket(message, message.length, address, PORT); u2.send(pOutRaw); channel.basicPublish(xnameRaw, routingKey, null, message);* ------------------------------------------------------------------------- 2013/10/11 Simon MacMullen > I'm afraid your message doesn't really give us much to go on, other than > "it doesn't work". > > I suggest you try to break the problem down: when you send a UDP packet, > can you see it reach the broker in wireshark? Can you see it go into a > queue (bound to the UDP exchange with "#") in the management plugin? And so > on. > > Also, out of interest, why do you want to use UDP instead of TCP? > > Cheers, Simon > > On 11/10/2013 10:27AM, Jorg Eloy wrote: > >> Hi all, >> I'm looking another transport for AMQP in place of TCP, >> Nowadays, I'm trying work with UPD exchange of tonyg >> [https://github.com/tonyg/udp-**exchange], >> with the plugin to rabbitmq, to >> get a similar scenario with publishers, consumers, queues and exchanges, >> But I can't get it. >> >> My actual situation is that: >> I send messages from the publisher to the exchange and these messages >> are not published, I can view in the web management tool how the >> delivery rate in the exchange is altered, >> I'm using basicPublish to publish the messages and QueueingConsumer to >> consume the messages, Also DatagramSockets and DatagramPackets to send >> and receive by UDP. >> But as I said before, these messages are don't received in the consumer. >> Including that I use the same routing keys in the messages and when >> I try sending messages directly to the queue created for the consumer, >> these messages arrive successfully >> >> Can someone know what is the error? >> >> Thanks in advance. >> > > > > -- > Simon MacMullen > RabbitMQ, Pivotal > -------------- next part -------------- An HTML attachment was scrubbed... URL: From k.madnani84 at gmail.com Tue Oct 15 09:49:24 2013 From: k.madnani84 at gmail.com (k.madnani84) Date: Tue, 15 Oct 2013 01:49:24 -0700 (PDT) Subject: [rabbitmq-discuss] Error while starting rabbitmq-server. Message-ID: <1381826963996-30494.post@n5.nabble.com> Hi, Can anybody help me on this error i am getting while starting the rabbitmq-server.Any idea from where is this path picked up?I am using the latest version of Erlang 16B02 and RabbitMQ 3.1.5. Error description: {error, {cannot_log_to_file,"/opt/app/rabbitmq/log/rabbit at idmlsl016.log", {error, {cannot_create_parent_dirs, "/opt/app/rabbitmq/log/rabbit at idmlsl016.log",enoent}}}} Log files (may contain more information): /opt/app/rabbitmq/log/rabbit at idmlsl016.log /opt/app/rabbitmq/log/rabbit at idmlsl016-sasl.log Stack trace: [{rabbit,ensure_working_log_handler,5,[]}, {rabbit,ensure_working_log_handlers,0,[]}, {rabbit,'-boot/0-fun-1-',0,[]}, {rabbit,start_it,1,[]}, {init,start_it,1,[]}, {init,start_em,1,[]}] {"init terminating in do_boot",{rabbit,failure_during_boot,{error,{cannot_log_to_file,"/opt/app/rabbitmq/log/rabbit at idmlsl016.log",{error,{cannot_create_parent_dirs,"/opt/app/rabbitmq/log/rabbit at idmlsl016.log",enoent}}}}}} [FAILED] -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Error-while-starting-rabbitmq-server-tp30494.html Sent from the RabbitMQ mailing list archive at Nabble.com. From k.madnani84 at gmail.com Tue Oct 15 09:51:17 2013 From: k.madnani84 at gmail.com (k.madnani84) Date: Tue, 15 Oct 2013 01:51:17 -0700 (PDT) Subject: [rabbitmq-discuss] Interoperability between Qpid-JMS client and rabbitMQ In-Reply-To: <37CF7831-59F3-472B-B0E4-2C5E37EF69F6@rabbitmq.com> References: <1380920509998-30239.post@n5.nabble.com> <37CF7831-59F3-472B-B0E4-2C5E37EF69F6@rabbitmq.com> Message-ID: <1381827077415-30495.post@n5.nabble.com> Thanks Michael!! I got confirmation from a Qpid Developer that we could use Qpid Java client 0.25 with RabbitMQ 3.1.5 and i tested it...Looks like it works. -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Interoperability-between-Qpid-JMS-client-and-rabbitMQ-tp30239p30495.html Sent from the RabbitMQ mailing list archive at Nabble.com. From emile at rabbitmq.com Tue Oct 15 09:57:09 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Tue, 15 Oct 2013 09:57:09 +0100 Subject: [rabbitmq-discuss] Error while starting rabbitmq-server. In-Reply-To: <1381826963996-30494.post@n5.nabble.com> References: <1381826963996-30494.post@n5.nabble.com> Message-ID: <525D0365.4000904@rabbitmq.com> Hi, On 15/10/13 09:49, k.madnani84 wrote: > {cannot_create_parent_dirs, > "/opt/app/rabbitmq/log/rabbit at idmlsl016.log",enoent}}}} There's a clue in that error message. The path to the logfile does not exist. Try to create the /opt/app/rabbitmq/ directory and make sure the broker has sufficient permissions to create files and directories in that location. -Emile From emile at rabbitmq.com Tue Oct 15 10:00:23 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Tue, 15 Oct 2013 10:00:23 +0100 Subject: [rabbitmq-discuss] Fwd: Fwd: RabbitMQ startup error. In-Reply-To: References: <5257BD63.8030101@rabbitmq.com> <525BF939.1010301@rabbitmq.com> Message-ID: <525D0427.9020000@rabbitmq.com> Hi, On 14/10/13 16:02, Anand Ramadurg wrote: > Well i cant reproduce it all the time happens once in every 10 times. Would it be possible to supply the Mnesia database directory so that we can try to reproduce the issue locally? Are you running in a clustered environment? If so, what is that state of the other nodes in the cluster? -Emile From simon at rabbitmq.com Tue Oct 15 10:08:36 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Tue, 15 Oct 2013 10:08:36 +0100 Subject: [rabbitmq-discuss] other transports besides TCP In-Reply-To: References: <5fd53a4c-debb-4526-8507-f23ca60a28b8@googlegroups.com> <5257DCB8.8070303@rabbitmq.com> Message-ID: <525D0614.9000304@rabbitmq.com> Hi. I compiled your code and it works for me. I had to provide the address and port for the DatagramPacket, so you probably want to make sure those are correct. Also make sure the packet is not being eaten by a firewall. Cheers, Simon On 15/10/2013 09:25, Jorg Eloy wrote: > Hi Simon, > > Thanks for your reply, let me said that when I sent messages using UDP, > these messages are bounded to the queue in the channel with this line of > code: > /channel.queueBind(q1, xnameRaw, "#");/ > > When I'm using Wireshark, I can view these messages arriving to the > broker but they didn't reach to the exchange. > > Why I'm using UDP instead of TCP is because I'm tried with AMQP to work > with sensors and servers, > where sensors enqueue messages using UDP due to the typical sensor data > is redundant an some loss can be tolerated > and the servers receive these messages using a channel protocol over > TCP, The servers might use TCP to transport messages reliably. > > Thanks again. > > > PD. Here I put some important lines of the code that I'm using actually > to do this task. > > ------------------------------------------------------------------------- > / String xnameRaw = "UDP raw exchage for testing"; > String xtype = "x-udp"; > > ConnectionFactory factory = new ConnectionFactory(); > > Connection connection = factory.newConnection(); > Channel channel = connection.createChannel(); > > factory.setHost(BROKERMQ); > factory.setUsername("guest"); > factory.setPassword("guest"); > factory.setPort(PORT); > > Map declArgs = new HashMap(); > > declArgs.put("ip", "0.0.0.0"); > declArgs.put("port", (short) PORT); > > channel.exchangeDeclare(xnameRaw, xtype, false, false, false, > declArgs); > String q1 = channel.queueDeclare().getQueue(); > channel.queueBind(q1, xnameRaw, "#"); > > DatagramSocket u2 = new DatagramSocket(); > DatagraPacket pOutRaw = new DatagramPacket(message, message.length, > address, PORT); > > u2.send(pOutRaw); > channel.basicPublish(xnameRaw, routingKey, null, message);/ > ------------------------------------------------------------------------- > > > > 2013/10/11 Simon MacMullen > > > I'm afraid your message doesn't really give us much to go on, other > than "it doesn't work". > > I suggest you try to break the problem down: when you send a UDP > packet, can you see it reach the broker in wireshark? Can you see it > go into a queue (bound to the UDP exchange with "#") in the > management plugin? And so on. > > Also, out of interest, why do you want to use UDP instead of TCP? > > Cheers, Simon > > On 11/10/2013 10:27AM, Jorg Eloy wrote: > > Hi all, > I'm looking another transport for AMQP in place of TCP, > Nowadays, I'm trying work with UPD exchange of tonyg > [https://github.com/tonyg/udp-__exchange > ], with the plugin to > rabbitmq, to > get a similar scenario with publishers, consumers, queues and > exchanges, > But I can't get it. > > My actual situation is that: > I send messages from the publisher to the exchange and these > messages > are not published, I can view in the web management tool how the > delivery rate in the exchange is altered, > I'm using basicPublish to publish the messages and > QueueingConsumer to > consume the messages, Also DatagramSockets and DatagramPackets > to send > and receive by UDP. > But as I said before, these messages are don't received in the > consumer. > Including that I use the same routing keys in the messages and when > I try sending messages directly to the queue created for the > consumer, > these messages arrive successfully > > Can someone know what is the error? > > Thanks in advance. > > > > > -- > Simon MacMullen > RabbitMQ, Pivotal > > From emile at rabbitmq.com Tue Oct 15 10:35:26 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Tue, 15 Oct 2013 10:35:26 +0100 Subject: [rabbitmq-discuss] Error while starting rabbitmq-server. In-Reply-To: <1381826963996-30494.post@n5.nabble.com> References: <1381826963996-30494.post@n5.nabble.com> Message-ID: <525D0C5E.90800@rabbitmq.com> On 15/10/13 09:49, k.madnani84 wrote: > Any idea from where is this path picked up? I failed to answer your question accurately in my earlier reply. The non-sasl logfile location is picked up from $RABBITMQ_LOGS, or if that is not set, $RABBITMQ_LOG_BASE. It is normally the responsibility of the package manager to set this up correctly and installation time. For more information see http://www.rabbitmq.com/relocate.html -Emile From simon at rabbitmq.com Tue Oct 15 12:09:42 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Tue, 15 Oct 2013 12:09:42 +0100 Subject: [rabbitmq-discuss] Error in start_app through rabbitmqctl.. In-Reply-To: <1381766836950-30488.post@n5.nabble.com> References: <1381764572006-30486.post@n5.nabble.com> <525C14D7.6090804@rabbitmq.com> <1381766836950-30488.post@n5.nabble.com> Message-ID: <525D2276.5060903@rabbitmq.com> On 14/10/13 17:07, k.madnani84 wrote: > =INFO REPORT==== 14-Oct-2013::08:13:16 === > Error description: > {badmatch,{error,not_found}} > > Stack trace: > [{rabbit_binding,recover_semi_durable_route,3,[]}, > {rabbit_binding,'-recover/2-lc$^0/1-0-',3,[]}, > {rabbit_binding,recover,2,[]}, > {rabbit,recover,0,[]}, > {rabbit,'-run_boot_step/1-lc$^1/1-1-',1,[]}, > {rabbit,run_boot_step,1,[]}, > {rabbit,'-start/2-lc$^0/1-0-',1,[]}, > {rabbit,start,2,[]}] Hi. This is a bug in biding recovery. It's triggered when you bind a transient exchange to an unmirrored durable queue, then stop the node the queue is on, then delete the exchange. It then becomes impossible to start the stopped node again. We'll fix this, hopefully in the next release. As a workaround, you can stop the entire cluster and start it again. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From matthias at rabbitmq.com Tue Oct 15 12:26:35 2013 From: matthias at rabbitmq.com (Matthias Radestock) Date: Tue, 15 Oct 2013 12:26:35 +0100 Subject: [rabbitmq-discuss] Connection blocked by "flow" for more than 600 seconds In-Reply-To: <1381678115717-30467.post@n5.nabble.com> References: <52548229.9000502@rabbitmq.com> <1381273745546-30354.post@n5.nabble.com> <5254935B.9040400@rabbitmq.com> <5255221D.3050907@rabbitmq.com> <1381458152747-30402.post@n5.nabble.com> <5257E135.1000909@rabbitmq.com> <52581BDA.5080108@rabbitmq.com> <1381668181993-30465.post@n5.nabble.com> <1381678115717-30467.post@n5.nabble.com> Message-ID: <525D266B.1070207@rabbitmq.com> On 13/10/13 16:28, Choo wrote: > After upgrading to Erlang R16B02 with Nightly Build (RabbitMQ 3.1.5.41009), > although the "File Descriptors" issue is fixed, the problem still persists. > : ( > > > > We started the subscriber modules first, then publishers. As you can see, > after start publisher modules, the processes worked for less than 1 minute, > then blocked, then worked for another shot, and blocked, and it seemed to > happen around 3-4 times, after that, the connections were forever blocked. > > In term of limited resources: > - memory seemed plenty > - file descriptor looked perfect > - disk space should not be a problem > > Any suggestion would be very welcome. Please post the output of 'rabbitmqctl report' when you get into the above situation, i.e. have all connections blocked forever. Matthias. From khayamabdulnasir at gmail.com Tue Oct 15 13:49:10 2013 From: khayamabdulnasir at gmail.com (Abdul Nasir Khayam) Date: Tue, 15 Oct 2013 17:49:10 +0500 Subject: [rabbitmq-discuss] connection problem. i want reconnection if failed Message-ID: My connecction fails to attempt, plz help me how to correct error. see exception in log file. and code is below. Log file: 2013-10-15 07:15:26,943 [18] DEBUG adam602.container: AMQP <-- this is an amqp message published 2013-10-15 07:15:30,041 [18] DEBUG adam602.container: Exception: SharedQueue closed A first chance exception of type 'System.IO.EndOfStreamException' occurred in RabbitMQ.Client.dll The thread 0xed0 has exited with code 0 (0x0). The thread 0xb364 has exited with code 0 (0x0). The thread 0x2ef0 has exited with code 0 (0x0). The program '[14372] adam602.vshost.exe: Managed' has exited with code 0 (0x0). Code: using System; using System.Windows.Forms; using System.Collections.Generic; using System.Linq; using System.Text; using System.Messaging; using RabbitMQ.Client; using RabbitMQ.Client.Exceptions; using System.Collections; namespace adam602 { public delegate void ProcessAmqpMessage(string webcmd, Hashtable inputHash); class dispatchRabbitMq { protected IModel Model; protected IConnection Connection; protected string QueueName; protected bool isConsuming; // used to pass messages back to UI for processing public event onReceiveMessage onMessageReceived; //internal delegate to run the consuming queue on a seperate thread private delegate void ConsumeDelegate(); //delegate to post to UI thread private delegate void showMessageDelegate(string message); public ProcessAmqpMessage _processAmqpMessage = null; public dispatchRabbitMq() { } public void init() { QueueName = "testqueue"; string exchange = "exch"; ConnectionFactory connectionFactory = new ConnectionFactory(); try { connectionFactory.HostName = globals.serverHost; connectionFactory.Port = globals.amqpPort; connectionFactory.UserName = globals.amqpUser; connectionFactory.Password = globals.amqpPass; connectionFactory.RequestedHeartbeat = 30; // connectionFactory.Parameters.RequestedHeartbeat = 30; //if above line not works, then comment that line and uncomment this line Connection = connectionFactory.CreateConnection(); Model = Connection.CreateModel(); Model.QueueDeclare(QueueName, false, false, false, null); Model.QueueBind(QueueName, exchange, ""); StartConsuming(); } catch (Exception e) { Console.WriteLine("AMQP.init: " + e.Message); } this.onMessageReceived += this.parseAmqpData; } private void StartConsuming() { isConsuming = true; ConsumeDelegate c = new ConsumeDelegate(Consume); c.BeginInvoke(null, null); } // new method for check if connection null then call init() method again for reconnectig x times private void Consume() { QueueingBasicConsumer consumer = new QueueingBasicConsumer(Model); String consumerTag = Model.BasicConsume(QueueName, false, consumer); //Console.WriteLine("CONSUMER-TAG: |" + consumerTag + "|"); while (isConsuming) { try { RabbitMQ.Client.Events.BasicDeliverEventArgs e = (RabbitMQ.Client.Events.BasicDeliverEventArgs)consumer.Queue.Dequeue(); IBasicProperties props = e.BasicProperties; byte[] body = e.Body; // ... process the message onMessageReceived(body); Model.BasicAck(e.DeliveryTag, false); } catch (OperationInterruptedException ex) { // The consumer was removed, either through // channel or connection closure, or through the // action of IModel.BasicCancel(). Console.WriteLine("OperationInterruptedException: " + ex.Message); break; } catch (Exception exx) { Console.WriteLine("Exception: " + exx.Message); break; } } } public void StopConsuming() { isConsuming = false; if (Connection != null) Connection.Close(); if (Model != null) Model.Abort(); } public void parseAmqpData(byte[] message) { string incomingString = System.Text.Encoding.UTF8.GetString(message); incomingString.Trim(); incomingString = incomingString.Replace("\n", ""); Console.WriteLine(String.Format("AMQP <-- {0}", incomingString)); } } } -- Best Regards Abdul Nasir Khayam Software Engineer Tel : 00923319449551 -------------- next part -------------- An HTML attachment was scrubbed... URL: From martin.rogan.inc at gmail.com Tue Oct 15 15:22:31 2013 From: martin.rogan.inc at gmail.com (mrogan) Date: Tue, 15 Oct 2013 07:22:31 -0700 (PDT) Subject: [rabbitmq-discuss] Long pauses when closing many channels simultaneously In-Reply-To: References: <8a7a1859-5ff0-49a3-8ba9-edef63830591@googlegroups.com> <74B331C7-6DD1-494D-94C9-7E754C7ECC82@rabbitmq.com> <1380282223281-29973.post@n5.nabble.com> <5257E655.80906@rabbitmq.com> <1381748811375-30473.post@n5.nabble.com> <062E8248-BAEB-47AE-8BDA-CD7182176829@rabbitmq.com> <1381752061648-30476.post@n5.nabble.com> Message-ID: <1381846951486-30501.post@n5.nabble.com> Michael Klishin-2 wrote > Are you aware of Oracle's own JDK 7 installers? > MK Larry says no... "Java from Oracle requires Mac OS X 10.7.3 or later." I'm going to try this on my kids' PC just to rule out OS/Java issues. Thanks, Martin. -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Long-pauses-when-closing-many-channels-simultaneously-tp29937p30501.html Sent from the RabbitMQ mailing list archive at Nabble.com. From martin.rogan.inc at gmail.com Tue Oct 15 15:58:00 2013 From: martin.rogan.inc at gmail.com (Martin Rogan) Date: Tue, 15 Oct 2013 15:58:00 +0100 Subject: [rabbitmq-discuss] Long pauses when closing many channels simultaneously In-Reply-To: <525BD691.9040706@rabbitmq.com> References: <8a7a1859-5ff0-49a3-8ba9-edef63830591@googlegroups.com> <74B331C7-6DD1-494D-94C9-7E754C7ECC82@rabbitmq.com> <1380282223281-29973.post@n5.nabble.com> <5257E655.80906@rabbitmq.com> <1381748811375-30473.post@n5.nabble.com> <525BD691.9040706@rabbitmq.com> Message-ID: On 14 October 2013 12:33, Emile Joubert wrote: Can you please confirm whether you believe there still is a problem when > using the latest version? > Yes, I still think there's a problem with the latest version. See my results with 3.1.5.41014 show that exactly 100 channels took longer than 500ms to close. Using a different OS is unlikely to make a difference. What question are > you trying to answer by doing this? > As you don't see the same issues as me when running the same code I'm trying to isolate any external differences. While I would usually dismiss OS differences out of hand they have tripped me up in the past. For example, fiddling with so_linger on a Linux distribution has implications for all the sockets sharing the same network interface - closing a socket can block other sockets indefinitely - while sockets are more isolated on Windows. -------------- next part -------------- An HTML attachment was scrubbed... URL: From brianin3d at yahoo.com Tue Oct 15 16:34:21 2013 From: brianin3d at yahoo.com (Brian Hammond) Date: Tue, 15 Oct 2013 08:34:21 -0700 (PDT) Subject: [rabbitmq-discuss] abnormally large memory use in "binaries" Message-ID: <1381851261.61014.YahooMailNeo@web122002.mail.ne1.yahoo.com> > How did you determine the average message size? Is it possible that the > queue could contain a small number of extremely large messages that skew > the average? The messages on that queue are generated from a very small Java model object. I looked at a sample from the routing key that queue listens to and the average is from 1000 message. >> Does the memory use increase gradually or in large jumps? It seems to be pretty gradual up until it hit the ceiling. > I'm not aware of any bugs that could explain the problem you describe. > Could you supply the output of "rabbitmqctl report" while you observe > the reported condition? Sure, thing. I grabbed it at 10 minute intervals, but can do a finer granularity if needed. I'll try to attach it to this post.? If that doesn't work, I'll upload it somewhere are post a url. I started it on 2013/10/14 at 10:53 and around 2:53 it hit 18gb and stayed there till one of the guys restarted it around 5:24 pm. Just for fun, here is the size of "binary" as a sort of summary of the usage: ?{"10:53":0.13, "11:03":1.03, "11:13":2.25, "11:23":2.98, "11:33":3.27, "11:43":3.66, "11:53":4.09, "12:03":4.55, "12:13":5.21, "12:23":6.87, "12:33":9.28, "12:43":9.49, "12:53":10.58, "13:03":10.16, "13:13":11.28, "13:23":12.13, "13:33":12.72, "13:43":14.01, "13:53":13.03, "14:03":14.16, "14:13":15.37, "14:23":15.21, "14:33":16.27, "14:43":17.33, "14:53":18.37, "15:03":18.79, "15:13":18.78, "15:23":18.89, "15:33":18.72, "15:43":18.83, "15:53":18.83, "16:03":18.79, "16:14":18.79, "16:24":18.79, "16:34":18.78, "16:44":18.84, "16:54":18.84, "17:04":18.84, "17:14":18.84 } -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: send-rabbit-reports.tgz Type: application/octet-stream Size: 459311 bytes Desc: not available URL: From kalvidal at yahoo.com.br Tue Oct 15 16:50:44 2013 From: kalvidal at yahoo.com.br (kalvidal) Date: Tue, 15 Oct 2013 08:50:44 -0700 (PDT) Subject: [rabbitmq-discuss] WCF and queue creation In-Reply-To: <4E4CE703.3030701@rabbitmq.com> References: <1381852244517-16243.post@n5.nabble.com> <4C124AA6.4080105@rabbitmq.com> <1753EE61AD475A47A4DEBDD983A7BBCF0B344F91@GBR1-LDN01.uk.mizuho-sc.com> <4C1665A8.8020806@rabbitmq.com> <1381852244520-16247.post@n5.nabble.com> <4E4CE703.3030701@rabbitmq.com> Message-ID: <1381852244490-30502.post@n5.nabble.com> Hi! I would like to know if the problem was resolved. I have the same issues mentioned above. I'm using version 3.1.5. If the bug not resolved, can you inform the bug number, to follow in changelog of future versions? If resolved, how can I use durable queues? And how to name them? Thanks. -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/WCF-and-queue-creation-tp16243p30502.html Sent from the RabbitMQ mailing list archive at Nabble.com. From sagu.prf1 at gmail.com Tue Oct 15 16:58:06 2013 From: sagu.prf1 at gmail.com (sagu prf) Date: Tue, 15 Oct 2013 08:58:06 -0700 Subject: [rabbitmq-discuss] unable to join the cluster node .. Message-ID: Hello Team while stoping the Ram node as master unable to fail over to disk which alive more day than ram node and surprisingly it's why this disc node not take over as master ( which uptime was higher than ram node) =ERROR REPORT==== 14-Oct-2013::10:57:01 === Mnesia('rabbit at linuxserv05'): ** ERROR ** (core dumped to file: "/var/lib/rabbitmq/MnesiaCore.rabbit at linuxserv05_1381_809421_158007") ** FATAL ** Failed to merge schema: Bad cookie in table definition rabbit_user_permission: 'rabbit at linuxserv05' = {cstruct,rabbit_user_permission,set,['rabbit at linuxserv01'],['rabbit at linuxserv06','rabbit at linuxserv05','rabbit at linuxserv04'] ,[],0,read_write,false,[],[],false,user_permission,[user_vhost,permission],[],[],[],{{1376,164084,168369},'rabbit at linuxserv04'}, {{4,2},{'rabbit at linuxserv05',{1381,784616,463441}}}}, 'rabbit at linuxserv01' = {cstruct,rabbit_user_permission,set,[],['rabbit at linuxserv01'], [],0,read_write,false,[],[],false,user_permission,[user_vhost,permission],[],[],[],{{1381,794520,133541},'rabbit at linuxserv01'},{{2,0},[]}} =ERROR REPORT==== 14-Oct-2013::10:57:11 === ** Generic server mnesia_monitor terminating ** Last message in was {'EXIT',<0.46.0>,killed} ** When Server state == {state,<0.46.0>,[],[],true,[],undefined,[]} ** Reason for termination == ** killed =ERROR REPORT==== 14-Oct-2013::10:57:11 === ** Generic server mnesia_recover terminating ** Last message in was {'EXIT',<0.46.0>,killed} ** When Server state == {state,<0.46.0>,undefined,undefined,undefined,0,false, true,[]} ** Reason for termination == ** killed =ERROR REPORT==== 14-Oct-2013::10:57:11 === ** Generic server mnesia_subscr terminating ** Last message in was {'EXIT',<0.46.0>,killed} ** When Server state == {state,<0.46.0>,20502} ** Reason for termination == ** killed =INFO REPORT==== 14-Oct-2013::10:57:11 === application: mnesia exited: {shutdown,{mnesia_sup,start,[normal,[]]}} type: permanent =ERROR REPORT==== 14-Oct-2013::10:57:11 === ** Generic server mnesia_snmp_sup terminating ** Last message in was {'EXIT',<0.46.0>,killed} ** When Server state == {state, {local,mnesia_snmp_sup}, simple_one_for_one, [{child,undefined,mnesia_snmp_sup, {mnesia_snmp_hook,start,[]}, transient,3000,worker, [mnesia_snmp_sup,mnesia_snmp_hook, supervisor]}], undefined,0,86400000,[],mnesia_snmp_sup,[]} ** Reason for termination == ** killed i have tried the rabbit at linuxserv04% rabbitmqctl -n rabbit at linuxserv01 stop_app rabbit at linuxserv04% rabbitmqctl -n rabbit at linuxserv01 reset it lost all Queue informations .. rabbit at linuxserv04% failing to join the cluster .. linuxserv05%rabbitmq-server -detached failed to join .. even i tired with manually but it was failed .. is there any other method to remove this linuxserv01 from cluster and bring back another node into cluster (linuxserv05) ? without shutdown entire cluster . rabbitmqlinuxserv04:/opt/rabbitmq$ rabbitmqctl cluster_status Cluster status of node 'rabbitlinuxserv04' ... [{nodes,[{disc,['rabbitlinuxserv06', 'rabbitlinuxserv05', -> unable to bring this node as cluster 'rabbitlinuxserv04']}, {ram,['rabbitlinuxserv01']}]}, -> still pointing to old node as STATS (DB) but this node is no more in cluster .. {running_nodes,['rabbitlinuxserv06', 'rabbitlinuxserv04']} Regards sagu From emile at rabbitmq.com Tue Oct 15 17:15:28 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Tue, 15 Oct 2013 17:15:28 +0100 Subject: [rabbitmq-discuss] WCF and queue creation In-Reply-To: <1381852244490-30502.post@n5.nabble.com> References: <1381852244517-16243.post@n5.nabble.com> <4C124AA6.4080105@rabbitmq.com> <1753EE61AD475A47A4DEBDD983A7BBCF0B344F91@GBR1-LDN01.uk.mizuho-sc.com> <4C1665A8.8020806@rabbitmq.com> <1381852244520-16247.post@n5.nabble.com> <4E4CE703.3030701@rabbitmq.com> <1381852244490-30502.post@n5.nabble.com> Message-ID: <525D6A20.8040206@rabbitmq.com> Hi, On 15/10/13 16:50, kalvidal wrote: > I would like to know if the problem was resolved. Unfortuantely not. The release notes will make mention of the fact when that happens. The branch name "bug24352" has been reserved for any code changes relating to this issue. In the meantime you are advised to use the .NET client library directly since it offers the flexibility to declare durable queues. -Emile From mklishin at gopivotal.com Tue Oct 15 17:46:19 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 15 Oct 2013 20:46:19 +0400 Subject: [rabbitmq-discuss] Reminder: help us test Bunny 1.0 RCs Message-ID: Just a friendly reminder that Bunny 1.0 ships on Oct 29th and we would appreciate any help with testing 1.0.0.rc2 we can get. Give your project a try with 1.0.0.rc2 and please report issues on GitHub. RC2 release notes: http://blog.rubyrabbitmq.info/blog/2013/10/03/bunny-1-dot-0-0-dot-rc2-is-released/ MK From mklishin at gopivotal.com Tue Oct 15 17:49:21 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 15 Oct 2013 20:49:21 +0400 Subject: [rabbitmq-discuss] ANN Haskell port of RabbitMQ tutorials Message-ID: FYI, 5 out of 6 RabbitMQ tutorials [1] are now ported to Haskell: https://github.com/rabbitmq/rabbitmq-tutorials/tree/master/haskell MK 1. http://www.rabbitmq.com/getstarted.html From sp345s at att.com Tue Oct 15 18:58:53 2013 From: sp345s at att.com (PATAR, SAGAR) Date: Tue, 15 Oct 2013 17:58:53 +0000 Subject: [rabbitmq-discuss] time to live on a durable message Message-ID: <59BF56992750434F89F8EBE141E64B1D018263CA@GAALPA1MSGUSR9C.ITServices.sbc.com> Is there a way we can define time to live on a message published to a durable exchange .. What happens when a message binding key doesn't matches any binding .. does it stay in the durable exchange till the time to live is expired .. Scenario 1: Let's say we have a time to live of 2 hr for a message and its published to a durable exchange with no binding Key match (ex: binding key = NoMatch) ... after 1 hr let's say a client subscribes for messages with bindingKey ="NoMatch" on that exchange .. will the message be delivered to the client ?? Scenario 2: Let's say we have a time to live of 2 hr for a message and its published to a durable exchange with a binding key match (ex: binding key = match) and the message will be routed to a queue and is consumed by a client .. After 1 hr If a new client subscribes for the messages with bindingKey ="match" by creating a new Queue ..will the new client get the same message -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Tue Oct 15 19:13:01 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 15 Oct 2013 22:13:01 +0400 Subject: [rabbitmq-discuss] time to live on a durable message In-Reply-To: <59BF56992750434F89F8EBE141E64B1D018263CA@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D018263CA@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: <05E8C606-28D4-4979-8DC0-A07DFB46598D@rabbitmq.com> On 15 Oct 2013, at 21:58, "PATAR, SAGAR" wrote: > Is there a way we can define time to live on a message published to a durable exchange .. Yes, and, in fact, on any message. See Per-Message TTL on https://www.rabbitmq.com/ttl.html > > What happens when a message binding key doesn?t matches any binding .. > does it stay in the durable exchange till the time to live is expired .. Messages are not stored in exchanges. Exchanges act as routing tables that move messages to one or more queues. If TTL has expired, a message is deleted from the queue. > > Scenario 1: > Let?s say we have a time to live of 2 hr for a message and its published to a durable exchange with no binding Key match (ex: binding key = NoMatch) ? after 1 hr let?s say a client subscribes for messages with bindingKey =?NoMatch? on that exchange .. will the message be delivered to the client ?? If the message was routed to a queue with TTL = 2h and consumer comes around in 1h, then it will be delivered. > Scenario 2: > Let?s say we have a time to live of 2 hr for a message and its published to a durable exchange with a binding key match (ex: binding key = match) and the message will be routed to a queue and is consumed by a client .. After 1 hr If a new client subscribes for the messages with bindingKey =?match? by creating a new Queue ..will the new client get the same message No, standard exchanges do not keep a history of messages, so newly bound queues only get messages published after the binding is set up. MK From jhalterman at gmail.com Tue Oct 15 22:24:58 2013 From: jhalterman at gmail.com (Jonathan Halterman) Date: Tue, 15 Oct 2013 14:24:58 -0700 Subject: [rabbitmq-discuss] AlreadyClosedException always sets hardError and initiatedByApplication to true Message-ID: I noticed that AlreadyClosedException always sets hardError and initiatedByApplication to true, even if the error was not hard (only the channel was closed) and the channel was not closed by the application. This makes it more difficult to properly recover a closed resource if I can't easily determine which resource was closed and why. Could this be fixed? Cheers, Jonathan -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Tue Oct 15 23:45:32 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 16 Oct 2013 02:45:32 +0400 Subject: [rabbitmq-discuss] AlreadyClosedException always sets hardError and initiatedByApplication to true In-Reply-To: References: Message-ID: <5BFF87E3-BBD7-421D-8CD2-C8AE6E8A7FD8@rabbitmq.com> On oct 16, 2013, at 1:24 a.m., Jonathan Halterman wrote: > I noticed that AlreadyClosedException always sets hardError and initiatedByApplication to true, even if the error was not hard (only the channel was closed) and the channel was not closed by the application. This makes it more difficult to properly recover a closed resource if I can't easily determine which resource was closed and why. Could this be fixed? Jonathan, This indeed sounds like a bug. How can we reproduce it? Simply attempt an operation on a closed channel? Does it matter how exactly the channel was closed? MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From jhalterman at gmail.com Tue Oct 15 23:56:49 2013 From: jhalterman at gmail.com (Jonathan Halterman) Date: Tue, 15 Oct 2013 15:56:49 -0700 Subject: [rabbitmq-discuss] AlreadyClosedException always sets hardError and initiatedByApplication to true In-Reply-To: <5BFF87E3-BBD7-421D-8CD2-C8AE6E8A7FD8@rabbitmq.com> References: <5BFF87E3-BBD7-421D-8CD2-C8AE6E8A7FD8@rabbitmq.com> Message-ID: Hey Michael, Yea, you can reproduce both items by attempting to declare a consumer on a non-existent queue twice in a row. The first invocation closes the channel and throws an IOException. The second invocation throws an AlreadyClosedException, though the hardError and initiatedByApplication flags don't match those from the initial failure. - jonathan On Tue, Oct 15, 2013 at 3:45 PM, Michael Klishin wrote: > On oct 16, 2013, at 1:24 a.m., Jonathan Halterman > wrote: > > > I noticed that AlreadyClosedException always sets hardError and > initiatedByApplication to true, even if the error was not hard (only the > channel was closed) and the channel was not closed by the application. This > makes it more difficult to properly recover a closed resource if I can't > easily determine which resource was closed and why. Could this be fixed? > > Jonathan, > > This indeed sounds like a bug. > > How can we reproduce it? Simply attempt an operation on a closed channel? > Does it matter how exactly the channel was closed? > > MK > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From Shashank.Lothe at techmahindra.com Wed Oct 16 08:20:03 2013 From: Shashank.Lothe at techmahindra.com (Lothe Shashank) Date: Wed, 16 Oct 2013 07:20:03 +0000 Subject: [rabbitmq-discuss] Rabbitmq-C amqp_basic_publish crash on connection loss Message-ID: Hi, Can someone help me on this? Sample simulation is attached herewith. Thanks and regards, Shashank ________________________________ From: Lothe Shashank Sent: Friday, October 11, 2013 1:20 PM To: rabbitmq-discuss at lists.rabbitmq.com Subject: Re: [rabbitmq-discuss] Rabbitmq-C amqp_basic_publish crash on connection loss Hi Alan, Thanks for the clarification. I am attaching the simulation herewith. I don't have a stack trace. It was abort as I couldn't get the next console print. On similar lines, for a listner, if I stop rabbitmq broker using rabbitmq_ctl stop_app, amqp_maybe_release_buffers(conn) API crashed. I believe that due to abrupt connection loss the conn value becomes invalid (though not changed) and amqp_basic_publish and amqp_maybe_release_buffers APIs fail. Could you throw some light on this and help me to understand how can I handle abrupt connection loss during publish and listen? 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: -------------- next part -------------- A non-text attachment was scrubbed... Name: amqp_sendstring.c Type: text/x-csrc Size: 4731 bytes Desc: amqp_sendstring.c URL: From watson.timothy at gmail.com Wed Oct 16 08:40:41 2013 From: watson.timothy at gmail.com (Tim Watson) Date: Wed, 16 Oct 2013 08:40:41 +0100 Subject: [rabbitmq-discuss] ANN Haskell port of RabbitMQ tutorials In-Reply-To: References: Message-ID: <70E5477B-770B-40C9-8FE5-38FDA597CE3A@rabbitmq.com> Nicely done! On 15 Oct 2013, at 17:49, Michael Klishin wrote: > FYI, 5 out of 6 RabbitMQ tutorials [1] are now ported > to Haskell: > > https://github.com/rabbitmq/rabbitmq-tutorials/tree/master/haskell > > MK > > 1. http://www.rabbitmq.com/getstarted.html > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss From watson.timothy at gmail.com Wed Oct 16 08:52:36 2013 From: watson.timothy at gmail.com (Tim Watson) Date: Wed, 16 Oct 2013 08:52:36 +0100 Subject: [rabbitmq-discuss] time to live on a durable message In-Reply-To: <59BF56992750434F89F8EBE141E64B1D018263CA@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D018263CA@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: <98E767B9-E1BD-45B6-8848-7F5AAC844019@rabbitmq.com> Hi On 15 Oct 2013, at 18:58, "PATAR, SAGAR" wrote: > Is there a way we can define time to live on a message published to a durable exchange .. Not really, because exchanges don't hold messages, only queues do. > > What happens when a message binding key doesn?t matches any binding .. does it stay in the durable exchange till the time to live is expired .. No. When messages are unroutable, they're discarded (and possibly returned to the sender, depending on how they were published). > > Scenario 1: > Let?s say we have a time to live of 2 hr for a message and its published to a durable exchange with no binding Key match (ex: binding key = NoMatch) ? after 1 hr let?s say a client subscribes for messages with bindingKey =?NoMatch? on that exchange .. will the message be delivered to the client ?? > To do this, you might create a catch all binding to a queue on which you've set a 1hr TTL and configure a dead-letter-exchange to republish if necessary. When subscribing, consume from both the catch all queue and the queue you're actually interested in. But of course the message will be routed to both queues so you'll see it twice if it matches the 'real' binding. You might be able to work around this with some crazy complex topology, but I doubt it. You can de-duplicate based on correlation-id, though of course this puts storage requirements onto your application. Personally, I'd try to re-design the system to avoid this scenario, perhaps by handling unroutable messages on the sender instead, or by attaching a housekeeper to the catch all queue that republishes periodically. Bear in mind that if your "client subscribes to messages with a binding key "NoMatch" - I assume this means they create a temporary queue and bind it tot the exchange - then just having the TTL plus setting the dead letter exchange might work, though once a cycle is detected you'll loose the message iirc. > Scenario 2: > Let?s say we have a time to live of 2 hr for a message and its published to a durable exchange with a binding key match (ex: binding key = match) and the message will be routed to a queue and is consumed by a client .. After 1 hr If a new client subscribes for the messages with bindingKey =?match? by creating a new Queue ..will the new client get the same message > That won't work, since once a message is delivered it will be removed from the queue. You could try doing the thing above (with TTL and DLX) an use a fanout exchange to simulate this, but there are probably lots of corner cases that wont work as expected. Cheers, Tim -------------- next part -------------- An HTML attachment was scrubbed... URL: From watson.timothy at gmail.com Wed Oct 16 08:53:56 2013 From: watson.timothy at gmail.com (Tim Watson) Date: Wed, 16 Oct 2013 08:53:56 +0100 Subject: [rabbitmq-discuss] time to live on a durable message In-Reply-To: <05E8C606-28D4-4979-8DC0-A07DFB46598D@rabbitmq.com> References: <59BF56992750434F89F8EBE141E64B1D018263CA@GAALPA1MSGUSR9C.ITServices.sbc.com> <05E8C606-28D4-4979-8DC0-A07DFB46598D@rabbitmq.com> Message-ID: <6B5BA8E8-0477-4E5A-AD08-6EA78DC9826F@rabbitmq.com> Oops - sorry I didn't see your reply before posting Michael. Silly mail app didn't refresh properly. On 15 Oct 2013, at 19:13, Michael Klishin wrote: > On 15 Oct 2013, at 21:58, "PATAR, SAGAR" wrote: > >> Is there a way we can define time to live on a message published to a durable exchange .. > > Yes, and, in fact, on any message. See Per-Message TTL on > https://www.rabbitmq.com/ttl.html > >> >> What happens when a message binding key doesn?t matches any binding .. > > >> does it stay in the durable exchange till the time to live is expired .. > > Messages are not stored in exchanges. Exchanges act as routing tables that move messages > to one or more queues. If TTL has expired, a message is deleted from the queue. > >> >> Scenario 1: >> Let?s say we have a time to live of 2 hr for a message and its published to a durable exchange with no binding Key match (ex: binding key = NoMatch) ? after 1 hr let?s say a client subscribes for messages with bindingKey =?NoMatch? on that exchange .. will the message be delivered to the client ?? > > If the message was routed to a queue with TTL = 2h and consumer comes around in 1h, then it will be delivered. > > >> Scenario 2: >> Let?s say we have a time to live of 2 hr for a message and its published to a durable exchange with a binding key match (ex: binding key = match) and the message will be routed to a queue and is consumed by a client .. After 1 hr If a new client subscribes for the messages with bindingKey =?match? by creating a new Queue ..will the new client get the same message > > No, standard exchanges do not keep a history of messages, so newly bound queues only get messages > published after the binding is set up. > > > MK > > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss From breischl at gmail.com Tue Oct 15 20:20:58 2013 From: breischl at gmail.com (Brian Reischl) Date: Tue, 15 Oct 2013 12:20:58 -0700 (PDT) Subject: [rabbitmq-discuss] Redeliver limit? Message-ID: <92d9d3e4-e3ca-4ffb-bf79-80d13a1e54d3@googlegroups.com> The docs for the deliver()function state that the server *should* only a deliver a message a limited number of times before dead-lettering it. I have attempted to verify this using the C# client's MessagePatterns.Subscription class, but there doesn't seem to be any limit. I've been able to Reject() the same message quite a few times and it keeps getting redelivered. Am I doing something wrong, or does RabbitMQ just not have a limit for the number of deliveries? -------------- next part -------------- An HTML attachment was scrubbed... URL: From brian.dunbar at gmail.com Tue Oct 15 20:42:10 2013 From: brian.dunbar at gmail.com (Brian Dunbar) Date: Tue, 15 Oct 2013 12:42:10 -0700 (PDT) Subject: [rabbitmq-discuss] Stupid Newbie Question - what is the uri or a queue? Message-ID: I was asked to stand up a rabbitmq host. I did. I even figured out how to add a queue, which briefly made me feel pretty good (sarcasm). Now the application owner wants to know what connect string to give to his application. I don't see where this is called out. Imagine that I have a host lab.domain.net. I created a queue 'test_queue' under the default vhost '/'. How in the world would I discover what the URI is? is it lab.domain.net:15672/test_queue ? ./rabbitmqadmin -H [redacted] -u [redacted] -p lamepassword list queues +---------------+---------------+-------------+-----------+---------+------------------------+---------------------+--------+----------+----------------+-------------------------+------------+--------+---------+ | vhost | name | auto_delete | consumers | durable | exclusive_consumer_tag | idle_since | memory | messages | messages_ready | messages_unacknowledged | node | policy | status | +---------------+---------------+-------------+-----------+---------+------------------------+---------------------+--------+----------+----------------+-------------------------+------------+--------+---------+ | / | test_queue | False | 0 | True | | 2013-10-15 23:15:44 | 6932 | 0 | 0 | 0 | rabbit at lab | | running | Brian -------------- next part -------------- An HTML attachment was scrubbed... URL: From terrysduncan at gmail.com Tue Oct 15 22:13:13 2013 From: terrysduncan at gmail.com (tsduncan) Date: Tue, 15 Oct 2013 14:13:13 -0700 (PDT) Subject: [rabbitmq-discuss] rabbitmq client timeouts, slow responses Message-ID: <1381871593738-30510.post@n5.nabble.com> I have a rabbit configuration with about 50-60 rabbitmq clients. Some connect with python libraries and others with Java. After some time, new connections seem to take longer to process and the Java clients time out after 10 seconds. com.rabbitmq.client.ShutdownSignalException: connection error; reason: java.net.SocketTimeoutException: Timeout during Connection negotiation There are two issues I'd like to understand: 1. why the server is taking so long to respond causing > 10 second responses 2. how to extend the java client timeout so they will wait longer than 10 seconds. I cannot seem to find the right client side control that will extend the timeout beyond 10 seconds. Here is some information on the client: Client Properties {product=RabbitMQ, information=Licensed under the MPL. See http://www.rabbitmq.com/, platform=Java, capabilities={exchange_exchange_bindings=true, consumer_cancel_notify=true, basic.nack=true, publisher_confirms=true}, copyright=Copyright (C) 2007-2013 VMware, Inc., version=3.1.0} mqConnectionFactory.getConnectionTimeout() = 0 mqConnectionFactory.getSocketFactory().createSocket().getSoTimeout() = 0 mqConnectionFactory.getRequestedHeartbeat = 60 For the server side, I see the following in the logs for the client timing out: =INFO REPORT==== 15-Oct-2013::13:47:19 === accepted TCP connection on [::]:5672 from 172.24.1.197:33543 =INFO REPORT==== 15-Oct-2013::13:47:19 === starting TCP connection <0.19149.1003> from 172.24.1.197:33543 =WARNING REPORT==== 15-Oct-2013::13:47:19 === exception on TCP connection <0.19149.1003> from 172.24.1.197:33543 connection_closed_abruptly I will attach the full rabbit and sasl.log files. clearbay at novamgmt12:/var/log/rabbitmq$ sudo rabbitmqctl status Status of node rabbit at novamgmt12 ... [{pid,2041}, {running_applications, [{rabbitmq_management,"RabbitMQ Management Console","0.0.0"}, {rabbitmq_management_agent,"RabbitMQ Management Agent","0.0.0"}, {amqp_client,"RabbitMQ AMQP Client","0.0.0"}, {rabbit,"RabbitMQ","2.7.1"}, {os_mon,"CPO CXC 138 46","2.2.7"}, {sasl,"SASL CXC 138 11","2.1.10"}, {rabbitmq_mochiweb,"RabbitMQ Mochiweb Embedding","0.0.0"}, {webmachine,"webmachine","1.7.0-rmq0.0.0-hg"}, {mochiweb,"MochiMedia Web Server","1.3-rmq0.0.0-git"}, {inets,"INETS CXC 138 49","5.7.1"}, {mnesia,"MNESIA CXC 138 12","4.5"}, {stdlib,"ERTS CXC 138 10","1.17.5"}, {kernel,"ERTS CXC 138 10","2.14.5"}]}, {os,{unix,linux}}, {erlang_version, "Erlang R14B04 (erts-5.8.5) [source] [64-bit] [smp:32:32] [rq:32] [async-threads:30] [kernel-poll:true]\n"}, {memory, [{total,2521927344}, {processes,1984606400}, {processes_used,1984540336}, {system,537320944}, {atom,1351233}, {atom_used,1331305}, {binary,95355176}, {code,14331631}, {ets,365984592}]}, {vm_memory_high_watermark,0.3999999999821877}, {vm_memory_limit,13473855897}] ...done. -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/rabbitmq-client-timeouts-slow-responses-tp30510.html Sent from the RabbitMQ mailing list archive at Nabble.com. From emile at rabbitmq.com Wed Oct 16 09:40:22 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Wed, 16 Oct 2013 09:40:22 +0100 Subject: [rabbitmq-discuss] Redeliver limit? In-Reply-To: <92d9d3e4-e3ca-4ffb-bf79-80d13a1e54d3@googlegroups.com> References: <92d9d3e4-e3ca-4ffb-bf79-80d13a1e54d3@googlegroups.com> Message-ID: <525E50F6.4000209@rabbitmq.com> On 15/10/13 20:20, Brian Reischl wrote: > Am I doing something wrong, or does RabbitMQ just not have a limit for > the number of deliveries? There is no limit at the time of writing. A message that is redelivered too often could be recognised and dead-lettered by the broker, but RabbitMQ does not yet implement this feature. Toxic message handling is a planned feature. See reference "basic / deliver / 01" on this page: http://www.rabbitmq.com/specification.html -Emile From mklishin at gopivotal.com Wed Oct 16 09:42:16 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 16 Oct 2013 12:42:16 +0400 Subject: [rabbitmq-discuss] Stupid Newbie Question - what is the uri or a queue? In-Reply-To: References: Message-ID: <7D5A2540-9EDD-4512-B510-9D533009414E@rabbitmq.com> On 15 Oct 2013, at 23:42, Brian Dunbar wrote: > magine that I have a host lab.domain.net. I created a queue 'test_queue' under the default vhost '/'. > > is it lab.domain.net:15672/test_queue ? scheme://username:password at hostname:port/vhost scheme is one of amqp,amqps. 15672 is HTTP API port. You need 5672 or 5671 (if TLS is used). URIs are provided for vhosts, not queues. So it is amqp://username:password at lab.domain.net:5672 (for default vhost) or amqp://username:password at lab.domain.net:5672/myvhost (for vhost myvhost). Slashes in vhost names need to be escaped (%2F). MK From LBeck at gbstp.com Wed Oct 16 09:51:51 2013 From: LBeck at gbstp.com (Leigh Beck) Date: Wed, 16 Oct 2013 09:51:51 +0100 Subject: [rabbitmq-discuss] Messaging queue system for MS CRM 2011 to Klaes Message-ID: <0006CB2C1AADB04891F68AE21CB1507F036EAC27@gbms.GBManagement.local> Hi there Our company is looking to integrate two systems together, MS CRM 2011 and Klaes, which is a window quoting package. Klaes can work importing and exporting XML files with the relevant details. I have looked around and have found this a starting point: https://dyncrmmessagingintegration.codeplex.com/ This then points to a message queue system, which brings me to you. I have no idea how or if your system would work with this, could you help? Many Thanks Scanned by MailDefender - managed email security from intY - www.maildefender.net -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Wed Oct 16 10:04:31 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 16 Oct 2013 13:04:31 +0400 Subject: [rabbitmq-discuss] rabbitmq client timeouts, slow responses In-Reply-To: <1381871593738-30510.post@n5.nabble.com> References: <1381871593738-30510.post@n5.nabble.com> Message-ID: <0A522AF0-935C-4DA3-B75F-2C20C18F58DA@rabbitmq.com> On 16 Oct 2013, at 01:13, tsduncan wrote: > 1. why the server is taking so long to respond causing > 10 second responses By "responses" do you mean accepting TCP connections? If your applications constantly open and close connections (RabbitMQ protocol primarily assumes long running connections), RabbitMQ or OS may be temporarily low on available file descriptors. If you connect using hostnames instead of IPs, DNS resolution may take a long time. Please post rabbitmqctl report output (Application Environment part of it). MK From mklishin at gopivotal.com Wed Oct 16 10:05:38 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 16 Oct 2013 13:05:38 +0400 Subject: [rabbitmq-discuss] Stupid Newbie Question - what is the uri or a queue? In-Reply-To: <7D5A2540-9EDD-4512-B510-9D533009414E@rabbitmq.com> References: <7D5A2540-9EDD-4512-B510-9D533009414E@rabbitmq.com> Message-ID: On 16 Oct 2013, at 12:42, Michael Klishin wrote: > scheme://username:password at hostname:port/vhost Also, see http://www.rabbitmq.com/uri-spec.html MK From emile at rabbitmq.com Wed Oct 16 10:34:56 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Wed, 16 Oct 2013 10:34:56 +0100 Subject: [rabbitmq-discuss] Messaging queue system for MS CRM 2011 to Klaes In-Reply-To: <0006CB2C1AADB04891F68AE21CB1507F036EAC27@gbms.GBManagement.local> References: <0006CB2C1AADB04891F68AE21CB1507F036EAC27@gbms.GBManagement.local> Message-ID: <525E5DC0.1020807@rabbitmq.com> Hi, On 16/10/13 09:51, Leigh Beck wrote: It should be possible to create adapters for the products you want to integrate with. > MS CRM 2011 The relevant SDK appears to support .NET. It should be possible to use the SDK together with the RabbitMQ .NET or WCF library to exchange information with the broker. > and Klaes, which is a window quoting package. Klaes can work importing > and exporting XML files with the relevant details. According to one of the glossy brochures there is also an ERP interface. If you only have XML files as interchange format then it is certainly possible to use that to exchange information with the broker, e.g. by polling for changes to the relevant file directory. -Emile From simon at rabbitmq.com Wed Oct 16 11:25:14 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 16 Oct 2013 11:25:14 +0100 Subject: [rabbitmq-discuss] Stupid Newbie Question - what is the uri or a queue? In-Reply-To: <7D5A2540-9EDD-4512-B510-9D533009414E@rabbitmq.com> References: <7D5A2540-9EDD-4512-B510-9D533009414E@rabbitmq.com> Message-ID: <525E698A.6000703@rabbitmq.com> On 16/10/13 09:42, Michael Klishin wrote: > On 15 Oct 2013, at 23:42, Brian Dunbar wrote: > >> magine that I have a host lab.domain.net. I created a queue 'test_queue' under the default vhost '/'. >> >> is it lab.domain.net:15672/test_queue ? > > scheme://username:password at hostname:port/vhost > > scheme is one of amqp,amqps. > > 15672 is HTTP API port. You need 5672 or 5671 (if TLS is used). URIs are provided > for vhosts, not queues. > > So it is amqp://username:password at lab.domain.net:5672 (for default vhost) or amqp://username:password at lab.domain.net:5672/myvhost > (for vhost myvhost). Slashes in vhost names need to be escaped (%2F). To expand on this: If you are connecting via amqp / amqps then the URI just specifies how to connect to a server; it is not possible to specify a queue name in a URI any more than you would specify a table name in a JDBC URI. You connect to the server then start issuing amqp commands which reference queues and other objects. If you are connecting to the management interface via http / https, then the URIs are documented here: http://hg.rabbitmq.com/rabbitmq-management/raw-file/default/priv/www/api/index.html Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From emile at rabbitmq.com Wed Oct 16 12:11:15 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Wed, 16 Oct 2013 12:11:15 +0100 Subject: [rabbitmq-discuss] abnormally large memory use in "binaries" In-Reply-To: <1381851261.61014.YahooMailNeo@web122002.mail.ne1.yahoo.com> References: <1381851261.61014.YahooMailNeo@web122002.mail.ne1.yahoo.com> Message-ID: <525E7453.7050706@rabbitmq.com> Hi Brian, On 15/10/13 16:34, Brian Hammond wrote: > Sure, thing. I grabbed it at 10 minute intervals, but can do a finer > granularity if needed. Thanks for the detailed diagnostics. I don't see any reason for the memory use in the reports. Could you try to run this command on the broker while the condition is being observed and send back the reply? rabbitmqctl eval 'lists:sublist(lists:reverse(lists:sort([{Sz, P, process_info(P)} || {{binary, [{_, Sz, _}]}, P} <- [{erlang:process_info(P, binary), P} || P <- erlang:processes()]])), 20).' -Emile From tim at rabbitmq.com Wed Oct 16 12:37:48 2013 From: tim at rabbitmq.com (Tim Watson) Date: Wed, 16 Oct 2013 12:37:48 +0100 Subject: [rabbitmq-discuss] SSL connection - ASN1 error In-Reply-To: References: <524A9911.6040603@rabbitmq.com> Message-ID: Hi Michal, On 1 Oct 2013, at 13:06, Skorepa, Michal wrote: > Thank you, Simon. But unfortunately neither of the proposed workarounds worked for me. Both produced the same error: > > {{{{badmatch,error},[{tls_connection,dh_master_secret,5,[{file,"tls_connection.erl"},{line,2093}]},{tls_connection,certify,2,[{file,"tls_connection.erl"},{line,544}]},{tls_connection,next_state,4,[{file,"tls_connection.erl"},{line,2537}]},{gen_fsm,handle_msg,7,[{file,"gen_fsm.erl"},{line,505}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,239}]}]},{gen_fsm,sync_send_all_state_event,[<0.324.0>,{start,infinity},infinity]}},{gen_server,call,[<0.292.0>,connect,infinity]}} > That looks like a very different error from the one you'd see due to the asn1 application not being started. > Do you have any other suggestions? [snip] >> I am getting an exception in SSL connection establishment by AMQP >> Erlang client (used by an application which is running as a RMQ plugin): > Can you explain a bit more about what you're doing here? The stack trace above indicates a failure during cryptographic key generation, which seems odd under the circumstances. Is there any more information available in the logs? In particular, it would be useful to have some more context for the error, e.g., an INFO report from the process in which this crash occured. > > Also, when do you plan to release a new version of AMQP Erlang client? > AFAIK a new release should be imminent. Although we cannot make any guarantees about release timescales, I'd expect to see one either this week or early next. Cheers, Tim From emile at rabbitmq.com Wed Oct 16 12:40:01 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Wed, 16 Oct 2013 12:40:01 +0100 Subject: [rabbitmq-discuss] connection problem. i want reconnection if failed In-Reply-To: References: Message-ID: <525E7B11.1090400@rabbitmq.com> On 15/10/13 13:49, Abdul Nasir Khayam wrote: > My connecction fails to attempt It is not clear what you mean by this. Does a connection attempt get logged in the broker logfile? > 2013-10-15 07:15:26,943 [18] DEBUG adam602.container: AMQP <-- this is > an amqp message published > 2013-10-15 07:15:30,041 [18] DEBUG adam602.container: Exception: > SharedQueue closed > A first chance exception of type 'System.IO.EndOfStreamException' > occurred in RabbitMQ.Client.dll An end-of-stream error normally means there was a network interruption. Was anything logged in the broker logfile at the same time? > Code: I would encourage you to supply minimal self-contained code to help illustrate a problem. The code you supplied is neither minimal nor self-contained. -Emile From jlavell99 at gmail.com Wed Oct 16 11:46:55 2013 From: jlavell99 at gmail.com (Jim Smith) Date: Wed, 16 Oct 2013 03:46:55 -0700 (PDT) Subject: [rabbitmq-discuss] SalesForce and RabbitMQ Integration Message-ID: Hi. I am currently researching SalesForce and RabbitMQ integration. I understand that SalesForce has a Web Services api. If this is the case, I would appreciate insight of the integration process to have a Web Services integrate with RabbitMQ to submit or retrieve messages from a queue. Regards, Jim -------------- next part -------------- An HTML attachment was scrubbed... URL: From morkrost at gmail.com Wed Oct 16 11:53:39 2013 From: morkrost at gmail.com (Anders Kullberg) Date: Wed, 16 Oct 2013 03:53:39 -0700 (PDT) Subject: [rabbitmq-discuss] Riak exchange fails in exchange.declare Message-ID: <60c667be-dfa4-40da-8eab-38f3d42e8b85@googlegroups.com> Hi, I'm trying to get the Riak exchange to work with RabbitMQ 3.1.5 and Riak 1.4.2. Have tried both the programmatic approach in python as well as creating the exchange in the management interface. In both cases I receive a (to me) cryptic Erlang error: The server encountered an error while processing this request: {error, {exit, {{function_clause, [{rabbit_exchange_type_riak,exchange_type, [{exchange, {resource,<<"/">>,exchange,<<"apa">>}, 'x-riak',true,false,false,[],undefined,undefined, {[],[]}}]}, {rabbit_exchange_type_riak,validate,1}, {rabbit_exchange,declare,6}, {rabbit_channel,handle_method,3}, {rabbit_channel,handle_cast,2}, {gen_server2,handle_msg,2}, {proc_lib,init_p_do_apply,3}]}, {gen_server,call, [<0.3030.0>, {call, {'exchange.declare',0,<<"apa">>,<<"x-riak">>,false,true, false,false,false,[]}, none,<0.1089.0>}, infinity]}}, [{gen_server,call,3}, {rabbit_mgmt_util,'-amqp_request/5-fun-0-',4}, {rabbit_mgmt_util,with_channel,5}, {rabbit_mgmt_util,http_to_amqp,5}, {webmachine_resource,resource_call,3}, {webmachine_resource,do,3}, {webmachine_decision_core,resource_call,1}, {webmachine_decision_core,accept_helper,1}]}} This is with the default values in the plugin, but I have also tried to explicitly define them both in the UI and python with similar results. Where (besides the crash course in Erlang) should I start looking? Regards, /A -------------- next part -------------- An HTML attachment was scrubbed... URL: From jluzuria2001 at gmail.com Wed Oct 16 13:58:49 2013 From: jluzuria2001 at gmail.com (Jorg Eloy) Date: Wed, 16 Oct 2013 14:58:49 +0200 Subject: [rabbitmq-discuss] other transports besides TCP In-Reply-To: <525D0614.9000304@rabbitmq.com> References: <5fd53a4c-debb-4526-8507-f23ca60a28b8@googlegroups.com> <5257DCB8.8070303@rabbitmq.com> <525D0614.9000304@rabbitmq.com> Message-ID: Hi Simon, Thanks for your help, continue with our interest in consuming the enqueued messages, in order to get more than one consumer per queue. Exist something similar to fanout exchange type in UPD? Actually, I'm trying with UDP consumer without get it. So I've the Consumer that I use with TCP transport, and it's very strange, It works perfect when consumes messages from a host where the brokerMQ is installed. But when I try to consume messages from the other host, it's no possible. Besides that when I tried to declare the exchange and queue from the another host different to the broker, These aren't created. Any ideas? What else should I try? Best regards and thanks in advance, Jorg 2013/10/15 Simon MacMullen > Hi. > > I compiled your code and it works for me. I had to provide the address and > port for the DatagramPacket, so you probably want to make sure those are > correct. Also make sure the packet is not being eaten by a firewall. > > Cheers, Simon > > > On 15/10/2013 09:25, Jorg Eloy wrote: > >> Hi Simon, >> >> Thanks for your reply, let me said that when I sent messages using UDP, >> these messages are bounded to the queue in the channel with this line of >> code: >> /channel.queueBind(q1, xnameRaw, "#");/ >> >> >> When I'm using Wireshark, I can view these messages arriving to the >> broker but they didn't reach to the exchange. >> >> Why I'm using UDP instead of TCP is because I'm tried with AMQP to work >> with sensors and servers, >> where sensors enqueue messages using UDP due to the typical sensor data >> is redundant an some loss can be tolerated >> and the servers receive these messages using a channel protocol over >> TCP, The servers might use TCP to transport messages reliably. >> >> Thanks again. >> >> >> PD. Here I put some important lines of the code that I'm using actually >> to do this task. >> >> ------------------------------**------------------------------** >> ------------- >> / String xnameRaw = "UDP raw exchage for testing"; >> >> String xtype = "x-udp"; >> >> ConnectionFactory factory = new ConnectionFactory(); >> >> Connection connection = factory.newConnection(); >> Channel channel = connection.createChannel(); >> >> factory.setHost(BROKERMQ); >> factory.setUsername("guest"); >> factory.setPassword("guest"); >> factory.setPort(PORT); >> >> Map declArgs = new HashMap(); >> >> declArgs.put("ip", "0.0.0.0"); >> declArgs.put("port", (short) PORT); >> >> channel.exchangeDeclare(**xnameRaw, xtype, false, false, false, >> declArgs); >> String q1 = channel.queueDeclare().**getQueue(); >> channel.queueBind(q1, xnameRaw, "#"); >> >> DatagramSocket u2 = new DatagramSocket(); >> DatagraPacket pOutRaw = new DatagramPacket(message, message.length, >> address, PORT); >> >> u2.send(pOutRaw); >> channel.basicPublish(xnameRaw, routingKey, null, message);/ >> ------------------------------**------------------------------** >> ------------- >> >> >> >> 2013/10/11 Simon MacMullen > >> >> >> >> I'm afraid your message doesn't really give us much to go on, other >> than "it doesn't work". >> >> I suggest you try to break the problem down: when you send a UDP >> packet, can you see it reach the broker in wireshark? Can you see it >> go into a queue (bound to the UDP exchange with "#") in the >> management plugin? And so on. >> >> Also, out of interest, why do you want to use UDP instead of TCP? >> >> Cheers, Simon >> >> On 11/10/2013 10:27AM, Jorg Eloy wrote: >> >> Hi all, >> I'm looking another transport for AMQP in place of TCP, >> Nowadays, I'm trying work with UPD exchange of tonyg >> [https://github.com/tonyg/udp-**__exchange >> >> >], >> with the plugin to >> rabbitmq, to >> get a similar scenario with publishers, consumers, queues and >> exchanges, >> But I can't get it. >> >> My actual situation is that: >> I send messages from the publisher to the exchange and these >> messages >> are not published, I can view in the web management tool how the >> delivery rate in the exchange is altered, >> I'm using basicPublish to publish the messages and >> QueueingConsumer to >> consume the messages, Also DatagramSockets and DatagramPackets >> to send >> and receive by UDP. >> But as I said before, these messages are don't received in the >> consumer. >> Including that I use the same routing keys in the messages and >> when >> I try sending messages directly to the queue created for the >> consumer, >> these messages arrive successfully >> >> Can someone know what is the error? >> >> Thanks in advance. >> >> >> >> >> -- >> Simon MacMullen >> RabbitMQ, Pivotal >> >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From emile at rabbitmq.com Wed Oct 16 14:44:02 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Wed, 16 Oct 2013 14:44:02 +0100 Subject: [rabbitmq-discuss] Riak exchange fails in exchange.declare In-Reply-To: <60c667be-dfa4-40da-8eab-38f3d42e8b85@googlegroups.com> References: <60c667be-dfa4-40da-8eab-38f3d42e8b85@googlegroups.com> Message-ID: <525E9822.3080203@rabbitmq.com> Hi, On 16/10/13 11:53, Anders Kullberg wrote: > [{rabbit_exchange_type_riak,exchange_type, > [{exchange, > {resource,<<"/">>,exchange,<<"apa">>}, > 'x-riak',true,false,false,[],undefined,undefined, > {[],[]}}]}, -record(exchange, {name, type, durable, auto_delete, internal, arguments, scratches, policy}). -record(exchange, {name, type, durable, auto_delete, internal, arguments, scratches, policy, decorators}). It looks like that exchange requires updating to work with the latest version of RabbitMQ. Its definition of an exchange does not support exchange decorators. You can ask the author to refresh the library or use the version of RabbitMQ that the library was written for (3.0.0 according to the documentation, but 3.0.4 should also work). -Emile From tim at rabbitmq.com Wed Oct 16 15:01:31 2013 From: tim at rabbitmq.com (Tim Watson) Date: Wed, 16 Oct 2013 15:01:31 +0100 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: <59BF56992750434F89F8EBE141E64B1D01820747@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D01820747@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: <263D8F04-724A-470B-A8CA-4F6987F87030@rabbitmq.com> Hi, On 5 Oct 2013, at 16:48, PATAR, SAGAR wrote: > The requirement we have is a simple JMS topic with failover and persistency.. > Where multiple client subscribe for the messages and when a new client is introduced NO changes in framework as the Topic is already configured for failover and persistence ..the new client will just make a connection and start consuming .. > You are conflating queues and topics here, which is hardly surprising given that you're coming at this from a JMS perspective, but still. In AMQP, there is no such thing as a topic, however there is such a thing as a topic exchange, which routes to specific queues based on matching between a message routing key and the pattern that was used to bind a queue to an exchange. A topic exchange then, will route the same message to multiple queues, if the bindings in question match the routing key. > With RabbitMQ my understanding is we need to configure a new queue and mirror it and then ask the new client to consume the message ...?? > You need to bear in mind that mirroring only applies to queues, and topics do not exist as an entity that holds messages. So you're right in one sense, because you can only mirror queues and in order to filter subscriptions based on routing key, you will need multiple queues bound to a topic exchange. > Pl. check slide 3 and 4 in the attachment ... For new client do we need to configure a new mirrored queue ... All the queues should get all the messages from the exchange ... > If that client wishes to get a copy of each message, then yes, you will need to add another queue. If you did not, messages in a single queue would be delivered to clients in a round-robbin fashion, so not all clients would see all messages. > On oct 5, 2013, at 12:54 a.m., "PATAR, SAGAR" wrote: > >> But still we have to manage all the mirror configurations of all the separate queues per client .. and also when a new client is introduced we have to change our configuration to create a new queue and then mirror it etc ....right > Yes and no. When you declare a queue using AMQP, it will only be created if it does not already exist, so your client can simply declare the queue whenever it starts up. Mirroring for queues is controlled by policy, so you can ensure that whenever your queue is first created, an HA/Mirroring policy will be automatically applied to it. On 7 Oct 2013, at 15:11, PATAR, SAGAR wrote: > 1)The consumer can simply subscribe BUT there is NO way the dynamic queue is mirrored and also if the consumer has a downtime then the messages published during the downtime will be lost as the dynamic queue will be deleted .. Even if there is a feature where the dynamic queue is not deleted when the connection fails .. Can we mirror that queue and also how can we make sure when the client reconnects will it be using the same queue or will create a NEW queue... > As I said, mirroring can happen automatically if an administrator configures the relevant policies on the broker. > 2)If we need to mirror the queue the new consumer is going to consume from then we might have to do some confutation changes ..right?? > No, the policy will be applied automatically when the queue is first created. > " Note that I was explaining things in AMQP 0-9-1 terms, and now you've revealed that your > requirements are framed in JMS terms, which are not exactly the same." .. > Can we use Rabbit to achieve the JMS based requirements ?? Yes, I should think so, however... > -----Original Message----- > From: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Michael Klishin > Sent: Monday, October 07, 2013 9:41 AM > To: Discussions about RabbitMQ > Subject: Re: [rabbitmq-discuss] mirrored queue cluster > > Unfortunately, I'm not familiar with how vFabric Rabbit's JMS client maps RabbitMQ protocol > to JMS. I must admit that I haven't looked at how the RabbitMQ JMS client maps queues and exchanges to Topics. However the entities we've discussed thus far are all AMQP based, so some kind of mapping ought to be possible. HTH Cheers, Tim From tim at rabbitmq.com Wed Oct 16 15:12:24 2013 From: tim at rabbitmq.com (Tim Watson) Date: Wed, 16 Oct 2013 15:12:24 +0100 Subject: [rabbitmq-discuss] mirrored queue cluster In-Reply-To: <263D8F04-724A-470B-A8CA-4F6987F87030@rabbitmq.com> References: <59BF56992750434F89F8EBE141E64B1D01820747@GAALPA1MSGUSR9C.ITServices.sbc.com> <263D8F04-724A-470B-A8CA-4F6987F87030@rabbitmq.com> Message-ID: Urgh, I think this cross posted to the wrong thread - sorry! I'll try and re-post against the correct one. On 16 Oct 2013, at 15:01, Tim Watson wrote: > Hi, > > On 5 Oct 2013, at 16:48, PATAR, SAGAR wrote: >> The requirement we have is a simple JMS topic with failover and persistency.. >> Where multiple client subscribe for the messages and when a new client is introduced NO changes in framework as the Topic is already configured for failover and persistence ..the new client will just make a connection and start consuming .. >> > > You are conflating queues and topics here, which is hardly surprising given that you're coming at this from a JMS perspective, but still. In AMQP, there is no such thing as a topic, however there is such a thing as a topic exchange, which routes to specific queues based on matching between a message routing key and the pattern that was used to bind a queue to an exchange. A topic exchange then, will route the same message to multiple queues, if the bindings in question match the routing key. > >> With RabbitMQ my understanding is we need to configure a new queue and mirror it and then ask the new client to consume the message ...?? >> > > You need to bear in mind that mirroring only applies to queues, and topics do not exist as an entity that holds messages. So you're right in one sense, because you can only mirror queues and in order to filter subscriptions based on routing key, you will need multiple queues bound to a topic exchange. > >> Pl. check slide 3 and 4 in the attachment ... For new client do we need to configure a new mirrored queue ... All the queues should get all the messages from the exchange ... >> > > If that client wishes to get a copy of each message, then yes, you will need to add another queue. If you did not, messages in a single queue would be delivered to clients in a round-robbin fashion, so not all clients would see all messages. > >> On oct 5, 2013, at 12:54 a.m., "PATAR, SAGAR" wrote: >> >>> But still we have to manage all the mirror configurations of all the separate queues per client .. and also when a new client is introduced we have to change our configuration to create a new queue and then mirror it etc ....right >> > > Yes and no. When you declare a queue using AMQP, it will only be created if it does not already exist, so your client can simply declare the queue whenever it starts up. Mirroring for queues is controlled by policy, so you can ensure that whenever your queue is first created, an HA/Mirroring policy will be automatically applied to it. > > On 7 Oct 2013, at 15:11, PATAR, SAGAR wrote: >> 1)The consumer can simply subscribe BUT there is NO way the dynamic queue is mirrored and also if the consumer has a downtime then the messages published during the downtime will be lost as the dynamic queue will be deleted .. Even if there is a feature where the dynamic queue is not deleted when the connection fails .. Can we mirror that queue and also how can we make sure when the client reconnects will it be using the same queue or will create a NEW queue... >> > > As I said, mirroring can happen automatically if an administrator configures the relevant policies on the broker. > >> 2)If we need to mirror the queue the new consumer is going to consume from then we might have to do some confutation changes ..right?? >> > > No, the policy will be applied automatically when the queue is first created. > >> " Note that I was explaining things in AMQP 0-9-1 terms, and now you've revealed that your >> requirements are framed in JMS terms, which are not exactly the same." .. >> Can we use Rabbit to achieve the JMS based requirements ?? > > Yes, I should think so, however... > >> -----Original Message----- >> From: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Michael Klishin >> Sent: Monday, October 07, 2013 9:41 AM >> To: Discussions about RabbitMQ >> Subject: Re: [rabbitmq-discuss] mirrored queue cluster >> >> Unfortunately, I'm not familiar with how vFabric Rabbit's JMS client maps RabbitMQ protocol >> to JMS. > > > I must admit that I haven't looked at how the RabbitMQ JMS client maps queues and exchanges to Topics. However the entities we've discussed thus far are all AMQP based, so some kind of mapping ought to be possible. > > HTH > > Cheers, > Tim > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss From dave.l.harrison at gmail.com Wed Oct 16 15:14:12 2013 From: dave.l.harrison at gmail.com (David Harrison) Date: Thu, 17 Oct 2013 01:14:12 +1100 Subject: [rabbitmq-discuss] Crash with RabbitMQ 3.1.5 Message-ID: Hi there, Hoping someone can help me out. We recently experienced 2 crashes with our RabbitMQ cluster. After the first crash, we moved the Mnesia directories elsewhere, and started RabbitMQ again. This got us up and running. Second time it happened, we had the original nodes plus an additional 5 nodes we had added to the cluster that we were planning to leave in place while shutting the old nodes down. During the crash symptoms were as follows: - Escalating (and sudden) CPU utilisation on some (but not all) nodes - Escalation memory usage (not necessarily aligned to the spiking CPU) - Increasing time to publish on queues (and specifically on a test queue we have setup that exists only to test publishing and consuming from the cluster hosts) - Running `rabbitmqctl cluster status` gets increasingly slow (some nodes eventually taking up to 10m to return with the response data - some were fast and took 5s) - Management plugin stops responding / or responding so slowly it's no longer loading any data at all (probably same thing that causes the preceeding item) - Can't force nodes to forget other nodes (calling `rabbitmqctl forget_cluster_node` doesn't return) - When trying to shut down a node, running `rabbitmqctl stop_app` appears to block on epmd and doesn't return --- When that doesn't return we eventually have to ctrl-c the command --- We have to issue a kill signal to rabbit to stop it --- Do the same to the epmd process --- However the other nodes all still think that the killed node is active (based on `rabbitmqctl cluster status` -- both nodes slow to run this, and fast to run it saw the same view of the cluster that included the dead node) Config / details as follows (we use mirrored queues -- 5 hosts, all disc nodes, with a global policy that all queues are mirrored "ha-mode:all"), running on Linux [ {rabbit, [ {cluster_nodes, {['rabbit at b05.internal', 'rabbit at b06.internal','rabbit at b07.internal','rabbit at b08.internal ','rabbit at b09.internal'], disc}}, {cluster_partition_handling, pause_minority} ]} ] And the env: NODENAME="rabbit at b09.internal" SERVER_ERL_ARGS="-kernel inet_dist_listen_min 27248 -kernel inet_dist_listen_max 27248" The erl_crash.dump slogan error was : eheap_alloc: Cannot allocate 2850821240 bytes of memory (of type "old_heap"). System version : Erlang R14B04 (erts-5.8.5) [source] [64-bit] [smp:2:2] [rq:2] [async-threads:0] [kernel-poll:false] Compiled Fri Dec 16 03:22:15 2011 Taints (none) Memory allocated 6821368760 bytes Atoms 22440 Processes 4899 ETS tables 80 Timers 23 Funs 3994 When I look at the Process Information it seems there's a small number with ALOT of messages queued, and the rest are an order of magnitude lower: Pid Name/Spawned as State Reductions Stack+heap MsgQ Length <0.400.0> proc_lib:init_p/5 Scheduled 146860259 59786060 37148 <0.373.0> proc_lib:init_p/5 Scheduled 734287949 1346269 23360 <0.366.0> proc_lib:init_p/5 Waiting 114695635 5135590 19744 <0.444.0> proc_lib:init_p/5 Waiting 154538610 832040 3326 when I view the second process (first one crashes erlang on me), I see a large number of sender_death events (not sure if these are common or highly unusual ?) {'$gen_cast',{gm,{sender_death,<2710.20649.64>}}} mixed in with other more regular events: {'$gen_cast', {gm,{publish,<2708.20321.59>, {message_properties,undefined,false}, {basic_message, <.. snip..> -------------- next part -------------- An HTML attachment was scrubbed... URL: From tim at rabbitmq.com Wed Oct 16 15:14:53 2013 From: tim at rabbitmq.com (Tim Watson) Date: Wed, 16 Oct 2013 15:14:53 +0100 Subject: [rabbitmq-discuss] rabbitmq 3.1.5 cluster auto-configuration not working In-Reply-To: References: <66b2d732-5115-401d-816a-ccc7cb5aaacd@googlegroups.com> <5253C9B1.5020801@rabbitmq.com> <52541A50.6040004@rabbitmq.com> Message-ID: <282CEEC9-7FBA-45BE-A636-F7BE7F595325@rabbitmq.com> Hi Ben, On 8 Oct 2013, at 17:50, Ben Hidalgo wrote: > I'm having trouble resetting. > > One node1, I can stop_app/start_app but reset gives: > Error: {timeout_waiting_for_tables,[rabbit_user,rabbit_user_permission, > rabbit_vhost,rabbit_durable_route, > rabbit_durable_exchange, > rabbit_runtime_parameters, > rabbit_durable_queue]} > > On node2, I can stop_app/start_app but reset gives: > Resetting node rabbit at testrabbit02 ... > Error: {no_running_cluster_nodes,"You cannot leave a cluster if no online nodes are present."} > If you've reset node1, then it will no longer be considered part of the cluster by node2. I have to admit that I'm not 100% sure what you're trying to achieve here - the original post seemed to be about auto-config, which as Simon mentioned is something that gets applied when the node(s) first start. > What is the sequence for cleanly reinitializing Rabbit and Erlang on a two node cluster? What do you mean by reinitializing? Are we talking about reset (which clears out all persistent storage) or joining/leaving a cluster? > I'm trying to setup a production config with Chef. If you've used it, Chef requires idempotency and strongly prefers file based management. Could you recommend any "Rabbit + Chef" tutorials or best practices? I'm familiar with the OpsCode cookbook. > I'm afraid I'm not familiar with any tutorials in this space. If you come across any useful ones, please feel free to post back and let us know! Cheers, Tim From tim at rabbitmq.com Wed Oct 16 15:29:58 2013 From: tim at rabbitmq.com (Tim Watson) Date: Wed, 16 Oct 2013 15:29:58 +0100 Subject: [rabbitmq-discuss] Crash with RabbitMQ 3.1.5 In-Reply-To: References: Message-ID: <345842AD-209B-4818-BF27-A2B8EDE70438@rabbitmq.com> Hello David! On 16 Oct 2013, at 15:14, David Harrison wrote: > Hoping someone can help me out. We recently experienced 2 crashes with our RabbitMQ cluster. After the first crash, we moved the Mnesia directories elsewhere, and started RabbitMQ again. This got us up and running. Second time it happened, we had the original nodes plus an additional 5 nodes we had added to the cluster that we were planning to leave in place while shutting the old nodes down. > What version of rabbit are you running, and how was it installed? > During the crash symptoms were as follows: > > - Escalating (and sudden) CPU utilisation on some (but not all) nodes We've fixed at least one bug with that symptom in recent releases. > - Increasing time to publish on queues (and specifically on a test queue we have setup that exists only to test publishing and consuming from the cluster hosts) Are there multiple publishers on the same connection/channel when this happens? It wouldn't be unusual, if the server was struggling, to see flow control kick in and affect publishers in this fashion. > - Running `rabbitmqctl cluster status` gets increasingly slow (some nodes eventually taking up to 10m to return with the response data - some were fast and took 5s) Wow, 10m is amazingly slow. Can you provide log files for this period of activity and problems? > - When trying to shut down a node, running `rabbitmqctl stop_app` appears to block on epmd and doesn't return Again, we've fixed bugs in that area in recent releases. > --- When that doesn't return we eventually have to ctrl-c the command > --- We have to issue a kill signal to rabbit to stop it > --- Do the same to the epmd process Even if you have to `kill -9' a rabbit node, you shouldn't need to kill epmd. In theory at least. If that was necessary to fix the "state of the world", it would be indicative of a problem related to the erlang distribution mechanism, but I very much doubt that's the case here. > Config / details as follows (we use mirrored queues -- 5 hosts, all disc nodes, with a global policy that all queues are mirrored "ha-mode:all"), running on Linux > How many queues are we talking about here? > [ > {rabbit, [ > {cluster_nodes, {['rabbit at b05.internal', 'rabbit at b06.internal','rabbit at b07.internal','rabbit at b08.internal','rabbit at b09.internal'], disc}}, > {cluster_partition_handling, pause_minority} Are you sure that what you're seeing is not caused by a network partition? If it were, any nodes in a minority island would "pause", which would certainly lead to the kind of symptoms you've mentioned here, viz rabbitmqctl calls not returning and so on. > The erl_crash.dump slogan error was : eheap_alloc: Cannot allocate 2850821240 bytes of memory (of type "old_heap"). > That's a plain old OOM failure. Rabbit ought to start deliberately paging messages to disk well before that happens, which might also explain a lot of the slow/unresponsive-ness. > System version : Erlang R14B04 (erts-5.8.5) [source] [64-bit] [smp:2:2] [rq:2] [async-threads:0] [kernel-poll:false] > I'd strongly suggest upgrading to R16B02 if you can. R14 is pretty ancient and a *lot* of bug fixes have appeared in erts + OTP since then. > When I look at the Process Information it seems there's a small number with ALOT of messages queued, and the rest are an order of magnitude lower: > That's not unusual. > when I view the second process (first one crashes erlang on me), I see a large number of sender_death events (not sure if these are common or highly unusual ?) > > {'$gen_cast',{gm,{sender_death,<2710.20649.64>}}} > Interesting - will take a look at that. If you could provide logs for the participating nodes during this whole time period, that would help a lot. > mixed in with other more regular events: > Actually, sender_death messages are not "irregular" as such. They're just notifying the GM group members that another member (on another node) has died. This is quite normal with mirrored queues, when nodes get partitioned or stopped due to cluster recovery modes. Cheers, Tim From tim at rabbitmq.com Wed Oct 16 15:34:15 2013 From: tim at rabbitmq.com (Tim Watson) Date: Wed, 16 Oct 2013 15:34:15 +0100 Subject: [rabbitmq-discuss] Crash with RabbitMQ 3.1.5 In-Reply-To: <345842AD-209B-4818-BF27-A2B8EDE70438@rabbitmq.com> References: <345842AD-209B-4818-BF27-A2B8EDE70438@rabbitmq.com> Message-ID: <8FD498F1-B80C-4DD5-BD54-494114A8DF6F@rabbitmq.com> On 16 Oct 2013, at 15:29, Tim Watson wrote: >> The erl_crash.dump slogan error was : eheap_alloc: Cannot allocate 2850821240 bytes of memory (of type "old_heap"). >> > > That's a plain old OOM failure. Rabbit ought to start deliberately paging messages to disk well before that happens, which might also explain a lot of the slow/unresponsive-ness. > Oh and BTW, you haven't changed the memory high watermark have you? From steve at rabbitmq.com Wed Oct 16 15:47:36 2013 From: steve at rabbitmq.com (Steve Powell) Date: Wed, 16 Oct 2013 15:47:36 +0100 Subject: [rabbitmq-discuss] AlreadyClosedException always sets hardError and initiatedByApplication to true In-Reply-To: References: <5BFF87E3-BBD7-421D-8CD2-C8AE6E8A7FD8@rabbitmq.com> Message-ID: Jonathan, I think it is not a bug but working as designed: The second invocation on the channel is an invocation on a closed channel, and this is a hard error, because it closes the connection. Furthermore this was initiated by an application call rather than arriving out of the blue from the server. There is no reason to expect that the 'flags' on the AlreadyClosedException have anything to do with the event which closed the channel/connection. As to the problem about recovery, it is the first exception (the IOException) which you need to catch; its cause will be the ShutdownSignalException, which tells you what the circumstances of the shutdown are (application?, hard?). Is this enough to help you recover correctly? Steve Powell [Cell: +44-7815-838-558] Links: Pivotal, SpringSource, VMware, Virgo, RabbitMQ. ----------------------------------------------------------------------- Good design: is innovative, useful, and aesthetic; is understandable, unobtrusive, and honest; is long-lasting, thorough, and environmentally friendly; and is as little design as possible. (c) Dieter Rams, amended 2003; 2009; 2012 On 15 Oct 2013, at 23:56, Jonathan Halterman wrote: > Hey Michael, > > Yea, you can reproduce both items by attempting to declare a consumer on a non-existent queue twice in a row. The first invocation closes the channel and throws an IOException. The second invocation throws an AlreadyClosedException, though the hardError and initiatedByApplication flags don't match those from the initial failure. > > - jonathan > > > On Tue, Oct 15, 2013 at 3:45 PM, Michael Klishin wrote: > On oct 16, 2013, at 1:24 a.m., Jonathan Halterman wrote: > > > I noticed that AlreadyClosedException always sets hardError and initiatedByApplication to true, even if the error was not hard (only the channel was closed) and the channel was not closed by the application. This makes it more difficult to properly recover a closed resource if I can't easily determine which resource was closed and why. Could this be fixed? > > Jonathan, > > This indeed sounds like a bug. > > How can we reproduce it? Simply attempt an operation on a closed channel? > Does it matter how exactly the channel was closed? > > MK > > > > > _______________________________________________ > 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 Chris.Nicel at 15below.com Wed Oct 16 15:43:13 2013 From: Chris.Nicel at 15below.com (Chris Nicel) Date: Wed, 16 Oct 2013 09:43:13 -0500 Subject: [rabbitmq-discuss] Memory High Watermark. Message-ID: Hi All. I would like to know more about the decision to default the memory high watermark to 40% of the installed RAM. Is this designed for use on a server with contended resources? If the server is dedicated to running RabbitMQ can this be raised to say 80% or 90% safely? RabbitMQ: 3.1.5 Erlang: 16B02 Linux Distro: Ubuntu 12.04LTS Thanks in advance. Chris Nicel Senior Systems Engineer 15below ltd : 15below Australia pty. ltd. t: +44 1273 764230 e: chris.nicel at 15below.com w: 15below.com [cid:image001.png at 01CECA86.6C4BD2E0] @15below_travel 15below Limited: Company registered in England and Wales No 3945289 Registered Office: Lyndean House, 43-46 Queens Road, Brighton BN1 3XB, United Kingdom 15below Australia Pty Limited: ABN 25 132 716 379 Level 21, Tower 2 Darling Park, 201 Sussex Street, Sydney, NSW 2000, Australia Please think about the environment before printing this email. ************************************************************************ This email and any attachments may be confidential and/or legally privileged and are solely for the use of the intended recipient. If you have received this email in error please contact the sender. Any views or opinions expressed within this e-mail are solely those of the sender, and do not necessarily represent those of 15below unless otherwise specifically stated. Although 15below has taken every reasonable precaution to ensure that any attachment to this e-mail has been checked for viruses, it is strongly recommended that you carry out your own virus check before opening any attachment, as we cannot accept liability for any damage sustained as a result of software virus infection. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.png Type: image/png Size: 808 bytes Desc: image001.png URL: From dave.l.harrison at gmail.com Wed Oct 16 15:55:00 2013 From: dave.l.harrison at gmail.com (David Harrison) Date: Thu, 17 Oct 2013 01:55:00 +1100 Subject: [rabbitmq-discuss] Crash with RabbitMQ 3.1.5 In-Reply-To: <8FD498F1-B80C-4DD5-BD54-494114A8DF6F@rabbitmq.com> References: <345842AD-209B-4818-BF27-A2B8EDE70438@rabbitmq.com> <8FD498F1-B80C-4DD5-BD54-494114A8DF6F@rabbitmq.com> Message-ID: Hey Tim, No, still set at 40% as per default -- read up and found numerous posts indicating double that was possible during GC and stayed well clear ;-) Cheers Dave On 17 October 2013 01:34, Tim Watson wrote: > On 16 Oct 2013, at 15:29, Tim Watson wrote: > >> The erl_crash.dump slogan error was : eheap_alloc: Cannot allocate > 2850821240 bytes of memory (of type "old_heap"). > >> > > > > That's a plain old OOM failure. Rabbit ought to start deliberately > paging messages to disk well before that happens, which might also explain > a lot of the slow/unresponsive-ness. > > > > Oh and BTW, you haven't changed the memory high watermark have you? > _______________________________________________ > 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 dmcintyre at gopivotal.com Wed Oct 16 15:55:49 2013 From: dmcintyre at gopivotal.com (Duncan McIntyre) Date: Wed, 16 Oct 2013 15:55:49 +0100 Subject: [rabbitmq-discuss] Memory High Watermark. In-Reply-To: References: Message-ID: Because of this: The default memory threshold is set to 40% of installed RAM. Note that this does not prevent the RabbitMQ server from using more than 40%, it is merely the point at which publishers are throttled. Erlang's garbage collector can, in the worst case, cause double the amount of memory to be used (by default, 80% of RAM). It is strongly recommended that OS swap or page files are enabled. From kmacpher67 at gmail.com Wed Oct 16 15:26:56 2013 From: kmacpher67 at gmail.com (ken macpherson) Date: Wed, 16 Oct 2013 07:26:56 -0700 (PDT) Subject: [rabbitmq-discuss] centos linux install failed to create rabbitmq-env.conf or rabbitmq.config Message-ID: On Linux 2.6.18-8.el5, the sys-admin installed erlang and rabbitmq per the documentation page. But rabbitmq didn't startup using defaults as expected. For some reason the rabbit conf files are not present, I did a find ./ as root on the entire file system and there were none there. The doc says it's supposed to be in /etc/rabbitmq When I try to start the server it says: # rabbitmqctl start_app > Starting node rabbit at qaapp ... > Error: unable to connect to node rabbit at qaapp: nodedown > DIAGNOSTICS > =========== > nodes in question: [rabbit at qaapp] > hosts, their running nodes and ports: > - qaapp: [{rabbitmqctl24655,36364}] > current node details: > - node name: rabbitmqctl24655 at qaapp > - home dir: /var/lib/rabbitmq > - cookie hash: Cg7xoSt9GmCeEfdTXkoprw== Any clues why the default conf files are not in: # ls -ltr /etc/rabbitmq/ > total 0 Is there place to download the default conf values? Was there env vars that needed to be set before installing the rabbitmq? Going to hack new rabbitmq-env.conf & rabbitmq.config files, any feedback on this please advise experience or gotchas. Are these files found in the RPM or dynamically generated during the install process? -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Wed Oct 16 16:00:35 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 16 Oct 2013 16:00:35 +0100 Subject: [rabbitmq-discuss] Memory High Watermark. In-Reply-To: References: Message-ID: <525EAA13.7060309@rabbitmq.com> On 16/10/13 15:43, Chris Nicel wrote: > I would like to know more about the decision to default the memory high > watermark to 40% of the installed RAM. Is this designed for use on a > server with contended resources? If the server is dedicated to running > RabbitMQ can this be raised to say 80% or 90% safely? The original reason was a fear that although Erlang has per-process GC, we could theoretically end up in a situation where one process filled most of the VM, and the extra space required to GC it caused the machine to run out of space altogether. That's quite unlikely though, the typical case is likely to be a VM with no one process dominating. There's a second reason which I find more compelling: the high watermark is the point at which the broker stops accepting new messages, not the point at which it stops consuming more memory. In theory the one controls the other, but in practice there's likely to be some hysteresis. We can't assume that swap space exists either, we have to assume that if we run out of memory then that's game over. If like almost everybody you do have swap space working then you can probably raise the limit somewhat. Personally I would be comfortable at 60 or 70%. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From KGanann at kroll.com Wed Oct 16 16:21:14 2013 From: KGanann at kroll.com (Ganann, Kale) Date: Wed, 16 Oct 2013 15:21:14 +0000 Subject: [rabbitmq-discuss] Rabbit connections dying from protected enviornment In-Reply-To: <52582322.30403@rabbitmq.com> References: <6DB033025329784B9280ABD9516177FC67C1D2FE@usbpx2pmxmbx12> <52582322.30403@rabbitmq.com> Message-ID: <6DB033025329784B9280ABD9516177FC67C21E17@usbpx2pmxmbx12> They hadn't had their heartbeats set correctly. We've updated the broker to push a heartbeat every four minutes from our end of the connection. Thanks for your help! Thanks, Kale -----Original Message----- From: Emile Joubert [mailto:emile at rabbitmq.com] Sent: Friday, October 11, 2013 11:11 AM To: Discussions about RabbitMQ Cc: Ganann, Kale Subject: Re: [rabbitmq-discuss] Rabbit connections dying from protected enviornment Hi Kale, On 11/10/13 16:54, Ganann, Kale wrote: > If we try to go past the VIP straight to a node, it fails outright In what way exactly does it fail? What do the broker logfiles say? What happens if you shut down all but one of the broker nodes? > Thus the main issue is what is the client seeing that causing it to > restart the connection. That's hard to guess without knowing the logic of the client or it's network input. > Any ideas on what in that sequence could be hosing us up? It should be possible to provide better feedback if you can supply the output of connecting the client via the tracer: http://www.rabbitmq.com/javadoc/com/rabbitmq/tools/Tracer.html -Emile 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 Wed Oct 16 16:28:29 2013 From: KGanann at kroll.com (Ganann, Kale) Date: Wed, 16 Oct 2013 15:28:29 +0000 Subject: [rabbitmq-discuss] Deleted Queues still showing in Management Plug-in Message-ID: <6DB033025329784B9280ABD9516177FC67C21E54@usbpx2pmxmbx12> Hey all, One of my Devs was trying to delete a queue through the management plugin which got created on the wrong node, and asked me to help out. I went in and tried via the plugin, and it just hung, so I went command-line on it and ran rabbitmqctl list_queues -p vhost. When I do that, that queue doesn't appear in the list. Any ideas what might be going on, and how I might be able to reconcile the two? We're running RabbitMQ 3.1.5 on SUSE 12.04. 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 dave.l.harrison at gmail.com Wed Oct 16 16:29:01 2013 From: dave.l.harrison at gmail.com (David Harrison) Date: Thu, 17 Oct 2013 02:29:01 +1100 Subject: [rabbitmq-discuss] Crash with RabbitMQ 3.1.5 In-Reply-To: <345842AD-209B-4818-BF27-A2B8EDE70438@rabbitmq.com> References: <345842AD-209B-4818-BF27-A2B8EDE70438@rabbitmq.com> Message-ID: On 17 October 2013 01:29, Tim Watson wrote: > Hello David! > > Hey Tim, thanks for replying so quickly! > On 16 Oct 2013, at 15:14, David Harrison wrote: > > Hoping someone can help me out. We recently experienced 2 crashes with > our RabbitMQ cluster. After the first crash, we moved the Mnesia > directories elsewhere, and started RabbitMQ again. This got us up and > running. Second time it happened, we had the original nodes plus an > additional 5 nodes we had added to the cluster that we were planning to > leave in place while shutting the old nodes down. > > > > What version of rabbit are you running, and how was it installed? > 3.1.5, running on Ubuntu Precise, installed via deb package. > > > During the crash symptoms were as follows: > > > > - Escalating (and sudden) CPU utilisation on some (but not all) nodes > > We've fixed at least one bug with that symptom in recent releases. > I think 3.1.5 is the latest stable ?? > > > - Increasing time to publish on queues (and specifically on a test queue > we have setup that exists only to test publishing and consuming from the > cluster hosts) > > Are there multiple publishers on the same connection/channel when this > happens? It wouldn't be unusual, if the server was struggling, to see flow > control kick in and affect publishers in this fashion. > Yes in some cases there would be, for our test queue there wouldn't be -- we saw up to 10s on the test queue though > > > - Running `rabbitmqctl cluster status` gets increasingly slow (some > nodes eventually taking up to 10m to return with the response data - some > were fast and took 5s) > > Wow, 10m is amazingly slow. Can you provide log files for this period of > activity and problems? > I'll take a look, we saw a few "too many processes" messages, "Generic server net_kernel terminating" followed by : ** Reason for termination == ** {system_limit,[{erlang,spawn_opt, [inet_tcp_dist,do_setup, [<0.19.0>,'rabbit at b02.internal',normal, 'rabbit at b00.internal',longnames,7000], [link,{priority,max}]]}, {net_kernel,setup,4}, {net_kernel,handle_call,3}, {gen_server,handle_msg,5}, {proc_lib,init_p_do_apply,3}]} =ERROR REPORT==== 15-Oct-2013::16:07:10 === ** gen_event handler rabbit_error_logger crashed. ** Was installed in error_logger ** Last event was: {error,<0.8.0>,{emulator,"~s~n",["Too many processes\n"]}} ** When handler state == {resource,<<"/">>,exchange,<<"amq.rabbitmq.log">>} ** Reason == {aborted, {no_exists, [rabbit_topic_trie_edge, {trie_edge, {resource,<<"/">>,exchange,<<"amq.rabbitmq.log">>}, root,"error"}]}} =ERROR REPORT==== 15-Oct-2013::16:07:10 === Mnesia(nonode at nohost): ** ERROR ** mnesia_controller got unexpected info: {'EXIT', <0.97.0>, shutdown} =ERROR REPORT==== 15-Oct-2013::16:11:38 === Mnesia('rabbit at b00.internal'): ** ERROR ** mnesia_event got {inconsistent_database, starting_partitioned_network, 'rabbit at b01.internal'} > > - When trying to shut down a node, running `rabbitmqctl stop_app` > appears to block on epmd and doesn't return > > Again, we've fixed bugs in that area in recent releases. > > > --- When that doesn't return we eventually have to ctrl-c the command > > --- We have to issue a kill signal to rabbit to stop it > > --- Do the same to the epmd process > > Even if you have to `kill -9' a rabbit node, you shouldn't need to kill > epmd. In theory at least. If that was necessary to fix the "state of the > world", it would be indicative of a problem related to the erlang > distribution mechanism, but I very much doubt that's the case here. > > > Config / details as follows (we use mirrored queues -- 5 hosts, all disc > nodes, with a global policy that all queues are mirrored "ha-mode:all"), > running on Linux > > > > How many queues are we talking about here? > ~30 > > > [ > > {rabbit, [ > > {cluster_nodes, {['rabbit at b05.internal', > 'rabbit at b06.internal','rabbit at b07.internal','rabbit at b08.internal > ','rabbit at b09.internal'], disc}}, > > {cluster_partition_handling, pause_minority} > > Are you sure that what you're seeing is not caused by a network partition? > If it were, any nodes in a minority island would "pause", which would > certainly lead to the kind of symptoms you've mentioned here, viz > rabbitmqctl calls not returning and so on. > There was definitely a network partition, but the whole cluster nose dived during the crash > > > The erl_crash.dump slogan error was : eheap_alloc: Cannot allocate > 2850821240 bytes of memory (of type "old_heap"). > > > > That's a plain old OOM failure. Rabbit ought to start deliberately paging > messages to disk well before that happens, which might also explain a lot > of the slow/unresponsive-ness. > These hosts aren't running swap, we give them a fair bit of RAM (gave them even more now as part of a possible stop gap) > > > System version : Erlang R14B04 (erts-5.8.5) [source] [64-bit] [smp:2:2] > [rq:2] [async-threads:0] [kernel-poll:false] > > > > I'd strongly suggest upgrading to R16B02 if you can. R14 is pretty ancient > and a *lot* of bug fixes have appeared in erts + OTP since then. > > ok good advice, we'll do that > > When I look at the Process Information it seems there's a small number > with ALOT of messages queued, and the rest are an order of magnitude lower: > > > > That's not unusual. > > > when I view the second process (first one crashes erlang on me), I see a > large number of sender_death events (not sure if these are common or highly > unusual ?) > > > > {'$gen_cast',{gm,{sender_death,<2710.20649.64>}}} > > > > Interesting - will take a look at that. If you could provide logs for the > participating nodes during this whole time period, that would help a lot. > > > mixed in with other more regular events: > > > > Actually, sender_death messages are not "irregular" as such. They're just > notifying the GM group members that another member (on another node) has > died. This is quite normal with mirrored queues, when nodes get partitioned > or stopped due to cluster recovery modes. > > Cheers, > Tim > > > _______________________________________________ > 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 Chris.Nicel at 15below.com Wed Oct 16 16:29:45 2013 From: Chris.Nicel at 15below.com (Chris Nicel) Date: Wed, 16 Oct 2013 10:29:45 -0500 Subject: [rabbitmq-discuss] Memory High Watermark. In-Reply-To: <525EAA13.7060309@rabbitmq.com> References: <525EAA13.7060309@rabbitmq.com> Message-ID: Hi Simon/Duncan, Thanks for your feedback. Useful information. Cheers Chris -----Original Message----- From: Simon MacMullen [mailto:simon at rabbitmq.com] Sent: 16 October 2013 16:01 To: Discussions about RabbitMQ Cc: Chris Nicel Subject: Re: [rabbitmq-discuss] Memory High Watermark. On 16/10/13 15:43, Chris Nicel wrote: > I would like to know more about the decision to default the memory > high watermark to 40% of the installed RAM. Is this designed for use > on a server with contended resources? If the server is dedicated to > running RabbitMQ can this be raised to say 80% or 90% safely? The original reason was a fear that although Erlang has per-process GC, we could theoretically end up in a situation where one process filled most of the VM, and the extra space required to GC it caused the machine to run out of space altogether. That's quite unlikely though, the typical case is likely to be a VM with no one process dominating. There's a second reason which I find more compelling: the high watermark is the point at which the broker stops accepting new messages, not the point at which it stops consuming more memory. In theory the one controls the other, but in practice there's likely to be some hysteresis. We can't assume that swap space exists either, we have to assume that if we run out of memory then that's game over. If like almost everybody you do have swap space working then you can probably raise the limit somewhat. Personally I would be comfortable at 60 or 70%. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal 15below Limited: Company registered in England and Wales No 3945289 Registered Office: Lyndean House, 43-46 Queens Road, Brighton BN1 3XB, United Kingdom 15below Australia Pty Limited: ABN 25 132 716 379 Level 21, Tower 2 Darling Park, 201 Sussex Street, Sydney, NSW 2000, Australia Please think about the environment before printing this email. ************************************************************************ This email and any attachments may be confidential and/or legally privileged and are solely for the use of the intended recipient. If you have received this email in error please contact the sender. Any views or opinions expressed within this e-mail are solely those of the sender, and do not necessarily represent those of 15below unless otherwise specifically stated. Although 15below has taken every reasonable precaution to ensure that any attachment to this e-mail has been checked for viruses, it is strongly recommended that you carry out your own virus check before opening any attachment, as we cannot accept liability for any damage sustained as a result of software virus infection. From kmacpher67 at gmail.com Wed Oct 16 16:31:16 2013 From: kmacpher67 at gmail.com (ken macpherson) Date: Wed, 16 Oct 2013 08:31:16 -0700 (PDT) Subject: [rabbitmq-discuss] centos linux install failed to create rabbitmq-env.conf or rabbitmq.config In-Reply-To: References: Message-ID: <0f03be6b-96dd-4909-bef6-a6ecd1438efa@googlegroups.com> So I try to shutdown: ps -ef |grep rabbit rabbitmq 5022 1 0 Oct04 ? 00:00:00 /usr/lib64/erlang/erts-5.8.5/bin/epmd -daemon So when I try to stop: # /sbin/service rabbitmq-server stop Stopping rabbitmq-server: rmdir: /var/run/rabbitmq: No such file or directory rabbitmq-server. kill -9 5022 tried the /sbin/service rabbitmq-server start Starting rabbitmq-server: RabbitMQ is currently running rabbitmq-server. tail /var/log/rabbitmq/shutdown_err pthread/ethr_event.c:98: Fatal error in wait__(): Function not implemented (38) Hacking the rabbitmq-env.conf & rabbitmq.config doesn't seem to cut it. ken On Wednesday, October 16, 2013 10:26:56 AM UTC-4, ken macpherson wrote: > > On Linux 2.6.18-8.el5, the sys-admin installed erlang and rabbitmq per > the documentation page. But rabbitmq didn't startup using defaults as > expected. > > For some reason the rabbit conf files are not present, I did a find ./ as > root on the entire file system and there were none there. The doc says it's > supposed to be in /etc/rabbitmq > > When I try to start the server it says: > > # rabbitmqctl start_app >> Starting node rabbit at qaapp ... >> Error: unable to connect to node rabbit at qaapp: nodedown >> DIAGNOSTICS >> =========== >> nodes in question: [rabbit at qaapp] >> hosts, their running nodes and ports: >> - qaapp: [{rabbitmqctl24655,36364}] >> current node details: >> - node name: rabbitmqctl24655 at qaapp >> - home dir: /var/lib/rabbitmq >> - cookie hash: Cg7xoSt9GmCeEfdTXkoprw== > > > > Any clues why the default conf files are not in: > > # ls -ltr /etc/rabbitmq/ >> total 0 > > > > Is there place to download the default conf values? > Was there env vars that needed to be set before installing the rabbitmq? > > Going to hack new rabbitmq-env.conf & rabbitmq.config files, any feedback > on this please advise experience or gotchas. > > Are these files found in the RPM or dynamically generated during the > install process? > -------------- next part -------------- An HTML attachment was scrubbed... URL: From dave.l.harrison at gmail.com Wed Oct 16 16:34:09 2013 From: dave.l.harrison at gmail.com (David Harrison) Date: Thu, 17 Oct 2013 02:34:09 +1100 Subject: [rabbitmq-discuss] Crash with RabbitMQ 3.1.5 In-Reply-To: References: <345842AD-209B-4818-BF27-A2B8EDE70438@rabbitmq.com> Message-ID: Quick update on the queue count: 56 On 17 October 2013 02:29, David Harrison wrote: > On 17 October 2013 01:29, Tim Watson wrote: > >> Hello David! >> >> > Hey Tim, thanks for replying so quickly! > > >> On 16 Oct 2013, at 15:14, David Harrison wrote: >> > Hoping someone can help me out. We recently experienced 2 crashes with >> our RabbitMQ cluster. After the first crash, we moved the Mnesia >> directories elsewhere, and started RabbitMQ again. This got us up and >> running. Second time it happened, we had the original nodes plus an >> additional 5 nodes we had added to the cluster that we were planning to >> leave in place while shutting the old nodes down. >> > >> >> What version of rabbit are you running, and how was it installed? >> > > 3.1.5, running on Ubuntu Precise, installed via deb package. > > >> >> > During the crash symptoms were as follows: >> > >> > - Escalating (and sudden) CPU utilisation on some (but not all) nodes >> >> We've fixed at least one bug with that symptom in recent releases. >> > > I think 3.1.5 is the latest stable ?? > > >> >> > - Increasing time to publish on queues (and specifically on a test >> queue we have setup that exists only to test publishing and consuming from >> the cluster hosts) >> >> Are there multiple publishers on the same connection/channel when this >> happens? It wouldn't be unusual, if the server was struggling, to see flow >> control kick in and affect publishers in this fashion. >> > > Yes in some cases there would be, for our test queue there wouldn't be -- > we saw up to 10s on the test queue though > > >> >> > - Running `rabbitmqctl cluster status` gets increasingly slow (some >> nodes eventually taking up to 10m to return with the response data - some >> were fast and took 5s) >> >> Wow, 10m is amazingly slow. Can you provide log files for this period of >> activity and problems? >> > > I'll take a look, we saw a few "too many processes" messages, > > "Generic server net_kernel terminating" followed by : > > ** Reason for termination == > ** {system_limit,[{erlang,spawn_opt, > [inet_tcp_dist,do_setup, > [<0.19.0>,'rabbit at b02.internal',normal, > 'rabbit at b00.internal',longnames,7000], > [link,{priority,max}]]}, > {net_kernel,setup,4}, > {net_kernel,handle_call,3}, > {gen_server,handle_msg,5}, > {proc_lib,init_p_do_apply,3}]} > > > =ERROR REPORT==== 15-Oct-2013::16:07:10 === > ** gen_event handler rabbit_error_logger crashed. > ** Was installed in error_logger > ** Last event was: {error,<0.8.0>,{emulator,"~s~n",["Too many processes\n"]}} > ** When handler state == {resource,<<"/">>,exchange,<<"amq.rabbitmq.log">>} > ** Reason == {aborted, > {no_exists, > [rabbit_topic_trie_edge, > {trie_edge, > {resource,<<"/">>,exchange,<<"amq.rabbitmq.log">>}, > root,"error"}]}} > > > =ERROR REPORT==== 15-Oct-2013::16:07:10 === > Mnesia(nonode at nohost): ** ERROR ** mnesia_controller got unexpected info: {'EXIT', > <0.97.0>, > shutdown} > > =ERROR REPORT==== 15-Oct-2013::16:11:38 === > Mnesia('rabbit at b00.internal'): ** ERROR ** mnesia_event got {inconsistent_database, starting_partitioned_network, 'rabbit at b01.internal'} > > > > >> > - When trying to shut down a node, running `rabbitmqctl stop_app` >> appears to block on epmd and doesn't return >> >> Again, we've fixed bugs in that area in recent releases. >> >> > --- When that doesn't return we eventually have to ctrl-c the command >> > --- We have to issue a kill signal to rabbit to stop it >> > --- Do the same to the epmd process >> >> Even if you have to `kill -9' a rabbit node, you shouldn't need to kill >> epmd. In theory at least. If that was necessary to fix the "state of the >> world", it would be indicative of a problem related to the erlang >> distribution mechanism, but I very much doubt that's the case here. >> >> > Config / details as follows (we use mirrored queues -- 5 hosts, all >> disc nodes, with a global policy that all queues are mirrored >> "ha-mode:all"), running on Linux >> > >> >> How many queues are we talking about here? >> > > ~30 > > >> >> > [ >> > {rabbit, [ >> > {cluster_nodes, {['rabbit at b05.internal', >> 'rabbit at b06.internal','rabbit at b07.internal','rabbit at b08.internal >> ','rabbit at b09.internal'], disc}}, >> > {cluster_partition_handling, pause_minority} >> >> Are you sure that what you're seeing is not caused by a network >> partition? If it were, any nodes in a minority island would "pause", which >> would certainly lead to the kind of symptoms you've mentioned here, viz >> rabbitmqctl calls not returning and so on. >> > > There was definitely a network partition, but the whole cluster nose dived > during the crash > > >> >> > The erl_crash.dump slogan error was : eheap_alloc: Cannot allocate >> 2850821240 bytes of memory (of type "old_heap"). >> > >> >> That's a plain old OOM failure. Rabbit ought to start deliberately paging >> messages to disk well before that happens, which might also explain a lot >> of the slow/unresponsive-ness. >> > > These hosts aren't running swap, we give them a fair bit of RAM (gave them > even more now as part of a possible stop gap) > > >> >> > System version : Erlang R14B04 (erts-5.8.5) [source] [64-bit] [smp:2:2] >> [rq:2] [async-threads:0] [kernel-poll:false] >> > >> >> I'd strongly suggest upgrading to R16B02 if you can. R14 is pretty >> ancient and a *lot* of bug fixes have appeared in erts + OTP since then. >> >> > ok good advice, we'll do that > > >> > When I look at the Process Information it seems there's a small number >> with ALOT of messages queued, and the rest are an order of magnitude lower: >> > >> >> That's not unusual. >> >> > when I view the second process (first one crashes erlang on me), I see >> a large number of sender_death events (not sure if these are common or >> highly unusual ?) >> > >> > {'$gen_cast',{gm,{sender_death,<2710.20649.64>}}} >> > >> >> Interesting - will take a look at that. If you could provide logs for the >> participating nodes during this whole time period, that would help a lot. >> >> > mixed in with other more regular events: >> > >> >> Actually, sender_death messages are not "irregular" as such. They're just >> notifying the GM group members that another member (on another node) has >> died. This is quite normal with mirrored queues, when nodes get partitioned >> or stopped due to cluster recovery modes. >> >> Cheers, >> Tim >> >> >> _______________________________________________ >> 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 Oct 16 16:44:37 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 16 Oct 2013 16:44:37 +0100 Subject: [rabbitmq-discuss] Deleted Queues still showing in Management Plug-in In-Reply-To: <6DB033025329784B9280ABD9516177FC67C21E54@usbpx2pmxmbx12> References: <6DB033025329784B9280ABD9516177FC67C21E54@usbpx2pmxmbx12> Message-ID: <525EB465.3040806@rabbitmq.com> There is a known bug in HA which will be fixed in the next release which can cause behaviour like this (queue unresponsive in management and invisible in rabbitmqctl). It is triggered when you have a mirrored queue, and the master dies, and then the slave which would have been promoted to master dies before promotion can complete. Does that sound like the sort of thing that could have happened? One way to make that happen without killing nodes on a precise timer is to switch from one ha-mode=nodes policy to another with minimal overlap. I'm afraid the only work around at the moment is to stop the whole cluster and start it again. And the node which management claims has the master for this broken queue will hang at shutdown and need to be killed :-( Cheers, Simon On 16/10/13 16:28, Ganann, Kale wrote: > Hey all, > > One of my Devs was trying to delete a queue through the management > plugin which got created on the wrong node, and asked me to help out. I > went in and tried via the plugin, and it just hung, so I went > command-line on it and ran rabbitmqctl list_queues ?p vhost. When I do > that, that queue doesn?t appear in the list. Any ideas what might be > going on, and how I might be able to reconcile the two? We?re running > RabbitMQ 3.1.5 on SUSE 12.04. > > 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. > > > > _______________________________________________ > 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 KGanann at kroll.com Wed Oct 16 16:48:21 2013 From: KGanann at kroll.com (Ganann, Kale) Date: Wed, 16 Oct 2013 15:48:21 +0000 Subject: [rabbitmq-discuss] Deleted Queues still showing in Management Plug-in In-Reply-To: <525EB465.3040806@rabbitmq.com> References: <6DB033025329784B9280ABD9516177FC67C21E54@usbpx2pmxmbx12> <525EB465.3040806@rabbitmq.com> Message-ID: <6DB033025329784B9280ABD9516177FC67C21EB9@usbpx2pmxmbx12> Awesome, I'll try that. Thanks for the info! Thanks, Kale -----Original Message----- From: Simon MacMullen [mailto:simon at rabbitmq.com] Sent: Wednesday, October 16, 2013 10:45 AM To: Discussions about RabbitMQ Cc: Ganann, Kale Subject: Re: [rabbitmq-discuss] Deleted Queues still showing in Management Plug-in There is a known bug in HA which will be fixed in the next release which can cause behaviour like this (queue unresponsive in management and invisible in rabbitmqctl). It is triggered when you have a mirrored queue, and the master dies, and then the slave which would have been promoted to master dies before promotion can complete. Does that sound like the sort of thing that could have happened? One way to make that happen without killing nodes on a precise timer is to switch from one ha-mode=nodes policy to another with minimal overlap. I'm afraid the only work around at the moment is to stop the whole cluster and start it again. And the node which management claims has the master for this broken queue will hang at shutdown and need to be killed :-( Cheers, Simon On 16/10/13 16:28, Ganann, Kale wrote: > Hey all, > > One of my Devs was trying to delete a queue through the management > plugin which got created on the wrong node, and asked me to help out. > I went in and tried via the plugin, and it just hung, so I went > command-line on it and ran rabbitmqctl list_queues -p vhost. When I > do that, that queue doesn't appear in the list. Any ideas what might > be going on, and how I might be able to reconcile the two? We're > running RabbitMQ 3.1.5 on SUSE 12.04. > > 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. > > > > _______________________________________________ > 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 zur at jajah.com Wed Oct 16 16:56:49 2013 From: zur at jajah.com (zur) Date: Wed, 16 Oct 2013 08:56:49 -0700 (PDT) Subject: [rabbitmq-discuss] Content Filter Message-ID: <1381939009149-30542.post@n5.nabble.com> Hi, I'm new to RabbitMQ and to all the messaging world, I have a scenario where I need to do a ContentFilter for certain clients, meaning if a specific client want a message I need to remove some data from it and for other clients I need to deliver the message unmodified, is this kind of filtering is supported by RabbitMQ? Thanks in advance, Zur -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Content-Filter-tp30542.html Sent from the RabbitMQ mailing list archive at Nabble.com. From mklishin at gopivotal.com Wed Oct 16 17:00:49 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 16 Oct 2013 20:00:49 +0400 Subject: [rabbitmq-discuss] Content Filter In-Reply-To: <1381939009149-30542.post@n5.nabble.com> References: <1381939009149-30542.post@n5.nabble.com> Message-ID: <1918C8B1-CDF9-459D-922C-05D5324B0A47@rabbitmq.com> On 16 Oct 2013, at 19:56, zur wrote: > I need to do a ContentFilter > for > certain clients, meaning if a specific client want a message I need to > remove some data from it and for other clients I need to deliver the message > unmodified, is this kind of filtering is supported by RabbitMQ? You can develop a custom exchange type that would do such filtering. This is not difficult but requires at least a little bit of Erlang knowledge. MK From videlalvaro at gmail.com Wed Oct 16 17:06:23 2013 From: videlalvaro at gmail.com (Alvaro Videla) Date: Wed, 16 Oct 2013 11:06:23 -0500 Subject: [rabbitmq-discuss] Content Filter In-Reply-To: <1918C8B1-CDF9-459D-922C-05D5324B0A47@rabbitmq.com> References: <1381939009149-30542.post@n5.nabble.com> <1918C8B1-CDF9-459D-922C-05D5324B0A47@rabbitmq.com> Message-ID: RabbitMQ doesn't inspect message contents while routing. You could do either what Michael says or have a consumer that does the filtering and then publishes to second exchange using different routing keys, based on the message content. Regards, Alvaro On Wed, Oct 16, 2013 at 11:00 AM, Michael Klishin wrote: > On 16 Oct 2013, at 19:56, zur wrote: > > > I need to do a ContentFilter > > for > > certain clients, meaning if a specific client want a message I need to > > remove some data from it and for other clients I need to deliver the > message > > unmodified, is this kind of filtering is supported by RabbitMQ? > > You can develop a custom exchange type that would do such filtering. > This is not difficult but requires at least a little bit of Erlang > knowledge. > > MK > > > > _______________________________________________ > 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 brian.dunbar at gmail.com Wed Oct 16 17:06:29 2013 From: brian.dunbar at gmail.com (Brian Dunbar) Date: Wed, 16 Oct 2013 11:06:29 -0500 Subject: [rabbitmq-discuss] Stupid Newbie Question - what is the uri or a queue? In-Reply-To: <525E698A.6000703@rabbitmq.com> References: <7D5A2540-9EDD-4512-B510-9D533009414E@rabbitmq.com> <525E698A.6000703@rabbitmq.com> Message-ID: Ah - that's helpful. Thanks. Hopefully one more newb question. New host, new install. I touched nothing in the configuration. To test, I used rabbitmqadmin from my desktop, following the steps here: http://www.rabbitmq.com/management-cli.html Error on publish follows: $ ./rabbitmqadmin -H lab.rabbit-1.domain.net -u guest -p guest publish exchange=amq.default routing_key=test payload="hello, world" Message published but NOT routed What have I done wrong? I note we do our host names 'funny' here, and it's not showing up in the node name correctly. That is the name of the host is lab.rabbit-1.domain.net and rabbitmq returns node=rabbit at lab ~Brian On Wed, Oct 16, 2013 at 5:25 AM, Simon MacMullen wrote: > On 16/10/13 09:42, Michael Klishin wrote: > >> On 15 Oct 2013, at 23:42, Brian Dunbar wrote: >> >> magine that I have a host lab.domain.net. I created a queue >>> 'test_queue' under the default vhost '/'. >>> >>> is it lab.domain.net:15672/test_**queue? >>> >> >> scheme://username:password@**hostname:port/vhost >> >> scheme is one of amqp,amqps. >> >> 15672 is HTTP API port. You need 5672 or 5671 (if TLS is used). URIs are >> provided >> for vhosts, not queues. >> >> So it is amqp://username:password at lab.**domain.net:5672(for default vhost) or amqp:// >> username:password at lab.**domain.net:5672/myvhost >> (for vhost myvhost). Slashes in vhost names need to be escaped (%2F). >> > > To expand on this: > > If you are connecting via amqp / amqps then the URI just specifies how to > connect to a server; it is not possible to specify a queue name in a URI > any more than you would specify a table name in a JDBC URI. You connect to > the server then start issuing amqp commands which reference queues and > other objects. > > If you are connecting to the management interface via http / https, then > the URIs are documented here: http://hg.rabbitmq.com/** > rabbitmq-management/raw-file/**default/priv/www/api/index.**html > > Cheers, Simon > > -- > Simon MacMullen > RabbitMQ, Pivotal > -- Brian Dunbar "Display some adaptability" -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Wed Oct 16 17:09:17 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 16 Oct 2013 20:09:17 +0400 Subject: [rabbitmq-discuss] Stupid Newbie Question - what is the uri or a queue? In-Reply-To: References: <7D5A2540-9EDD-4512-B510-9D533009414E@rabbitmq.com> <525E698A.6000703@rabbitmq.com> Message-ID: <42919FC3-2633-4E5B-94E0-2A2E49CC110D@gopivotal.com> On 16 Oct 2013, at 20:06, Brian Dunbar wrote: > Error on publish follows: > > $ ./rabbitmqadmin -H lab.rabbit-1.domain.net -u guest -p guest publish exchange=amq.default routing_key=test payload="hello, world" > Message published but NOT routed > > What have I done wrong? Was the queue named test declared previously? Queues need to be declared and bound (for default exchange, binding is automatic) before messages can be routed to them. -- MK From breischl at gmail.com Wed Oct 16 17:10:07 2013 From: breischl at gmail.com (Brian Reischl) Date: Wed, 16 Oct 2013 09:10:07 -0700 (PDT) Subject: [rabbitmq-discuss] Push to back of Queue on NAck In-Reply-To: <7eb0960b-7594-488b-aa50-c49badb79b42@googlegroups.com> References: <7eb0960b-7594-488b-aa50-c49badb79b42@googlegroups.com> Message-ID: <43a60a98-4a0b-470b-bccd-032d06e5604f@googlegroups.com> In the looped scenario, I would worry about messages cycling endlessly. eg, it hits some bug in your code, gets dead lettered, gets retried and hits the same bug, gets dead lettered, and so on. I'd want some mechanism to stop retrying the message after some number of cycles, or move it into a dead-letter queue that doesn't go anywhere (a dead-end dead-letter). -------------- next part -------------- An HTML attachment was scrubbed... URL: From kmacpher67 at gmail.com Wed Oct 16 17:12:07 2013 From: kmacpher67 at gmail.com (ken macpherson) Date: Wed, 16 Oct 2013 09:12:07 -0700 (PDT) Subject: [rabbitmq-discuss] centos linux install failed to create rabbitmq-env.conf or rabbitmq.config In-Reply-To: References: Message-ID: <24648208-f8ab-433f-a4b2-8f94bd5e301a@googlegroups.com> ./rabbitmq-server RabbitMQ 3.1.5. Copyright (C) 2007-2013 GoPivotal, Inc. ## ## Licensed under the MPL. See http://www.rabbitmq.com/ ## ## ########## Logs: /var/log/rabbitmq/rabbit.log ###### ## /var/log/rabbitmq/rabbit-sasl.log ########## Starting broker... BOOT FAILED =========== Error description: {could_not_start,rabbit,undef} Log files (may contain more information): /var/log/rabbitmq/rabbit.log /var/log/rabbitmq/rabbit-sasl.log {"init terminating in do_boot",{rabbit,failure_during_boot,{could_not_start,rabbit,undef}}} Crash dump was written to: erl_crash.dump init terminating in do_boot () ls =erl_crash_dump:0.2 Wed Oct 16 11:58:33 2013 Slogan: init terminating in do_boot () System version: Erlang R16B02 (erts-5.10.3) [source] [64-bit] [smp:4:4] [async-threads:30] [hipe] [kernel-poll:true] Compiled: Fri Sep 20 14:15:37 2013 -------------- next part -------------- An HTML attachment was scrubbed... URL: From brian.dunbar at gmail.com Wed Oct 16 17:15:51 2013 From: brian.dunbar at gmail.com (Brian Dunbar) Date: Wed, 16 Oct 2013 11:15:51 -0500 Subject: [rabbitmq-discuss] Stupid Newbie Question - what is the uri or a queue? In-Reply-To: <42919FC3-2633-4E5B-94E0-2A2E49CC110D@gopivotal.com> References: <7D5A2540-9EDD-4512-B510-9D533009414E@rabbitmq.com> <525E698A.6000703@rabbitmq.com> <42919FC3-2633-4E5B-94E0-2A2E49CC110D@gopivotal.com> Message-ID: > Queues need to be declared and bound Ah. That step appears to be missing - or is assumed - in the link'ed page. Thanks. On Wed, Oct 16, 2013 at 11:09 AM, Michael Klishin wrote: > > On 16 Oct 2013, at 20:06, Brian Dunbar wrote: > > > Error on publish follows: > > > > $ ./rabbitmqadmin -H lab.rabbit-1.domain.net -u guest -p guest > publish exchange=amq.default routing_key=test payload="hello, world" > > Message published but NOT routed > > > > What have I done wrong? > > Was the queue named test declared previously? > > Queues need to be declared and bound (for default exchange, binding is > automatic) before > messages can be routed to them. > -- > MK > > -- Brian Dunbar "Display some adaptability" -------------- next part -------------- An HTML attachment was scrubbed... URL: From breischl at gmail.com Wed Oct 16 17:16:18 2013 From: breischl at gmail.com (Brian Reischl) Date: Wed, 16 Oct 2013 09:16:18 -0700 (PDT) Subject: [rabbitmq-discuss] Dead letter exchange statistics? Message-ID: <8a36d62b-8a0f-47c8-a6cb-c12a1ebf4872@googlegroups.com> While trying out dead letter exchanges, I noticed that dead lettered messages don't seem to appear in the statistics on the admin console. So if I'm dead-lettering a lot of messages (eg, subscriber that reject(requeue=false) all messages) the dead letter exchange that is receiving those messages shows as idle. I would've expected the Message Rate In to be equal to the rate of dead lettered messages. The same thing applies to any queues attached to the dead letter exchange. The Incoming Message Rate shows 0, even though I can see the Ready Message Count going up. Is that a bug, or is it expected behavior for some reason? -------------- next part -------------- An HTML attachment was scrubbed... URL: From breischl at gmail.com Wed Oct 16 17:19:04 2013 From: breischl at gmail.com (Brian Reischl) Date: Wed, 16 Oct 2013 09:19:04 -0700 (PDT) Subject: [rabbitmq-discuss] Redeliver limit? In-Reply-To: <92d9d3e4-e3ca-4ffb-bf79-80d13a1e54d3@googlegroups.com> References: <92d9d3e4-e3ca-4ffb-bf79-80d13a1e54d3@googlegroups.com> Message-ID: I got a response to this via email - I'm not sure why I didn't show up here, but I'll just copy/paste it here for future reference. > Am I doing something wrong, or does RabbitMQ just not have a limit for > the number of deliveries? There is no limit at the time of writing. A message that is redelivered too often could be recognised and dead-lettered by the broker, but RabbitMQ does not yet implement this feature. Toxic message handling is a planned feature. See reference "basic / deliver / 01" on this page: http://www.rabbitmq.com/specification.html On Tuesday, October 15, 2013 1:20:58 PM UTC-6, Brian Reischl wrote: > > The docs for the deliver()function state that the server > *should* only a deliver a message a limited number of times before > dead-lettering it. I have attempted to verify this using the C# client's > MessagePatterns.Subscription class, but there doesn't seem to be any > limit. I've been able to Reject() the same message quite a few times and > it keeps getting redelivered. > > Am I doing something wrong, or does RabbitMQ just not have a limit for the > number of deliveries? > -------------- next part -------------- An HTML attachment was scrubbed... URL: From kmacpher67 at gmail.com Wed Oct 16 17:31:44 2013 From: kmacpher67 at gmail.com (ken macpherson) Date: Wed, 16 Oct 2013 09:31:44 -0700 (PDT) Subject: [rabbitmq-discuss] centos linux install failed to create rabbitmq-env.conf or rabbitmq.config In-Reply-To: References: Message-ID: Checking rabbit-sasl.log [root at qaapp rabbitmq]# vi rabbit-sasl.log =CRASH REPORT==== 16-Oct-2013::11:58:32 === crasher: initial call: application_master:init/4 pid: <0.89.0> registered_name: [] exception exit: {bad_return, {{rabbit,start,[normal,[]]}, {'EXIT', {undef, [{rfc4627_jsonrpc_cowboy,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,boot_steps,0,[]}, {rabbit,start,2,[]}, {application_master,start_it_old,4, [{file,"application_master.erl"}, {line,269}]}]}}}} in function application_master:init/4 (application_master.erl, line 133) ancestors: [<0.88.0>] messages: [{'EXIT',<0.90.0>,normal}] links: [<0.88.0>,<0.7.0>] dictionary: [] trap_exit: true status: running heap_size: 1598 stack_size: 27 reductions: 196 neighbours: ~ # cat /etc/rabbitmq/enabled_plugins > > [rabbitmq_jsonrpc_channel, > > rabbitmq_management, > > rabbitmq_management_visualiser, > > rabbitmq_tracing]. > > > # cat /etc/rabbitmq/rabbitmq-env.conf > NODE_PORT=5672 > NODENAME=rabbit > LOG_BASE=/var/log/rabbitmq > RABBITMQ_LOG_BASE=/var/log/rabbitmq > PLUGINS_DIR=/usr/lib/rabbitmq/lib/rabbitmq_server-3.1.5/plugins > RABBITMQ_HOME=/usr/lib/rabbitmq/lib/rabbitmq_server-3.1.5 # cat /etc/rabbitmq/rabbitmq.config > [ > {mnesia, [{dump_log_write_threshold, 1000}]}, > {rabbit, [{tcp_listeners, [5672]}]} > ]. -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Wed Oct 16 17:33:49 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 16 Oct 2013 17:33:49 +0100 Subject: [rabbitmq-discuss] Dead letter exchange statistics? In-Reply-To: <8a36d62b-8a0f-47c8-a6cb-c12a1ebf4872@googlegroups.com> References: <8a36d62b-8a0f-47c8-a6cb-c12a1ebf4872@googlegroups.com> Message-ID: <525EBFED.70001@rabbitmq.com> On 16/10/13 17:16, Brian Reischl wrote: > Is that a bug, or is it expected behavior for some reason? Half way really. The message rates in mgmt are based on raw stats emitted by channel processes (yes, even the ones for queues and exchanges). But dead-lettered messages (and messages from the firehose for that matter) are not published via a channel. so message rate stats don't show up. This is something we'd like to fix, but it's one of those things that would actually be surprisingly painful, and people only complain about it once a year or so :-) Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From nvilmer at gmail.com Wed Oct 16 17:19:29 2013 From: nvilmer at gmail.com (Norm Vilmer) Date: Wed, 16 Oct 2013 09:19:29 -0700 (PDT) Subject: [rabbitmq-discuss] Flow Control behavior in a Cluster Questions Message-ID: Regarding the following line in the Flow Control documentation ( http://www.rabbitmq.com/memory.html): "When running RabbitMQ in a cluster, the disk alarm is cluster-wide; if one node goes under the limit then all nodes will block connections." If I have 2 virtual hosts on a 6 node cluster with each node using local disk for persistence and each virtual host mirrors its queues across 3 nodes, will a disk alarm on one disk block all producer on the cluster regardless of virtual host and queue mirror? -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Wed Oct 16 17:40:04 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 16 Oct 2013 17:40:04 +0100 Subject: [rabbitmq-discuss] Flow Control behavior in a Cluster Questions In-Reply-To: References: Message-ID: <525EC164.5020808@rabbitmq.com> On 16/10/13 17:19, Norm Vilmer wrote: > If I have 2 virtual hosts on a 6 node cluster with each node using local > disk for persistence and each virtual host mirrors its queues across 3 > nodes, will a disk alarm on one disk block all producer on the cluster > regardless of virtual host and queue mirror? Yes. The point is that if machine A has run out of disc space, a client can connect to machine B and publish to a queue on A. So we need to block publishers everywhere. And vhosts are fairly thin in RabbitMQ, the storage underneath is all shared anyway. So if one vhost runs out of disc space they all have. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From watson.timothy at gmail.com Wed Oct 16 18:01:24 2013 From: watson.timothy at gmail.com (Tim Watson) Date: Wed, 16 Oct 2013 18:01:24 +0100 Subject: [rabbitmq-discuss] Crash with RabbitMQ 3.1.5 In-Reply-To: References: <345842AD-209B-4818-BF27-A2B8EDE70438@rabbitmq.com> Message-ID: <878AEE82-C27B-4FF2-B3DD-DB24625632EB@rabbitmq.com> On 16 Oct 2013, at 16:34, David Harrison wrote: > Quick update on the queue count: 56 Hmm. That seems perfectly reasonable. > On 17 October 2013 02:29, David Harrison wrote: > > What version of rabbit are you running, and how was it installed? > > 3.1.5, running on Ubuntu Precise, installed via deb package. Of course - I missed that in the subject line. > I think 3.1.5 is the latest stable ?? Yep. > > I'll take a look, we saw a few "too many processes" messages, > That's not a good sign. I can't say we've run into that very frequently - it is possible to raise the limit (on the number of processes), but I suspect that's not the root of this anyway. > "Generic server net_kernel terminating" followed by : > > ** Reason for termination == > ** {system_limit,[{erlang,spawn_opt, Yeah - once that goes you're in trouble. That's an unrecoverable error, the equivalent of crashing the jvm. > There was definitely a network partition, but the whole cluster nose dived during the crash > Yeah, partitions are bad and can even become unrecoverable without restarts (which is why we warn against using clustering in some environments), but what you're experiencing shouldn't happen. > > > The erl_crash.dump slogan error was : eheap_alloc: Cannot allocate 2850821240 bytes of memory (of type "old_heap"). > > > > That's a plain old OOM failure. Rabbit ought to start deliberately paging messages to disk well before that happens, which might also explain a lot of the slow/unresponsive-ness. > > These hosts aren't running swap, we give them a fair bit of RAM (gave them even more now as part of a possible stop gap) > This. I suspect the root of your problem is that you don't have any available swap and somehow ran out I memory. Rabbit should've been paging to disk (by hand, not via swap) once you got within a tolerance level of the high watermark, which is why I'd like to see logs if possible since we might be able to identify what led to runaway process spawns and memory allocation during the partition. My money, for the memory use part, is on error_logger, which has been known to blow up in this way when flooded with large logging terms. During a partition, various things can go wrong leading to crashing processes such as queues, some of which can have massive state that RTS logged leading to potential oom situations like this one. Replacing error logger has been in our radar before, but we've not had strong enough reasons to warrant the expense. If what you've seen can be linked to that however... To properly diagnose what you've seen though, I will new to get my hands on those logs. Can we arrange that somehow? Cheers, Tim -------------- next part -------------- An HTML attachment was scrubbed... URL: From brett.r.cameron at gmail.com Wed Oct 16 19:14:39 2013 From: brett.r.cameron at gmail.com (Brett Cameron) Date: Thu, 17 Oct 2013 07:14:39 +1300 Subject: [rabbitmq-discuss] Riak exchange fails in exchange.declare In-Reply-To: <525E9822.3080203@rabbitmq.com> References: <60c667be-dfa4-40da-8eab-38f3d42e8b85@googlegroups.com> <525E9822.3080203@rabbitmq.com> Message-ID: Anders, Maybe give https://github.com/brc859844/riak-exchange a spin. I updated it a while back for RabbitMQ 3.1.0, which I think should be compatible with 3.1.5, but don't quote me on it. Brett On Thu, Oct 17, 2013 at 2:44 AM, Emile Joubert wrote: > > Hi, > > On 16/10/13 11:53, Anders Kullberg wrote: > > > [{rabbit_exchange_type_riak,exchange_type, > > [{exchange, > > {resource,<<"/">>,exchange,<<"apa">>}, > > 'x-riak',true,false,false,[],undefined,undefined, > > {[],[]}}]}, > > -record(exchange, {name, type, durable, auto_delete, internal, > arguments, scratches, policy}). > > -record(exchange, {name, type, durable, auto_delete, internal, > arguments, scratches, policy, decorators}). > > > It looks like that exchange requires updating to work with the latest > version of RabbitMQ. Its definition of an exchange does not support > exchange decorators. You can ask the author to refresh the library or > use the version of RabbitMQ that the library was written for (3.0.0 > according to the documentation, but 3.0.4 should also work). > > > > -Emile > > > > > > > _______________________________________________ > 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 kmacpher67 at gmail.com Wed Oct 16 20:12:21 2013 From: kmacpher67 at gmail.com (ken macpherson) Date: Wed, 16 Oct 2013 12:12:21 -0700 (PDT) Subject: [rabbitmq-discuss] centos linux install failed to create rabbitmq-env.conf or rabbitmq.config In-Reply-To: References: Message-ID: getting closer... perms??? I go to the directory: /usr/lib/rabbitmq/lib/rabbitmq_server-3.1.5/sbin run rabbitmq-server after chown the pid and log directory. rabbitmq ran from a command line. > # rabbitmq-server > RabbitMQ 3.1.5. Copyright (C) 2007-2013 GoPivotal, Inc. > ## ## Licensed under the MPL. See http://www.rabbitmq.com/ > ## ## > ########## Logs: /var/log/rabbitmq/rabbit.log > ###### ## /var/log/rabbitmq/rabbit-sasl.log > ########## > Starting broker... completed with 8 plugins. > Session terminated, killing shell... ...killed. Still not happy from a /sbin/service rabbitmq-server start OK, so it works from the command line. But it looks like we had a do to an uninstall of a previous version from Aug, and residue from that failed install was buggering us good. The new install didn't update the init.d/rabbitmq-server script. After much unhappy hacking, we are trying an uninstall, deletes and re-install. -------------- next part -------------- An HTML attachment was scrubbed... URL: From watson.timothy at gmail.com Wed Oct 16 20:19:41 2013 From: watson.timothy at gmail.com (Tim Watson) Date: Wed, 16 Oct 2013 20:19:41 +0100 Subject: [rabbitmq-discuss] Crash with RabbitMQ 3.1.5 In-Reply-To: <878AEE82-C27B-4FF2-B3DD-DB24625632EB@rabbitmq.com> References: <345842AD-209B-4818-BF27-A2B8EDE70438@rabbitmq.com> <878AEE82-C27B-4FF2-B3DD-DB24625632EB@rabbitmq.com> Message-ID: <0C54B853-93A0-431B-A601-8060D8186D51@rabbitmq.com> Also.... It is possible for a runaway application to create so many connections and channels that processes and/or memory becomes exhausted. Is it possible this happened in your case? It doesn't sound like it, since your troubles sound like they stated with the partition, but its e good to confirm that. As well as the logs, can you post any rabbitmqctl status or report calls from before/after the problems started? BTW, you're not by any chance based in British Colombia are you? Cheers, Tim Watson On 16 Oct 2013, at 18:01, Tim Watson wrote: > On 16 Oct 2013, at 16:34, David Harrison wrote: > >> Quick update on the queue count: 56 > > Hmm. That seems perfectly reasonable. > >> On 17 October 2013 02:29, David Harrison wrote: >> >> What version of rabbit are you running, and how was it installed? >> >> 3.1.5, running on Ubuntu Precise, installed via deb package. > > Of course - I missed that in the subject line. > >> I think 3.1.5 is the latest stable ?? > > Yep. > >> >> I'll take a look, we saw a few "too many processes" messages, >> > > That's not a good sign. I can't say we've run into that very frequently - it is possible to raise the limit (on the number of processes), but I suspect that's not the root of this anyway. > >> "Generic server net_kernel terminating" followed by : >> >> ** Reason for termination == >> ** {system_limit,[{erlang,spawn_opt, > > Yeah - once that goes you're in trouble. That's an unrecoverable error, the equivalent of crashing the jvm. > >> There was definitely a network partition, but the whole cluster nose dived during the crash >> > > Yeah, partitions are bad and can even become unrecoverable without restarts (which is why we warn against using clustering in some environments), but what you're experiencing shouldn't happen. > >> >> > The erl_crash.dump slogan error was : eheap_alloc: Cannot allocate 2850821240 bytes of memory (of type "old_heap"). >> > >> >> That's a plain old OOM failure. Rabbit ought to start deliberately paging messages to disk well before that happens, which might also explain a lot of the slow/unresponsive-ness. >> >> These hosts aren't running swap, we give them a fair bit of RAM (gave them even more now as part of a possible stop gap) >> > > This. I suspect the root of your problem is that you don't have any available swap and somehow ran out I memory. Rabbit should've been paging to disk (by hand, not via swap) once you got within a tolerance level of the high watermark, which is why I'd like to see logs if possible since we might be able to identify what led to runaway process spawns and memory allocation during the partition. My money, for the memory use part, is on error_logger, which has been known to blow up in this way when flooded with large logging terms. During a partition, various things can go wrong leading to crashing processes such as queues, some of which can have massive state that RTS logged leading to potential oom situations like this one. Replacing error logger has been in our radar before, but we've not had strong enough reasons to warrant the expense. If what you've seen can be linked to that however... > > To properly diagnose what you've seen though, I will new to get my hands on those logs. Can we arrange that somehow? > > Cheers, > Tim > _______________________________________________ > 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 kmacpher67 at gmail.com Wed Oct 16 20:36:52 2013 From: kmacpher67 at gmail.com (ken macpherson) Date: Wed, 16 Oct 2013 12:36:52 -0700 (PDT) Subject: [rabbitmq-discuss] centos linux install failed to create rabbitmq-env.conf or rabbitmq.config In-Reply-To: References: Message-ID: <0db3d427-609b-4289-a7fd-affb23803a1f@googlegroups.com> nope didn't work... # nohup rabbitmq-server & & # rabbitmqctl status Status of node rabbit at qaapp ... [{pid,30347}, {running_applications, [{rabbitmq_tracing,"RabbitMQ message logging / tracing","3.1.5"}, {rabbitmq_management_visualiser,"RabbitMQ Visualiser","3.1.5"}, {rabbitmq_management,"RabbitMQ Management Console","3.1.5"}, {rabbitmq_web_dispatch,"RabbitMQ Web Dispatcher","3.1.5"}, {webmachine,"webmachine","1.10.3-rmq3.1.5-gite9359c7"}, {mochiweb,"MochiMedia Web Server","2.7.0-rmq3.1.5-git680dba8"}, {rabbitmq_management_agent,"RabbitMQ Management Agent","3.1.5"}, {rabbit,"RabbitMQ","3.1.5"}, {os_mon,"CPO CXC 138 46","2.2.13"}, {inets,"INETS CXC 138 49","5.9.6"}, {mnesia,"MNESIA CXC 138 12","4.10"}, {amqp_client,"RabbitMQ AMQP Client","3.1.5"}, {xmerl,"XML parser","1.3.4"}, {sasl,"SASL CXC 138 11","2.3.3"}, {stdlib,"ERTS CXC 138 10","1.19.3"}, {kernel,"ERTS CXC 138 10","2.16.3"}]}, {os,{unix,linux}}, {erlang_version, "Erlang R16B02 (erts-5.10.3) [source] [64-bit] [smp:4:4] [async-threads:30] [hipe] [kernel-poll:true]\n"}, {memory, [{total,41243224}, {connection_procs,5600}, {queue_procs,5600}, {plugins,382736}, {other_proc,13561960}, {mnesia,60272}, {mgmt_db,47344}, {msg_index,28496}, {other_ets,1108360}, {binary,34144}, {code,19598331}, {atom,703377}, {other_system,5707004}]}, {vm_memory_high_watermark,0.4}, {vm_memory_limit,1658167296}, {disk_free_limit,1000000000}, {disk_free,6997409792}, {file_descriptors, [{total_limit,10140}, {total_used,3}, {sockets_limit,9124}, {sockets_used,1}]}, {processes,[{limit,1048576},{used,199}]}, {run_queue,0}, {uptime,192}] ...done. BUT ... the services are bumbkiss. #/sbin/service rabbitmq-server status pthread/ethr_event.c:98: Fatal error in wait__(): Function not implemented (38) It's running the server now, so there's 8 hours I'll never get back. -------------- next part -------------- An HTML attachment was scrubbed... URL: From richard at raseley.com Wed Oct 16 20:58:51 2013 From: richard at raseley.com (Richard Raseley) Date: Wed, 16 Oct 2013 12:58:51 -0700 Subject: [rabbitmq-discuss] Unexpected Behavior When Using the "X-Consistent-Hash" Exchange Type Message-ID: We have encountered some unexpected behavior when using the "x-consistent-hash" exchange type that I am hoping someone on the list can help us understand. At a high level, the issue we're experiencing is that in our testing of the "x-consistent-hash" exchange we aren't able to get even (or roughly even) distribution of messages between the queues bound to the exchange. Here is a link to the full broker configuration export ( http://pastebin.com/nkcXskpY ) but at a high level we are doing the following: 1) Topic exchange named "logging.topic" is bound to hash exchange "error.hash" with routing key "error.#" (our eventual goal is to have several of these). 2) Hash exchange "error.hash" is configured with parameters "hash-header: message-distribution-hash". 3) Queues named "error01" through "error16" are bound to the "error.hash" exchange each with routing key of "1" (to ensure they each get an equal slice of the hash range). When executing a simple test script ( http://pastebin.com/e7EjZ1TD ), which sends 500K messages to the "logging.topic" with a "message-distribution-hash" header that a value that is a UUID converted to a string, I see quite unequal distribution of the messages across the queues. I ran three tests of 500K messages (resetting and reloading the broker configuration between each test) and I get the following results: **FIRST TEST** Queue Name,Message Count error01,73616 error02,65789 error03,12986 error04,15029 error05,12026 error06,51006 error07,465 error08,95926 error09,34857 error10,16858 error11,19075 error12,25155 error13,25002 error14,14994 error15,8878 error16,28338 TOTAL,500000 **SECOND TEST** Queue Name,Message Count error01,23124 error02,5122 error03,29047 error04,24405 error05,1467 error06,1312 error07,28045 error08,35258 error09,164437 error10,25851 error11,40669 error12,24821 error13,17316 error14,18611 error15,41183 error16,19332 TOTAL,500000 **THIRD TEST** Queue Name,Message Count error01,26655 error02,77116 error03,405 error04,24106 error05,10543 error06,7734 error07,37476 error08,25048 error09,32156 error10,43750 error11,92675 error12,14325 error13,50265 error14,18449 error15,2665 error16,36632 TOTAL,500000 As you can see, some queues get *many* more messages than other queues for example in the third test we see that one queue (error03) received only 405 messages (0.081% of the total) while another (error11) received 92675 (18.53% of the total). With all this in mind, my questions are as follows: 1) Why am I seeing such uneven distribution of messages between the queues bound to the x-consistent-hash exchange? 2) What can I do to ensure the most even distribution of messages as possible across the queues bound to the x-consistent-has exchange? Regards, Richard Raseley -------------- next part -------------- An HTML attachment was scrubbed... URL: From terrysduncan at gmail.com Wed Oct 16 22:33:36 2013 From: terrysduncan at gmail.com (tsduncan) Date: Wed, 16 Oct 2013 14:33:36 -0700 (PDT) Subject: [rabbitmq-discuss] rabbitmq client timeouts, slow responses In-Reply-To: <1381871593738-30510.post@n5.nabble.com> References: <1381871593738-30510.post@n5.nabble.com> Message-ID: <1381959216602-30562.post@n5.nabble.com> I have figured out the problem on the server side. The broker has reached its limit of socket descriptors. That, I can resolve. I'd like to still understand if there is a timeout value in the Java client that can be changed to have it wait longer before timing out. The connection timeout and the sotimeout value on the socket do not seem to affect it. Thanks tsduncan wrote > I have a rabbit configuration with about 50-60 rabbitmq clients. Some > connect with python libraries and others with Java. After some time, new > connections seem to take longer to process and the Java clients time out > after 10 seconds. > > com.rabbitmq.client.ShutdownSignalException: connection error; reason: > java.net.SocketTimeoutException: Timeout during Connection negotiation > > There are two issues I'd like to understand: > 1. why the server is taking so long to respond causing > 10 second > responses > 2. how to extend the java client timeout so they will wait longer than 10 > seconds. I cannot seem to find the right client side control that will > extend the timeout beyond 10 seconds. > > Here is some information on the client: > Client Properties {product=RabbitMQ, information=Licensed under the MPL. > See http://www.rabbitmq.com/, platform=Java, > capabilities={exchange_exchange_bindings=true, > consumer_cancel_notify=true, basic.nack=true, publisher_confirms=true}, > copyright=Copyright (C) 2007-2013 VMware, Inc., version=3.1.0} > > mqConnectionFactory.getConnectionTimeout() = 0 > mqConnectionFactory.getSocketFactory().createSocket().getSoTimeout() = 0 > mqConnectionFactory.getRequestedHeartbeat = 60 > > For the server side, I see the following in the logs for the client timing > out: > > =INFO REPORT==== 15-Oct-2013::13:47:19 === > accepted TCP connection on [::]:5672 from 172.24.1.197:33543 > > =INFO REPORT==== 15-Oct-2013::13:47:19 === > starting TCP connection <0.19149.1003> from 172.24.1.197:33543 > > =WARNING REPORT==== 15-Oct-2013::13:47:19 === > exception on TCP connection <0.19149.1003> from 172.24.1.197:33543 > connection_closed_abruptly > > I will attach the full rabbit and sasl.log files. > > > > clearbay at novamgmt12:/var/log/rabbitmq$ sudo rabbitmqctl status > Status of node rabbit at novamgmt12 ... > [{pid,2041}, > {running_applications, > [{rabbitmq_management,"RabbitMQ Management Console","0.0.0"}, > {rabbitmq_management_agent,"RabbitMQ Management Agent","0.0.0"}, > {amqp_client,"RabbitMQ AMQP Client","0.0.0"}, > {rabbit,"RabbitMQ","2.7.1"}, > {os_mon,"CPO CXC 138 46","2.2.7"}, > {sasl,"SASL CXC 138 11","2.1.10"}, > {rabbitmq_mochiweb,"RabbitMQ Mochiweb Embedding","0.0.0"}, > {webmachine,"webmachine","1.7.0-rmq0.0.0-hg"}, > {mochiweb,"MochiMedia Web Server","1.3-rmq0.0.0-git"}, > {inets,"INETS CXC 138 49","5.7.1"}, > {mnesia,"MNESIA CXC 138 12","4.5"}, > {stdlib,"ERTS CXC 138 10","1.17.5"}, > {kernel,"ERTS CXC 138 10","2.14.5"}]}, > {os,{unix,linux}}, > {erlang_version, > "Erlang R14B04 (erts-5.8.5) [source] [64-bit] [smp:32:32] [rq:32] > [async-threads:30] [kernel-poll:true]\n"}, > {memory, > [{total,2521927344}, > {processes,1984606400}, > {processes_used,1984540336}, > {system,537320944}, > {atom,1351233}, > {atom_used,1331305}, > {binary,95355176}, > {code,14331631}, > {ets,365984592}]}, > {vm_memory_high_watermark,0.3999999999821877}, > {vm_memory_limit,13473855897}] > ...done. -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/rabbitmq-client-timeouts-slow-responses-tp30510p30562.html Sent from the RabbitMQ mailing list archive at Nabble.com. From mklishin at gopivotal.com Wed Oct 16 22:43:23 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 17 Oct 2013 01:43:23 +0400 Subject: [rabbitmq-discuss] Unexpected Behavior When Using the "X-Consistent-Hash" Exchange Type In-Reply-To: References: Message-ID: <7C92AF06-FFDE-4729-A0C6-AD7EDDBBFBD8@rabbitmq.com> On oct 16, 2013, at 11:58 p.m., Richard Raseley wrote: > 1) Why am I seeing such uneven distribution of messages between the queues bound to the x-consistent-hash exchange? > > 2) What can I do to ensure the most even distribution of messages as possible across the queues bound to the x-consistent-has exchange? Consistent hash exchange requires routing keys to be integers *as strings* (yes, this is unfortunate, but routing keys have to be strings in the protocol). My guess is that when you use UUIDs, implicit conversion happens and those that happen to have digits as initial characters result in messages being routed but others are voided. You can try publishing the messages as mandatory and see if any of them are returned. This requirement is mentioned in README: http://hg.rabbitmq.com/rabbitmq-consistent-hash-exchange/file/rabbitmq_v3_1_5/README.md#l99 See https://github.com/ruby-amqp/bunny/blob/master/spec/higher_level_api/integration/consistent_hash_exchange_spec.rb for example (not in Python but hopefully demonstrative enough). MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From richard at raseley.com Wed Oct 16 23:33:15 2013 From: richard at raseley.com (Richard Raseley) Date: Wed, 16 Oct 2013 15:33:15 -0700 Subject: [rabbitmq-discuss] Unexpected Behavior When Using the "X-Consistent-Hash" Exchange Type In-Reply-To: <7C92AF06-FFDE-4729-A0C6-AD7EDDBBFBD8@rabbitmq.com> References: <7C92AF06-FFDE-4729-A0C6-AD7EDDBBFBD8@rabbitmq.com> Message-ID: Michael, Thank you for your reply. With regard to your comment: "My guess is that when you use UUIDs, implicit conversion happens and those that happen to have digits as initial characters result in messages being routed but others are voided." Do you mean to say that those "voided" messages didn't make it to a queue or weren't hashed but simply put to an arbitrary queue? I know the former isn't the case because I sent 500K messages and at the end of the test the total of all the queues was 500K. Regards, Richard On Wed, Oct 16, 2013 at 2:43 PM, Michael Klishin wrote: > > On oct 16, 2013, at 11:58 p.m., Richard Raseley > wrote: > > > 1) Why am I seeing such uneven distribution of messages between the > queues bound to the x-consistent-hash exchange? > > > > 2) What can I do to ensure the most even distribution of messages as > possible across the queues bound to the x-consistent-has exchange? > > Consistent hash exchange requires routing keys to be integers *as strings* > (yes, > this is unfortunate, but routing keys have to be strings in the protocol). > > My guess is that when you use UUIDs, implicit conversion happens and those > that happen to have digits as initial characters result in messages being > routed > but others are voided. You can try publishing the messages as mandatory > and see if any of them are returned. > > This requirement is mentioned in README: > > > http://hg.rabbitmq.com/rabbitmq-consistent-hash-exchange/file/rabbitmq_v3_1_5/README.md#l99 > > See > https://github.com/ruby-amqp/bunny/blob/master/spec/higher_level_api/integration/consistent_hash_exchange_spec.rb > for example (not in Python but hopefully demonstrative enough). > > MK > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Wed Oct 16 23:34:38 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 17 Oct 2013 02:34:38 +0400 Subject: [rabbitmq-discuss] Unexpected Behavior When Using the "X-Consistent-Hash" Exchange Type In-Reply-To: References: <7C92AF06-FFDE-4729-A0C6-AD7EDDBBFBD8@rabbitmq.com> Message-ID: <38C1BCD9-76DC-498F-A378-5EE433DA0FDF@gopivotal.com> On oct 17, 2013, at 2:33 a.m., Richard Raseley wrote: > Do you mean to say that those "voided" messages didn't make it to a queue or weren't hashed but simply put to an arbitrary queue? The former but it was just a guess. -- MK Software Engineer, Pivotal/RabbitMQ -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From richard at raseley.com Thu Oct 17 00:13:54 2013 From: richard at raseley.com (Richard Raseley) Date: Wed, 16 Oct 2013 16:13:54 -0700 Subject: [rabbitmq-discuss] Unexpected Behavior When Using the "X-Consistent-Hash" Exchange Type In-Reply-To: <38C1BCD9-76DC-498F-A378-5EE433DA0FDF@gopivotal.com> References: <7C92AF06-FFDE-4729-A0C6-AD7EDDBBFBD8@rabbitmq.com> <38C1BCD9-76DC-498F-A378-5EE433DA0FDF@gopivotal.com> Message-ID: An interesting update. In re-reading the x-consistent-hash type exchange documentation, the following passage: "The more points in the hash space each binding has, the closer the actual distribution will be to the desired distribution (as indicated by the ratio of points by binding). However, large numbers of points (many thousands) will substantially decrease performance of the exchange type." It appears that my initial understanding of the integer used to bind queues to the x-consistent-hash exchange as a "weight" was incorrect, but rather it represents the number of points along the overall hash continuum where that particular queue is represented, with the points being (seemingly) pseudorandomly distributed across the overall hash space. So I updated the bindings on each of the queues from 1 to 100 and re-ran my tests with 50K messages this time (in the interests of expediency). The results are as follows: **FIRST TEST (Using UUID as the Hash Header)** Queue Name,Message Count,Percent of Total,Percent of Equality error01,3505,7.01%,89.16% error02,2919,5.84%,107.06% error03,3418,6.84%,91.43% error04,2912,5.82%,107.31% error05,2945,5.89%,106.11% error06,3146,6.29%,99.33% error07,3057,6.11%,102.22% error08,2868,5.74%,108.96% error09,2968,5.94%,105.29% error10,2866,5.73%,109.04% error11,3513,7.03%,88.96% error12,4077,8.15%,76.65% error13,3054,6.11%,102.32% error14,2648,5.30%,118.01% error15,2718,5.44%,114.97% error16,3386,6.77%,92.29% ALL,50000,100.00%,N/A **SECOND TEST (Using Random Int Between 1 and 1000000000 as the Hash Header)** Queue Name,Message Count,Percent of Total,Percent of Equality error01,3313,6.63%,94.33% error02,3255,6.51%,96.01% error03,3077,6.15%,101.56% error04,3048,6.10%,102.53% error05,2384,4.77%,131.08% error06,2954,5.91%,105.79% error07,3586,7.17%,87.14% error08,3055,6.11%,102.29% error09,3030,6.06%,103.14% error10,3517,7.03%,88.85% error11,2954,5.91%,105.79% error12,2921,5.84%,106.98% error13,3046,6.09%,102.59% error14,3710,7.42%,84.23% error15,3024,6.05%,103.34% error16,3126,6.25%,99.97% ALL,50000,100.00%,N/A So we now have a much more even distribution. I then changed the bindings of the queues from 100 to 1000 and reran the test. I saw significant increase in CPU usage and flow-control started kicking in (running this VM on a single core on my laptop so not unexpected). This is in line with the warning in the excerpt above and makes sense. This leaves me with the following questions: 1) Is it true to say that it is now just a matter of choosing what tradeoff we want to make in terms of performance vs. uniformity of distribution? 2) Can anyone comment on Michael's previous comment on how using a UUID would be handled as the value in the hashed header? The numbers above don't seem to show a large difference between using a random integer and a UUID. Regards, Richard Raseley On Wed, Oct 16, 2013 at 3:34 PM, Michael Klishin wrote: > > On oct 17, 2013, at 2:33 a.m., Richard Raseley > wrote: > > > Do you mean to say that those "voided" messages didn't make it to a > queue or weren't hashed but simply put to an arbitrary queue? > > The former but it was just a guess. > -- > MK > > Software Engineer, Pivotal/RabbitMQ > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From 314992959 at qq.com Thu Oct 17 03:41:14 2013 From: 314992959 at qq.com (3k4b251) Date: Wed, 16 Oct 2013 19:41:14 -0700 (PDT) Subject: [rabbitmq-discuss] if stop RabbitMq Server Service, the Server try to create 'queues' folder ? In-Reply-To: <5257B7A5.1020003@rabbitmq.com> References: <1381284358248-30359.post@n5.nabble.com> <05AF4AE0-F69E-411B-A789-128A7E215DD9@rabbitmq.com> <1381301532757-30365.post@n5.nabble.com> <094AC605-5DAB-4F7F-9D79-6505401A3FE8@rabbitmq.com> <1381373643741-30386.post@n5.nabble.com> <1381459401802-30403.post@n5.nabble.com> <5257B7A5.1020003@rabbitmq.com> Message-ID: <1381977674730-30568.post@n5.nabble.com> Try to Create more than one million queues is not a viable choice? -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/if-stop-RabbitMq-Server-Service-the-Server-try-to-create-queues-folder-tp30359p30568.html Sent from the RabbitMQ mailing list archive at Nabble.com. From Shashank.Lothe at techmahindra.com Thu Oct 17 06:19:25 2013 From: Shashank.Lothe at techmahindra.com (Lothe Shashank) Date: Thu, 17 Oct 2013 05:19:25 +0000 Subject: [rabbitmq-discuss] Disappearing Durable Queues In-Reply-To: <5257F2AC.8030303@rabbitmq.com> References: , <5257F2AC.8030303@rabbitmq.com> Message-ID: Thanks Emile for your support. I think this issue is due to a bug in the broker. I started two listeners with same queue properties from same ubuntu machine. Some observations of this behaviour is as follows. 1. After sometime one queue was disappeared and one was still there. 2. These two listeners were having separate connections. 3. Rabbitmq broker was not stopped in between so did not receive AMQP_STATUS_CONNECTION_CLOSED message. 4. I am still able to publish from the same connection for which queue was disappeared. 5. I am using 3.1.5 rabbitmq version at server and 0.3.0 version for rabbitmq C client. Is there any bug reported for the same issue? Is there any fix/workaround for this issue? I am not able to make out much from broker logfile. Can you suggest any particular error we should be checking in this log file for disappearing queue. Will this error be logged without make trace on, as with trace on my message are delivered with substantial delay? Thanks and regards, Shashank ________________________________________ From: Emile Joubert [emile at rabbitmq.com] Sent: Friday, October 11, 2013 6:14 PM To: Discussions about RabbitMQ Cc: Lothe Shashank Subject: Re: [rabbitmq-discuss] Disappearing Durable Queues Hi, On 11/10/13 13:16, Lothe Shashank wrote: > Unlike Rafe, My client queues are not durable but auto delete and I am > not using clusters. Do you see anything in the broker logfile? It should be possible to tell from that whether the issue you are dealing with is related. > Could this be client side issue or rabbitmq server/broker side issue? Yes. A bug in the broker can cause queues to disappear or a disconnecting client can cause exclusive queues to disappear. -Emile ________________________________ 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. From alan.antonuk at gmail.com Thu Oct 17 07:04:21 2013 From: alan.antonuk at gmail.com (Alan Antonuk) Date: Wed, 16 Oct 2013 23:04:21 -0700 Subject: [rabbitmq-discuss] Rabbitmq-C amqp_basic_publish crash on connection loss In-Reply-To: References: Message-ID: Try running the program under the debugger and see what happens. This will tell you where, and what is causing the program to fail. -Alan On Fri, Oct 11, 2013 at 12:50 AM, Lothe Shashank < Shashank.Lothe at techmahindra.com> wrote: > Hi Alan, > > Thanks for the clarification. I am attaching the simulation herewith. I > don't have a stack trace. It was abort as I couldn't get the next console > print. On similar lines, for a listner, if I stop rabbitmq broker using > rabbitmq_ctl stop_app, amqp_maybe_release_buffers(conn) API crashed. I > believe that due to abrupt connection loss the conn value becomes invalid > (though not changed) and amqp_basic_publish and amqp_maybe_release_buffers > APIs fail. > > Could you throw some light on this and help me to understand how can I > handle abrupt connection loss during publish and listen? > > 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. > > _______________________________________________ > 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 zur at jajah.com Thu Oct 17 08:25:50 2013 From: zur at jajah.com (zur) Date: Thu, 17 Oct 2013 00:25:50 -0700 (PDT) Subject: [rabbitmq-discuss] Content Filter In-Reply-To: References: <1381939009149-30542.post@n5.nabble.com> <1918C8B1-CDF9-459D-922C-05D5324B0A47@rabbitmq.com> Message-ID: <1381994750456-30572.post@n5.nabble.com> I see. Thank you for the answers, Zur -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Content-Filter-tp30542p30572.html Sent from the RabbitMQ mailing list archive at Nabble.com. From mklishin at gopivotal.com Thu Oct 17 09:49:56 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 17 Oct 2013 12:49:56 +0400 Subject: [rabbitmq-discuss] if stop RabbitMq Server Service, the Server try to create 'queues' folder ? In-Reply-To: <1381977674730-30568.post@n5.nabble.com> References: <1381284358248-30359.post@n5.nabble.com> <05AF4AE0-F69E-411B-A789-128A7E215DD9@rabbitmq.com> <1381301532757-30365.post@n5.nabble.com> <094AC605-5DAB-4F7F-9D79-6505401A3FE8@rabbitmq.com> <1381373643741-30386.post@n5.nabble.com> <1381459401802-30403.post@n5.nabble.com> <5257B7A5.1020003@rabbitmq.com> <1381977674730-30568.post@n5.nabble.com> Message-ID: <9F05187C-4AB0-4559-AB5B-C77916EA174F@rabbitmq.com> On oct 17, 2013, at 6:41 a.m., 3k4b251 <314992959 at qq.com> wrote: > Try to Create more than one million queues is not a viable choice? Not on a single node. Evenly distributing queues between nodes in a cluster will help you have 1M or even more queues in total. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From mklishin at gopivotal.com Thu Oct 17 09:51:31 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 17 Oct 2013 12:51:31 +0400 Subject: [rabbitmq-discuss] Disappearing Durable Queues In-Reply-To: References: , <5257F2AC.8030303@rabbitmq.com> Message-ID: <32658CC5-A1D6-4A46-970B-D0B7F74F9E52@rabbitmq.com> On oct 17, 2013, at 9:19 a.m., Lothe Shashank wrote: > Is there any bug reported for the same issue? Is there any fix/workaround for this issue? I am not able to make out much from broker logfile. Can you suggest any particular error we should be checking in this log file for disappearing queue. Will this error be logged without make trace on, as with trace on my message are delivered with substantial delay? Can you post a sample program that reproduces the issue for you most of the time? MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From emile at rabbitmq.com Thu Oct 17 10:00:27 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Thu, 17 Oct 2013 10:00:27 +0100 Subject: [rabbitmq-discuss] abnormally large memory use in "binaries" In-Reply-To: <525E7453.7050706@rabbitmq.com> References: <1381851261.61014.YahooMailNeo@web122002.mail.ne1.yahoo.com> <525E7453.7050706@rabbitmq.com> Message-ID: <525FA72B.8000401@rabbitmq.com> On 16/10/13 12:11, Emile Joubert wrote: > rabbitmqctl eval 'lists:sublist(lists:reverse(lists:sort([{Sz, P, > process_info(P)} || {{binary, [{_, Sz, _}]}, P} <- > [{erlang:process_info(P, binary), P} || P <- erlang:processes()]])), 20).' Actually, that command won't provide useful results. Could you please try this instead? rabbitmqctl eval 'lists:sublist(lists:reverse(lists:sort([{length(Bin), lists:usort(Bin), P, process_info(P)} || {{binary, Bin = [_|_]}, P} <-[{erlang:process_info(P, binary), P} || P <- erlang:processes()]])), 20).' -Emile From matthias at rabbitmq.com Thu Oct 17 10:01:37 2013 From: matthias at rabbitmq.com (Matthias Radestock) Date: Thu, 17 Oct 2013 10:01:37 +0100 Subject: [rabbitmq-discuss] Disappearing Durable Queues In-Reply-To: <32658CC5-A1D6-4A46-970B-D0B7F74F9E52@rabbitmq.com> References: , <5257F2AC.8030303@rabbitmq.com> <32658CC5-A1D6-4A46-970B-D0B7F74F9E52@rabbitmq.com> Message-ID: <525FA771.10506@rabbitmq.com> On 17/10/13 09:51, Michael Klishin wrote: > Can you post a sample program that reproduces the issue for you most of the time? And please post the broker log files. It is quite unlikely that what you are seeing is a broker bug, but if is then chances are something of interest will be in the log files. Matthias. From emile at rabbitmq.com Thu Oct 17 10:11:52 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Thu, 17 Oct 2013 10:11:52 +0100 Subject: [rabbitmq-discuss] Long pauses when closing many channels simultaneously In-Reply-To: References: <8a7a1859-5ff0-49a3-8ba9-edef63830591@googlegroups.com> <74B331C7-6DD1-494D-94C9-7E754C7ECC82@rabbitmq.com> <1380282223281-29973.post@n5.nabble.com> <5257E655.80906@rabbitmq.com> <1381748811375-30473.post@n5.nabble.com> <525BD691.9040706@rabbitmq.com> Message-ID: <525FA9D8.4060709@rabbitmq.com> Hi, On 15/10/13 15:58, Martin Rogan wrote: > On 14 October 2013 12:33, Emile Joubert > wrote: > > Can you please confirm whether you believe there still is a problem when > using the latest version? > > Yes, I still think there's a problem with the latest version. See my > results with 3.1.5.41014 show that exactly 100 channels took longer than > 500ms to close. Could you please try reposting these results? This information did not accompany your last message. -Emile From sekhar434145 at gmail.com Thu Oct 17 10:27:34 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Thu, 17 Oct 2013 14:57:34 +0530 Subject: [rabbitmq-discuss] Does RabbitMQ having Round-Rabin configuration? Message-ID: In our testing we are running two consumers for single queue and one producer which producers messages like message1, message2, message3, message4 & message5. Here, Consumer1 consumed - message1, message3, message5 Consumer2 consumed - message2, message4 It seems like RabbitMQ having default RoundRabin configuration, am right? -------------- next part -------------- An HTML attachment was scrubbed... URL: From watson.timothy at gmail.com Thu Oct 17 10:32:47 2013 From: watson.timothy at gmail.com (Tim Watson) Date: Thu, 17 Oct 2013 10:32:47 +0100 Subject: [rabbitmq-discuss] Does RabbitMQ having Round-Rabin configuration? In-Reply-To: References: Message-ID: <760239E7-3ED1-445E-9FF7-B3C3DE2E903B@rabbitmq.com> On 17 Oct 2013, at 10:27, Rajasekhar P wrote: > > It seems like RabbitMQ having default RoundRabin configuration, am right? > That's correct. Tim From mklishin at gopivotal.com Thu Oct 17 10:34:53 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 17 Oct 2013 13:34:53 +0400 Subject: [rabbitmq-discuss] Does RabbitMQ having Round-Rabin configuration? In-Reply-To: References: Message-ID: On oct 17, 2013, at 1:27 p.m., Rajasekhar P wrote: > Consumer1 consumed - message1, message3, message5 > Consumer2 consumed - message2, message4 > > > It seems like RabbitMQ having default RoundRabin configuration, am right? Correct. basic.qos can be used to give some consumers (technically, channels) a slightly larger share of the pie but your understanding is correct. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From sekhar434145 at gmail.com Thu Oct 17 10:48:07 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Thu, 17 Oct 2013 15:18:07 +0530 Subject: [rabbitmq-discuss] Does RabbitMQ having Round-Rabin configuration? In-Reply-To: References: Message-ID: Thank you Tim & MK. On Thu, Oct 17, 2013 at 3:04 PM, Michael Klishin wrote: > > On oct 17, 2013, at 1:27 p.m., Rajasekhar P > wrote: > > > Consumer1 consumed - message1, message3, message5 > > Consumer2 consumed - message2, message4 > > > > > > It seems like RabbitMQ having default RoundRabin configuration, am right? > > Correct. basic.qos can be used to give some consumers (technically, > channels) a slightly larger share of > the pie but your understanding is correct. > > MK > > > > > _______________________________________________ > 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 314992959 at qq.com Thu Oct 17 10:58:10 2013 From: 314992959 at qq.com (3k4b251) Date: Thu, 17 Oct 2013 02:58:10 -0700 (PDT) Subject: [rabbitmq-discuss] if stop RabbitMq Server Service, the Server try to create 'queues' folder ? In-Reply-To: <9F05187C-4AB0-4559-AB5B-C77916EA174F@rabbitmq.com> References: <1381301532757-30365.post@n5.nabble.com> <094AC605-5DAB-4F7F-9D79-6505401A3FE8@rabbitmq.com> <1381373643741-30386.post@n5.nabble.com> <1381459401802-30403.post@n5.nabble.com> <5257B7A5.1020003@rabbitmq.com> <1381977674730-30568.post@n5.nabble.com> <9F05187C-4AB0-4559-AB5B-C77916EA174F@rabbitmq.com> Message-ID: <1382003890698-30588.post@n5.nabble.com> Thank you ! I think it's a good idea, but I still confuse about the druable queues. Must Mq Server create floders for every druable queue in 'queues' ? -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/if-stop-RabbitMq-Server-Service-the-Server-try-to-create-queues-folder-tp30359p30588.html Sent from the RabbitMQ mailing list archive at Nabble.com. From mklishin at gopivotal.com Thu Oct 17 11:17:48 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 17 Oct 2013 14:17:48 +0400 Subject: [rabbitmq-discuss] if stop RabbitMq Server Service, the Server try to create 'queues' folder ? In-Reply-To: <1382003890698-30588.post@n5.nabble.com> References: <1381301532757-30365.post@n5.nabble.com> <094AC605-5DAB-4F7F-9D79-6505401A3FE8@rabbitmq.com> <1381373643741-30386.post@n5.nabble.com> <1381459401802-30403.post@n5.nabble.com> <5257B7A5.1020003@rabbitmq.com> <1381977674730-30568.post@n5.nabble.com> <9F05187C-4AB0-4559-AB5B-C77916EA174F@rabbitmq.com> <1382003890698-30588.post@n5.nabble.com> Message-ID: On oct 17, 2013, at 1:58 p.m., 3k4b251 <314992959 at qq.com> wrote: > Must Mq Server create floders for every druable > queue in 'queues' ? Yes, to store message index and a clean shutdown marker (clean.dot), which improves startup time. clean.dot is deleted during startup. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From tim at rabbitmq.com Thu Oct 17 11:24:34 2013 From: tim at rabbitmq.com (Tim Watson) Date: Thu, 17 Oct 2013 11:24:34 +0100 Subject: [rabbitmq-discuss] if stop RabbitMq Server Service, the Server try to create 'queues' folder ? In-Reply-To: <1382003890698-30588.post@n5.nabble.com> References: <1381301532757-30365.post@n5.nabble.com> <094AC605-5DAB-4F7F-9D79-6505401A3FE8@rabbitmq.com> <1381373643741-30386.post@n5.nabble.com> <1381459401802-30403.post@n5.nabble.com> <5257B7A5.1020003@rabbitmq.com> <1381977674730-30568.post@n5.nabble.com> <9F05187C-4AB0-4559-AB5B-C77916EA174F@rabbitmq.com> <1382003890698-30588.post@n5.nabble.com> Message-ID: <581B35B7-D0F6-4632-8A08-EE23FB3ED054@rabbitmq.com> On 17 Oct 2013, at 10:58, 3k4b251 wrote: > Thank you ! I think it's a good idea, but I still confuse about > the druable queues. Must Mq Server create floders for every druable > queue in 'queues' ? Is the creation of folders in the internal database causing you a problem? From sekhar434145 at gmail.com Thu Oct 17 13:10:10 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Thu, 17 Oct 2013 17:40:10 +0530 Subject: [rabbitmq-discuss] Can we set policies at java client level instead of RabbitMQ server level? Message-ID: While going through the documentation, came to know that we have to set the policies in RabbitMQ server level. Can we set the policies at client level? if possible, how?Thanks . -------------- next part -------------- An HTML attachment was scrubbed... URL: From ceri at lshift.net Thu Oct 17 13:34:18 2013 From: ceri at lshift.net (Ceri Storey) Date: Thu, 17 Oct 2013 13:34:18 +0100 Subject: [rabbitmq-discuss] if stop RabbitMq Server Service, the Server try to create 'queues' folder ? In-Reply-To: <581B35B7-D0F6-4632-8A08-EE23FB3ED054@rabbitmq.com> References: <1381301532757-30365.post@n5.nabble.com> <094AC605-5DAB-4F7F-9D79-6505401A3FE8@rabbitmq.com> <1381373643741-30386.post@n5.nabble.com> <1381459401802-30403.post@n5.nabble.com> <5257B7A5.1020003@rabbitmq.com> <1381977674730-30568.post@n5.nabble.com> <9F05187C-4AB0-4559-AB5B-C77916EA174F@rabbitmq.com> <1382003890698-30588.post@n5.nabble.com> <581B35B7-D0F6-4632-8A08-EE23FB3ED054@rabbitmq.com> Message-ID: <525FD94A.9090706@lshift.net> (17/10/13 11:24), Tim Watson wrote: > On 17 Oct 2013, at 10:58, 3k4b251 wrote: >> Thank you ! I think it's a good idea, but I still confuse about >> the druable queues. Must Mq Server create floders for every druable >> queue in 'queues' ? > Is the creation of folders in the internal database causing you a problem? I'd infer that he's maybe referring to the fact that traditionally, having lots of entires in a single directory will cause accesses to items in that directory to perform very poorly (even to the point of causing significant performance problems for the machine overall). If you fancy seeing this in practice, try creating ~10,000,000-100,000,000 entries in a directory on ext4 (ideally on a sacraficial machine). The usual solution (usually found in mail transport agents like Exim/ Postfix) to this is to use "hashed" directories, where instead of having directories named as follows: /somewhere/queues/0123456789ABCDEF/ You have: /somewhere/queues/0/01/012/0124/0123456789ABCDEF/ So that the scan of each directory encounters far fewer items, making the performance more logarithmic than linear. > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss From watson.timothy at gmail.com Thu Oct 17 13:35:06 2013 From: watson.timothy at gmail.com (Tim Watson) Date: Thu, 17 Oct 2013 13:35:06 +0100 Subject: [rabbitmq-discuss] Can we set policies at java client level instead of RabbitMQ server level? In-Reply-To: References: Message-ID: On 17 Oct 2013, at 13:10, Rajasekhar P wrote: > While going through the documentation, came to know that we have to set the policies in RabbitMQ server level. Can we set the policies at client level? if possible, how?Thanks . No, policies are only set at the broker. You can use the management API to set policies programmatically, an of you wish to do this over AMQP, you can utilise Simon's https://github.com/simonmacmullen/rabbitmq-management-exchange project. Tim From mklishin at gopivotal.com Thu Oct 17 13:39:10 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 17 Oct 2013 16:39:10 +0400 Subject: [rabbitmq-discuss] Can we set policies at java client level instead of RabbitMQ server level? In-Reply-To: References: Message-ID: <0566233F-403E-48F4-BADC-40974AD83349@rabbitmq.com> On 17 Oct 2013, at 16:10, Rajasekhar P wrote: > While going through the documentation, came to know that we have to set the policies in RabbitMQ server level. Can we set the policies at client level? if possible, how?Thanks You can do this via HTTP API: http://hg.rabbitmq.com/rabbitmq-management/raw-file/8d01c9ab6910/priv/www/api/index.html MK From sekhar434145 at gmail.com Thu Oct 17 13:44:44 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Thu, 17 Oct 2013 18:14:44 +0530 Subject: [rabbitmq-discuss] Can we set policies at java client level instead of RabbitMQ server level? In-Reply-To: References: Message-ID: Thanks Tim for the reply. Am using Spring-AMQP instead plain RabbitMQ Java API for writing producer and consumer programs and executed policies through command prompt in a clustered nodes. Is this only way to set policies using command prompt or is there any other approach? On Thu, Oct 17, 2013 at 6:05 PM, Tim Watson wrote: > On 17 Oct 2013, at 13:10, Rajasekhar P wrote: > > > While going through the documentation, came to know that we have to set > the policies in RabbitMQ server level. Can we set the policies at client > level? if possible, how?Thanks . > > No, policies are only set at the broker. You can use the management API to > set policies programmatically, an of you wish to do this over AMQP, you can > utilise Simon's > https://github.com/simonmacmullen/rabbitmq-management-exchange project. > > Tim > _______________________________________________ > 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 emile at rabbitmq.com Thu Oct 17 13:51:50 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Thu, 17 Oct 2013 13:51:50 +0100 Subject: [rabbitmq-discuss] SalesForce and RabbitMQ Integration In-Reply-To: References: Message-ID: <525FDD66.4020600@rabbitmq.com> Hi, On 16/10/13 11:46, Jim Smith wrote: > I would appreciate insight of the integration process to have a Web > Services integrate with RabbitMQ to submit or retrieve messages from a > queue. Salesforce supports a number of APIs: https://help.salesforce.com/HTViewHelpDoc?id=integrate_what_is_api.htm And there are a many ways of communicating with RabbitMQ: http://www.rabbitmq.com/devtools.html Depending on what kind of integration you are attempting, you would create an intermediary that can communicate via a Salesforce API and one of the RabbitMQ protocols. Once you have that in place you can send messages back and forth. -Emile From sekhar434145 at gmail.com Thu Oct 17 14:05:25 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Thu, 17 Oct 2013 18:35:25 +0530 Subject: [rabbitmq-discuss] How to test Consumer failure(durability) scenario in RabbitMQ? Message-ID: I have one producer which produces messages on Queue called "Test" and two consumers(Workers) which are listening to "Test" queue in round-robin passion. Here, I want to test the scenario where my consumer has to fail while executing the job before acknowledgement. Here I am using Java client, can any one explain how to test this scenario? Is there any sample program for the same? http://www.rabbitmq.com/tutorials/tutorial-two-java.html Thanks in advance -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Thu Oct 17 14:08:49 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 17 Oct 2013 17:08:49 +0400 Subject: [rabbitmq-discuss] How to test Consumer failure(durability) scenario in RabbitMQ? In-Reply-To: References: Message-ID: <8EDA4148-08C0-41F4-8E08-4A9EC5EBF363@rabbitmq.com> On 17 Oct 2013, at 17:05, Rajasekhar P wrote: > n round-robin passion. Here, I want to test the scenario where my consumer has to fail while executing the job before acknowledgement. Here I am using Java client, can any one explain how to test this scenario? Is there any sample program for the same? http://www.rabbitmq.com/tutorials/tutorial-two-java.html Closing consumer channel will cause all unacknowledged messages to be requeued. MK From sekhar434145 at gmail.com Thu Oct 17 14:16:20 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Thu, 17 Oct 2013 18:46:20 +0530 Subject: [rabbitmq-discuss] How to test Consumer failure(durability) scenario in RabbitMQ? In-Reply-To: <8EDA4148-08C0-41F4-8E08-4A9EC5EBF363@rabbitmq.com> References: <8EDA4148-08C0-41F4-8E08-4A9EC5EBF363@rabbitmq.com> Message-ID: Yes, I do agree. Here, I am struck with how to test this case? can you please share me consumer code? Thanks On Thu, Oct 17, 2013 at 6:38 PM, Michael Klishin wrote: > On 17 Oct 2013, at 17:05, Rajasekhar P wrote: > > > n round-robin passion. Here, I want to test the scenario where my > consumer has to fail while executing the job before acknowledgement. Here I > am using Java client, can any one explain how to test this scenario? Is > there any sample program for the same? > http://www.rabbitmq.com/tutorials/tutorial-two-java.html > > Closing consumer channel will cause all unacknowledged messages to be > requeued. > > MK > > > > _______________________________________________ > 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 Oct 17 14:21:59 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 17 Oct 2013 17:21:59 +0400 Subject: [rabbitmq-discuss] How to test Consumer failure(durability) scenario in RabbitMQ? In-Reply-To: References: <8EDA4148-08C0-41F4-8E08-4A9EC5EBF363@rabbitmq.com> Message-ID: <4C4197BF-FA0A-4EB2-B7E8-A8500ED02AAF@rabbitmq.com> On 17 Oct 2013, at 17:16, Rajasekhar P wrote: > Here, I am struck with how to test this case? can you please share me consumer code? Can we take a step back and clarify what will the test verify? If you want to test that messages are requeued, create a custom consumer that closes its channel and stops, for example. But this particular aspect is already tested in RabbitMQ server and Java client suites. MK From sekhar434145 at gmail.com Thu Oct 17 14:22:41 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Thu, 17 Oct 2013 18:52:41 +0530 Subject: [rabbitmq-discuss] RabbitMQ - can we make use policies as load balancing in cluster? Message-ID: We are trying to achieve load balancing in RabbitMQ cluster can we achieve using policies? Thanks -------------- next part -------------- An HTML attachment was scrubbed... URL: From sekhar434145 at gmail.com Thu Oct 17 14:31:25 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Thu, 17 Oct 2013 19:01:25 +0530 Subject: [rabbitmq-discuss] How to test Consumer failure(durability) scenario in RabbitMQ? In-Reply-To: <4C4197BF-FA0A-4EB2-B7E8-A8500ED02AAF@rabbitmq.com> References: <8EDA4148-08C0-41F4-8E08-4A9EC5EBF363@rabbitmq.com> <4C4197BF-FA0A-4EB2-B7E8-A8500ED02AAF@rabbitmq.com> Message-ID: Yes, I want to test message requeing scenario. Here, my target is, let say there are two consumers, "consumer1" received message(ex - "Message1") from queue (ex - "Test_Queue") and consumer failed before acknowledgement to server, so that message is not deleted from rabbitmq server right? That same message ("Message1") has to be consumed by "consumer2" right? So, this is the case I want test. Here, I want to stop the "consumer1" before sending ack to rabbitmq server. So, how to achieve this? Thanks On Thu, Oct 17, 2013 at 6:51 PM, Michael Klishin wrote: > On 17 Oct 2013, at 17:16, Rajasekhar P wrote: > > > Here, I am struck with how to test this case? can you please share me > consumer code? > > Can we take a step back and clarify what will the test verify? > > If you want to test that messages are requeued, create a custom consumer > that closes its channel > and stops, for example. But this particular aspect is already tested in > RabbitMQ server and Java client > suites. > > MK > > > > _______________________________________________ > 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 Thu Oct 17 15:11:23 2013 From: grussell at gopivotal.com (Gary Russell) Date: Thu, 17 Oct 2013 10:11:23 -0400 Subject: [rabbitmq-discuss] Can we set policies at java client level instead of RabbitMQ server level? In-Reply-To: References: Message-ID: Spring AMQP does not provide a mechanism itself to do this, but the core Spring Framework has a RestTemplate to enable calls to any rest API, including that provided by RabbitMQ. http://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/remoting.html#rest-client-access Gary On Thu, Oct 17, 2013 at 8:44 AM, Rajasekhar P wrote: > Thanks Tim for the reply. Am using Spring-AMQP instead plain RabbitMQ Java > API for writing producer and consumer programs and executed policies > through command prompt in a clustered nodes. Is this only way to set > policies using command prompt or is there any other approach? > > > On Thu, Oct 17, 2013 at 6:05 PM, Tim Watson wrote: > >> On 17 Oct 2013, at 13:10, Rajasekhar P wrote: >> >> > While going through the documentation, came to know that we have to set >> the policies in RabbitMQ server level. Can we set the policies at client >> level? if possible, how?Thanks . >> >> No, policies are only set at the broker. You can use the management API >> to set policies programmatically, an of you wish to do this over AMQP, you >> can utilise Simon's >> https://github.com/simonmacmullen/rabbitmq-management-exchange project. >> >> Tim >> _______________________________________________ >> 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 sp345s at att.com Thu Oct 17 15:34:00 2013 From: sp345s at att.com (PATAR, SAGAR) Date: Thu, 17 Oct 2013 14:34:00 +0000 Subject: [rabbitmq-discuss] routing key Message-ID: <59BF56992750434F89F8EBE141E64B1D01826942@GAALPA1MSGUSR9C.ITServices.sbc.com> I am using "org.springframework.amqp.core.MessageListener" and am binding to an exchange using a pattern .. I am sending message with binding key as "1xx" , "1xx.sdk" I am using the below pattern to match the above binding keys 1# - not working *xx# - not working #1# - not working 1xx - is working # - is working The exchange is amqp.topic ... Not sure what the issue is ..Appreciate any help on this -------------- next part -------------- An HTML attachment was scrubbed... URL: From viraj.gupte at credorax.com Thu Oct 17 15:41:23 2013 From: viraj.gupte at credorax.com (Viraj Gupte) Date: Thu, 17 Oct 2013 10:41:23 -0400 Subject: [rabbitmq-discuss] Upgrading of RabbitMq clusters connected with federation plugin from 2.8.7 to version 3.1.0 Message-ID: Hi All, I have two rabbitmq clusters A and B connected to each other via federation plugin in bidirectional manner.Both of them run version 2.8.7. I am planning to upgrade cluster A to 3.1.0 to check how federation works with the cluster with 2.8.7 version(cluster B). What should be my approach so as to keep the federation config intact on cluster A along with messages and queues -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Thu Oct 17 15:43:11 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 17 Oct 2013 18:43:11 +0400 Subject: [rabbitmq-discuss] routing key In-Reply-To: <59BF56992750434F89F8EBE141E64B1D01826942@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D01826942@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: <9050B397-82DF-4733-82EA-0260250CE2DE@rabbitmq.com> On 17 Oct 2013, at 18:34, "PATAR, SAGAR" wrote: > I am using ?org.springframework.amqp.core.MessageListener? and am binding to an exchange using a pattern .. Is the key just ".." or is it a typo? Two dots don't really make sense for topic exchanges. Do you mean *.*? MK From sp345s at att.com Thu Oct 17 16:06:51 2013 From: sp345s at att.com (PATAR, SAGAR) Date: Thu, 17 Oct 2013 15:06:51 +0000 Subject: [rabbitmq-discuss] routing key In-Reply-To: <9050B397-82DF-4733-82EA-0260250CE2DE@rabbitmq.com> References: <59BF56992750434F89F8EBE141E64B1D01826942@GAALPA1MSGUSR9C.ITServices.sbc.com> <9050B397-82DF-4733-82EA-0260250CE2DE@rabbitmq.com> Message-ID: <59BF56992750434F89F8EBE141E64B1D01826973@GAALPA1MSGUSR9C.ITServices.sbc.com> I am using "org.springframework.amqp.core.MessageListener" and am binding to an exchange (amqp.topic) using a below pattern 1# - not working *xx# - not working #1# - not working 1xx - is working # - is working The first 3 patterns seems to be not working but the last two are working and messages are forwarded .. I am sending message with binding key as "1xx" -----Original Message----- From: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Michael Klishin Sent: Thursday, October 17, 2013 10:43 AM To: Discussions about RabbitMQ Subject: Re: [rabbitmq-discuss] routing key On 17 Oct 2013, at 18:34, "PATAR, SAGAR" wrote: > I am using "org.springframework.amqp.core.MessageListener" and am binding to an exchange using a pattern .. Is the key just ".." or is it a typo? Two dots don't really make sense for topic exchanges. Do you mean *.*? MK _______________________________________________ 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 Thu Oct 17 16:11:39 2013 From: matthias at rabbitmq.com (Matthias Radestock) Date: Thu, 17 Oct 2013 16:11:39 +0100 Subject: [rabbitmq-discuss] routing key In-Reply-To: <59BF56992750434F89F8EBE141E64B1D01826973@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D01826942@GAALPA1MSGUSR9C.ITServices.sbc.com> <9050B397-82DF-4733-82EA-0260250CE2DE@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D01826973@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: <525FFE2B.3030307@rabbitmq.com> On 17/10/13 16:06, PATAR, SAGAR wrote: > I am using "org.springframework.amqp.core.MessageListener" and am binding to an exchange (amqp.topic) using a below pattern > > 1# - not working > *xx# - not working > #1# - not working > > 1xx - is working > # - is working > > The first 3 patterns seems to be not working but the last two are working and messages are forwarded .. > I am sending message with binding key as "1xx" See http://www.rabbitmq.com/tutorials/tutorial-five-python.html "Messages sent to a topic exchange can't have an arbitrary routing_key - it must be *a list of words, delimited by dots*. ... * (star) can substitute for exactly one *word*. # (hash) can substitute for zero or more *words*. " Matthias. From stuff at moesel.net Thu Oct 17 16:14:58 2013 From: stuff at moesel.net (Chris) Date: Thu, 17 Oct 2013 11:14:58 -0400 Subject: [rabbitmq-discuss] routing key In-Reply-To: <59BF56992750434F89F8EBE141E64B1D01826973@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D01826942@GAALPA1MSGUSR9C.ITServices.sbc.com> <9050B397-82DF-4733-82EA-0260250CE2DE@rabbitmq.com> <59BF56992750434F89F8EBE141E64B1D01826973@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: Wildcards only work to replace whole words in a routing key pattern (with the '.' providing the boundary between words). The tutorial on Topics explains it like this: However there are two important special cases for binding keys: - * (star) can substitute for exactly one word. - # (hash) can substitute for zero or more words. So putting the wildcards in the middle of words (as in your first three examples) is not expected to work -Chris On Thu, Oct 17, 2013 at 11:06 AM, PATAR, SAGAR wrote: > I am using "org.springframework.amqp.core.MessageListener" and am binding > to an exchange (amqp.topic) using a below pattern > > 1# - not working > *xx# - not working > #1# - not working > > 1xx - is working > # - is working > > The first 3 patterns seems to be not working but the last two are working > and messages are forwarded .. > I am sending message with binding key as "1xx" > > > -----Original Message----- > From: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto: > rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Michael Klishin > Sent: Thursday, October 17, 2013 10:43 AM > To: Discussions about RabbitMQ > Subject: Re: [rabbitmq-discuss] routing key > > On 17 Oct 2013, at 18:34, "PATAR, SAGAR" wrote: > > > I am using "org.springframework.amqp.core.MessageListener" and am > binding to an exchange using a pattern .. > > Is the key just ".." or is it a typo? > > Two dots don't really make sense for topic exchanges. Do you mean *.*? > > MK > > > > _______________________________________________ > 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 watson.timothy at gmail.com Thu Oct 17 16:50:42 2013 From: watson.timothy at gmail.com (Tim Watson) Date: Thu, 17 Oct 2013 16:50:42 +0100 Subject: [rabbitmq-discuss] Can we set policies at java client level instead of RabbitMQ server level? In-Reply-To: References: Message-ID: <9803B146-21EA-4887-A439-774B59140BC8@rabbitmq.com> Or you can use Simon's plugin and sent the json encoded commands to the management exchange. On 17 Oct 2013, at 15:11, Gary Russell wrote: > Spring AMQP does not provide a mechanism itself to do this, but the core Spring Framework has a RestTemplate to enable calls to any rest API, including that provided by RabbitMQ. > > http://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/remoting.html#rest-client-access > > Gary > > > On Thu, Oct 17, 2013 at 8:44 AM, Rajasekhar P wrote: > Thanks Tim for the reply. Am using Spring-AMQP instead plain RabbitMQ Java API for writing producer and consumer programs and executed policies through command prompt in a clustered nodes. Is this only way to set policies using command prompt or is there any other approach? > > > On Thu, Oct 17, 2013 at 6:05 PM, Tim Watson wrote: > On 17 Oct 2013, at 13:10, Rajasekhar P wrote: > > > While going through the documentation, came to know that we have to set the policies in RabbitMQ server level. Can we set the policies at client level? if possible, how?Thanks . > > No, policies are only set at the broker. You can use the management API to set policies programmatically, an of you wish to do this over AMQP, you can utilise Simon's https://github.com/simonmacmullen/rabbitmq-management-exchange project. > > Tim > _______________________________________________ > 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 CRodriguez at bn.com Thu Oct 17 17:22:43 2013 From: CRodriguez at bn.com (Christian Rodriguez) Date: Thu, 17 Oct 2013 12:22:43 -0400 Subject: [rabbitmq-discuss] Newbie question Message-ID: <2F6B2A1CD0466A4F8DC1F021C4AC865F02186248C6@WCEXCPMS01.hq.bn-corp.com> Can someone point me on the right direction? Need a hardware architecture diagram for a cluster environment, I'd like to purchase the hardware but I am a bit confused as to what is needed. * Need an architectural diagram for hardware and any specific roles * Broker, exchange, queue servers, Do these functions all run in one server? * Need to worry about HA and failover, * If cluster is setup, do I need shared storage or can the data live in each node, best practice??? * I understand the software and data needs to co-exist on the same volume or disk as the OS as one large disk, is this true. I'd rather install the OS RHEL and software data in different drives, best practice??? * Does rabbit MQ benefit from a fusion-io storage card? Or as long as there is memory I am covered??? Thanks for any help or guidance anyone can provide ------------------------------------------------------------------------- This electronic mail message contains information that (a) is or may be CONFIDENTIAL, PROPRIETARY IN NATURE, OR OTHERWISE PROTECTED BY LAW FROM DISCLOSURE, and (b) is intended only for the use of the addressee(s) named herein. If you are not an intended recipient, please send an email immediately to postmaster at bn.com and take the steps necessary to delete the message completely from your computer system. -------------- next part -------------- An HTML attachment was scrubbed... URL: From emile at rabbitmq.com Thu Oct 17 17:54:36 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Thu, 17 Oct 2013 17:54:36 +0100 Subject: [rabbitmq-discuss] RabbitMQ's WebSocket broken In-Reply-To: <47e4346c-7cec-4f09-bb10-9e7917274958@googlegroups.com> References: <47e4346c-7cec-4f09-bb10-9e7917274958@googlegroups.com> Message-ID: <5260164C.2000203@rabbitmq.com> Hi, On 11/10/13 07:58, Petri Luojus wrote: > Sec-WebSocket-Protocol: v10.stomp, v11.stomp Thanks for reporting this issue. It looks like the webserver infrastructure will need to be upgraded in order to support this. I have filed a bug to bring this up-to-date. -Emile From richard at raseley.com Thu Oct 17 17:56:37 2013 From: richard at raseley.com (Richard Raseley) Date: Thu, 17 Oct 2013 09:56:37 -0700 Subject: [rabbitmq-discuss] Unexpected Behavior When Using the "X-Consistent-Hash" Exchange Type In-Reply-To: References: <7C92AF06-FFDE-4729-A0C6-AD7EDDBBFBD8@rabbitmq.com> <38C1BCD9-76DC-498F-A378-5EE433DA0FDF@gopivotal.com> Message-ID: As a final question, can anyone on the engineering team provide a recommendation as to the best way to generate a header value for hashing use in terms of what will implicitly provide the most even distribution? For example, if a random integer is the best way to go, should the range of possible integers be scoped from 1 to Q*B where Q is equal to the number of queues you have bound to the x-consistent-hash exchange and B is equal to the sum of all the integers used as routing keys when binding the queues to the x-consistent-hash exchange? Regards, Richard On Wed, Oct 16, 2013 at 4:13 PM, Richard Raseley wrote: > An interesting update. In re-reading the x-consistent-hash type exchange > documentation, the following passage: > > "The more points in the hash space each binding has, the closer the actual > distribution will be to the desired distribution (as indicated by the ratio > of points by binding). However, large numbers of points (many thousands) > will substantially decrease performance of the exchange type." > > It appears that my initial understanding of the integer used to bind > queues to the x-consistent-hash exchange as a "weight" was incorrect, but > rather it represents the number of points along the overall hash continuum > where that particular queue is represented, with the points being > (seemingly) pseudorandomly distributed across the overall hash space. So I > updated the bindings on each of the queues from 1 to 100 and re-ran my > tests with 50K messages this time (in the interests of expediency). > > The results are as follows: > > **FIRST TEST (Using UUID as the Hash Header)** > > Queue Name,Message Count,Percent of Total,Percent of Equality > error01,3505,7.01%,89.16% > error02,2919,5.84%,107.06% > error03,3418,6.84%,91.43% > error04,2912,5.82%,107.31% > error05,2945,5.89%,106.11% > error06,3146,6.29%,99.33% > error07,3057,6.11%,102.22% > error08,2868,5.74%,108.96% > error09,2968,5.94%,105.29% > error10,2866,5.73%,109.04% > error11,3513,7.03%,88.96% > error12,4077,8.15%,76.65% > error13,3054,6.11%,102.32% > error14,2648,5.30%,118.01% > error15,2718,5.44%,114.97% > error16,3386,6.77%,92.29% > ALL,50000,100.00%,N/A > > **SECOND TEST (Using Random Int Between 1 and 1000000000 as the Hash > Header)** > > Queue Name,Message Count,Percent of Total,Percent of Equality > error01,3313,6.63%,94.33% > error02,3255,6.51%,96.01% > error03,3077,6.15%,101.56% > error04,3048,6.10%,102.53% > error05,2384,4.77%,131.08% > error06,2954,5.91%,105.79% > error07,3586,7.17%,87.14% > error08,3055,6.11%,102.29% > error09,3030,6.06%,103.14% > error10,3517,7.03%,88.85% > error11,2954,5.91%,105.79% > error12,2921,5.84%,106.98% > error13,3046,6.09%,102.59% > error14,3710,7.42%,84.23% > error15,3024,6.05%,103.34% > error16,3126,6.25%,99.97% > ALL,50000,100.00%,N/A > > So we now have a much more even distribution. I then changed the bindings > of the queues from 100 to 1000 and reran the test. I saw significant > increase in CPU usage and flow-control started kicking in (running this VM > on a single core on my laptop so not unexpected). This is in line with the > warning in the excerpt above and makes sense. > > This leaves me with the following questions: > > 1) Is it true to say that it is now just a matter of choosing what > tradeoff we want to make in terms of performance vs. uniformity of > distribution? > 2) Can anyone comment on Michael's previous comment on how using a UUID > would be handled as the value in the hashed header? The numbers above don't > seem to show a large difference between using a random integer and a UUID. > > Regards, > > Richard Raseley > > On Wed, Oct 16, 2013 at 3:34 PM, Michael Klishin wrote: > >> >> On oct 17, 2013, at 2:33 a.m., Richard Raseley >> wrote: >> >> > Do you mean to say that those "voided" messages didn't make it to a >> queue or weren't hashed but simply put to an arbitrary queue? >> >> The former but it was just a guess. >> -- >> MK >> >> Software Engineer, Pivotal/RabbitMQ >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From Bin.Chen at kla-tencor.com Thu Oct 17 18:18:31 2013 From: Bin.Chen at kla-tencor.com (Chen, Bin) Date: Thu, 17 Oct 2013 17:18:31 +0000 Subject: [rabbitmq-discuss] Upgrade Erlang only with Persistent queues Message-ID: Hello, Our system uses persistent queues only. We are not using cluster. We want to upgrade Erlang from 16B01 to 16B02. Is there a safe way to do that without losing any message in the persistent queues? Please let me know how to do that if you know. Thanks, BC -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Thu Oct 17 18:21:55 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 17 Oct 2013 21:21:55 +0400 Subject: [rabbitmq-discuss] Upgrade Erlang only with Persistent queues In-Reply-To: References: Message-ID: <747D1372-4BE8-4B98-B8E3-5D9B035F9DDA@rabbitmq.com> On oct 17, 2013, at 9:18 p.m., "Chen, Bin" wrote: > Is there a safe way to do that without losing any message in the persistent queues? > Please let me know how to do that if you know. If you publish messages as persistent and queues are durable, you will not lose any messages upon server shutdown. It's a good idea to back up your Mnesia directory (often located at /var/lib/rabbitmq/mnesia on Linux) before upgrade. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From mklishin at gopivotal.com Thu Oct 17 18:28:23 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 17 Oct 2013 21:28:23 +0400 Subject: [rabbitmq-discuss] Newbie question In-Reply-To: <2F6B2A1CD0466A4F8DC1F021C4AC865F02186248C6@WCEXCPMS01.hq.bn-corp.com> References: <2F6B2A1CD0466A4F8DC1F021C4AC865F02186248C6@WCEXCPMS01.hq.bn-corp.com> Message-ID: <2D8A8CF0-21EA-4C5C-BB3B-9CEF34B4FDFD@rabbitmq.com> On oct 17, 2013, at 8:22 p.m., Christian Rodriguez wrote: > ? Need an architectural diagram for hardware and any specific roles RabbitMQ nodes in a cluster don't have any roles (broadly speaking, some nodes host management database statistics but it's not particularly important). So you can consider to be "all the same". > ? Broker, exchange, queue servers, Do these functions all run in one server? They are all stored in the internal database of a node. There are no separate queue nodes or exchange nodes. See http://www.rabbitmq.com/tutorials/amqp-concepts.html just in case. > ? Need to worry about HA and failover, Not sure what exactly do you mean but take a look at http://www.rabbitmq.com/distributed.html http://www.rabbitmq.com/ha.html http://www.rabbitmq.com/clustering.html http://www.rabbitmq.com/shovel.html http://www.rabbitmq.com/reliability.html > ? If cluster is setup, do I need shared storage or can the data live in each node, best practice??? You don't need to provide shared storage and if you want to achieve high availability and good throughput, it's not a good idea. > ? I understand the software and data needs to co-exist on the same volume or disk as the OS as one large disk, is this true. I?d rather install the OS RHEL and software data in different drives, best practice??? You can move RabbitMQ database, configuration and so on to a separate volume if you really need to, see http://www.rabbitmq.com/install-rpm.html http://www.rabbitmq.com/relocate.html > ? Does rabbit MQ benefit from a fusion-io storage card? Or as long as there is memory I am covered??? If you publish messages as persistent (stored on disk), you will likely benefit from flash storage at high message rates. If not, it won't make much difference. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From Bin.Chen at kla-tencor.com Thu Oct 17 18:41:21 2013 From: Bin.Chen at kla-tencor.com (Chen, Bin) Date: Thu, 17 Oct 2013 17:41:21 +0000 Subject: [rabbitmq-discuss] Upgrade Erlang only with Persistent queues In-Reply-To: <747D1372-4BE8-4B98-B8E3-5D9B035F9DDA@rabbitmq.com> References: <747D1372-4BE8-4B98-B8E3-5D9B035F9DDA@rabbitmq.com> Message-ID: I forgot to tell we are using Windows 2008 Server. I firstly shut down RabbitMQ, killed the epmd.exe process. And then I replaced Erlang folder and ran install.exe -s. I also changed the registry to correct the path to erl.exe (I found 3 places). After doing all of these, I tried to start RabbitMQ service and it just crashed. Is there anything I missed? Thanks, BC -----Original Message----- From: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Michael Klishin Sent: Thursday, October 17, 2013 10:22 AM To: Discussions about RabbitMQ Subject: Re: [rabbitmq-discuss] Upgrade Erlang only with Persistent queues On oct 17, 2013, at 9:18 p.m., "Chen, Bin" wrote: > Is there a safe way to do that without losing any message in the persistent queues? > Please let me know how to do that if you know. If you publish messages as persistent and queues are durable, you will not lose any messages upon server shutdown. It's a good idea to back up your Mnesia directory (often located at /var/lib/rabbitmq/mnesia on Linux) before upgrade. MK From mklishin at gopivotal.com Thu Oct 17 18:48:01 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 17 Oct 2013 21:48:01 +0400 Subject: [rabbitmq-discuss] Upgrade Erlang only with Persistent queues In-Reply-To: References: <747D1372-4BE8-4B98-B8E3-5D9B035F9DDA@rabbitmq.com> Message-ID: <24B6E12A-D093-4331-BDD0-998CEC905456@rabbitmq.com> On oct 17, 2013, at 9:41 p.m., "Chen, Bin" wrote: > After doing all of these, I tried to start RabbitMQ service and it just crashed. Can you be more specific than "just crashed"? Can you post RabbitMQ log files or at least some kind of output? MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From terrysduncan at gmail.com Thu Oct 17 18:52:20 2013 From: terrysduncan at gmail.com (tsduncan) Date: Thu, 17 Oct 2013 10:52:20 -0700 (PDT) Subject: [rabbitmq-discuss] rabbitmq client timeouts, slow responses In-Reply-To: <0A522AF0-935C-4DA3-B75F-2C20C18F58DA@rabbitmq.com> References: <1381871593738-30510.post@n5.nabble.com> <0A522AF0-935C-4DA3-B75F-2C20C18F58DA@rabbitmq.com> Message-ID: Yes, I meant accepting the TCP connection. There are other applications that are using the bus (which I am not in control of) that use short term connections to send a message and then go away. I am dealing with a connection/socket shortage and that can be resolved. I'd like to make my app more resilient to such an issue by not giving up after 10 seconds. A python script connecting with the PIKA library will connect after 30-50 seconds. But there is something in the RabbitMQ Java library that times out after 10 seconds. I am searching for that timeout value so I can increase it. The connectionFactory.setConnectionTimeout() sounds like the right thing but does not affect this timeout. On Thu, Oct 17, 2013 at 3:30 AM, Michael Klishin-2 [via RabbitMQ] < ml-node+s1065348n30591h17 at n5.nabble.com> wrote: > On 16 Oct 2013, at 01:13, tsduncan <[hidden email]> > wrote: > > > 1. why the server is taking so long to respond causing > 10 second > responses > > By "responses" do you mean accepting TCP connections? > > If your applications constantly open and close connections > (RabbitMQ protocol primarily assumes long running connections), > RabbitMQ or OS may be temporarily low on available file descriptors. > > If you connect using hostnames instead of IPs, DNS resolution may take > a long time. > > Please post rabbitmqctl report output (Application Environment part of > it). > > MK > > > > _______________________________________________ > rabbitmq-discuss mailing list > [hidden email] > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > > ------------------------------ > If you reply to this email, your message will be added to the discussion > below: > > http://rabbitmq.1065348.n5.nabble.com/rabbitmq-client-timeouts-slow-responses-tp30510p30591.html > To unsubscribe from rabbitmq client timeouts, slow responses, click here > . > NAML > -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/rabbitmq-client-timeouts-slow-responses-tp30510p30626.html Sent from the RabbitMQ mailing list archive at Nabble.com. -------------- next part -------------- An HTML attachment was scrubbed... URL: From Bin.Chen at kla-tencor.com Thu Oct 17 19:10:32 2013 From: Bin.Chen at kla-tencor.com (Chen, Bin) Date: Thu, 17 Oct 2013 18:10:32 +0000 Subject: [rabbitmq-discuss] Upgrade Erlang only with Persistent queues In-Reply-To: <24B6E12A-D093-4331-BDD0-998CEC905456@rabbitmq.com> References: <747D1372-4BE8-4B98-B8E3-5D9B035F9DDA@rabbitmq.com> <24B6E12A-D093-4331-BDD0-998CEC905456@rabbitmq.com> Message-ID: It's my bad. I changed the wrong setting in registry. I should change the setting in CurrrentControlSet instead of ControlSet001. After correcting this, my RabbitMQ service can start correctly. Thanks, -BC -----Original Message----- From: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Michael Klishin Sent: Thursday, October 17, 2013 10:48 AM To: Discussions about RabbitMQ Subject: Re: [rabbitmq-discuss] Upgrade Erlang only with Persistent queues On oct 17, 2013, at 9:41 p.m., "Chen, Bin" wrote: > After doing all of these, I tried to start RabbitMQ service and it just crashed. Can you be more specific than "just crashed"? Can you post RabbitMQ log files or at least some kind of output? MK From jkuch at gopivotal.com Thu Oct 17 20:50:03 2013 From: jkuch at gopivotal.com (Jerry Kuch) Date: Thu, 17 Oct 2013 12:50:03 -0700 Subject: [rabbitmq-discuss] RabbitMQ - can we make use policies as load balancing in cluster? In-Reply-To: References: Message-ID: Hi, Rajasekhar: What sort of load balancing do you intend to achieve and what do you mean by "policies" in this context? Best regards, Jerry On Thu, Oct 17, 2013 at 6:22 AM, Rajasekhar P wrote: > We are trying to achieve load balancing in RabbitMQ cluster can we achieve > using policies? 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 mklishin at gopivotal.com Thu Oct 17 21:15:34 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Fri, 18 Oct 2013 00:15:34 +0400 Subject: [rabbitmq-discuss] RabbitMQ - can we make use policies as load balancing in cluster? In-Reply-To: References: Message-ID: <38A50CA9-FB0C-42DE-81A7-6FF93CD41836@rabbitmq.com> On oct 17, 2013, at 5:22 p.m., Rajasekhar P wrote: > We are trying to achieve load balancing in RabbitMQ cluster can we achieve using policies? Thanks Policies as in federation? Federated exchanges are more useful for replication than load balancing. Federated queues (coming in RabbitMQ 3.2) will allow for WAN-friendly load distribution between cluster nodes but the docs are not quite ready yet. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From mklishin at gopivotal.com Thu Oct 17 21:21:30 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Fri, 18 Oct 2013 00:21:30 +0400 Subject: [rabbitmq-discuss] ANN RabbitMQ tutorials ported to Go Message-ID: Go port of RabbitMQ tutorials is now [mostly] complete. Here's the code: https://github.com/rabbitmq/rabbitmq-tutorials/tree/master/go MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From tim at rabbitmq.com Thu Oct 17 22:32:34 2013 From: tim at rabbitmq.com (Tim Watson) Date: Thu, 17 Oct 2013 22:32:34 +0100 Subject: [rabbitmq-discuss] if stop RabbitMq Server Service, the Server try to create 'queues' folder ? In-Reply-To: <525FD94A.9090706@lshift.net> References: <1381301532757-30365.post@n5.nabble.com> <094AC605-5DAB-4F7F-9D79-6505401A3FE8@rabbitmq.com> <1381373643741-30386.post@n5.nabble.com> <1381459401802-30403.post@n5.nabble.com> <5257B7A5.1020003@rabbitmq.com> <1381977674730-30568.post@n5.nabble.com> <9F05187C-4AB0-4559-AB5B-C77916EA174F@rabbitmq.com> <1382003890698-30588.post@n5.nabble.com> <581B35B7-D0F6-4632-8A08-EE23FB3ED054@rabbitmq.com> <525FD94A.9090706@lshift.net> Message-ID: <60430DD3-D1AC-4A14-B881-17B5B02CE471@rabbitmq.com> On 17 Oct 2013, at 13:34, Ceri Storey wrote: >> Is the creation of folders in the internal database causing you a problem? > > I'd infer that he's maybe referring to the fact that traditionally, > having lots of entires in a single directory will cause accesses to > items in that directory to perform very poorly (even to the point of > causing significant performance problems for the machine overall). If > you fancy seeing this in practice, try creating ~10,000,000-100,000,000 > entries in a directory on ext4 (ideally on a sacraficial machine). > I see what you're saying. That wasn't what is causing slowness during shutdown in this case though - I can replicate the slow shutdown with only 5k durable queues, and its looks like it's down to an fsync. We've filed a bug and will be investigating. > The usual solution (usually found in mail transport agents like Exim/ > Postfix) to this is to use "hashed" directories, where instead of having > directories named as follows: > > /somewhere/queues/0123456789ABCDEF/ > > You have: > > /somewhere/queues/0/01/012/0124/0123456789ABCDEF/ > > So that the scan of each directory encounters far fewer items, making > the performance more logarithmic than linear. > Yeah, I've come across that before, but as you said, only in the context of having hundreds of thousands (or more) directories. Still, it's worth bearing that in mind too, so I'll add this point to bugzilla where it can hopefully engender further discussion. Thanks for bringing this up! Cheers, Tim From banveerad at gmail.com Thu Oct 17 18:33:56 2013 From: banveerad at gmail.com (Bana) Date: Thu, 17 Oct 2013 10:33:56 -0700 (PDT) Subject: [rabbitmq-discuss] Reading a whole message in rabbitmq-c v0.3.0 Message-ID: <203b6c8b-57f8-4956-b576-a805b3e685bb@googlegroups.com> Hi , Is there any API in the above mentioned version for reading the whole message instead of using amqp_dump. As i see there is no API amqp_read_message. If you can point out to any example it will be really great . -------------- next part -------------- An HTML attachment was scrubbed... URL: From alan.antonuk at gmail.com Fri Oct 18 05:52:30 2013 From: alan.antonuk at gmail.com (Alan Antonuk) Date: Thu, 17 Oct 2013 21:52:30 -0700 Subject: [rabbitmq-discuss] Reading a whole message in rabbitmq-c v0.3.0 In-Reply-To: <203b6c8b-57f8-4956-b576-a805b3e685bb@googlegroups.com> References: <203b6c8b-57f8-4956-b576-a805b3e685bb@googlegroups.com> Message-ID: I'd recommend highly upgrading to v0.4.1 if possible. If not take a look at amqp_consumer.c for an example of how to get started: https://github.com/alanxz/rabbitmq-c/blob/rabbitmq-c-v0.3.0/examples/amqp_consumer.c#L75 -Alan On Thu, Oct 17, 2013 at 10:33 AM, Bana wrote: > Hi , > Is there any API in the above mentioned version for reading the whole > message instead of using amqp_dump. As i see there is no API > amqp_read_message. If you can point out to any example it will be really > great . > > _______________________________________________ > 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 sekhar434145 at gmail.com Fri Oct 18 06:09:34 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Fri, 18 Oct 2013 10:39:34 +0530 Subject: [rabbitmq-discuss] RabbitMQ - can we make use policies as load balancing in cluster? In-Reply-To: <38A50CA9-FB0C-42DE-81A7-6FF93CD41836@rabbitmq.com> References: <38A50CA9-FB0C-42DE-81A7-6FF93CD41836@rabbitmq.com> Message-ID: Hi Jerry, In the clustered environment we have created the policies on one of the node and it will be mirrored in all the clustered nodes. Here is the link which we followed, http://www.rabbitmq.com/parameters.html#policies What we are trying to achieve to distribute specific queues/message to particular node, like - queue1, messages 1-100 goes to node1, queue1, messages 101-200 goes to node2, queue2, messages 201-300 goes to node3, queue2, messages 301-400 goes to node4, etc. Is this can be achieved using policies? Thanks, Rajasekhara On Fri, Oct 18, 2013 at 1:45 AM, Michael Klishin wrote: > > On oct 17, 2013, at 5:22 p.m., Rajasekhar P > wrote: > > > We are trying to achieve load balancing in RabbitMQ cluster can we > achieve using policies? Thanks > > Policies as in federation? > > Federated exchanges are more useful for replication than load balancing. > > Federated queues (coming in RabbitMQ 3.2) will allow for WAN-friendly > load distribution between cluster nodes but the docs are not quite ready > yet. > > MK > > > > > _______________________________________________ > 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 Oct 18 07:57:17 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Fri, 18 Oct 2013 10:57:17 +0400 Subject: [rabbitmq-discuss] RabbitMQ - can we make use policies as load balancing in cluster? In-Reply-To: References: <38A50CA9-FB0C-42DE-81A7-6FF93CD41836@rabbitmq.com> Message-ID: <6D9D02A8-E143-46DB-99A2-A0E282D28AC3@rabbitmq.com> On oct 18, 2013, at 9:09 a.m., Rajasekhar P wrote: > What we are trying to achieve to distribute specific queues/message to particular node, like - > > queue1, messages 1-100 goes to node1, > queue1, messages 101-200 goes to node2, > queue2, messages 201-300 goes to node3, > queue2, messages 301-400 goes to node4, etc. > > > Is this can be achieved using policies? You're still not specifying if you are using federation or mirrored queues. Mirrored queues cannot do that. Mirroring is about copying messages to 2+ nodes. Sharded queues is a feature that's being discussed, in the meantime, federated queues in 3.2 is the closest to load balancing a single queue you can get. Also, you can partition a message stream between queues using consistent hashing exchange [1] and techniques such as [2]. 1. https://github.com/rabbitmq/rabbitmq-consistent-hash-exchange 2. http://about.travis-ci.org/blog/2013-08-08-solving-the-puzzle-of-scalable-log-processing/ MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From sekhar434145 at gmail.com Fri Oct 18 08:13:11 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Fri, 18 Oct 2013 12:43:11 +0530 Subject: [rabbitmq-discuss] RabbitMQ - can we make use policies as load balancing in cluster? In-Reply-To: <6D9D02A8-E143-46DB-99A2-A0E282D28AC3@rabbitmq.com> References: <38A50CA9-FB0C-42DE-81A7-6FF93CD41836@rabbitmq.com> <6D9D02A8-E143-46DB-99A2-A0E282D28AC3@rabbitmq.com> Message-ID: Thanks for the reply MK, we are using mirrored queues. With this we cannot achieve load balancing rt? On Fri, Oct 18, 2013 at 12:27 PM, Michael Klishin wrote: > > On oct 18, 2013, at 9:09 a.m., Rajasekhar P > wrote: > > > What we are trying to achieve to distribute specific queues/message to > particular node, like - > > > > queue1, messages 1-100 goes to node1, > > queue1, messages 101-200 goes to node2, > > queue2, messages 201-300 goes to node3, > > queue2, messages 301-400 goes to node4, etc. > > > > > > Is this can be achieved using policies? > > You're still not specifying if you are using federation or mirrored queues. > > Mirrored queues cannot do that. Mirroring is about copying > messages to 2+ nodes. > > Sharded queues is a feature that's being discussed, in the meantime, > federated queues in 3.2 is the closest to load balancing a single queue > you can get. > > Also, you can partition a message stream between queues using consistent > hashing > exchange [1] and techniques such as [2]. > > 1. https://github.com/rabbitmq/rabbitmq-consistent-hash-exchange > 2. > http://about.travis-ci.org/blog/2013-08-08-solving-the-puzzle-of-scalable-log-processing/ > > MK > > > > > _______________________________________________ > 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 Oct 18 08:18:28 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Fri, 18 Oct 2013 11:18:28 +0400 Subject: [rabbitmq-discuss] RabbitMQ - can we make use policies as load balancing in cluster? In-Reply-To: References: <38A50CA9-FB0C-42DE-81A7-6FF93CD41836@rabbitmq.com> <6D9D02A8-E143-46DB-99A2-A0E282D28AC3@rabbitmq.com> Message-ID: <8FCEEF28-4DDE-4612-A25E-6C4EC292751D@rabbitmq.com> On 18 Oct 2013, at 11:13, Rajasekhar P wrote: > With this we cannot achieve load balancing rt? You can't. Mirrored queues are a high availability feature. They copy messages to more than one node. MK From sekhar434145 at gmail.com Fri Oct 18 08:40:16 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Fri, 18 Oct 2013 13:10:16 +0530 Subject: [rabbitmq-discuss] RabbitMQ - can we make use policies as load balancing in cluster? In-Reply-To: <8FCEEF28-4DDE-4612-A25E-6C4EC292751D@rabbitmq.com> References: <38A50CA9-FB0C-42DE-81A7-6FF93CD41836@rabbitmq.com> <6D9D02A8-E143-46DB-99A2-A0E282D28AC3@rabbitmq.com> <8FCEEF28-4DDE-4612-A25E-6C4EC292751D@rabbitmq.com> Message-ID: Thank you clarifying MK. Can you please clarify me this as well, with policies only we can achieve mirrored queues right? if not, how mirrored queues and policies are different? In the previous mail you have mentioned something about federated exchanges. Can we achieve load balancing with this? And how exactly it is different from Mirrored queues? Currently we are using 3.1.3, can you please share docs related federation? Thanks in advance. On Fri, Oct 18, 2013 at 12:48 PM, Michael Klishin wrote: > On 18 Oct 2013, at 11:13, Rajasekhar P wrote: > > > With this we cannot achieve load balancing rt? > > You can't. Mirrored queues are a high availability feature. They copy > messages > to more than one node. > > > MK > > > > _______________________________________________ > 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 Oct 18 08:51:47 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Fri, 18 Oct 2013 11:51:47 +0400 Subject: [rabbitmq-discuss] RabbitMQ - can we make use policies as load balancing in cluster? In-Reply-To: References: <38A50CA9-FB0C-42DE-81A7-6FF93CD41836@rabbitmq.com> <6D9D02A8-E143-46DB-99A2-A0E282D28AC3@rabbitmq.com> <8FCEEF28-4DDE-4612-A25E-6C4EC292751D@rabbitmq.com> Message-ID: <79BE6D67-B4A8-4E20-8115-9CECBE197F63@rabbitmq.com> On 18 Oct 2013, at 11:40, Rajasekhar P wrote: > Can you please clarify me this as well, with policies only we can achieve mirrored queues right? Policies is a way to add queue attributes in a centralised way. Instead of your apps knowing how to set up mirroring or replication, you may choose to configure a policy to do it instead. A policy is a named pattern, e.g. ^log.*, which matches queue names. For the names that match, policy is applied (extra attributes are added). At the moment, policies are used for two RabbitMQ features: mirrored queues (replication of message contents) and federated exchanges (primarily useful for WAN-friendly asynchronous replication). > if not, how mirrored queues and policies are different? See above. > In the previous mail you have mentioned something about federated exchanges. Can we achieve load balancing with this? Not really. Federated exchanges allow you replicate a stream of messages published to exchange X across N nodes or clusters. Federated queues are different. They allow load balancing of a single queue between nodes, however, this is a new feature that's only available in RabbitMQ 3.2 (nightlies) and need some documentation improvements. Feel free to give nightly builds a try but wait for 3.2 final release before deploying into production. > And how exactly it is different from Mirrored queues? Currently we are using 3.1.3, can you please share docs related federation? http://www.rabbitmq.com/federation.html Initial federated queues docs: http://next.rabbitmq.com/federated-queues.html MK From 314992959 at qq.com Fri Oct 18 09:06:42 2013 From: 314992959 at qq.com (3k4b251) Date: Fri, 18 Oct 2013 01:06:42 -0700 (PDT) Subject: [rabbitmq-discuss] if stop RabbitMq Server Service, the Server try to create 'queues' folder ? In-Reply-To: <60430DD3-D1AC-4A14-B881-17B5B02CE471@rabbitmq.com> References: <1381459401802-30403.post@n5.nabble.com> <5257B7A5.1020003@rabbitmq.com> <1381977674730-30568.post@n5.nabble.com> <9F05187C-4AB0-4559-AB5B-C77916EA174F@rabbitmq.com> <1382003890698-30588.post@n5.nabble.com> <581B35B7-D0F6-4632-8A08-EE23FB3ED054@rabbitmq.com> <525FD94A.9090706@lshift.net> <60430DD3-D1AC-4A14-B881-17B5B02CE471@rabbitmq.com> Message-ID: <1382083602379-30642.post@n5.nabble.com> It's seems like that with 30000 durable queues in database , The Server start up take more time than it shutdown. erl.exe 's memory grew up too fast and big more than 2G. also take 75% CPU. it take more than 30 minutes to see the memory stable and the CPU usage cone down. is there some ideas can Let the Server start up faster? -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/if-stop-RabbitMq-Server-Service-the-Server-try-to-create-queues-folder-tp30359p30642.html Sent from the RabbitMQ mailing list archive at Nabble.com. From sekhar434145 at gmail.com Fri Oct 18 10:09:13 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Fri, 18 Oct 2013 14:39:13 +0530 Subject: [rabbitmq-discuss] RabbitMQ - can we make use policies as load balancing in cluster? In-Reply-To: <79BE6D67-B4A8-4E20-8115-9CECBE197F63@rabbitmq.com> References: <38A50CA9-FB0C-42DE-81A7-6FF93CD41836@rabbitmq.com> <6D9D02A8-E143-46DB-99A2-A0E282D28AC3@rabbitmq.com> <8FCEEF28-4DDE-4612-A25E-6C4EC292751D@rabbitmq.com> <79BE6D67-B4A8-4E20-8115-9CECBE197F63@rabbitmq.com> Message-ID: Thank you very much MK for detailed explanation. On Fri, Oct 18, 2013 at 1:21 PM, Michael Klishin wrote: > On 18 Oct 2013, at 11:40, Rajasekhar P wrote: > > > Can you please clarify me this as well, with policies only we can > achieve mirrored queues right? > > Policies is a way to add queue attributes in a centralised way. Instead of > your apps knowing how to set up mirroring or > replication, you may choose to configure a policy to do it instead. > > A policy is a named pattern, e.g. ^log.*, which matches queue names. For > the names that match, policy is applied > (extra attributes are added). > > At the moment, policies are used for two RabbitMQ features: mirrored > queues (replication of message contents) and > federated exchanges (primarily useful for WAN-friendly asynchronous > replication). > > > if not, how mirrored queues and policies are different? > > See above. > > > In the previous mail you have mentioned something about federated > exchanges. Can we achieve load balancing with this? > > Not really. Federated exchanges allow you replicate a stream of messages > published to exchange X across N nodes > or clusters. > > Federated queues are different. They allow load balancing of a single > queue between nodes, however, > this is a new feature that's only available in RabbitMQ 3.2 (nightlies) > and need some documentation > improvements. > > Feel free to give nightly builds a try but wait for 3.2 final release > before deploying into production. > > > And how exactly it is different from Mirrored queues? Currently we are > using 3.1.3, can you please share docs related federation? > > http://www.rabbitmq.com/federation.html > > Initial federated queues docs: > http://next.rabbitmq.com/federated-queues.html > > MK > > > > _______________________________________________ > 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 tim at rabbitmq.com Fri Oct 18 11:11:28 2013 From: tim at rabbitmq.com (Tim Watson) Date: Fri, 18 Oct 2013 11:11:28 +0100 Subject: [rabbitmq-discuss] if stop RabbitMq Server Service, the Server try to create 'queues' folder ? In-Reply-To: <1382083602379-30642.post@n5.nabble.com> References: <1381459401802-30403.post@n5.nabble.com> <5257B7A5.1020003@rabbitmq.com> <1381977674730-30568.post@n5.nabble.com> <9F05187C-4AB0-4559-AB5B-C77916EA174F@rabbitmq.com> <1382003890698-30588.post@n5.nabble.com> <581B35B7-D0F6-4632-8A08-EE23FB3ED054@rabbitmq.com> <525FD94A.9090706@lshift.net> <60430DD3-D1AC-4A14-B881-17B5B02CE471@rabbitmq.com> <1382083602379-30642.post@n5.nabble.com> Message-ID: As I mentioned to Ceri in my previous post, we've replicated this problem (with 5k durable queues) and have filed a bug to look at what's happening. Any progress we make towards solving this issue will occur on a branch named bug25827. Thanks for reporting this. We will try to get it resolved asap. Tim On 18 Oct 2013, at 09:06, 3k4b251 wrote: > It's seems like that with 30000 durable queues in database , > The Server start up take more time than it shutdown. > erl.exe 's memory grew up too fast and big more than 2G. also > take 75% CPU. it take more than 30 minutes to see the memory > stable and the CPU usage cone down. > is there some ideas can Let the Server start up faster? > > > > > -- > View this message in context: http://rabbitmq.1065348.n5.nabble.com/if-stop-RabbitMq-Server-Service-the-Server-try-to-create-queues-folder-tp30359p30642.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 emile at rabbitmq.com Fri Oct 18 11:43:10 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Fri, 18 Oct 2013 11:43:10 +0100 Subject: [rabbitmq-discuss] RabbitMQ's WebSocket broken In-Reply-To: <47e4346c-7cec-4f09-bb10-9e7917274958@googlegroups.com> References: <47e4346c-7cec-4f09-bb10-9e7917274958@googlegroups.com> Message-ID: <526110BE.90403@rabbitmq.com> Hi, On 11/10/13 07:58, Petri Luojus wrote: > GET /stomp/websocket HTTP/1.1 > Upgrade: websocket > Connection: Upgrade > Host: xxx.yyy:15674 > Origin: null > Sec-WebSocket-Protocol: v10.stomp, v11.stomp > Pragma: no-cache > Cache-Control: no-cache > Sec-WebSocket-Key: YRpCwsRP6s2ounZHK4soEQ== > Sec-WebSocket-Version: 13 > Sec-WebSocket-Extensions: x-webkit-deflate-frame > User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 > (KHTML, like Gecko) Chrome/30.0.1599.69 Safari/537.36 > Cookie: auth=bHVvanVzOk15aGthbGU1; > m=1933:600%7C5|2377:large|2491:chart|2663:t|6967:t|34e2:|4e99:t|2c69:t|2a03:t|745a:t|77cb:t|5cf4:t|3a95:avg|54b5:small|29b3:60%7C5|3a8e:chart|54ae:small|29ac:600%7C5|47ba:t|e69:chart|45b9:600%7C5|4a01:t|ca3:t|79d4:chart|640c:small|678e:60%7C5|4e71:large|4d66:500|1d98:t|6cfc:t|15cc:t > > HTTP/1.1 101 Switching Protocols > Upgrade: websocket > Sec-Websocket-Accept: DGeZKxS98lD43p+4Gkhb17W29E0= > Connection: Upgrade Can you confirm what the code you used to generate these headers, and which revision of stomp.js? I get slightly different headers and no error when I use the latest version of Chrome and the web stomp examples that ship in http://hg.rabbitmq.com/rabbitmq-web-stomp-examples/ GET ws://localhost:15674/stomp/584/zw7on1yc/websocket HTTP/1.1 Pragma: no-cache Origin: http://localhost:15670 Host: localhost:15674 Sec-WebSocket-Key: VE4morwMfRKFtxmcVUdddQ== User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36 Upgrade: websocket Sec-WebSocket-Extensions: x-webkit-deflate-frame Cache-Control: no-cache Connection: Upgrade Sec-WebSocket-Version: 13 HTTP/1.1 101 Switching Protocols Connection: Upgrade Sec-Websocket-Accept: x4EO4xRPJ3Cc9kzEnvlv2ToCSvc= Upgrade: websocket -Emile From luojus at gmail.com Fri Oct 18 12:04:57 2013 From: luojus at gmail.com (Petri Luojus) Date: Fri, 18 Oct 2013 14:04:57 +0300 Subject: [rabbitmq-discuss] RabbitMQ's WebSocket broken In-Reply-To: <526110BE.90403@rabbitmq.com> References: <47e4346c-7cec-4f09-bb10-9e7917274958@googlegroups.com> <526110BE.90403@rabbitmq.com> Message-ID: Hi, stomp.js is the latest, found in https://github.com/jmesnil/stomp-websocket/blob/master/lib/stomp.js. I'm using the following code. Note, that I'm not using SockJS. var client = Stomp.client('ws://vm0077.virtues.fi:15674/stomp/websocket'); client.heartbeat.outgoing = 20000; client.heartbeat.incoming = 0; client.debug = function(str) { $("#debug").append(str + "\n"); }; var on_connect = function() { subId = client.subscribe('/exchange/capacity/nothing.special', handleMessage); console.log('connected'); var data = "Hello World!"; client.send('/exchange/capacity/nothing.special', {}, data); }; var handleMessage = function(d) { $("#messages").append(d.body + "\n"); }; var on_error = function(error) { console.log(error); }; client.connect('user', 'pass', on_connect, on_error, '/'); Br, Petri Petri Luojus +358 41 437 3592 Oulu, Finland luojus at gmail.com On Fri, Oct 18, 2013 at 1:43 PM, Emile Joubert wrote: > > Hi, > > On 11/10/13 07:58, Petri Luojus wrote: > > > GET /stomp/websocket HTTP/1.1 > > Upgrade: websocket > > Connection: Upgrade > > Host: xxx.yyy:15674 > > Origin: null > > Sec-WebSocket-Protocol: v10.stomp, v11.stomp > > Pragma: no-cache > > Cache-Control: no-cache > > Sec-WebSocket-Key: YRpCwsRP6s2ounZHK4soEQ== > > Sec-WebSocket-Version: 13 > > Sec-WebSocket-Extensions: x-webkit-deflate-frame > > User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 > > (KHTML, like Gecko) Chrome/30.0.1599.69 Safari/537.36 > > Cookie: auth=bHVvanVzOk15aGthbGU1; > > > m=1933:600%7C5|2377:large|2491:chart|2663:t|6967:t|34e2:|4e99:t|2c69:t|2a03:t|745a:t|77cb:t|5cf4:t|3a95:avg|54b5:small|29b3:60%7C5|3a8e:chart|54ae:small|29ac:600%7C5|47ba:t|e69:chart|45b9:600%7C5|4a01:t|ca3:t|79d4:chart|640c:small|678e:60%7C5|4e71:large|4d66:500|1d98:t|6cfc:t|15cc:t > > > > HTTP/1.1 101 Switching Protocols > > Upgrade: websocket > > Sec-Websocket-Accept: DGeZKxS98lD43p+4Gkhb17W29E0= > > Connection: Upgrade > > Can you confirm what the code you used to generate these headers, and > which revision of stomp.js? I get slightly different headers and no > error when I use the latest version of Chrome and the web stomp examples > that ship in > > http://hg.rabbitmq.com/rabbitmq-web-stomp-examples/ > > > GET ws://localhost:15674/stomp/584/zw7on1yc/websocket HTTP/1.1 > Pragma: no-cache > Origin: http://localhost:15670 > Host: localhost:15674 > Sec-WebSocket-Key: VE4morwMfRKFtxmcVUdddQ== > User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, > like Gecko) Chrome/30.0.1599.101 Safari/537.36 > Upgrade: websocket > Sec-WebSocket-Extensions: x-webkit-deflate-frame > Cache-Control: no-cache > Connection: Upgrade > Sec-WebSocket-Version: 13 > > HTTP/1.1 101 Switching Protocols > Connection: Upgrade > Sec-Websocket-Accept: x4EO4xRPJ3Cc9kzEnvlv2ToCSvc= > Upgrade: websocket > > > > > > -Emile > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From tyger2007 at gmail.com Fri Oct 18 12:14:22 2013 From: tyger2007 at gmail.com (=?utf-8?B?dHlnZXIyMDA3QGdtYWlsLmNvbQ==?=) Date: Fri, 18 Oct 2013 12:14:22 +0100 Subject: [rabbitmq-discuss] =?utf-8?q?Rabbit_exchange_to_exchange_implemen?= =?utf-8?q?tation?= Message-ID: <5261180e.2123b40a.4e07.ffff8c41@mx.google.com> Hello and good day , I am using rabbitmq for an application , I have an exchange to exchange binding like this Clientapp1 connects to rabbitmq server creates a fanout exchange and binds it to an exchange ( post exchange that is always on the server ) this is more like an exchange to exchange binding so another consumer can always try to read from a central exchange instead of binding to all the exchanges he subscribed to , I have two questions based on this implementation 1)since the central exchange(post exchange) is a topic exchange on the server with multiple clientapps binding their exchange to it , how do I route the messages effectively to consumers that have queues bound to the post exchange based on their binding keys 2)if consumer3 was not alive when the message was sent to post exchange , how does the app fetch all the sent messages once he connects to the server . Please any extra tips on this design approach is welcomed , thanks . Sent from my HTC I.Tyger -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Fri Oct 18 12:20:56 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Fri, 18 Oct 2013 15:20:56 +0400 Subject: [rabbitmq-discuss] |Spam| Rabbit exchange to exchange implementation In-Reply-To: <5261180e.2123b40a.4e07.ffff8c41@mx.google.com> References: <5261180e.2123b40a.4e07.ffff8c41@mx.google.com> Message-ID: On 18 Oct 2013, at 15:14, "tyger2007 at gmail.com" wrote: > 1)since the central exchange(post exchange) is a topic exchange on the server with multiple clientapps binding their exchange to it , how do I route the messages effectively to consumers that have queues bound to the post exchange based on their binding keys If messages get to the topic exchange via a fanout exchange and e2e bindings, it is not any different from publishing directly to the topic exchange. > 2)if consumer3 was not alive when the message was sent to post exchange , how does the app fetch all the sent messages once he connects to the server . This has been answered before: http://rabbitmq.1065348.n5.nabble.com/Fetching-messages-from-exchange-once-I-connect-tp30462p30464.html MK From brianin3d at yahoo.com Fri Oct 18 19:20:50 2013 From: brianin3d at yahoo.com (Brian Hammond) Date: Fri, 18 Oct 2013 11:20:50 -0700 (PDT) Subject: [rabbitmq-discuss] abnormally large memory use in "binaries" Message-ID: <1382120450.84963.YahooMailNeo@web122002.mail.ne1.yahoo.com> I ran the first command for 24 hours every 10 minutes, but the second command blew up rabbit most of the time: Error: unable to connect to node rabbit at project2: nodedown DIAGNOSTICS =========== nodes in question: [rabbit at project2] hosts, their running nodes and ports: - project2: [{rabbitmqctl2916,46327}] current node details: - node name: rabbitmqctl2916 at project2 - home dir: /var/lib/rabbitmq - cookie hash: g9gANsnT4AWb9xKsznR+nA== I stopped the collection script after 11 iterations, but only have 5 files with anything in them.? They range in size from 109k to over 1gig.? Compressed they are like 280mb (https://www.dropbox.com/s/jvaaohg59cl6gn3/rabbit-memory-details.tgz), not sure if it is useful or not since it was for such a small, and irregular, time interval. Additionally, a colleague pointed out an interesting failure case where we were out of memory with 4 messages in queues. -------------- next part -------------- An HTML attachment was scrubbed... URL: From brianin3d at yahoo.com Fri Oct 18 20:33:04 2013 From: brianin3d at yahoo.com (Brian Hammond) Date: Fri, 18 Oct 2013 12:33:04 -0700 (PDT) Subject: [rabbitmq-discuss] abnormally large memory use in "binaries" Message-ID: <1382124784.35713.YahooMailNeo@web122001.mail.ne1.yahoo.com> This is a topper: ?https://www.dropbox.com/s/ccq0zidcck2ca8j/rabbitMQ-dead-with-0-messages.png Using 18gb with 0 messages... -------------- next part -------------- An HTML attachment was scrubbed... URL: From ranjitiyer at gmail.com Fri Oct 18 23:04:15 2013 From: ranjitiyer at gmail.com (ranjitiyer) Date: Fri, 18 Oct 2013 15:04:15 -0700 (PDT) Subject: [rabbitmq-discuss] Erlang requirement in RabbitMQ Message-ID: <1382133855014-30651.post@n5.nabble.com> Hi, I realize this is a RabbitMQ forum and I have an Erlang question. We build a COTS product and are considering including RabbitMQ as our messaging system. We can't expect our customers to install Erlang as a requirement and so we must bundle it with our software. I haven't found a Zip version of Erlang OTP for Windows and so I was wondering what my options were. 1. Include the Erlang Installer and run it as part of our product installer. 2. Zip up the Erlang dir structure and have the installer Unzip it on the customer's machine. We like RabbitMQ but feel the Erlang requirement complicates the setup/installer story. Any insights are appreciated. Thanks, Ranjit -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Erlang-requirement-in-RabbitMQ-tp30651.html Sent from the RabbitMQ mailing list archive at Nabble.com. From jkuch at gopivotal.com Fri Oct 18 23:22:21 2013 From: jkuch at gopivotal.com (Jerry Kuch) Date: Fri, 18 Oct 2013 15:22:21 -0700 Subject: [rabbitmq-discuss] Erlang requirement in RabbitMQ In-Reply-To: <1382133855014-30651.post@n5.nabble.com> References: <1382133855014-30651.post@n5.nabble.com> Message-ID: On Fri, Oct 18, 2013 at 3:04 PM, ranjitiyer wrote: > Hi, > > I realize this is a RabbitMQ forum and I have an Erlang question. > > We build a COTS product and are considering including RabbitMQ as our > messaging system. We can't expect our customers to install Erlang as a > requirement and so we must bundle it with our software. I haven't found a > Zip version of Erlang OTP for Windows and so I was wondering what my > options > were. > > 1. Include the Erlang Installer and run it as part of our product > installer. > 2. Zip up the Erlang dir structure and have the installer Unzip it on the > customer's machine. > > We like RabbitMQ but feel the Erlang requirement complicates the > setup/installer story. Any insights are appreciated > You may want to lean more toward 1 than 2. The Erlang install on Windows leaves some stuff in the registry you're not likely to get by just unzipping the directories it ends up in. Whether you can live without those or not, I'm not sure. Maybe. Best regards, Jerry -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Sat Oct 19 16:17:37 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Sat, 19 Oct 2013 19:17:37 +0400 Subject: [rabbitmq-discuss] Erlang requirement in RabbitMQ In-Reply-To: <1382133855014-30651.post@n5.nabble.com> References: <1382133855014-30651.post@n5.nabble.com> Message-ID: <836D95D9-C6FE-48F3-992E-D3CA49C45696@rabbitmq.com> On 19 Oct 2013, at 02:04, ranjitiyer wrote: > 1. Include the Erlang Installer and run it as part of our product installer. > 2. Zip up the Erlang dir structure and have the installer Unzip it on the > customer's machine. I'd recommend 1 unless it is particularly difficult to do. Erlang is fairly easy to embed on other OSes, for example, RabbitMQ now has a standalone OS X version that requires no Erlang runtime installation. Riak has been doing the same for a while for all OSes they support. So you may get a much more in depth answer on the Erlang mailing list. And, quite a few folks there are aware of RabbitMQ ;) MK From dan at danlarkin.org Mon Oct 21 01:36:16 2013 From: dan at danlarkin.org (Dan Larkin) Date: Sun, 20 Oct 2013 17:36:16 -0700 Subject: [rabbitmq-discuss] Can I get this behavior through a custom plugin? Message-ID: <52140B98-DE17-4E9D-BFD0-1562923F918F@danlarkin.org> Hi all, I have an interesting serialization requirement for my app: I need to enforce that only one message with the same AMQP header "client" is ever out for delivery in any given snapshot of time. Right now I have messages flowing into rabbit to a "direct" exchange, all with "client" headers. And since I have multiple worker nodes pulling from the queue they're ending up in, it's possible for two messages with the same "client" header to be processed at the same time. And the goal here is to prevent that from happening. I thought at first this might be possible with a custom exchange, but afaict exchanges are basically limited to controlling how messages get routed, not how they get delivered. So my question is simply: is this behavior possible? Thanks for your help, Dan -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 195 bytes Desc: Message signed with OpenPGP using GPGMail URL: From norwen_qian at 163.com Mon Oct 21 02:34:05 2013 From: norwen_qian at 163.com (J.Tsien) Date: Mon, 21 Oct 2013 09:34:05 +0800 (CST) Subject: [rabbitmq-discuss] about the installation of rabbitmq Message-ID: <420a391e.27f4.141d8a5c796.Coremail.norwen_qian@163.com> Hi, I have encountered a problem recently when I try to install RabbitMQ on CentOS 6.4. I've already installed the newest version of Erlang(R16B02). See [root@ XXX]# erl -version Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 5.10.3 But when I try to install rabbitmq-server-3.1.5-1.noarch.rpm , it still informs me of message which reads "--> Processing Dependency: erlang >= R12B-3 for package: rabbitmq-server-3.1.5-1.noarch". Why cannot rabbitmq detect erlang? How to solve this problem? Best regards! Jade Tsien -- Jade R. Tsien Tel:13121409520 Addr:No.16,Nanping East Road,Dongling district,Shenyang,Liaoning,China,110168 -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkuch at gopivotal.com Mon Oct 21 04:42:04 2013 From: jkuch at gopivotal.com (Jerry Kuch) Date: Sun, 20 Oct 2013 20:42:04 -0700 Subject: [rabbitmq-discuss] about the installation of rabbitmq In-Reply-To: <420a391e.27f4.141d8a5c796.Coremail.norwen_qian@163.com> References: <420a391e.27f4.141d8a5c796.Coremail.norwen_qian@163.com> Message-ID: <4AE25D2E-C41B-4DF1-876F-54B2B07AEDC9@gopivotal.com> How is you install that R16 Erlang? If you built from source or otherwise installed without RPM the Rabbit RPM isn't going to find the Erlang it's marked as dependent upon. Sent from my iPhone (Brevity and typos are hopefully the result of 1-fingered typing rather than rudeness or illiteracy). > On Oct 20, 2013, at 6:34 PM, "J.Tsien" wrote: > > > Hi, I have encountered a problem recently when I try to install RabbitMQ on CentOS 6.4. I've already installed the newest version of Erlang(R16B02). See > [root@ XXX]# erl -version > Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 5.10.3 > > But when I try to install rabbitmq-server-3.1.5-1.noarch.rpm , it still informs me of message which reads "--> Processing Dependency: erlang >= R12B-3 for package: rabbitmq-server-3.1.5-1.noarch". > Why cannot rabbitmq detect erlang? How to solve this problem? > Best regards! > Jade Tsien > > > > > -- > Jade R. Tsien > Tel:13121409520 > Addr:No.16,Nanping East Road,Dongling district,Shenyang,Liaoning,China,110168 > > > _______________________________________________ > 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 sekhar434145 at gmail.com Mon Oct 21 08:18:26 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Mon, 21 Oct 2013 12:48:26 +0530 Subject: [rabbitmq-discuss] RabbitMQ - How to recover messages in case of unfinished consumed state? Message-ID: Hi Team, I want to test unfinished consumed state scenario using Spring-AMQP. Could anyone please explain how to retrieve unfinished messages by consumers? Thanks in advance! -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Mon Oct 21 09:03:49 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Mon, 21 Oct 2013 12:03:49 +0400 Subject: [rabbitmq-discuss] Can I get this behavior through a custom plugin? In-Reply-To: <52140B98-DE17-4E9D-BFD0-1562923F918F@danlarkin.org> References: <52140B98-DE17-4E9D-BFD0-1562923F918F@danlarkin.org> Message-ID: <8991D9BA-DA98-40D1-AFDA-721D21656984@rabbitmq.com> On oct 21, 2013, at 4:36 a.m., Dan Larkin wrote: > So my question is simply: is this behavior possible? With a custom exchange you can prevent duplicates from being routed but it will require scanning the entire queue. It may be possible with a plugin, however, using a coordination service (e.g. etcd or ZooKeeper, or even a K/V store like Redis) may be an easier way out. Upgrading a plugin will require a node restart. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From mklishin at gopivotal.com Mon Oct 21 09:04:52 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Mon, 21 Oct 2013 12:04:52 +0400 Subject: [rabbitmq-discuss] about the installation of rabbitmq In-Reply-To: <420a391e.27f4.141d8a5c796.Coremail.norwen_qian@163.com> References: <420a391e.27f4.141d8a5c796.Coremail.norwen_qian@163.com> Message-ID: <2A3FFF86-717B-4CA7-9315-B5094D273833@rabbitmq.com> On oct 21, 2013, at 5:34 a.m., J.Tsien wrote: > Why cannot rabbitmq detect erlang? How to solve this problem? Install Erlang from an PRM package (e.g. from Erlang Solutions). MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From mklishin at gopivotal.com Mon Oct 21 09:06:56 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Mon, 21 Oct 2013 12:06:56 +0400 Subject: [rabbitmq-discuss] RabbitMQ - How to recover messages in case of unfinished consumed state? In-Reply-To: References: Message-ID: <6D63070D-C78E-4342-B11A-B49215278A5C@rabbitmq.com> On oct 21, 2013, at 11:18 a.m., Rajasekhar P wrote: > I want to test unfinished consumed state scenario using Spring-AMQP. Could anyone please explain how to retrieve unfinished messages by consumers? What do you mean by "unfinished messages"? As it was recommended to you in earlier threads, to force a delivery to be requeued, all you need to do is to close the channel it was on. Add 2 consumers in your test, one that closes the channel on purpose, another one that does something useful. Publish N messages that are routed to their queue, in the end make sure you have N messages processed. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From hadas100.b at gmail.com Mon Oct 21 09:25:51 2013 From: hadas100.b at gmail.com (Hadas) Date: Mon, 21 Oct 2013 01:25:51 -0700 (PDT) Subject: [rabbitmq-discuss] RabbitMQ with many consumers caused error: closing AMQP connection <> ( -> ): {inet_error, etimedout} Message-ID: <9d095278-f4d1-4dab-8333-53268e5d079e@googlegroups.com> Hi, I try to use 50 consumers and more for our queues. I use 64 bit server for the rabbitMQ. But I get the error: =ERROR REPORT==== === closing AMQP connection < > ( -> ): {inet_error,etimedout} What caused to this problem? I see that a load-balance or firewall can be the reason. If this is the problem what should I do to fix it? Thanks in advance. -------------- next part -------------- An HTML attachment was scrubbed... URL: From emile at rabbitmq.com Mon Oct 21 09:45:39 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Mon, 21 Oct 2013 09:45:39 +0100 Subject: [rabbitmq-discuss] Can I get this behavior through a custom plugin? In-Reply-To: <52140B98-DE17-4E9D-BFD0-1562923F918F@danlarkin.org> References: <52140B98-DE17-4E9D-BFD0-1562923F918F@danlarkin.org> Message-ID: <5264E9B3.1090102@rabbitmq.com> On 21/10/13 01:36, Dan Larkin wrote: > So my question is simply: is this behavior possible? You could create a queue for each client and constrain the max-length to 1. This is far from ideal since each worker will need a separate subscription to each possible client-id, and the queue length limit ignores unacknowledged messages. I agree with Michael that a key-value store or external synchronisation is a better solution for your problem. -Emile -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: OpenPGP digital signature URL: From hadas100.b at gmail.com Mon Oct 21 09:59:02 2013 From: hadas100.b at gmail.com (Hadas) Date: Mon, 21 Oct 2013 01:59:02 -0700 (PDT) Subject: [rabbitmq-discuss] RabbitMQ with many consumers caused error: closing AMQP connection <> ( -> ): {inet_error, etimedout} In-Reply-To: <9d095278-f4d1-4dab-8333-53268e5d079e@googlegroups.com> References: <9d095278-f4d1-4dab-8333-53268e5d079e@googlegroups.com> Message-ID: <35c1b52c-339a-415d-8a28-614a94e90e38@googlegroups.com> I check about the load-balance and see we don't use it. And firewall doesn't look like the problem because 20 consumers work without an error. So what can be the reason for the error I get? Thanks, -------------- next part -------------- An HTML attachment was scrubbed... URL: From emile at rabbitmq.com Mon Oct 21 10:04:57 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Mon, 21 Oct 2013 10:04:57 +0100 Subject: [rabbitmq-discuss] RabbitMQ with many consumers caused error: closing AMQP connection <> ( -> ): {inet_error, etimedout} In-Reply-To: <9d095278-f4d1-4dab-8333-53268e5d079e@googlegroups.com> References: <9d095278-f4d1-4dab-8333-53268e5d079e@googlegroups.com> Message-ID: <5264EE39.2030605@rabbitmq.com> On 21/10/13 09:25, Hadas wrote: > =ERROR REPORT==== === > closing AMQP connection < > ( -> ): > {inet_error,etimedout} > > What caused to this problem? > > I see that a load-balance or firewall can be the reason. > If this is the problem what should I do to fix it? I'm afraid it will be very difficult for anyone to give precise instructions without knowing more details about your network infrastructure. This is unlikely to be the best forum for getting help on the configuration of your network equipment. -Emile From hadas100.b at gmail.com Mon Oct 21 10:09:00 2013 From: hadas100.b at gmail.com (Hadas) Date: Mon, 21 Oct 2013 12:09:00 +0300 Subject: [rabbitmq-discuss] RabbitMQ with many consumers caused error: closing AMQP connection <> ( -> ): {inet_error, etimedout} In-Reply-To: <5264EE39.2030605@rabbitmq.com> References: <9d095278-f4d1-4dab-8333-53268e5d079e@googlegroups.com> <5264EE39.2030605@rabbitmq.com> Message-ID: Thanks on your reply. I checked about the load-balance and see we don't use it. And firewall doesn't look like the problem because 20 consumers work without an error. So what can be the reason for the error I get when use many consumer(50)? Thanks. 2013/10/21 Emile Joubert > On 21/10/13 09:25, Hadas wrote: > > > =ERROR REPORT==== === > > closing AMQP connection < > ( -> ): > > {inet_error,etimedout} > > > > What caused to this problem? > > > > I see that a load-balance or firewall can be the reason. > > If this is the problem what should I do to fix it? > > I'm afraid it will be very difficult for anyone to give precise > instructions without knowing more details about your network > infrastructure. This is unlikely to be the best forum for getting help > on the configuration of your network equipment. > > > > > -Emile > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Mon Oct 21 10:39:58 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Mon, 21 Oct 2013 10:39:58 +0100 Subject: [rabbitmq-discuss] Riak exchange fails in exchange.declare In-Reply-To: References: <60c667be-dfa4-40da-8eab-38f3d42e8b85@googlegroups.com> <525E9822.3080203@rabbitmq.com> Message-ID: <5264F66E.7030305@rabbitmq.com> On 16/10/2013 7:14PM, Brett Cameron wrote: > RabbitMQ 3.1.0, which I think should be compatible > with 3.1.5, but don't quote me on it. Yes it is, we maintain plugin binary compatibility across minor version differences like that. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From mklishin at gopivotal.com Mon Oct 21 10:41:01 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Mon, 21 Oct 2013 13:41:01 +0400 Subject: [rabbitmq-discuss] RabbitMQ with many consumers caused error: closing AMQP connection <> ( -> ): {inet_error, etimedout} In-Reply-To: References: <9d095278-f4d1-4dab-8333-53268e5d079e@googlegroups.com> <5264EE39.2030605@rabbitmq.com> Message-ID: <163EFAC3-2CCB-410D-B5D8-711C13CFD5A3@rabbitmq.com> Hadas: > So what can be the reason for the error I get when use many consumer(50)? {inet_error,etimedout} indicates a timed out TCP connection. No, the number of consumers is very unlikely to be the issue. MK -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From simon at rabbitmq.com Mon Oct 21 10:45:24 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Mon, 21 Oct 2013 10:45:24 +0100 Subject: [rabbitmq-discuss] Upgrading of RabbitMq clusters connected with federation plugin from 2.8.7 to version 3.1.0 In-Reply-To: References: Message-ID: <5264F7B4.5080003@rabbitmq.com> On 17/10/2013 3:41PM, Viraj Gupte wrote: > Hi All, > I have two rabbitmq clusters A and B connected to each other via > federation plugin in bidirectional manner.Both of them run version 2.8.7. > I am planning to upgrade cluster A to 3.1.0 to check how federation > works with the cluster with 2.8.7 version(cluster B). > What should be my approach so as to keep the federation config intact on > cluster A along with messages and queues Federation does not require that brokers be the same version. So you can upgrade clusters A and B at different times. Note that the federation configuration mechanism changed in 3.0.0 so you will need to redo the federation config in each cluster as you upgrade it; see http://www.rabbitmq.com/blog/2012/11/19/breaking-things-with-rabbitmq-3-0/ Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From sekhar434145 at gmail.com Mon Oct 21 11:40:09 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Mon, 21 Oct 2013 16:10:09 +0530 Subject: [rabbitmq-discuss] Does RabbitMQ clustering used only for HA or load balancing or both? Message-ID: Does RabbitMQ clustering is used only for HA right? not for really achieving load balancing, am right? Here load balancing means distributing messages to specific node based on load. Please clarify me on this. Thanks advance. -------------- next part -------------- An HTML attachment was scrubbed... URL: From Rohit.Patel2 at techmahindra.com Mon Oct 21 12:06:26 2013 From: Rohit.Patel2 at techmahindra.com (Rohit Patle) Date: Mon, 21 Oct 2013 11:06:26 +0000 Subject: [rabbitmq-discuss] Auto delete Queue disappears while using with direct exchange. Message-ID: <27E054594442884E9A46DBCF9AE74081610343@BSDMSATMBX001.mahindrasatyam.ad> Hi Michael, As reported before also I am losing my Auto-delete queues in between(under working condition) all of sudden, For your reference please refer the below Error log. Also the my set-up details are as: Client library: rabbitmq-c-master Version: 0.3.0 Server library: rabbitmq Version 3.1.5 Erlang Version: R16B01 ERROR REPORT ============= 1. =INFO REPORT==== 21-Oct-2013::14:50:11 === accepting AMQP connection <0.10557.4> (192.168.173.75:34877 -> 192.168.173.16:5671) =INFO REPORT==== 21-Oct-2013::14:50:11 === accepting AMQP connection <0.10580.4> (192.168.173.75:34878 -> 192.168.173.16:5671) =ERROR REPORT==== 21-Oct-2013::14:50:12 === connection <0.10580.4>, channel 7000 - soft error: {amqp_error,access_refused, "queue 'zb_17_1382078284' in vhost '/' in exclusive use", 'basic.consume'} 2. =INFO REPORT==== 21-Oct-2013::15:25:14 === accepting AMQP connection <0.12064.4> (192.168.173.15:50121 -> 192.168.173.16:5671) =INFO REPORT==== 21-Oct-2013::15:25:18 === closing AMQP connection <0.12064.4> (192.168.173.15:50121 -> 192.168.173.16:5671) =ERROR REPORT==== 21-Oct-2013::15:25:33 === ** State machine <0.1396.4> terminating ** Last message in was {tcp_closed,#Port<0.45602>} ** When State == connection ** Data == {state,server, {#Ref<0.0.25.243435>,<0.1395.4>}, gen_tcp,tcp,tcp_closed,tcp_error,"localhost",5671, #Port<0.45602>, {ssl_options, [{3,3},{3,2},{3,1},{3,0}], verify_peer, {#Fun, #Fun}, true,false,undefined,1, <<"/etc/rabbitmq/ssl/localhost_game_ca_cert.pem">>, undefined, <<"/etc/rabbitmq/ssl/localhost_game_ca_key.pem">>, undefined,undefined,undefined, <<"/etc/rabbitmq/ssl/hitutopia_game_ca_cert.pem">>, undefined,undefined,undefined,undefined,undefined, [<<"?$">>,<<"?(">>,<<"?&">>,<<"?*">>, <<0,107>>, <<0,106>>, <<0,61>>, <<"?#">>,<<"?'">>,<<"?%">>,<<"?)">>, <<0,103>>, <<0,64>>, <<0,60>>, <<"?\n">>, <<192,20>>, <<0,57>>, <<0,56>>, <<192,5>>, <<192,15>>, <<0,53>>, <<"?\b">>, <<192,18>>, <<0,22>>, <<0,19>>, <<192,3>>, <<"?\r">>, <<0,10>>, <<"?\t">>, <<192,19>>, <<0,51>>, <<0,50>>, <<192,4>>, <<192,14>>, <<0,47>>, <<192,7>>, <<192,17>>, <<0,5>>, <<0,4>>, <<0,21>>, <<192,2>>, <<"?\f">>, <<0,9>>], #Fun,true,268435456,false,undefined, undefined,false,undefined,undefined}, {socket_options,binary,0,0,0,once}, {connection_states, {connection_state, {security_parameters, <<0,53>>, 0,7,1,16,256,32,unknown,2,4711,20,0, <<246,253,112,45,211,102,103,239,231,128,141, 130,96,119,220,109,99,229,34,15,194,193,171, 53,76,61,48,248,155,124,154,79,212,201,187, 247,106,45,1,208,221,43,58,32,248,16,74,247>>, <<82,100,191,75,237,167,94,130,69,14,124,176, 71,122,171,208,72,106,250,116,34,88,219,204, 186,180,142,74,163,88,20,159>>, <<82,100,191,75,15,171,22,220,158,26,47,98,2, 131,87,235,92,97,174,241,19,242,8,236,193, 60,86,41,202,199,81,212>>, undefined}, undefined, {cipher_state, <<42,89,27,116,174,97,42,228,208,143,185,124, 212,114,51,134>>, <<114,109,218,70,135,228,78,3,100,59,114,191, 142,203,99,247,11,103,87,182,182,242,50,150, 226,165,27,78,176,67,58,137>>, undefined}, <<40,219,55,56,187,200,154,141,179,235,145,137, 197,117,36,113,169,228,235,179>>, 19,true, <<29,210,209,242,106,233,165,102,5,66,136,179>>, <<124,4,190,16,192,38,17,85,85,132,246,245>>}, {connection_state, {security_parameters,undefined,0,undefined, undefined,undefined,undefined,undefined, undefined,undefined,undefined,undefined, undefined,undefined,undefined, <<82,100,191,75,169,249,93,60,98,65,184,88, 241,244,191,7,72,105,86,27,34,4,57,163,245, 240,32,208,141,55,227,114>>, undefined}, undefined,undefined,undefined,undefined,true, undefined,undefined}, {connection_state, {security_parameters, <<0,53>>, 0,7,1,16,256,32,unknown,2,4711,20,0, <<246,253,112,45,211,102,103,239,231,128,141, 130,96,119,220,109,99,229,34,15,194,193,171, 53,76,61,48,248,155,124,154,79,212,201,187, 247,106,45,1,208,221,43,58,32,248,16,74,247>>, <<82,100,191,75,237,167,94,130,69,14,124,176, 71,122,171,208,72,106,250,116,34,88,219,204, 186,180,142,74,163,88,20,159>>, <<82,100,191,75,15,171,22,220,158,26,47,98,2, 131,87,235,92,97,174,241,19,242,8,236,193, 60,86,41,202,199,81,212>>, undefined}, undefined, {cipher_state, <<131,155,64,61,233,82,219,106,61,2,178,28,68, 146,20,117>>, <<22,188,35,150,115,65,61,238,54,83,113,206, 253,1,54,101,113,149,226,69,141,236,225,251, 242,56,197,178,204,13,217,133>>, undefined}, <<115,170,207,224,202,35,39,176,137,160,41,3,177, 209,206,9,125,201,29,98>>, 325,true, <<29,210,209,242,106,233,165,102,5,66,136,179>>, <<124,4,190,16,192,38,17,85,85,132,246,245>>}, {connection_state, {security_parameters,undefined,0,undefined, undefined,undefined,undefined,undefined, undefined,undefined,undefined,undefined, undefined,undefined,undefined, <<82,100,191,75,192,176,52,69,6,245,79,86,209, 133,25,231,53,233,74,4,47,57,133,18,165,129, 2,228,19,141,17,169>>, undefined}, undefined,undefined,undefined,undefined,true, undefined,undefined}}, [],<<>>,<<>>, {[],[]}, [],843855, {session, <<162,254,66,188,234,225,186,31,188,252,128,55,8,253, 46,225,199,136,113,65,53,255,221,113,51,197,77,79, 137,64,104,223>>, <<48,130,3,1,48,130,1,233,160,3,2,1,2,2,2,1,107,48,13, 6,9,42,134,72,134,247,13,1,1,5,5,0,48,26,49,24,48, 22,6,3,85,4,3,19,15,72,105,116,85,116,111,112,105, 97,71,97,109,101,67,65,48,30,23,13,49,51,49,48,49, 56,48,54,51,56,48,53,90,23,13,49,54,49,48,49,56,48, 54,51,56,48,53,90,48,60,49,33,48,31,6,3,85,4,3,12, 24,49,51,56,50,48,55,56,50,56,52,46,104,105,116,117, 116,111,112,105,97,46,99,111,109,49,23,48,21,6,3,85, 4,10,12,14,72,105,116,85,116,111,112,105,97,32,73, 78,67,46,48,130,1,34,48,13,6,9,42,134,72,134,247,13, 1,1,1,5,0,3,130,1,15,0,48,130,1,10,2,130,1,1,0,181, 177,93,194,86,105,192,234,109,0,176,132,47,190,34, 117,37,93,72,154,41,46,66,235,10,177,109,153,135, 246,232,50,244,11,117,199,31,133,43,213,203,93,233, 72,231,166,53,162,220,26,143,216,207,138,77,217,110, 101,16,7,177,242,233,38,20,153,36,92,113,150,214, 158,248,122,82,61,169,104,46,90,124,54,10,64,140, 204,71,107,233,111,203,67,29,146,57,177,190,206,218, 7,244,92,58,149,61,138,127,165,206,149,19,174,0,197, 198,190,97,78,51,12,163,211,36,221,45,44,18,180,113, 65,9,146,15,134,94,182,192,60,139,54,243,33,58,159, 57,144,86,209,192,135,65,205,92,98,3,240,157,218,11, 23,115,199,39,178,252,1,95,154,65,25,145,12,214,180, 32,157,230,66,48,180,106,47,124,91,253,32,169,46, 238,251,123,73,212,200,155,149,243,170,105,128,141, 152,240,16,163,119,126,149,246,120,213,168,175,17, 137,30,159,86,190,217,87,206,185,141,234,124,207,93, 166,169,231,234,222,138,124,111,56,148,33,105,18, 121,37,240,108,70,245,236,213,222,101,190,195,104,4, 93,2,3,1,0,1,163,47,48,45,48,9,6,3,85,29,19,4,2,48, 0,48,11,6,3,85,29,15,4,4,3,2,7,128,48,19,6,3,85,29, 37,4,12,48,10,6,8,43,6,1,5,5,7,3,2,48,13,6,9,42,134, 72,134,247,13,1,1,5,5,0,3,130,1,1,0,94,33,152,202,1, 134,78,163,162,34,56,75,64,2,10,43,181,32,149,193, 153,13,179,252,66,185,122,24,211,148,126,141,249,17, 253,42,46,246,76,26,233,1,208,147,109,188,78,135, 152,220,154,37,54,200,236,158,48,138,118,24,218,171, 59,56,175,82,64,58,223,141,175,253,127,58,91,168, 131,151,116,115,160,85,43,14,72,89,45,77,234,52,167, 158,121,15,121,7,116,154,48,218,149,115,100,157,219, 106,218,43,203,78,123,211,133,124,78,31,125,245,55, 176,87,158,36,232,189,62,171,16,117,160,200,109,34, 248,162,250,23,191,189,10,197,140,89,5,86,36,149, 104,243,215,218,191,24,137,129,156,218,58,156,166, 48,135,251,211,227,124,130,9,142,120,113,226,182,36, 228,234,242,104,63,72,132,0,71,140,104,1,64,3,252, 220,207,19,121,242,72,20,77,152,78,195,65,10,179, 243,85,61,198,221,175,159,65,178,72,97,171,122,85, 36,83,132,185,28,61,194,33,79,27,255,16,174,139,48, 104,203,88,174,236,51,147,107,41,198,141,101,131, 146,170,33,241,49,202,205,252,63,152,39>>, <<48,130,3,74,48,130,2,50,160,3,2,1,2,2,1,28,48,13,6, 9,42,134,72,134,247,13,1,1,5,5,0,48,26,49,24,48,22, 6,3,85,4,3,19,15,72,105,116,85,116,111,112,105,97, 71,97,109,101,67,65,48,30,23,13,49,51,48,56,51,48, 48,52,51,52,52,53,90,23,13,49,54,48,56,51,48,48,52, 51,52,52,53,90,48,57,49,30,48,28,6,3,85,4,3,12,21, 104,117,115,48,48,48,54,46,104,105,116,117,116,111, 112,105,97,46,99,111,109,49,23,48,21,6,3,85,4,10,12, 14,72,105,116,85,116,111,112,105,97,32,73,78,67,46, 48,130,1,34,48,13,6,9,42,134,72,134,247,13,1,1,1,5, 0,3,130,1,15,0,48,130,1,10,2,130,1,1,0,227,199,81, 148,185,13,204,5,182,104,199,150,182,14,168,97,166, 89,1,227,107,201,80,133,135,183,113,99,44,162,130, 213,14,47,179,193,199,192,94,92,106,223,22,151,116, 25,206,173,51,199,114,106,77,84,17,250,98,200,64,39, 215,1,128,149,179,226,45,62,6,247,110,34,131,248, 106,172,106,232,176,37,183,101,237,78,39,218,155, 233,182,23,124,164,22,0,75,79,97,68,184,227,87,163, 198,202,154,195,192,220,84,78,19,33,95,35,123,238, 205,21,241,61,40,101,60,13,137,77,12,133,32,30,48, 107,23,209,213,222,173,165,46,186,148,27,242,180, 111,89,60,233,165,101,20,110,61,224,71,253,153,114, 37,157,17,97,140,204,145,54,147,178,245,158,20,217, 248,77,61,4,236,147,161,116,13,153,218,189,34,120, 134,163,32,92,102,202,79,194,110,81,169,171,93,101, 47,52,225,90,32,130,76,231,198,233,222,27,222,100, 32,192,120,54,202,49,86,22,67,84,170,16,74,75,66,74, 33,93,56,135,185,207,172,234,245,199,202,237,28,91, 239,99,95,211,239,233,147,157,78,204,147,207,2,3,1, 0,1,163,124,48,122,48,9,6,3,85,29,19,4,2,48,0,48,11, 6,3,85,29,15,4,4,3,2,5,32,48,19,6,3,85,29,37,4,12, 48,10,6,8,43,6,1,5,5,7,3,1,48,75,6,3,85,29,17,4,68, 48,66,130,7,104,117,115,48,48,48,54,130,21,104,117, 115,48,48,48,54,46,104,105,116,117,116,111,112,105, 97,46,99,111,109,130,5,103,115,48,48,49,130,19,103, 115,48,48,49,46,104,105,116,117,116,111,112,105,97, 46,99,111,109,135,4,192,168,173,16,48,13,6,9,42,134, 72,134,247,13,1,1,5,5,0,3,130,1,1,0,159,202,168,133, 197,196,230,224,241,177,157,109,2,106,33,162,33,39, 122,187,203,109,100,2,168,187,42,160,148,51,143,217, 213,217,141,20,49,195,145,148,7,131,208,3,11,214, 169,103,61,239,233,153,71,17,250,161,112,64,250,181, 141,28,14,105,202,60,17,242,32,31,134,183,10,124, 198,216,143,55,201,127,130,119,204,158,23,211,59,35, 56,17,105,159,56,111,73,48,237,167,115,179,114,158, 117,182,71,124,56,185,34,129,186,179,174,93,143,205, 7,253,122,237,64,242,157,218,141,237,112,123,20,192, 58,118,75,154,23,73,222,152,26,101,203,9,173,207, 211,17,59,16,45,125,17,9,43,120,181,39,194,55,197, 40,160,46,187,42,138,98,50,66,183,117,102,158,89, 136,60,179,239,208,85,131,234,14,107,254,196,201, 187,139,30,242,67,200,229,14,140,102,186,166,117, 177,157,181,157,238,117,68,239,47,78,248,90,202,242, 138,253,151,100,198,77,51,87,12,144,253,150,39,224, 72,59,113,82,95,16,211,166,167,48,83,230,223,46,141, 43,175,178,37,151,208,144,37,33,9,129,9,236,238>>, 0, <<0,53>>, <<246,253,112,45,211,102,103,239,231,128,141,130,96, 119,220,109,99,229,34,15,194,193,171,53,76,61,48, 248,155,124,154,79,212,201,187,247,106,45,1,208,221, 43,58,32,248,16,74,247>>, undefined,true,63549573283}, 856146,ssl_session_cache, {3,2}, false,rsa, {md5sha,rsa}, undefined, {'RSAPrivateKey','two-prime', 28754382929457051820198414803441500303526984249685155049796332097906730799908391206103523814976269005163077203094468431332135580805858819241292376687537373648925411819542786957998645419696941719138056950256895396533739787377057149511954887494217274675549621506852643517986748416002685399278604617064334846409024946047643876477509015842269083038506824483531387521790950615371903618405612939638384148174513598217798820397572316465433643750362451315632350679839305866273135240964574674912564288000457819237789013301382164938895437686379037265560348498246445928914896818541533959358614386333778948754935431058520256844751, 65537, 12192434002573843981743042082683611577196261124471684295570292699829564096596644387543079837257969381944195681779638726799955989059828962691247293220165342880052310436139501453771523834901785456049673689529408825156416908790775304450733392870848586996030462670765035181978634233063744519287625977746933809097928751222375021510082578123347833528558380840789720377211774619166418714520007916454818269202663616301725555071277822872080521648851522128805562777059786975793315502491712351795168167443721855642505435091435585902809399891236425455971666960198331434820081907231394691341092584384950481164779736626296762535457, 178797459419384179454995700555538308131914186433018901241269329994089456568495654410744185600704396568249533309282406294458054155081056281980503994941689784706024237273058477366815049398949382971959972087891015000872408741152042000915238822990361460607165928128696800963536722850492270069661093947129448734847, 160820981589068759737350867185963098753383608018664264101875563102468402957785217837686207176530946888090159278497018106937979486937006759315592493664852792763393054618165144985385922549862128257520764572107365227798852448341119014761517693877911549390040151119450786578129061416407709161499836435669806048433, 27742975187080850830490429512325389556943945585506953426651629105847012891115435703539338440477333547500335752660219259476997004791480558027675131979828851193609113460026117404567530362053744837906235503025218297204198002483713247590018822817476932006565303922070246868153942576966536373932033268968054140175, 3077185573228744445284922829107187174218274325272822789931671515792535168058694526274600665263436034570777724571391133346052249517356706534961212552538648429517599073671042187034407233738607333795123957053613012430531775488956822016737769323022126172011388215874868949890502205108187242145975477826722870817, 5940243877226089632200055074167927978550001243681641033194649041837250183233907132676792362250500180960363898208071035213840058611888614551068534986817267565775946611014238022825481223990165301212819194970907029134085079547357199651397306405068251748337700282212797757930062822944912205571550408060362437081, asn1_NOVALUE}, {'DHParameter', 179769313486231590770839156793787453197860296048756011706444423684197180216158519368947833795864925541502180565485980503646440548199239100050792877003355816639229553136239076508735759914822574862575007425302077447712589550957937778424442426617334727629299387668709205606050270810842907692932019128194467627007, 2,asn1_NOVALUE}, undefined,undefined,undefined,undefined,undefined,847952, #Ref<0.0.0.152573>,undefined,<<>>,true,undefined, undefined,undefined, {[],[]}, false,true,false,undefined, {{elliptic_curves, [{1,3,132,0,39}, {1,3,132,0,38}, {1,3,132,0,35}, {1,3,132,0,36}, {1,3,132,0,37}, {1,3,132,0,34}, {1,3,132,0,16}, {1,3,132,0,17}, {1,3,132,0,10}, {1,2,840,10045,3,1,7}, {1,3,132,0,3}, {1,3,132,0,26}, {1,3,132,0,27}, {1,3,132,0,32}, {1,3,132,0,33}, {1,3,132,0,24}, {1,3,132,0,25}, {1,3,132,0,31}, {1,2,840,10045,3,1,1}, {1,3,132,0,1}, {1,3,132,0,2}, {1,3,132,0,15}, {1,3,132,0,9}, {1,3,132,0,8}, {1,3,132,0,30}]}, undefined}} ** Reason for termination = ** {{case_clause,{error,ebadf}}, [{tls_connection,handle_unrecv_data,2, [{file,"tls_connection.erl"},{line,3065}]}, {tls_connection,terminate,3,[{file,"tls_connection.erl"},{line,1160}]}, {gen_fsm,terminate,7,[{file,"gen_fsm.erl"},{line,597}]}, {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,239}]}]} =WARNING REPORT==== 21-Oct-2013::15:25:33 === closing AMQP connection <0.1395.4> (192.168.173.75:34845 -> 192.168.173.16:5671): connection_closed_abruptly =INFO REPORT==== 21-Oct-2013::15:30:24 === accepting AMQP connection <0.12250.4> (192.168.173.55:51549 -> 192.168.173.16:5671) It seems from Reason for termination like there is some issue with Erlang file. Please Suggest. Thanks & Regards, ROhit ________________________________________ From: Michael Klishin [mklishin at gopivotal.com] Sent: Monday, October 14, 2013 3:36 AM To: Rohit Patle Subject: Re: [rabbitmq-discuss] Auto delete Queue disappears while using with direct exchange. On oct 14, 2013, at 12:43 a.m., Rohit Patle wrote: > sorry to bother you but I am not getting "default exchange is orthogonal with auto-deletion" what does it mean exactly? They solve completely different problems and have no effect on each other. Whether you use the default exchange has nothing to do with your queues being deleted and vice versa. -- MK ________________________________ 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.laing at nytimes.com Mon Oct 21 12:07:03 2013 From: michael.laing at nytimes.com (Laing, Michael) Date: Mon, 21 Oct 2013 07:07:03 -0400 Subject: [rabbitmq-discuss] Can I get this behavior through a custom plugin? In-Reply-To: <52140B98-DE17-4E9D-BFD0-1562923F918F@danlarkin.org> References: <52140B98-DE17-4E9D-BFD0-1562923F918F@danlarkin.org> Message-ID: If you know the clients ahead of time you can set up a queue per client instead of a single consolidated queue. Then subscribe to each queue from each worker (or a subset of workers) with prefetch = 1 using ack. Michael On Sun, Oct 20, 2013 at 8:36 PM, Dan Larkin wrote: > Hi all, > > I have an interesting serialization requirement for my app: I need to > enforce that only one message with the same AMQP header "client" is ever > out for delivery in any given snapshot of time. > > Right now I have messages flowing into rabbit to a "direct" exchange, all > with "client" headers. And since I have multiple worker nodes pulling from > the queue they're ending up in, it's possible for two messages with the > same "client" header to be processed at the same time. And the goal here is > to prevent that from happening. > > I thought at first this might be possible with a custom exchange, but > afaict exchanges are basically limited to controlling how messages get > routed, not how they get delivered. > > So my question is simply: is this behavior possible? > > Thanks for your help, > Dan > > _______________________________________________ > 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 Oct 21 12:21:01 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Mon, 21 Oct 2013 15:21:01 +0400 Subject: [rabbitmq-discuss] Does RabbitMQ clustering used only for HA or load balancing or both? In-Reply-To: References: Message-ID: On 21 Oct 2013, at 14:40, Rajasekhar P wrote: > Does RabbitMQ clustering is used only for HA right? not for really achieving load balancing, am right? Here load balancing means distributing messages to specific node based on load. Clustering can be used for balancing load between multiple nodes but not for a single queue. You can create multiple queues on different nodes and use them from any node. Connecting to the node a queue was created on will result in better latency and throughput because of data locality. MK From Rohit.Patel2 at techmahindra.com Mon Oct 21 14:10:00 2013 From: Rohit.Patel2 at techmahindra.com (Rohit Patle) Date: Mon, 21 Oct 2013 13:10:00 +0000 Subject: [rabbitmq-discuss] Auto delete Queue disappears while using with direct exchange. In-Reply-To: <27E054594442884E9A46DBCF9AE74081610343@BSDMSATMBX001.mahindrasatyam.ad> References: <27E054594442884E9A46DBCF9AE74081610343@BSDMSATMBX001.mahindrasatyam.ad> Message-ID: <27E054594442884E9A46DBCF9AE74081610357@BSDMSATMBX001.mahindrasatyam.ad> Dear Michael, Please refer the below CRASH REPORT which I got today(Multiple time), After the issue occurred I am losing the queue(Auto Delete) as I reported in my earlier mail as well. =CRASH REPORT==== 21-Oct-2013::15:46:08 === crasher: initial call: tls_connection:init/1 pid: <0.10552.4> registered_name: [] exception exit: {{case_clause,{error,ebadf}}, [{tls_connection,handle_unrecv_data,2, [{file,"tls_connection.erl"}, {line,3065}]}, {tls_connection,terminate,3, [{file,"tls_connection.erl"}, {line,1160}]}, {gen_fsm,terminate,7,[{file,"gen_fsm.erl"},{line,597}]}, {proc_lib,init_p_do_apply,3, [{file,"proc_lib.erl"},{line,239}]}]} in function gen_fsm:terminate/7 (gen_fsm.erl, line 600) ancestors: [ssl_connection_sup,ssl_sup,<0.255.0>] messages: [] links: [<0.258.0>,#Port<0.47747>] dictionary: [{ssl_manager,ssl_manager}] trap_exit: false status: running heap_size: 2586 stack_size: 27 reductions: 599357 neighbours: =SUPERVISOR REPORT==== 21-Oct-2013::15:46:08 === Supervisor: {local,ssl_connection_sup} Context: child_terminated Reason: {{case_clause,{error,ebadf}}, [{tls_connection,handle_unrecv_data,2, [{file,"tls_connection.erl"},{line,3065}]}, {tls_connection,terminate,3, [{file,"tls_connection.erl"},{line,1160}]}, {gen_fsm,terminate,7,[{file,"gen_fsm.erl"},{line,597}]}, {proc_lib,init_p_do_apply,3, [{file,"proc_lib.erl"},{line,239}]}]} Offender: [{pid,<0.10552.4>}, {name,undefined}, {mfargs,{tls_connection,start_link,undefined}}, {restart_type,temporary}, {shutdown,4000}, {child_type,worker}] Looking forward for your prompt reply to over come the issue. My requirement is like, the application should work continuously(24x7x356). Is I should create the queues in particular time interval? But in that case what should be time? Any further clarification is needed on the issue please let me know. Thanks & Regards, ROhit ________________________________ From: Rohit Patle Sent: Monday, October 21, 2013 4:36 PM To: Michael Klishin; rabbitmq-discuss at lists.rabbitmq.com Subject: Auto delete Queue disappears while using with direct exchange. Hi Michael, As reported before also I am losing my Auto-delete queues in between(under working condition) all of sudden, For your reference please refer the below Error log. Also the my set-up details are as: Client library: rabbitmq-c-master Version: 0.3.0 Server library: rabbitmq Version 3.1.5 Erlang Version: R16B01 ERROR REPORT ============= 1. =INFO REPORT==== 21-Oct-2013::14:50:11 === accepting AMQP connection <0.10557.4> (192.168.173.75:34877 -> 192.168.173.16:5671) =INFO REPORT==== 21-Oct-2013::14:50:11 === accepting AMQP connection <0.10580.4> (192.168.173.75:34878 -> 192.168.173.16:5671) =ERROR REPORT==== 21-Oct-2013::14:50:12 === connection <0.10580.4>, channel 7000 - soft error: {amqp_error,access_refused, "queue 'zb_17_1382078284' in vhost '/' in exclusive use", 'basic.consume'} 2. =INFO REPORT==== 21-Oct-2013::15:25:14 === accepting AMQP connection <0.12064.4> (192.168.173.15:50121 -> 192.168.173.16:5671) =INFO REPORT==== 21-Oct-2013::15:25:18 === closing AMQP connection <0.12064.4> (192.168.173.15:50121 -> 192.168.173.16:5671) =ERROR REPORT==== 21-Oct-2013::15:25:33 === ** State machine <0.1396.4> terminating ** Last message in was {tcp_closed,#Port<0.45602>} ** When State == connection ** Data == {state,server, {#Ref<0.0.25.243435>,<0.1395.4>}, gen_tcp,tcp,tcp_closed,tcp_error,"localhost",5671, #Port<0.45602>, {ssl_options, [{3,3},{3,2},{3,1},{3,0}], verify_peer, {#Fun, #Fun}, true,false,undefined,1, <<"/etc/rabbitmq/ssl/localhost_game_ca_cert.pem">>, undefined, <<"/etc/rabbitmq/ssl/localhost_game_ca_key.pem">>, undefined,undefined,undefined, <<"/etc/rabbitmq/ssl/hitutopia_game_ca_cert.pem">>, undefined,undefined,undefined,undefined,undefined, [<<"?$">>,<<"?(">>,<<"?&">>,<<"?*">>, <<0,107>>, <<0,106>>, <<0,61>>, <<"?#">>,<<"?'">>,<<"?%">>,<<"?)">>, <<0,103>>, <<0,64>>, <<0,60>>, <<"?\n">>, <<192,20>>, <<0,57>>, <<0,56>>, <<192,5>>, <<192,15>>, <<0,53>>, <<"?\b">>, <<192,18>>, <<0,22>>, <<0,19>>, <<192,3>>, <<"?\r">>, <<0,10>>, <<"?\t">>, <<192,19>>, <<0,51>>, <<0,50>>, <<192,4>>, <<192,14>>, <<0,47>>, <<192,7>>, <<192,17>>, <<0,5>>, <<0,4>>, <<0,21>>, <<192,2>>, <<"?\f">>, <<0,9>>], #Fun,true,268435456,false,undefined, undefined,false,undefined,undefined}, {socket_options,binary,0,0,0,once}, {connection_states, {connection_state, {security_parameters, <<0,53>>, 0,7,1,16,256,32,unknown,2,4711,20,0, <<246,253,112,45,211,102,103,239,231,128,141, 130,96,119,220,109,99,229,34,15,194,193,171, 53,76,61,48,248,155,124,154,79,212,201,187, 247,106,45,1,208,221,43,58,32,248,16,74,247>>, <<82,100,191,75,237,167,94,130,69,14,124,176, 71,122,171,208,72,106,250,116,34,88,219,204, 186,180,142,74,163,88,20,159>>, <<82,100,191,75,15,171,22,220,158,26,47,98,2, 131,87,235,92,97,174,241,19,242,8,236,193, 60,86,41,202,199,81,212>>, undefined}, undefined, {cipher_state, <<42,89,27,116,174,97,42,228,208,143,185,124, 212,114,51,134>>, <<114,109,218,70,135,228,78,3,100,59,114,191, 142,203,99,247,11,103,87,182,182,242,50,150, 226,165,27,78,176,67,58,137>>, undefined}, <<40,219,55,56,187,200,154,141,179,235,145,137, 197,117,36,113,169,228,235,179>>, 19,true, <<29,210,209,242,106,233,165,102,5,66,136,179>>, <<124,4,190,16,192,38,17,85,85,132,246,245>>}, {connection_state, {security_parameters,undefined,0,undefined, undefined,undefined,undefined,undefined, undefined,undefined,undefined,undefined, undefined,undefined,undefined, <<82,100,191,75,169,249,93,60,98,65,184,88, 241,244,191,7,72,105,86,27,34,4,57,163,245, 240,32,208,141,55,227,114>>, undefined}, undefined,undefined,undefined,undefined,true, undefined,undefined}, {connection_state, {security_parameters, <<0,53>>, 0,7,1,16,256,32,unknown,2,4711,20,0, <<246,253,112,45,211,102,103,239,231,128,141, 130,96,119,220,109,99,229,34,15,194,193,171, 53,76,61,48,248,155,124,154,79,212,201,187, 247,106,45,1,208,221,43,58,32,248,16,74,247>>, <<82,100,191,75,237,167,94,130,69,14,124,176, 71,122,171,208,72,106,250,116,34,88,219,204, 186,180,142,74,163,88,20,159>>, <<82,100,191,75,15,171,22,220,158,26,47,98,2, 131,87,235,92,97,174,241,19,242,8,236,193, 60,86,41,202,199,81,212>>, undefined}, undefined, {cipher_state, <<131,155,64,61,233,82,219,106,61,2,178,28,68, 146,20,117>>, <<22,188,35,150,115,65,61,238,54,83,113,206, 253,1,54,101,113,149,226,69,141,236,225,251, 242,56,197,178,204,13,217,133>>, undefined}, <<115,170,207,224,202,35,39,176,137,160,41,3,177, 209,206,9,125,201,29,98>>, 325,true, <<29,210,209,242,106,233,165,102,5,66,136,179>>, <<124,4,190,16,192,38,17,85,85,132,246,245>>}, {connection_state, {security_parameters,undefined,0,undefined, undefined,undefined,undefined,undefined, undefined,undefined,undefined,undefined, undefined,undefined,undefined, <<82,100,191,75,192,176,52,69,6,245,79,86,209, 133,25,231,53,233,74,4,47,57,133,18,165,129, 2,228,19,141,17,169>>, undefined}, undefined,undefined,undefined,undefined,true, undefined,undefined}}, [],<<>>,<<>>, {[],[]}, [],843855, {session, <<162,254,66,188,234,225,186,31,188,252,128,55,8,253, 46,225,199,136,113,65,53,255,221,113,51,197,77,79, 137,64,104,223>>, <<48,130,3,1,48,130,1,233,160,3,2,1,2,2,2,1,107,48,13, 6,9,42,134,72,134,247,13,1,1,5,5,0,48,26,49,24,48, 22,6,3,85,4,3,19,15,72,105,116,85,116,111,112,105, 97,71,97,109,101,67,65,48,30,23,13,49,51,49,48,49, 56,48,54,51,56,48,53,90,23,13,49,54,49,48,49,56,48, 54,51,56,48,53,90,48,60,49,33,48,31,6,3,85,4,3,12, 24,49,51,56,50,48,55,56,50,56,52,46,104,105,116,117, 116,111,112,105,97,46,99,111,109,49,23,48,21,6,3,85, 4,10,12,14,72,105,116,85,116,111,112,105,97,32,73, 78,67,46,48,130,1,34,48,13,6,9,42,134,72,134,247,13, 1,1,1,5,0,3,130,1,15,0,48,130,1,10,2,130,1,1,0,181, 177,93,194,86,105,192,234,109,0,176,132,47,190,34, 117,37,93,72,154,41,46,66,235,10,177,109,153,135, 246,232,50,244,11,117,199,31,133,43,213,203,93,233, 72,231,166,53,162,220,26,143,216,207,138,77,217,110, 101,16,7,177,242,233,38,20,153,36,92,113,150,214, 158,248,122,82,61,169,104,46,90,124,54,10,64,140, 204,71,107,233,111,203,67,29,146,57,177,190,206,218, 7,244,92,58,149,61,138,127,165,206,149,19,174,0,197, 198,190,97,78,51,12,163,211,36,221,45,44,18,180,113, 65,9,146,15,134,94,182,192,60,139,54,243,33,58,159, 57,144,86,209,192,135,65,205,92,98,3,240,157,218,11, 23,115,199,39,178,252,1,95,154,65,25,145,12,214,180, 32,157,230,66,48,180,106,47,124,91,253,32,169,46, 238,251,123,73,212,200,155,149,243,170,105,128,141, 152,240,16,163,119,126,149,246,120,213,168,175,17, 137,30,159,86,190,217,87,206,185,141,234,124,207,93, 166,169,231,234,222,138,124,111,56,148,33,105,18, 121,37,240,108,70,245,236,213,222,101,190,195,104,4, 93,2,3,1,0,1,163,47,48,45,48,9,6,3,85,29,19,4,2,48, 0,48,11,6,3,85,29,15,4,4,3,2,7,128,48,19,6,3,85,29, 37,4,12,48,10,6,8,43,6,1,5,5,7,3,2,48,13,6,9,42,134, 72,134,247,13,1,1,5,5,0,3,130,1,1,0,94,33,152,202,1, 134,78,163,162,34,56,75,64,2,10,43,181,32,149,193, 153,13,179,252,66,185,122,24,211,148,126,141,249,17, 253,42,46,246,76,26,233,1,208,147,109,188,78,135, 152,220,154,37,54,200,236,158,48,138,118,24,218,171, 59,56,175,82,64,58,223,141,175,253,127,58,91,168, 131,151,116,115,160,85,43,14,72,89,45,77,234,52,167, 158,121,15,121,7,116,154,48,218,149,115,100,157,219, 106,218,43,203,78,123,211,133,124,78,31,125,245,55, 176,87,158,36,232,189,62,171,16,117,160,200,109,34, 248,162,250,23,191,189,10,197,140,89,5,86,36,149, 104,243,215,218,191,24,137,129,156,218,58,156,166, 48,135,251,211,227,124,130,9,142,120,113,226,182,36, 228,234,242,104,63,72,132,0,71,140,104,1,64,3,252, 220,207,19,121,242,72,20,77,152,78,195,65,10,179, 243,85,61,198,221,175,159,65,178,72,97,171,122,85, 36,83,132,185,28,61,194,33,79,27,255,16,174,139,48, 104,203,88,174,236,51,147,107,41,198,141,101,131, 146,170,33,241,49,202,205,252,63,152,39>>, <<48,130,3,74,48,130,2,50,160,3,2,1,2,2,1,28,48,13,6, 9,42,134,72,134,247,13,1,1,5,5,0,48,26,49,24,48,22, 6,3,85,4,3,19,15,72,105,116,85,116,111,112,105,97, 71,97,109,101,67,65,48,30,23,13,49,51,48,56,51,48, 48,52,51,52,52,53,90,23,13,49,54,48,56,51,48,48,52, 51,52,52,53,90,48,57,49,30,48,28,6,3,85,4,3,12,21, 104,117,115,48,48,48,54,46,104,105,116,117,116,111, 112,105,97,46,99,111,109,49,23,48,21,6,3,85,4,10,12, 14,72,105,116,85,116,111,112,105,97,32,73,78,67,46, 48,130,1,34,48,13,6,9,42,134,72,134,247,13,1,1,1,5, 0,3,130,1,15,0,48,130,1,10,2,130,1,1,0,227,199,81, 148,185,13,204,5,182,104,199,150,182,14,168,97,166, 89,1,227,107,201,80,133,135,183,113,99,44,162,130, 213,14,47,179,193,199,192,94,92,106,223,22,151,116, 25,206,173,51,199,114,106,77,84,17,250,98,200,64,39, 215,1,128,149,179,226,45,62,6,247,110,34,131,248, 106,172,106,232,176,37,183,101,237,78,39,218,155, 233,182,23,124,164,22,0,75,79,97,68,184,227,87,163, 198,202,154,195,192,220,84,78,19,33,95,35,123,238, 205,21,241,61,40,101,60,13,137,77,12,133,32,30,48, 107,23,209,213,222,173,165,46,186,148,27,242,180, 111,89,60,233,165,101,20,110,61,224,71,253,153,114, 37,157,17,97,140,204,145,54,147,178,245,158,20,217, 248,77,61,4,236,147,161,116,13,153,218,189,34,120, 134,163,32,92,102,202,79,194,110,81,169,171,93,101, 47,52,225,90,32,130,76,231,198,233,222,27,222,100, 32,192,120,54,202,49,86,22,67,84,170,16,74,75,66,74, 33,93,56,135,185,207,172,234,245,199,202,237,28,91, 239,99,95,211,239,233,147,157,78,204,147,207,2,3,1, 0,1,163,124,48,122,48,9,6,3,85,29,19,4,2,48,0,48,11, 6,3,85,29,15,4,4,3,2,5,32,48,19,6,3,85,29,37,4,12, 48,10,6,8,43,6,1,5,5,7,3,1,48,75,6,3,85,29,17,4,68, 48,66,130,7,104,117,115,48,48,48,54,130,21,104,117, 115,48,48,48,54,46,104,105,116,117,116,111,112,105, 97,46,99,111,109,130,5,103,115,48,48,49,130,19,103, 115,48,48,49,46,104,105,116,117,116,111,112,105,97, 46,99,111,109,135,4,192,168,173,16,48,13,6,9,42,134, 72,134,247,13,1,1,5,5,0,3,130,1,1,0,159,202,168,133, 197,196,230,224,241,177,157,109,2,106,33,162,33,39, 122,187,203,109,100,2,168,187,42,160,148,51,143,217, 213,217,141,20,49,195,145,148,7,131,208,3,11,214, 169,103,61,239,233,153,71,17,250,161,112,64,250,181, 141,28,14,105,202,60,17,242,32,31,134,183,10,124, 198,216,143,55,201,127,130,119,204,158,23,211,59,35, 56,17,105,159,56,111,73,48,237,167,115,179,114,158, 117,182,71,124,56,185,34,129,186,179,174,93,143,205, 7,253,122,237,64,242,157,218,141,237,112,123,20,192, 58,118,75,154,23,73,222,152,26,101,203,9,173,207, 211,17,59,16,45,125,17,9,43,120,181,39,194,55,197, 40,160,46,187,42,138,98,50,66,183,117,102,158,89, 136,60,179,239,208,85,131,234,14,107,254,196,201, 187,139,30,242,67,200,229,14,140,102,186,166,117, 177,157,181,157,238,117,68,239,47,78,248,90,202,242, 138,253,151,100,198,77,51,87,12,144,253,150,39,224, 72,59,113,82,95,16,211,166,167,48,83,230,223,46,141, 43,175,178,37,151,208,144,37,33,9,129,9,236,238>>, 0, <<0,53>>, <<246,253,112,45,211,102,103,239,231,128,141,130,96, 119,220,109,99,229,34,15,194,193,171,53,76,61,48, 248,155,124,154,79,212,201,187,247,106,45,1,208,221, 43,58,32,248,16,74,247>>, undefined,true,63549573283}, 856146,ssl_session_cache, {3,2}, false,rsa, {md5sha,rsa}, undefined, {'RSAPrivateKey','two-prime', 28754382929457051820198414803441500303526984249685155049796332097906730799908391206103523814976269005163077203094468431332135580805858819241292376687537373648925411819542786957998645419696941719138056950256895396533739787377057149511954887494217274675549621506852643517986748416002685399278604617064334846409024946047643876477509015842269083038506824483531387521790950615371903618405612939638384148174513598217798820397572316465433643750362451315632350679839305866273135240964574674912564288000457819237789013301382164938895437686379037265560348498246445928914896818541533959358614386333778948754935431058520256844751, 65537, 12192434002573843981743042082683611577196261124471684295570292699829564096596644387543079837257969381944195681779638726799955989059828962691247293220165342880052310436139501453771523834901785456049673689529408825156416908790775304450733392870848586996030462670765035181978634233063744519287625977746933809097928751222375021510082578123347833528558380840789720377211774619166418714520007916454818269202663616301725555071277822872080521648851522128805562777059786975793315502491712351795168167443721855642505435091435585902809399891236425455971666960198331434820081907231394691341092584384950481164779736626296762535457, 178797459419384179454995700555538308131914186433018901241269329994089456568495654410744185600704396568249533309282406294458054155081056281980503994941689784706024237273058477366815049398949382971959972087891015000872408741152042000915238822990361460607165928128696800963536722850492270069661093947129448734847, 160820981589068759737350867185963098753383608018664264101875563102468402957785217837686207176530946888090159278497018106937979486937006759315592493664852792763393054618165144985385922549862128257520764572107365227798852448341119014761517693877911549390040151119450786578129061416407709161499836435669806048433, 27742975187080850830490429512325389556943945585506953426651629105847012891115435703539338440477333547500335752660219259476997004791480558027675131979828851193609113460026117404567530362053744837906235503025218297204198002483713247590018822817476932006565303922070246868153942576966536373932033268968054140175, 3077185573228744445284922829107187174218274325272822789931671515792535168058694526274600665263436034570777724571391133346052249517356706534961212552538648429517599073671042187034407233738607333795123957053613012430531775488956822016737769323022126172011388215874868949890502205108187242145975477826722870817, 5940243877226089632200055074167927978550001243681641033194649041837250183233907132676792362250500180960363898208071035213840058611888614551068534986817267565775946611014238022825481223990165301212819194970907029134085079547357199651397306405068251748337700282212797757930062822944912205571550408060362437081, asn1_NOVALUE}, {'DHParameter', 179769313486231590770839156793787453197860296048756011706444423684197180216158519368947833795864925541502180565485980503646440548199239100050792877003355816639229553136239076508735759914822574862575007425302077447712589550957937778424442426617334727629299387668709205606050270810842907692932019128194467627007, 2,asn1_NOVALUE}, undefined,undefined,undefined,undefined,undefined,847952, #Ref<0.0.0.152573>,undefined,<<>>,true,undefined, undefined,undefined, {[],[]}, false,true,false,undefined, {{elliptic_curves, [{1,3,132,0,39}, {1,3,132,0,38}, {1,3,132,0,35}, {1,3,132,0,36}, {1,3,132,0,37}, {1,3,132,0,34}, {1,3,132,0,16}, {1,3,132,0,17}, {1,3,132,0,10}, {1,2,840,10045,3,1,7}, {1,3,132,0,3}, {1,3,132,0,26}, {1,3,132,0,27}, {1,3,132,0,32}, {1,3,132,0,33}, {1,3,132,0,24}, {1,3,132,0,25}, {1,3,132,0,31}, {1,2,840,10045,3,1,1}, {1,3,132,0,1}, {1,3,132,0,2}, {1,3,132,0,15}, {1,3,132,0,9}, {1,3,132,0,8}, {1,3,132,0,30}]}, undefined}} ** Reason for termination = ** {{case_clause,{error,ebadf}}, [{tls_connection,handle_unrecv_data,2, [{file,"tls_connection.erl"},{line,3065}]}, {tls_connection,terminate,3,[{file,"tls_connection.erl"},{line,1160}]}, {gen_fsm,terminate,7,[{file,"gen_fsm.erl"},{line,597}]}, {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,239}]}]} =WARNING REPORT==== 21-Oct-2013::15:25:33 === closing AMQP connection <0.1395.4> (192.168.173.75:34845 -> 192.168.173.16:5671): connection_closed_abruptly =INFO REPORT==== 21-Oct-2013::15:30:24 === accepting AMQP connection <0.12250.4> (192.168.173.55:51549 -> 192.168.173.16:5671) It seems from Reason for termination like there is some issue with Erlang file. Please Suggest. Thanks & Regards, ROhit ________________________________________ From: Michael Klishin [mklishin at gopivotal.com] Sent: Monday, October 14, 2013 3:36 AM To: Rohit Patle Subject: Re: [rabbitmq-discuss] Auto delete Queue disappears while using with direct exchange. On oct 14, 2013, at 12:43 a.m., Rohit Patle wrote: > sorry to bother you but I am not getting "default exchange is orthogonal with auto-deletion" what does it mean exactly? They solve completely different problems and have no effect on each other. Whether you use the default exchange has nothing to do with your queues being deleted and vice versa. -- MK ________________________________ 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 mklishin at gopivotal.com Mon Oct 21 14:19:50 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Mon, 21 Oct 2013 17:19:50 +0400 Subject: [rabbitmq-discuss] Auto delete Queue disappears while using with direct exchange. In-Reply-To: <27E054594442884E9A46DBCF9AE74081610357@BSDMSATMBX001.mahindrasatyam.ad> References: <27E054594442884E9A46DBCF9AE74081610343@BSDMSATMBX001.mahindrasatyam.ad> <27E054594442884E9A46DBCF9AE74081610357@BSDMSATMBX001.mahindrasatyam.ad> Message-ID: <81614A29-F673-4DAD-93E1-2FD39E373A25@gopivotal.com> On 21 Oct 2013, at 17:10, Rohit Patle wrote: > exception exit: {{case_clause,{error,ebadf}}, > [{tls_connection,handle_unrecv_data,2, > [{file,"tls_connection.erl"}, > {line,3065}]}, What Erlang version do you use? There is at least one known issue in the Erlang SSL implementation that caused ebadf to be returned: http://www.erlang.org/documentation/doc-5.7.4/lib/ssl-3.10.7/doc/html/notes.html (search for "ebadf"). Connection crash indeed may result in auto-deleted queues being sweeped, but this hypothesis would take some time to investigate. -- MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Mon Oct 21 14:21:06 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Mon, 21 Oct 2013 17:21:06 +0400 Subject: [rabbitmq-discuss] Auto delete Queue disappears while using with direct exchange. In-Reply-To: <27E054594442884E9A46DBCF9AE74081610357@BSDMSATMBX001.mahindrasatyam.ad> References: <27E054594442884E9A46DBCF9AE74081610343@BSDMSATMBX001.mahindrasatyam.ad> <27E054594442884E9A46DBCF9AE74081610357@BSDMSATMBX001.mahindrasatyam.ad> Message-ID: On 21 Oct 2013, at 17:10, Rohit Patle wrote: > Is I should create the queues in particular time interval? But in that case what should be time? Can you explain why you decided to use auto-delete queues? There may be another way to achieve the same result with non-autodelete ones, which would be you plan B. -- MK Software Engineer, Pivotal/RabbitMQ From viraj.gupte at credorax.com Mon Oct 21 14:55:21 2013 From: viraj.gupte at credorax.com (Viraj Gupte) Date: Mon, 21 Oct 2013 09:55:21 -0400 Subject: [rabbitmq-discuss] Upgrading of RabbitMq clusters connected with federation plugin from 2.8.7 to version 3.1.0 In-Reply-To: <5264F7B4.5080003@rabbitmq.com> References: <5264F7B4.5080003@rabbitmq.com> Message-ID: Yeah, thats what I realised when I did the upgrade, the type x-federation wasnt there. I had to set a policy to make it work On Mon, Oct 21, 2013 at 5:45 AM, Simon MacMullen wrote: > On 17/10/2013 3:41PM, Viraj Gupte wrote: > >> Hi All, >> I have two rabbitmq clusters A and B connected to each other via >> federation plugin in bidirectional manner.Both of them run version 2.8.7. >> I am planning to upgrade cluster A to 3.1.0 to check how federation >> works with the cluster with 2.8.7 version(cluster B). >> What should be my approach so as to keep the federation config intact on >> cluster A along with messages and queues >> > > Federation does not require that brokers be the same version. So you can > upgrade clusters A and B at different times. > > Note that the federation configuration mechanism changed in 3.0.0 so you > will need to redo the federation config in each cluster as you upgrade it; > see http://www.rabbitmq.com/blog/**2012/11/19/breaking-things-** > with-rabbitmq-3-0/ > > Cheers, Simon > > -- > Simon MacMullen > RabbitMQ, Pivotal > -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Mon Oct 21 16:30:44 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Mon, 21 Oct 2013 16:30:44 +0100 Subject: [rabbitmq-discuss] Unexpected Behavior When Using the "X-Consistent-Hash" Exchange Type In-Reply-To: References: <7C92AF06-FFDE-4729-A0C6-AD7EDDBBFBD8@rabbitmq.com> <38C1BCD9-76DC-498F-A378-5EE433DA0FDF@gopivotal.com> Message-ID: <526548A4.4090400@rabbitmq.com> On 17/10/2013 12:13AM, Richard Raseley wrote: > This leaves me with the following questions: > > 1) Is it true to say that it is now just a matter of choosing what > tradeoff we want to make in terms of performance vs. uniformity of > distribution? Yes. > 2) Can anyone comment on Michael's previous comment on how using a > UUID would be handled as the value in the hashed header? The numbers > above don't seem to show a large difference between using a random > integer and a UUID. No, they don't. The actual hashing is done by the Erlang function phash2, which will hash a UUID or an integer or any Erlang term. > As a final question, can anyone on the engineering team provide a > recommendation as to the best way to generate a header value for > hashing use in terms of what will implicitly provide the most even > distribution? It doesn't matter. Yeah, this confused me too when I first started looking at the hashing exchange. As long as you use something that tends towards unique-ish values then any unevenness in the routing displayed by the CHX is caused by the distribution of the buckets in its routing table - this is influenced by the number of points each binding has (as you have already noted) *and nothing else*. You can observe this easily - create some queues and bindings with 1 point each. Then publish some messages with random integers as the routing keys. Observe the uneven distribution. Then purge all the queues (but don't delete and start again) and re-run the test with UUIDs or message sequence IDs or whatever. Not only will the distribution still be uneven, but it will be uneven in exactly the same way. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From richard at raseley.com Mon Oct 21 17:48:54 2013 From: richard at raseley.com (Richard Raseley) Date: Mon, 21 Oct 2013 09:48:54 -0700 Subject: [rabbitmq-discuss] Unexpected Behavior When Using the "X-Consistent-Hash" Exchange Type In-Reply-To: <526548A4.4090400@rabbitmq.com> References: <7C92AF06-FFDE-4729-A0C6-AD7EDDBBFBD8@rabbitmq.com> <38C1BCD9-76DC-498F-A378-5EE433DA0FDF@gopivotal.com> <526548A4.4090400@rabbitmq.com> Message-ID: Simon, Thanks for your reply - it was very helpful. Regards, Richard On Mon, Oct 21, 2013 at 8:30 AM, Simon MacMullen wrote: > On 17/10/2013 12:13AM, Richard Raseley wrote: > >> This leaves me with the following questions: >> >> 1) Is it true to say that it is now just a matter of choosing what >> tradeoff we want to make in terms of performance vs. uniformity of >> distribution? >> > > Yes. > > > 2) Can anyone comment on Michael's previous comment on how using a >> UUID would be handled as the value in the hashed header? The numbers >> above don't seem to show a large difference between using a random >> integer and a UUID. >> > > No, they don't. The actual hashing is done by the Erlang function phash2, > which will hash a UUID or an integer or any Erlang term. > > > As a final question, can anyone on the engineering team provide a >> recommendation as to the best way to generate a header value for >> hashing use in terms of what will implicitly provide the most even >> distribution? >> > > It doesn't matter. > > Yeah, this confused me too when I first started looking at the hashing > exchange. As long as you use something that tends towards unique-ish values > then any unevenness in the routing displayed by the CHX is caused by the > distribution of the buckets in its routing table - this is influenced by > the number of points each binding has (as you have already noted) *and > nothing else*. > > You can observe this easily - create some queues and bindings with 1 point > each. Then publish some messages with random integers as the routing keys. > Observe the uneven distribution. Then purge all the queues (but don't > delete and start again) and re-run the test with UUIDs or message sequence > IDs or whatever. Not only will the distribution still be uneven, but it > will be uneven in exactly the same way. > > Cheers, Simon > > -- > Simon MacMullen > RabbitMQ, Pivotal > -------------- next part -------------- An HTML attachment was scrubbed... URL: From emile at rabbitmq.com Mon Oct 21 18:01:37 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Mon, 21 Oct 2013 18:01:37 +0100 Subject: [rabbitmq-discuss] abnormally large memory use in "binaries" In-Reply-To: <1382124784.35713.YahooMailNeo@web122001.mail.ne1.yahoo.com> References: <1382124784.35713.YahooMailNeo@web122001.mail.ne1.yahoo.com> Message-ID: <52655DF1.1050605@rabbitmq.com> Hi Brian, On 18/10/13 20:33, Brian Hammond wrote: > This is a topper: > https://www.dropbox.com/s/ccq0zidcck2ca8j/rabbitMQ-dead-with-0-messages.png > > Using 18gb with 0 messages... Thank you very much for this information. This has allowed me to form a hypothesis about where the memory might be going. In order to confirm, can you supply the output of netstat on the consumer connections? I'm particularly interested in the size of the send and receive queue. Also, you originally claimed that messages are about 280B. From the information provided the sizes appear to be much larger than that, some of them multiple megabytes in size. Can you think of an explanation for the discrepancy? -Emile From viraj.gupte at credorax.com Mon Oct 21 19:11:49 2013 From: viraj.gupte at credorax.com (Viraj Gupte) Date: Mon, 21 Oct 2013 14:11:49 -0400 Subject: [rabbitmq-discuss] Upgrading of RabbitMq clusters connected with federation plugin from 2.8.7 to version 3.1.0 In-Reply-To: References: <5264F7B4.5080003@rabbitmq.com> Message-ID: This is the configuration of shovel plugin I wish to run on Rabbitmq 2.8.7. The ip address of the machine that declares the shovel plugin is 10.33.32.130. [ {kernel, [{inet_dist_listen_min, 4001}, {inet_dist_listen_max, 4004}]}, {rabbitmq_shovel, [ {shovels, [ {MQ_shovel, [ { sources, [{broker, "amqp://"} ]} ,{destinations, [ {broker, "amqp://10.33.32.131:5672"} ]} ,{queue,<<"outbound.q">>} ,{prefetch_count,10} ,{ack_mode,on_confirm} ,{publish_properties,[{delivery_mode,2}]} ,{reconnect_delay,5} ]} ]} ]} ]. As soon as I try to start the server after configuration, I get this error in logs: {"could not start kernel pid",application_controller,"error in config file \"/etc/rabbitmq/rabbitmq.config\" (1): bad term"} On Mon, Oct 21, 2013 at 9:55 AM, Viraj Gupte wrote: > Yeah, thats what I realised when I did the upgrade, the type x-federation > wasnt there. I had to set a policy to make it work > > > On Mon, Oct 21, 2013 at 5:45 AM, Simon MacMullen wrote: > >> On 17/10/2013 3:41PM, Viraj Gupte wrote: >> >>> Hi All, >>> I have two rabbitmq clusters A and B connected to each other via >>> federation plugin in bidirectional manner.Both of them run version 2.8.7. >>> I am planning to upgrade cluster A to 3.1.0 to check how federation >>> works with the cluster with 2.8.7 version(cluster B). >>> What should be my approach so as to keep the federation config intact on >>> cluster A along with messages and queues >>> >> >> Federation does not require that brokers be the same version. So you can >> upgrade clusters A and B at different times. >> >> Note that the federation configuration mechanism changed in 3.0.0 so you >> will need to redo the federation config in each cluster as you upgrade it; >> see http://www.rabbitmq.com/blog/**2012/11/19/breaking-things-** >> with-rabbitmq-3-0/ >> >> Cheers, Simon >> >> -- >> Simon MacMullen >> RabbitMQ, Pivotal >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From demesg at gmail.com Mon Oct 21 19:23:23 2013 From: demesg at gmail.com (ku3ia) Date: Mon, 21 Oct 2013 11:23:23 -0700 (PDT) Subject: [rabbitmq-discuss] BasicReturn event question Message-ID: <1382379803780-30680.post@n5.nabble.com> Please advise! I'm using dotnet client library to connect to RabbitMQ server. Also I'm using BasicReturn event to catch un-routable messages. When I publish a message via BasicPublish with empty routing key or key, which doesn't use at any combination with exchange, I catch an event at BasirReturnEvent Handler. Its ok. But my question is can I catch exception in try-catch module? For example: IConnection connection = ... IModel channel = ... channel.BasicReturn += BasicReturnVoid; IBasicProperties properties = ... try { channel.BasicPublish(exchange, key, true, properties, message); } catch (Exception e) { // can catch NO ROUTE and other exceptions here??? } public static void BasicReturnVoid(IModel channel, BasicNackEventArgs args) { // normally NO_ROUTE exception catches here } Thanks. -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/BasicReturn-event-question-tp30680.html Sent from the RabbitMQ mailing list archive at Nabble.com. From matthias at rabbitmq.com Mon Oct 21 19:30:46 2013 From: matthias at rabbitmq.com (Matthias Radestock) Date: Mon, 21 Oct 2013 19:30:46 +0100 Subject: [rabbitmq-discuss] Upgrading of RabbitMq clusters connected with federation plugin from 2.8.7 to version 3.1.0 In-Reply-To: References: <5264F7B4.5080003@rabbitmq.com> Message-ID: <526572D6.2010400@rabbitmq.com> On 21/10/13 19:11, Viraj Gupte wrote: > This is the configuration of shovel plugin I wish to run on Rabbitmq > 2.8.7. The ip address of the machine that declares the shovel plugin is > 10.33.32.130. > [ > {kernel, [{inet_dist_listen_min, 4001}, {inet_dist_listen_max, 4004}]}, > {rabbitmq_shovel, > [ {shovels, [ {MQ_shovel, > [ { sources, > [{broker, "amqp://"} > ]} > > ,{destinations, > [ {broker, "amqp://10.33.32.131:5672 > "} > ]} > ,{queue,<<"outbound.q">>} > ,{prefetch_count,10} > ,{ack_mode,on_confirm} > ,{publish_properties,[{delivery_mode,2}]} > ,{reconnect_delay,5} > ]} > > ]} > ]} > > ]. > > > As soon as I try to start the server after configuration, I get this > error in logs: > {"could not start kernel pid",application_controller,"error in config > file \"/etc/rabbitmq/rabbitmq.config\" (1): bad term"} Run 'erl' and copy&paste your config into it. That will tell you the following: * 4: variable 'MQ_shovel' is unbound In Erlang, atoms must start with a lower-case letter, or otherwise be quoted. Matthias. From jhalterman at gmail.com Mon Oct 21 19:45:39 2013 From: jhalterman at gmail.com (Jonathan Halterman) Date: Mon, 21 Oct 2013 11:45:39 -0700 Subject: [rabbitmq-discuss] AlreadyClosedException always sets hardError and initiatedByApplication to true In-Reply-To: References: <5BFF87E3-BBD7-421D-8CD2-C8AE6E8A7FD8@rabbitmq.com> Message-ID: Hi Steve - Thanks for the response. Yes, this was helpful. Cheers, Jonathan On Wed, Oct 16, 2013 at 7:47 AM, Steve Powell wrote: > Jonathan, > > I think it is not a bug but working as designed: > > The second invocation on the channel is an invocation on a closed channel, > and this is a hard error, because it closes the connection. Furthermore > this was initiated by an application call rather than arriving out of the > blue from the server. > > There is no reason to expect that the 'flags' on the > AlreadyClosedException have anything to do with the event which closed the > channel/connection. > > As to the problem about recovery, it is the first exception (the > IOException) which you need to catch; its cause will be the > ShutdownSignalException, which tells you what the circumstances of the > shutdown are (application?, hard?). > > Is this enough to help you recover correctly? > > Steve Powell [*Cell*: +44-7815-838-558] > *Links: **Pivotal* *, SpringSource > , **VMware* *,* > > * **Virgo* *, * > *RabbitMQ .* > *-----------------------------------------------------------------------* > Good design: > is innovative, useful, and aesthetic; > is understandable, unobtrusive, and honest; > is long-lasting, thorough, and environmentally friendly; > and *is as little design as possible.* > *(c) Dieter Rams, amended 2003; 2009; 2012* > > On 15 Oct 2013, at 23:56, Jonathan Halterman wrote: > > Hey Michael, > > Yea, you can reproduce both items by attempting to declare a consumer on a > non-existent queue twice in a row. The first invocation closes the channel > and throws an IOException. The second invocation throws an > AlreadyClosedException, though the hardError and initiatedByApplication > flags don't match those from the initial failure. > > - jonathan > > > On Tue, Oct 15, 2013 at 3:45 PM, Michael Klishin wrote: > >> On oct 16, 2013, at 1:24 a.m., Jonathan Halterman >> wrote: >> >> > I noticed that AlreadyClosedException always sets hardError and >> initiatedByApplication to true, even if the error was not hard (only the >> channel was closed) and the channel was not closed by the application. This >> makes it more difficult to properly recover a closed resource if I can't >> easily determine which resource was closed and why. Could this be fixed? >> >> Jonathan, >> >> This indeed sounds like a bug. >> >> How can we reproduce it? Simply attempt an operation on a closed channel? >> Does it matter how exactly the channel was closed? >> >> MK >> >> >> >> > _______________________________________________ > 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 Mon Oct 21 19:49:23 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Mon, 21 Oct 2013 22:49:23 +0400 Subject: [rabbitmq-discuss] BasicReturn event question In-Reply-To: <1382379803780-30680.post@n5.nabble.com> References: <1382379803780-30680.post@n5.nabble.com> Message-ID: On 21 Oct 2013, at 22:23, ku3ia wrote: > But my question is can I catch exception > in try-catch module? For example: > > IConnection connection = ... > IModel channel = ... > channel.BasicReturn += BasicReturnVoid; Returned messages are not considered to be exceptions, so they are implemented as events you register handlers for in the .NET client. MK From brianin3d at yahoo.com Mon Oct 21 19:50:03 2013 From: brianin3d at yahoo.com (Brian Hammond) Date: Mon, 21 Oct 2013 11:50:03 -0700 (PDT) Subject: [rabbitmq-discuss] abnormally large memory use in "binaries" In-Reply-To: <52655DF1.1050605@rabbitmq.com> References: <1382124784.35713.YahooMailNeo@web122001.mail.ne1.yahoo.com> <52655DF1.1050605@rabbitmq.com> Message-ID: <1382381403.12000.YahooMailNeo@web122001.mail.ne1.yahoo.com> Do you have a specific set of arguments in mind for netstat? If not I'll go look at the man page. The one queue that had 4 messages in it was the only one with that size of message. Other queues have variously sized messages. Some of which are quite large. BTW, I'm working on a test program trying to reproduce the issue from the outside. Slim odds granted, but I noticed something weird: ?when I ctrl-c'd my test program at one point, all the queues, connections and channels went away, but the admin console still reports about 10gb of memory in use, 15 minutes later. I'll provide more information as my tests progress. On Monday, October 21, 2013 1:01 PM, Emile Joubert wrote: Hi Brian, On 18/10/13 20:33, Brian Hammond wrote: > This is a topper: >? https://www.dropbox.com/s/ccq0zidcck2ca8j/rabbitMQ-dead-with-0-messages.png > > Using 18gb with 0 messages... Thank you very much for this information. This has allowed me to form a hypothesis about where the memory might be going. In order to confirm, can you supply the output of netstat on the consumer connections? I'm particularly interested in the size of the send and receive queue. Also, you originally claimed that messages are about 280B. From the information provided the sizes appear to be much larger than that, some of them multiple megabytes in size. Can you think of an explanation for the discrepancy? -Emile -------------- next part -------------- An HTML attachment was scrubbed... URL: From jhalterman at gmail.com Mon Oct 21 20:02:20 2013 From: jhalterman at gmail.com (Jonathan Halterman) Date: Mon, 21 Oct 2013 12:02:20 -0700 Subject: [rabbitmq-discuss] Channel.basicPublish to a non-existent exchange does not throw Message-ID: I noticed that a Channel.basicPublish to a non-existent exchange does not result in an exception being thrown. It's not clear from the docs whether this is expected or not, but I assumed an exception would be thrown here since attempting to get/consume from a non-existent queue results in an exception be thrown with a similar shutdown reason (404). The channel is shutdown, but since the Channel's shutdown listener might not be called immediately my client might not realize that the Channel has been closed and could attempt another publish which results in the Connection being shutdown as well. Should Channel.basicPublish throw when the exchange doesn't exist? If not, what's the recommended way to determine if a basicPublish resulted in the Channel being closed (since Channel.isOpen is not recommended for production use) ? Thanks, Jonathan -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Mon Oct 21 20:06:29 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Mon, 21 Oct 2013 23:06:29 +0400 Subject: [rabbitmq-discuss] Channel.basicPublish to a non-existent exchange does not throw In-Reply-To: References: Message-ID: <6EC5C213-7154-4067-8EFE-58C641AEBA35@rabbitmq.com> On 21 Oct 2013, at 23:02, Jonathan Halterman wrote: > Should Channel.basicPublish throw when the exchange doesn't exist? No (although I agree it would be completely logical). Register a return listener and publish messages as mandatory. Also, take a look at publisher confirms. MK From jhalterman at gmail.com Mon Oct 21 20:20:49 2013 From: jhalterman at gmail.com (Jonathan Halterman) Date: Mon, 21 Oct 2013 12:20:49 -0700 Subject: [rabbitmq-discuss] Channel.basicPublish to a non-existent exchange does not throw In-Reply-To: <6EC5C213-7154-4067-8EFE-58C641AEBA35@rabbitmq.com> References: <6EC5C213-7154-4067-8EFE-58C641AEBA35@rabbitmq.com> Message-ID: Thanks for the response. Publishing as mandatory and using publisher confirms may not be an option since I'm not always in control of my client's usage of the Channel. In that case, I'm guessing I have to fallback to Channel.isOpen or wait for the ShutdownListener to be called? - jonathan On Mon, Oct 21, 2013 at 12:06 PM, Michael Klishin wrote: > > On 21 Oct 2013, at 23:02, Jonathan Halterman wrote: > > > Should Channel.basicPublish throw when the exchange doesn't exist? > > No (although I agree it would be completely logical). > > Register a return listener and publish messages as mandatory. Also, take a > look at publisher confirms. > > MK > > > > _______________________________________________ > 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 matthias at rabbitmq.com Mon Oct 21 20:21:59 2013 From: matthias at rabbitmq.com (Matthias Radestock) Date: Mon, 21 Oct 2013 20:21:59 +0100 Subject: [rabbitmq-discuss] rabbitmq client timeouts, slow responses In-Reply-To: References: <1381871593738-30510.post@n5.nabble.com> <0A522AF0-935C-4DA3-B75F-2C20C18F58DA@rabbitmq.com> Message-ID: <52657ED7.4060004@rabbitmq.com> On 17/10/13 18:52, tsduncan wrote: > there is something in the RabbitMQ Java library that > times out after 10 seconds. https://github.com/rabbitmq/rabbitmq-java-client/blob/rabbitmq_v3_1_5/src/com/rabbitmq/client/impl/AMQConnection.java#L299 As you can see, this isn't configurable. Never has been. Still, I've filed a bug to make it so. Matthias. From matthias at rabbitmq.com Mon Oct 21 20:25:33 2013 From: matthias at rabbitmq.com (Matthias Radestock) Date: Mon, 21 Oct 2013 20:25:33 +0100 Subject: [rabbitmq-discuss] Channel.basicPublish to a non-existent exchange does not throw In-Reply-To: References: <6EC5C213-7154-4067-8EFE-58C641AEBA35@rabbitmq.com> Message-ID: <52657FAD.5090504@rabbitmq.com> On 21/10/13 20:20, Jonathan Halterman wrote: > I'm guessing I have to > fallback to Channel.isOpen or wait for the ShutdownListener to be called? That's racy. How long would you wait? The reason that basicPublish doesn't return an error is because doing so would require waiting for a response from the server, thus making basicPublish synchronous and destroying performance. Matthias. From mklishin at gopivotal.com Mon Oct 21 20:28:02 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Mon, 21 Oct 2013 23:28:02 +0400 Subject: [rabbitmq-discuss] ANN amqp gem 1.0.3 is released Message-ID: <7C999D91-6B36-4FDA-905C-C1D5C802CE2C@rabbitmq.com> amqp gem 1.0.3 is released [1]. This is a bug fix release that is backwards compatible. Release notes: http://blog.rubyrabbitmq.info/blog/2013/10/21/amqp-gem-1-dot-0-3-is-released/ 1. http://rubygems.org/gems/amqp/versions/1.0.3 MK From mklishin at gopivotal.com Mon Oct 21 20:42:09 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Mon, 21 Oct 2013 23:42:09 +0400 Subject: [rabbitmq-discuss] ANN amqp gem 1.1.0 is released Message-ID: <3283F5AF-1589-495D-B3F8-BC5373B46D2F@rabbitmq.com> amqp gem 1.1.0 [1] is released after a month of release candidate testing. This release introduces usability improvements, bug fixes and major internal overhaul of the library. Release notes: http://blog.rubyrabbitmq.info/blog/2013/10/21/amqp-gem-1-dot-1-0-is-released/ 1. http://rubygems.org/gems/amqp/versions/1.1.0 MK From stuff at moesel.net Mon Oct 21 20:52:23 2013 From: stuff at moesel.net (Chris) Date: Mon, 21 Oct 2013 15:52:23 -0400 Subject: [rabbitmq-discuss] Alternative to "immediate" in RabbitMQ 3.x Message-ID: Hi All, We have a perfect use case for the immediate flag now, but just discovered it was deprecated in RabbitMQ 3.x. Oops. We considered the suggested alternative of using a message TTL of 0 and dead-letter exchanges, but ran into these two issues: - If x-message-ttl is set to 0 on the queue, then what *should be* a message-specific option now effects every message on the queue. This isn't acceptable for us. - If expiration is set to 0 on a message, the message will not be dead-lettered until it gets to the head of the queue (which could be a * long* time). We need to support scenarios where the publisher chooses on a message-by-message basis if the message should be "immediate". The best I can come up with is splitting every queue into two queues now-- one that has x-message-ttl set to 0 and one that doesn't, and each consumer would need to consume from *both* queues. And publishers would need to specify different routing keys based on if they want "immediate" or not... I don't really like this idea much. Question #1: Is there some other way of doing it that I'm not thinking of? Question #2: Has there been any thought to supporting "immediate" again? Or is it definitely a thing of the past? Thanks! Chris -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Mon Oct 21 21:04:29 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 22 Oct 2013 00:04:29 +0400 Subject: [rabbitmq-discuss] ANN March Hare 2.0.0.rc3 is released Message-ID: March Hare 2.0.0.rc3 is released [1]. This release introduces one usability improvement and clarifies some concurrency changes in the change log. Release notes: http://blog.rubyrabbitmq.info/blog/2013/10/21/march-hare-2-dot-0-0-dot-rc3-is-released/ 1. http://rubygems.org/gems/march_hare/versions/2.0.0.rc3-java MK From jhalterman at gmail.com Mon Oct 21 21:17:10 2013 From: jhalterman at gmail.com (Jonathan Halterman) Date: Mon, 21 Oct 2013 13:17:10 -0700 Subject: [rabbitmq-discuss] AlreadyClosedException always sets hardError and initiatedByApplication to true In-Reply-To: References: <5BFF87E3-BBD7-421D-8CD2-C8AE6E8A7FD8@rabbitmq.com> Message-ID: Hi Steve, I tried reproducing what you described and wasn't able to. After declaring a consumer on a non-existent queue several times, the connection is still in tact even though the AlreadyClosedException indicates a connection closure. Just want to make sure I'm not missing anything? - jonathan On Wed, Oct 16, 2013 at 7:47 AM, Steve Powell wrote: > Jonathan, > > I think it is not a bug but working as designed: > > The second invocation on the channel is an invocation on a closed channel, > and this is a hard error, because it closes the connection. Furthermore > this was initiated by an application call rather than arriving out of the > blue from the server. > > There is no reason to expect that the 'flags' on the > AlreadyClosedException have anything to do with the event which closed the > channel/connection. > > As to the problem about recovery, it is the first exception (the > IOException) which you need to catch; its cause will be the > ShutdownSignalException, which tells you what the circumstances of the > shutdown are (application?, hard?). > > Is this enough to help you recover correctly? > > Steve Powell [*Cell*: +44-7815-838-558] > *Links: **Pivotal* *, SpringSource > , **VMware* *,* > > * **Virgo* *, * > *RabbitMQ .* > *-----------------------------------------------------------------------* > Good design: > is innovative, useful, and aesthetic; > is understandable, unobtrusive, and honest; > is long-lasting, thorough, and environmentally friendly; > and *is as little design as possible.* > *(c) Dieter Rams, amended 2003; 2009; 2012* > > On 15 Oct 2013, at 23:56, Jonathan Halterman wrote: > > Hey Michael, > > Yea, you can reproduce both items by attempting to declare a consumer on a > non-existent queue twice in a row. The first invocation closes the channel > and throws an IOException. The second invocation throws an > AlreadyClosedException, though the hardError and initiatedByApplication > flags don't match those from the initial failure. > > - jonathan > > > On Tue, Oct 15, 2013 at 3:45 PM, Michael Klishin wrote: > >> On oct 16, 2013, at 1:24 a.m., Jonathan Halterman >> wrote: >> >> > I noticed that AlreadyClosedException always sets hardError and >> initiatedByApplication to true, even if the error was not hard (only the >> channel was closed) and the channel was not closed by the application. This >> makes it more difficult to properly recover a closed resource if I can't >> easily determine which resource was closed and why. Could this be fixed? >> >> Jonathan, >> >> This indeed sounds like a bug. >> >> How can we reproduce it? Simply attempt an operation on a closed channel? >> Does it matter how exactly the channel was closed? >> >> MK >> >> >> >> > _______________________________________________ > 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 Mon Oct 21 21:24:58 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 22 Oct 2013 00:24:58 +0400 Subject: [rabbitmq-discuss] Alternative to "immediate" in RabbitMQ 3.x In-Reply-To: References: Message-ID: On 21 Oct 2013, at 23:52, Chris wrote: > Question #1: Is there some other way of doing it that I'm not thinking of? This is basically a presence problem. I'd recommend using a coordination service such as etcd or ZooKeeper, or at least a K/V store like Redis, when you need presence or coordination between publishers and consumers. MK From demesg at gmail.com Mon Oct 21 21:25:15 2013 From: demesg at gmail.com (ku3ia) Date: Mon, 21 Oct 2013 13:25:15 -0700 (PDT) Subject: [rabbitmq-discuss] BasicReturn event question In-Reply-To: References: <1382379803780-30680.post@n5.nabble.com> Message-ID: <1382387115061-30689.post@n5.nabble.com> MK, thanks for your post. So, seems I must handle the situation with BasicReturn event via async try-catch, like here? http://msdn.microsoft.com/en-us/library/0yd65esw.aspx or something else? Thanks. -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/BasicReturn-event-question-tp30680p30689.html Sent from the RabbitMQ mailing list archive at Nabble.com. From mklishin at gopivotal.com Mon Oct 21 21:26:38 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 22 Oct 2013 00:26:38 +0400 Subject: [rabbitmq-discuss] AlreadyClosedException always sets hardError and initiatedByApplication to true In-Reply-To: References: <5BFF87E3-BBD7-421D-8CD2-C8AE6E8A7FD8@rabbitmq.com> Message-ID: <65CCF6A8-199D-4BB4-ABEE-DC79C2413F23@rabbitmq.com> On 22 Oct 2013, at 00:17, Jonathan Halterman wrote: > After declaring a consumer on a non-existent queue several times, the connection is still in tact even though the AlreadyClosedException indicates a connection closure Consuming from a non-existent queue should result in a channel exception which closes the channel, not the connection. MK From jhalterman at gmail.com Mon Oct 21 21:26:45 2013 From: jhalterman at gmail.com (Jonathan Halterman) Date: Mon, 21 Oct 2013 13:26:45 -0700 Subject: [rabbitmq-discuss] Channel.basicPublish to a non-existent exchange does not throw In-Reply-To: <52657FAD.5090504@rabbitmq.com> References: <6EC5C213-7154-4067-8EFE-58C641AEBA35@rabbitmq.com> <52657FAD.5090504@rabbitmq.com> Message-ID: Yea, racy indeed. I actually don't think we need to wait on a ShutdownListener since the basicPublish will eventually fail with AlreadyClosedException. That's fine as long as the Connection isn't shutdown as a result, which Steve mentioned in another thread (AlreadyClosedException always sets hardError...) is what should happen but which I haven't seen. Since I don't really have a fair chance to know that the Channel has been closed before getting an AlreadyClosedException, ideally the Connection wouldn't be closed as a result. - jonathan On Mon, Oct 21, 2013 at 12:25 PM, Matthias Radestock wrote: > On 21/10/13 20:20, Jonathan Halterman wrote: > >> I'm guessing I have to >> fallback to Channel.isOpen or wait for the ShutdownListener to be called? >> > > That's racy. How long would you wait? > > The reason that basicPublish doesn't return an error is because doing so > would require waiting for a response from the server, thus making > basicPublish synchronous and destroying performance. > > 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 Oct 21 21:30:57 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 22 Oct 2013 00:30:57 +0400 Subject: [rabbitmq-discuss] BasicReturn event question In-Reply-To: <1382387115061-30689.post@n5.nabble.com> References: <1382379803780-30680.post@n5.nabble.com> <1382387115061-30689.post@n5.nabble.com> Message-ID: <33E33AAE-7403-4715-A839-212B5283513B@rabbitmq.com> On 22 Oct 2013, at 00:25, ku3ia wrote: > So, seems I must handle the situation with BasicReturn event via async > try-catch, like here? > http://msdn.microsoft.com/en-us/library/0yd65esw.aspx > > or something else? Thanks. No, using regular event handlers: http://msdn.microsoft.com/en-us/library/orm-9780596521066-01-17.aspx Returned messages are *not* considered to be exceptions in the protocol, so client libraries do not use exceptions for them. MK From jhalterman at gmail.com Mon Oct 21 21:37:43 2013 From: jhalterman at gmail.com (Jonathan Halterman) Date: Mon, 21 Oct 2013 13:37:43 -0700 Subject: [rabbitmq-discuss] AlreadyClosedException always sets hardError and initiatedByApplication to true In-Reply-To: <65CCF6A8-199D-4BB4-ABEE-DC79C2413F23@rabbitmq.com> References: <5BFF87E3-BBD7-421D-8CD2-C8AE6E8A7FD8@rabbitmq.com> <65CCF6A8-199D-4BB4-ABEE-DC79C2413F23@rabbitmq.com> Message-ID: What Steve mentioned above is that subsequent attempts to use the closed channel are hard errors that close the connection. This is what I haven't seen. On Mon, Oct 21, 2013 at 1:26 PM, Michael Klishin wrote: > On 22 Oct 2013, at 00:17, Jonathan Halterman wrote: > > > After declaring a consumer on a non-existent queue several times, the > connection is still in tact even though the AlreadyClosedException > indicates a connection closure > > Consuming from a non-existent queue should result in a channel exception > which closes the channel, not the connection. > > MK > _______________________________________________ > 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 demesg at gmail.com Mon Oct 21 21:42:34 2013 From: demesg at gmail.com (ku3ia) Date: Mon, 21 Oct 2013 13:42:34 -0700 (PDT) Subject: [rabbitmq-discuss] BasicReturn event question In-Reply-To: <33E33AAE-7403-4715-A839-212B5283513B@rabbitmq.com> References: <1382379803780-30680.post@n5.nabble.com> <1382387115061-30689.post@n5.nabble.com> <33E33AAE-7403-4715-A839-212B5283513B@rabbitmq.com> Message-ID: <1382388154256-30695.post@n5.nabble.com> MK, thanks for response. >>Returned messages are *not* considered to be exceptions in the protocol, >>so client libraries do not use exceptions for them. Yeah, I understand this. But I must throw an exception in a main try-catch to prevent further program execution. >>No, using regular event handlers: >>http://msdn.microsoft.com/en-us/library/orm-9780596521066-01-17.aspx OK. I'll try it. Many thanks. -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/BasicReturn-event-question-tp30680p30695.html Sent from the RabbitMQ mailing list archive at Nabble.com. From jkuch at gopivotal.com Mon Oct 21 21:54:51 2013 From: jkuch at gopivotal.com (Jerry Kuch) Date: Mon, 21 Oct 2013 13:54:51 -0700 Subject: [rabbitmq-discuss] centos linux install failed to create rabbitmq-env.conf or rabbitmq.config In-Reply-To: <0db3d427-609b-4289-a7fd-affb23803a1f@googlegroups.com> References: <0db3d427-609b-4289-a7fd-affb23803a1f@googlegroups.com> Message-ID: Hi, Ken: So this thread's been going a while, and taken a bunch of twists and turns. Some remarks inline to try to establish context on where we are and how we might solve your problems... On Wed, Oct 16, 2013 at 12:36 PM, ken macpherson wrote: > nope didn't work... > > # nohup rabbitmq-server & > > & > # rabbitmqctl status > Status of node rabbit at qaapp ... > [{pid,30347}, > {running_applications, > [{rabbitmq_tracing,"RabbitMQ message logging / tracing","3.1.5"}, > {rabbitmq_management_visualiser,"RabbitMQ Visualiser","3.1.5"}, > {rabbitmq_management,"RabbitMQ Management Console","3.1.5"}, > {rabbitmq_web_dispatch,"RabbitMQ Web Dispatcher","3.1.5"}, > {webmachine,"webmachine","1.10.3-rmq3.1.5-gite9359c7"}, > {mochiweb,"MochiMedia Web Server","2.7.0-rmq3.1.5-git680dba8"}, > {rabbitmq_management_agent,"RabbitMQ Management Agent","3.1.5"}, > {rabbit,"RabbitMQ","3.1.5"}, > {os_mon,"CPO CXC 138 46","2.2.13"}, > {inets,"INETS CXC 138 49","5.9.6"}, > {mnesia,"MNESIA CXC 138 12","4.10"}, > {amqp_client,"RabbitMQ AMQP Client","3.1.5"}, > {xmerl,"XML parser","1.3.4"}, > {sasl,"SASL CXC 138 11","2.3.3"}, > {stdlib,"ERTS CXC 138 10","1.19.3"}, > {kernel,"ERTS CXC 138 10","2.16.3"}]}, > {os,{unix,linux}}, > {erlang_version, > "Erlang R16B02 (erts-5.10.3) [source] [64-bit] [smp:4:4] > [async-threads:30] [hipe] [kernel-poll:true]\n"}, > {memory, > [{total,41243224}, > {connection_procs,5600}, > {queue_procs,5600}, > {plugins,382736}, > {other_proc,13561960}, > {mnesia,60272}, > {mgmt_db,47344}, > {msg_index,28496}, > {other_ets,1108360}, > {binary,34144}, > {code,19598331}, > {atom,703377}, > {other_system,5707004}]}, > {vm_memory_high_watermark,0.4}, > {vm_memory_limit,1658167296}, > {disk_free_limit,1000000000}, > {disk_free,6997409792}, > {file_descriptors, > [{total_limit,10140}, > {total_used,3}, > {sockets_limit,9124}, > {sockets_used,1}]}, > {processes,[{limit,1048576},{used,199}]}, > {run_queue,0}, > {uptime,192}] > ...done. > > > BUT ... the services are bumbkiss. > > #/sbin/service rabbitmq-server status > pthread/ethr_event.c:98: Fatal error in wait__(): Function not implemented > (38) > > It's running the server now, so there's 8 hours I'll never get back. > I can't quite understand what state you're in or how you got there. Did you: 1. On a relatively clean CentOS machine... 2. ...set up the EPEL repositories as documented here: http://www.rabbitmq.com/install-rpm.html 3. ...install a sufficiently modern Erlang from the EPEL repository set up in 2 4. ...install the rabbitmq-server RPM as documented at the URL above 5. Start the service with: /sbin/service rabbitmq-server start 6. Verify that it's alive by things like: 1. Trying to telnet to port 5672 where Rabbit should be listening for AMQP connection attempts (bang on some keys and see if you get kicked out with an AMQP error message) 2. Use ps to find processes whose name contains 'beam' (the name of the Erlang VM) and whose command line arguments show they're running Rabbit 3. 'sudo rabbitmqctl status' and see what you get back. The chain of things in your mail thread suggests one or more of these things have gone wrong, as well as some possible red herrings, like worrying about the epmd process... this is the Erlang port mapper daemon, which Erlang applications use to find one another for IPC, and will be running if Erlang has previous started up on the machine. The "function not implemented" error you're seeing is something that you'll sometimes see on CentOS installs running Erlang on older Linux kernels that don't implement FUTEX_WAIT_PRIVATE and FUTEX_WAKE_PRIVATE. What CentOS version are you working with? I'm also wondering a bit whether there might be more than one Erlang install on this machine. Can you back out and try again, following the instructions at the above URL carefully, and reporting what you see as you go? Best regards, Jerry -------------- next part -------------- An HTML attachment was scrubbed... URL: From viraj.gupte at credorax.com Mon Oct 21 22:18:36 2013 From: viraj.gupte at credorax.com (Viraj Gupte) Date: Mon, 21 Oct 2013 17:18:36 -0400 Subject: [rabbitmq-discuss] Problems with shovel plugin Message-ID: This is the configuration of shovel plugin I wish to run on Rabbitmq 2.8.7. The ip address of the machine that declares the shovel plugin is 10.33.32.130. [ {kernel, [{inet_dist_listen_min, 4001}, {inet_dist_listen_max, 4004}]}, {rabbitmq_shovel, [ {shovels, [ {MQ_shovel, [ { sources, [{broker, "amqp://"} ]} ,{destinations, [ {broker, "amqp://10.33.32.131:5672"} ]} ,{queue,<<"outbound.q">>} ,{prefetch_count,10} ,{ack_mode,on_confirm} ,{publish_properties,[{delivery_mode,2}]} ,{reconnect_delay,5} ]} ]} ]} ]. As soon as I try to start the server after configuration, I get this error in logs: {"could not start kernel pid",application_controller,"error in config file \"/etc/rabbitmq/rabbitmq.config\" (1): bad term"} -------------- next part -------------- An HTML attachment was scrubbed... URL: From stuff at moesel.net Mon Oct 21 22:19:48 2013 From: stuff at moesel.net (Chris) Date: Mon, 21 Oct 2013 17:19:48 -0400 Subject: [rabbitmq-discuss] Alternative to "immediate" in RabbitMQ 3.x In-Reply-To: References: Message-ID: Hi Michael, It's a little more than presence. It is not enough to know the service is running-- I need to know if it can handle a message right now. So I guess I would need to use a solution to keep track not only of presence but of capacity-- which might be hard to do in a transactional manner. Still-- your point is taken and may be the best solution given the requirements and capabilities. Thanks, Chris On Mon, Oct 21, 2013 at 4:24 PM, Michael Klishin wrote: > On 21 Oct 2013, at 23:52, Chris wrote: > > > Question #1: Is there some other way of doing it that I'm not thinking > of? > > This is basically a presence problem. I'd recommend using a coordination > service such as etcd or ZooKeeper, or at least a K/V store like Redis, when > you need presence or coordination between publishers and consumers. > > MK > > > > _______________________________________________ > 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 mcintoshj at gmail.com Mon Oct 21 22:25:03 2013 From: mcintoshj at gmail.com (Jason McIntosh) Date: Mon, 21 Oct 2013 16:25:03 -0500 Subject: [rabbitmq-discuss] Problems with shovel plugin In-Reply-To: References: Message-ID: Try changing "MQ_shovel" to have single quotes around it. I'd also try removing: {kernel, [{inet_dist_listen_min, 4001}, {inet_dist_listen_max, 4004}]}, first. Jason On Mon, Oct 21, 2013 at 4:18 PM, Viraj Gupte wrote: > This is the configuration of shovel plugin I wish to run on Rabbitmq > 2.8.7. The ip address of the machine that declares the shovel plugin is > 10.33.32.130. > [ > {kernel, [{inet_dist_listen_min, 4001}, {inet_dist_listen_max, 4004}]}, > {rabbitmq_shovel, > [ {shovels, [ {MQ_shovel, > [ { sources, > [{broker, "amqp://"} > ]} > > ,{destinations, > [ {broker, "amqp://10.33.32.131:5672"} > ]} > ,{queue,<<"outbound.q">>} > ,{prefetch_count,10} > ,{ack_mode,on_confirm} > ,{publish_properties,[{delivery_mode,2}]} > ,{reconnect_delay,5} > ]} > > ]} > ]} > > ]. > > As soon as I try to start the server after configuration, I get this error > in logs: > {"could not start kernel pid",application_controller,"error in config file > \"/etc/rabbitmq/rabbitmq.config\" (1): bad term"} > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -- Jason McIntosh http://mcintosh.poetshome.com/blog/ 573-424-7612 -------------- next part -------------- An HTML attachment was scrubbed... URL: From matthias at rabbitmq.com Mon Oct 21 22:29:02 2013 From: matthias at rabbitmq.com (Matthias Radestock) Date: Mon, 21 Oct 2013 22:29:02 +0100 Subject: [rabbitmq-discuss] Problems with shovel plugin In-Reply-To: References: Message-ID: <52659C9E.3010906@rabbitmq.com> A few hours ago I replied to the same question you posted previously. See https://github.com/pivotal-cf/pivotalone-rabbit/blob/84f1ec32292a4a11b635993cd24cbb159e247951/src/rabbitmq_gateway/spec/unit/tls_helper_spec.rb Matthias. From matthias at rabbitmq.com Mon Oct 21 22:32:41 2013 From: matthias at rabbitmq.com (Matthias Radestock) Date: Mon, 21 Oct 2013 22:32:41 +0100 Subject: [rabbitmq-discuss] Problems with shovel plugin In-Reply-To: <52659C9E.3010906@rabbitmq.com> References: <52659C9E.3010906@rabbitmq.com> Message-ID: <52659D79.8040401@rabbitmq.com> On 21/10/13 22:29, Matthias Radestock wrote: > A few hours ago I replied to the same question you posted previously. > See [...] err, c&p error. I meant http://rabbitmq.1065348.n5.nabble.com/Upgrading-of-RabbitMq-clusters-connected-with-federation-plugin-from-2-8-7-to-version-3-1-0-tp30610p30681.html Matthias. From matthias at rabbitmq.com Mon Oct 21 22:37:11 2013 From: matthias at rabbitmq.com (Matthias Radestock) Date: Mon, 21 Oct 2013 22:37:11 +0100 Subject: [rabbitmq-discuss] centos linux install failed to create rabbitmq-env.conf or rabbitmq.config In-Reply-To: References: Message-ID: <52659E87.1030709@rabbitmq.com> On 16/10/13 15:26, ken macpherson wrote: > For some reason the rabbit conf files are not present As the docs at http://www.rabbitmq.com/configure.html say... "RabbitMQ comes with default built-in settings which will most likely be sufficient for running your RabbitMQ server effectively. If it runs fine, then you probably don't need any configuration at all." And from http://www.rabbitmq.com/configure.html#config-location "By default, they are not created" Matthias. From jhalterman at gmail.com Mon Oct 21 22:38:22 2013 From: jhalterman at gmail.com (Jonathan Halterman) Date: Mon, 21 Oct 2013 14:38:22 -0700 Subject: [rabbitmq-discuss] Channel.basicPublish to a non-existent exchange does not throw In-Reply-To: References: <6EC5C213-7154-4067-8EFE-58C641AEBA35@rabbitmq.com> <52657FAD.5090504@rabbitmq.com> Message-ID: Another comment on basicPublish failures: It would be great if the AlreadyClosedException that results from the first failed basicPublish gave a helpful shutdown reason such as channel.close, reply-code 404. As it is, there's not always a way to determine why the channel was closed without waiting for the ShutdownListener to be called (which could be later). This is crucial as it prevents me from knowing whether the basicPublish is something that should result in me recovering the channel and retrying the publish, or not. - jonathan On Mon, Oct 21, 2013 at 1:26 PM, Jonathan Halterman wrote: > Yea, racy indeed. I actually don't think we need to wait on a > ShutdownListener since the basicPublish will eventually fail with > AlreadyClosedException. That's fine as long as the Connection isn't > shutdown as a result, which Steve mentioned in another thread > (AlreadyClosedException always sets hardError...) is what should happen but > which I haven't seen. Since I don't really have a fair chance to know that > the Channel has been closed before getting an AlreadyClosedException, > ideally the Connection wouldn't be closed as a result. > > - jonathan > > > On Mon, Oct 21, 2013 at 12:25 PM, Matthias Radestock < > matthias at rabbitmq.com> wrote: > >> On 21/10/13 20:20, Jonathan Halterman wrote: >> >>> I'm guessing I have to >>> fallback to Channel.isOpen or wait for the ShutdownListener to be called? >>> >> >> That's racy. How long would you wait? >> >> The reason that basicPublish doesn't return an error is because doing so >> would require waiting for a response from the server, thus making >> basicPublish synchronous and destroying performance. >> >> 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 yby538 at 163.com Tue Oct 22 02:40:27 2013 From: yby538 at 163.com (yby538) Date: Tue, 22 Oct 2013 09:40:27 +0800 Subject: [rabbitmq-discuss] a weird question about rabbitmq.thanks a lot Message-ID: <6cf75883.f35.141ddd2002f.Coremail.yby538@163.com> hi,all i use "rabbitmqctrl list_queues" to list the queues in my computer and the result is like this: that is to say ,there are 17 messages in youdao_box_ctp queue and by the way,the queue is defined like this: channelSTC.queueDeclare("youdao_box_ctp", true, false, false, null); here is my code to get the message: ConnectionFactory factoryCTP = new ConnectionFactory(); factoryCTP.setHost("localhost"); Connection connectionProxy=factoryCTP.newConnection(); Channel channameProxy=connectionProxy.createChannel(); channameProxy.queueDeclare("youdao_box_ctp", true, false, false, null); channameProxy.basicQos(1); while(true) { GetResponse response = channameProxy.basicGet("youdao_box_ctp", false); if(response!=null) { channameProxy.basicAck(response.getEnvelope().getDeliveryTag(), false); } else { System.out.println("empty"); } } it prints "empty" !!!! why???there are 17 messages in youdao_box_ctp!!! the same thing happened to the other queues also thanks a lot 2013-10-22 yby538 -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 123456.jpg Type: image/jpeg Size: 18474 bytes Desc: not available URL: From matthias at rabbitmq.com Tue Oct 22 09:09:52 2013 From: matthias at rabbitmq.com (Matthias Radestock) Date: Tue, 22 Oct 2013 09:09:52 +0100 Subject: [rabbitmq-discuss] other transports besides TCP In-Reply-To: References: <5fd53a4c-debb-4526-8507-f23ca60a28b8@googlegroups.com> <5257DCB8.8070303@rabbitmq.com> <525D0614.9000304@rabbitmq.com> Message-ID: <526632D0.30408@rabbitmq.com> On 16/10/13 13:58, Jorg Eloy wrote: > Thanks for your help, continue with our interest in consuming the > enqueued messages, > in order to get more than one consumer per queue. > Exist something similar to fanout exchange type in UPD? > > Actually, I'm trying with UDP consumer without get it. So I've the > Consumer that I use with TCP transport, > and it's very strange, It works perfect when consumes messages from a > host where the brokerMQ is installed. > But when I try to consume messages from the other host, it's no possible. > Besides that when I tried to declare the exchange and queue from the > another host different to the broker, These aren't created. > > Any ideas? What else should I try? I suggest you forget about UDP for the moment and first get your intended scenario working with plain AMQP-over-TCP. There is plenty of documentation, tutorials etc around for that. Once you have a tcp-based prototype, *then* look into replacing first the inbound and later the outbound side with UDP. Matthias. From matthias at rabbitmq.com Tue Oct 22 09:14:48 2013 From: matthias at rabbitmq.com (Matthias Radestock) Date: Tue, 22 Oct 2013 09:14:48 +0100 Subject: [rabbitmq-discuss] Alternative to "immediate" in RabbitMQ 3.x In-Reply-To: References: Message-ID: <526633F8.8090003@rabbitmq.com> On 21/10/13 22:19, Chris wrote: > It's a little more than presence. It is not enough to know the service > is running-- I need to know if it can handle a message right now. So I > guess I would need to use a solution to keep track not only of presence > but of capacity-- which might be hard to do in a transactional manner. > > Still-- your point is taken and may be the best solution given the > requirements and capabilities. I actually think the two-queues solution you proposed would work well. Matthias. From erez.semaria at gmail.com Mon Oct 21 21:29:39 2013 From: erez.semaria at gmail.com (elpatron) Date: Mon, 21 Oct 2013 13:29:39 -0700 (PDT) Subject: [rabbitmq-discuss] .NET client - prefetch issue In-Reply-To: References: Message-ID: <1382387379643-30692.post@n5.nabble.com> Having this /exact/ same issue. By my estimation, the prefetch_count marks an upper bound to the number of documents that can be un-acked at any given time. Having set my qos thusly con.basicQos(0, 1, false) I am still consuming upper of 100 messages (using channel.basicGet( queue, false )) before I hit my very first ack. -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/NET-client-prefetch-issue-tp23286p30692.html Sent from the RabbitMQ mailing list archive at Nabble.com. From kam5fcc at gmail.com Mon Oct 21 21:21:58 2013 From: kam5fcc at gmail.com (Kevin Meek) Date: Mon, 21 Oct 2013 13:21:58 -0700 (PDT) Subject: [rabbitmq-discuss] I think the Java tutorial has an error Message-ID: The first Java tutorial has String message = "Hello World!"; channel.basicPublish("", QUEUE_NAME, null, message.getBytes()); where I believe the first parameter should be the message String itself. No? Kevin -------------- next part -------------- An HTML attachment was scrubbed... URL: From ranadevraj01 at gmail.com Tue Oct 22 08:20:04 2013 From: ranadevraj01 at gmail.com (ranjeet_rabbitmq) Date: Tue, 22 Oct 2013 00:20:04 -0700 (PDT) Subject: [rabbitmq-discuss] connection problem. i want reconnection if failed In-Reply-To: <525E7B11.1090400@rabbitmq.com> References: <525E7B11.1090400@rabbitmq.com> Message-ID: <1382426404627-30713.post@n5.nabble.com> you can't do this consumer.IsRunning = false; because it is a read only properties. -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/connection-problem-i-want-reconnection-if-failed-tp30500p30713.html Sent from the RabbitMQ mailing list archive at Nabble.com. From watson.timothy at gmail.com Tue Oct 22 09:24:05 2013 From: watson.timothy at gmail.com (Tim Watson) Date: Tue, 22 Oct 2013 09:24:05 +0100 Subject: [rabbitmq-discuss] Alternative to "immediate" in RabbitMQ 3.x In-Reply-To: References: Message-ID: On 21 Oct 2013, at 20:52, Chris wrote: > If x-message-ttl is set to 0 on the queue, then what should be a message-specific option now effects every message on the queue. This isn't acceptable for us. That's only true for per queue TTL - you can still set per message TTL instead. > If expiration is set to 0 on a message, the message will not be dead-lettered until it gets to the head of the queue (which could be a long time). This however, is true. It's not clear that we could expire messages that aren't at the head of the queue whilst maintaining acceptable levels of per queue throughput, which is why that behaviour remains ATM. > Question #2: Has there been any thought to supporting "immediate" again? Or is it definitely a thing of the past? There aren't any plans to reintroduce it at the moment. Cheers, Tim -------------- next part -------------- An HTML attachment was scrubbed... URL: From emile at rabbitmq.com Tue Oct 22 09:28:21 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Tue, 22 Oct 2013 09:28:21 +0100 Subject: [rabbitmq-discuss] a weird question about rabbitmq.thanks a lot In-Reply-To: <6cf75883.f35.141ddd2002f.Coremail.yby538@163.com> References: <6cf75883.f35.141ddd2002f.Coremail.yby538@163.com> Message-ID: <52663725.5060309@rabbitmq.com> On 22/10/13 02:40, yby538 wrote: > it prints "empty" !!!! why???there are 17 messages in youdao_box_ctp!!! By default "rabbitmqctl list_queues" displays the queue name and the queue depth, which is the total of ready and unacknowledged messages. The messages you are attempting to retrieved are probably unacknowledged. Use this to check whether there are any ready messages: "rabbitmqctl list_queues name messages_ready" Also see the documentation, included with the rabbitmqctl command and online: http://www.rabbitmq.com/man/rabbitmqctl.1.man.html -Emile From matthias at rabbitmq.com Tue Oct 22 09:29:55 2013 From: matthias at rabbitmq.com (Matthias Radestock) Date: Tue, 22 Oct 2013 09:29:55 +0100 Subject: [rabbitmq-discuss] .NET client - prefetch issue In-Reply-To: <1382387379643-30692.post@n5.nabble.com> References: <1382387379643-30692.post@n5.nabble.com> Message-ID: <52663783.5090509@rabbitmq.com> On 21/10/13 21:29, elpatron wrote: > Having this /exact/ same issue. No, you are not. The OP was retrieving messages with basic.consume. You are using basic.get. Big difference... > Having set my qos thusly > > con.basicQos(0, 1, false) > > I am still consuming upper of 100 messages (using channel.basicGet( queue, > false )) before I hit my very first ack. basic.qos does not apply to basic.get. It really makes no sense for it to do so since with basic.get the application is in complete control over how many messages it is consuming before issuing an ack. Matthias. From matthias at rabbitmq.com Tue Oct 22 09:35:26 2013 From: matthias at rabbitmq.com (Matthias Radestock) Date: Tue, 22 Oct 2013 09:35:26 +0100 Subject: [rabbitmq-discuss] I think the Java tutorial has an error In-Reply-To: References: Message-ID: <526638CE.6000100@rabbitmq.com> On 21/10/13 21:21, Kevin Meek wrote: > The first Java tutorial has > > String message = "Hello World!"; > channel.basicPublish("", QUEUE_NAME, null, message.getBytes()); > > where I believe the first parameter should be the message String itself. No? No. It's the exchange name. Keep reading. All will be revealed eventually :) Matthias. From simon at rabbitmq.com Tue Oct 22 09:40:02 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Tue, 22 Oct 2013 09:40:02 +0100 Subject: [rabbitmq-discuss] I think the Java tutorial has an error In-Reply-To: References: Message-ID: <526639E2.7060206@rabbitmq.com> On 21/10/2013 21:21, Kevin Meek wrote: > The first Java tutorial has > > String message = "Hello World!"; > channel.basicPublish("", QUEUE_NAME, null, message.getBytes()); > > where I believe the first parameter should be the message String itself. No? No. The first parameter is the name of the exchange to publish to - in this case "" means the default exchange, which always routes to the named queue. See http://www.rabbitmq.com/releases/rabbitmq-java-client/v3.1.5/rabbitmq-java-client-javadoc-3.1.5/com/rabbitmq/client/Channel.html#basicPublish(java.lang.String, java.lang.String, com.rabbitmq.client.AMQP.BasicProperties, byte[]) Cheers, Simon From sekhar434145 at gmail.com Tue Oct 22 10:33:40 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Tue, 22 Oct 2013 15:03:40 +0530 Subject: [rabbitmq-discuss] how to test round robin behavior using Spring-AMPI API? Message-ID: I could able to test the round-robin behaviour using plain Java client API by running consumer program via two command prompts. Same I want to test using Spring-AMQP API. So, I would like to know which one is the best option to test the round robin scenario mentioned below. 1> setting ConcurrentConsumers property (Container.setConcurrentConsumers(2)) and running in consumer program in single thread 2> running consumer program in two threads without ConcurrentConsumers property. Could any one help me on this which is correct option? Thanks in advance! -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Tue Oct 22 10:41:56 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 22 Oct 2013 13:41:56 +0400 Subject: [rabbitmq-discuss] how to test round robin behavior using Spring-AMPI API? In-Reply-To: References: Message-ID: <33D71729-C15A-48C5-95B0-B46E157365C0@rabbitmq.com> On 22 Oct 2013, at 13:33, Rajasekhar P wrote: > 1> setting ConcurrentConsumers property (Container.setConcurrentConsumers(2)) and running in consumer program in single thread > 2> running consumer program in two threads without ConcurrentConsumers property. > > Could any one help me on this which is correct option? Thanks in advance! 1 is the right thing to use in production. 2 will give you more flexibility in tests, e.g. close one consumer channel in tests. MK From sekhar434145 at gmail.com Tue Oct 22 11:13:42 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Tue, 22 Oct 2013 15:43:42 +0530 Subject: [rabbitmq-discuss] how to test round robin behavior using Spring-AMPI API? In-Reply-To: <33D71729-C15A-48C5-95B0-B46E157365C0@rabbitmq.com> References: <33D71729-C15A-48C5-95B0-B46E157365C0@rabbitmq.com> Message-ID: Thank you MK. On Tue, Oct 22, 2013 at 3:11 PM, Michael Klishin wrote: > On 22 Oct 2013, at 13:33, Rajasekhar P wrote: > > > 1> setting ConcurrentConsumers property > (Container.setConcurrentConsumers(2)) and running in consumer program in > single thread > > 2> running consumer program in two threads without ConcurrentConsumers > property. > > > > Could any one help me on this which is correct option? Thanks in advance! > > 1 is the right thing to use in production. > 2 will give you more flexibility in tests, e.g. close one consumer channel > in tests. > > MK > _______________________________________________ > 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 steve at rabbitmq.com Tue Oct 22 11:42:17 2013 From: steve at rabbitmq.com (Steve Powell) Date: Tue, 22 Oct 2013 11:42:17 +0100 Subject: [rabbitmq-discuss] AlreadyClosedException always sets hardError and initiatedByApplication to true In-Reply-To: References: <5BFF87E3-BBD7-421D-8CD2-C8AE6E8A7FD8@rabbitmq.com> <65CCF6A8-199D-4BB4-ABEE-DC79C2413F23@rabbitmq.com> Message-ID: You are right: I have reproduced some of this. Here is what I found in my small test: Cancelling an unknown consumer doesn't appear to close the channel (!) (channel.isOpen() is true). It throws an IOException("Unknown consumerTag"). Explicitly closing the channel and then trying the same channel.basicCancel() call doesn't appear to close the connection, either! Same IOException. Issuing a 'real work' call after closing the channel, like channel.basicConsume(), throws an AlreadyClosedException, claiming that the connection is closed, but conn.isOpen() still returns true. There might be a number of bugs here. But I think there is only one: the connection ought to be closed when trying to use a Channel that doesn't exist. The other 'anomalies' could be working as designed: if no protocol violations are involved in the action, the Channel can remain intact. Steve Powell [Cell: +44-7815-838-558] [RabbitMQ, Pivotal] ?L?enfer, c?est les autres.? Sartre On 21 Oct 2013, at 21:37, Jonathan Halterman wrote: > What Steve mentioned above is that subsequent attempts to use the closed channel are hard errors that close the connection. This is what I haven't seen. > > > On Mon, Oct 21, 2013 at 1:26 PM, Michael Klishin wrote: > On 22 Oct 2013, at 00:17, Jonathan Halterman wrote: > > > After declaring a consumer on a non-existent queue several times, the connection is still in tact even though the AlreadyClosedException indicates a connection closure > > Consuming from a non-existent queue should result in a channel exception > which closes the channel, not the connection. > > MK > _______________________________________________ > 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 emile at rabbitmq.com Tue Oct 22 12:31:40 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Tue, 22 Oct 2013 12:31:40 +0100 Subject: [rabbitmq-discuss] abnormally large memory use in "binaries" In-Reply-To: <1382381403.12000.YahooMailNeo@web122001.mail.ne1.yahoo.com> References: <1382124784.35713.YahooMailNeo@web122001.mail.ne1.yahoo.com> <52655DF1.1050605@rabbitmq.com> <1382381403.12000.YahooMailNeo@web122001.mail.ne1.yahoo.com> Message-ID: <5266621C.7090403@rabbitmq.com> Hi Brian, On 21/10/13 19:50, Brian Hammond wrote: > Do you have a specific set of arguments in mind for netstat? If not I'll > go look at the man page. netstat shows this information by default. > I'll provide more information as my tests progress. From erez.semaria at gmail.com Tue Oct 22 14:46:18 2013 From: erez.semaria at gmail.com (elpatron) Date: Tue, 22 Oct 2013 06:46:18 -0700 (PDT) Subject: [rabbitmq-discuss] .NET client - prefetch issue In-Reply-To: <52663783.5090509@rabbitmq.com> References: <1382387379643-30692.post@n5.nabble.com> <52663783.5090509@rabbitmq.com> Message-ID: <1382449578056-30725.post@n5.nabble.com> Yeah. I came to this conclusion shortly after I posted. Got my app running with basic consume and we are chugging along just fine right now. Thanks for the short turnaround -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/NET-client-prefetch-issue-tp23286p30725.html Sent from the RabbitMQ mailing list archive at Nabble.com. From steve at rabbitmq.com Tue Oct 22 15:46:30 2013 From: steve at rabbitmq.com (Steve Powell) Date: Tue, 22 Oct 2013 15:46:30 +0100 Subject: [rabbitmq-discuss] AlreadyClosedException always sets hardError and initiatedByApplication to true In-Reply-To: References: <5BFF87E3-BBD7-421D-8CD2-C8AE6E8A7FD8@rabbitmq.com> <65CCF6A8-199D-4BB4-ABEE-DC79C2413F23@rabbitmq.com> Message-ID: <2C78313F-BB0B-4882-8183-290131293E8A@rabbitmq.com> On 22 Oct 2013, at 11:42, Steve Powell wrote: > Issuing a 'real work' call after closing the channel, like channel.basicConsume(), throws an AlreadyClosedException, claiming that the connection is closed, but conn.isOpen() still returns true. Well, it appears that the AlreadyClosedException produces the "clean connection shutdown" string when it is a hard error (which is correct). It is called by the (internal) 'channel.ensureIsOpen()' method (typically, if we are about to communicate across the channel). But the reference in the exception is then to a Channel, and although the exception implies that the connection has been closed, it hasn't. This appears to contradict the hard error flag: which is supposed to mean the connection is closed. I guess this means that the bug is the connection isn't closed by the application initiated call to a closed channel. You could argue this particular channel error doesn't violate the protocol, so there is no reason to suppose that the connection would (or should) be closed, so it shouldn't be a hard error. [The code comments imply that hardError==true implies that getReference() returns a Connection object, which is actually not true anyway.] As this thread stated right at the beginning (see subject), there is no provision in the code for issuing an AlreadyClosedException without it being a hard error. If we could do this, the meaning of hardError would be preserved. As in the case of referring to a consumer that the client has no record of, the client code can often determine if the channel is already closed, and not risk any protocol violations before throwing the exception. In these cases, it ought not to be a hard error: the connection can remain unaffected. Steve Powell [Cell: +44-7815-838-558] [RabbitMQ, Pivotal] ?L?enfer, c?est les autres.? Sartre -------------- next part -------------- An HTML attachment was scrubbed... URL: From k.madnani84 at gmail.com Tue Oct 22 17:02:56 2013 From: k.madnani84 at gmail.com (k.madnani84) Date: Tue, 22 Oct 2013 09:02:56 -0700 (PDT) Subject: [rabbitmq-discuss] Limitations with RabbitMQ Java Client Message-ID: <1382457776550-30727.post@n5.nabble.com> Hi, I am using the RabbitMQ Java client 3.1.5 to test the performance using MultiCastMain.java.But my RabbitMQ crashes when executing the following scenario: Total Time Limit: 60s Sampling Interval: 20s No. Of Producer(s): 1000 No. Of Consumer(s): 1000 Minimum Size of a Message: 3000 byte Messages Auto Acknowledged while Consumption: YES Queue Properties: '1000 Queues each assigned to one consumer; Auto Generated; Durable; Exclusive;' Exchange Type: 'direct' Message Properties: Message is Persistent; My Memory High Watermark is 4.7 GB. Is there any benchmark on how many consumers and producers maximum i can use with the above watermark. i am facing this error at client end: DefaultExceptionHandler: Consumer com.rabbitmq.client.QueueingConsumer at e02ddd (amq.ctag-Hk684-l36FBBCV79J4p7aw) method handleDelivery for channel AMQChannel(amqp://rbtadmin at 135.213.26.33:5672/,1) threw an exception for channel AMQChannel(amqp://rbtadmin at 135.213.26.33:5672/,1): java.lang.OutOfMemoryError: unable to create new native thread at java.lang.Thread.start0(Native Method) at java.lang.Thread.start(Thread.java:640) at java.util.concurrent.ThreadPoolExecutor.addIfUnderCorePoolSize(ThreadPoolExecutor.java:703) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:652) at com.rabbitmq.client.impl.ConsumerWorkService.addWork(ConsumerWorkService.java:62) at com.rabbitmq.client.impl.ConsumerDispatcher.execute(ConsumerDispatcher.java:185) at com.rabbitmq.client.impl.ConsumerDispatcher.executeUnlessShuttingDown(ConsumerDispatcher.java:180) at com.rabbitmq.client.impl.ConsumerDispatcher.handleDelivery(ConsumerDispatcher.java:117) at com.rabbitmq.client.impl.ChannelN.processAsync(ChannelN.java:345) at com.rabbitmq.client.impl.AMQChannel.handleCompleteInboundCommand(AMQChannel.java:144) at com.rabbitmq.client.impl.AMQChannel.handleFrame(AMQChannel.java:91) at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:533) DefaultExceptionHandler: Consumer com.rabbitmq.client.QueueingConsumer at 144ee21 (amq.ctag-B1781nigeRKxCeCadL9f6A) method handleDelivery for channel AMQChannel(amqp://rbtadmin at 135.213.26.33:5672/,1) threw an exception for channel AMQChannel(amqp://rbtadmin at 135.213.26.33:5672/,1): java.lang.OutOfMemoryError: unable to create new native thread at java.lang.Thread.start0(Native Method) at java.lang.Thread.start(Thread.java:640) at java.util.concurrent.ThreadPoolExecutor.addIfUnderCorePoolSize(ThreadPoolExecutor.java:703) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:652) at com.rabbitmq.client.impl.ConsumerWorkService.addWork(ConsumerWorkService.java:62) at com.rabbitmq.client.impl.ConsumerDispatcher.execute(ConsumerDispatcher.java:185) at com.rabbitmq.client.impl.ConsumerDispatcher.executeUnlessShuttingDown(ConsumerDispatcher.java:180) at com.rabbitmq.client.impl.ConsumerDispatcher.handleDelivery(ConsumerDispatcher.java:117) at com.rabbitmq.client.impl.ChannelN.processAsync(ChannelN.java:345) at com.rabbitmq.client.impl.AMQChannel.handleCompleteInboundCommand(AMQChannel.java:144) at com.rabbitmq.client.impl.AMQChannel.handleFrame(AMQChannel.java:91) at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:533) Exception in thread "pool-781-thread-3" java.lang.OutOfMemoryError: unable to create new native thread at java.lang.Thread.start0(Native Method) at java.lang.Thread.start(Thread.java:640) at java.util.concurrent.ThreadPoolExecutor.addIfUnderCorePoolSize(ThreadPoolExecutor.java:703) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:652) at com.rabbitmq.client.impl.ConsumerWorkService$WorkPoolRunnable.run(ConsumerWorkService.java:80) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Limitations-with-RabbitMQ-Java-Client-tp30727.html Sent from the RabbitMQ mailing list archive at Nabble.com. From jhalterman at gmail.com Tue Oct 22 17:07:59 2013 From: jhalterman at gmail.com (Jonathan Halterman) Date: Tue, 22 Oct 2013 09:07:59 -0700 Subject: [rabbitmq-discuss] AlreadyClosedException always sets hardError and initiatedByApplication to true In-Reply-To: <2C78313F-BB0B-4882-8183-290131293E8A@rabbitmq.com> References: <5BFF87E3-BBD7-421D-8CD2-C8AE6E8A7FD8@rabbitmq.com> <65CCF6A8-199D-4BB4-ABEE-DC79C2413F23@rabbitmq.com> <2C78313F-BB0B-4882-8183-290131293E8A@rabbitmq.com> Message-ID: Comments below: On Tue, Oct 22, 2013 at 7:46 AM, Steve Powell wrote: > On 22 Oct 2013, at 11:42, Steve Powell wrote: > > Issuing a 'real work' call after closing the channel, like > channel.basicConsume(), throws an AlreadyClosedException, claiming that > the connection is closed, but conn.isOpen() still returns true. > > > Well, it appears that the AlreadyClosedException produces the "clean > connection shutdown" string when it is a hard error (which is correct). It > is called by the (internal) 'channel.ensureIsOpen()' method (typically, > if we are about to communicate across the channel). But the reference in > the exception is then to a Channel, > This is the workaround I've been using to determine if a Channel was closed versus a Connection - by looking at what type the reference is. > and although the exception implies that the connection has been closed, it > hasn't. This appears to contradict the hard error flag: which is supposed > to mean the *connection* is closed. > > I guess this means that the bug is *the connection isn't closed by the > application initiated call to a closed channel.* > > You could argue this particular channel error doesn't violate the > protocol, so there is no reason to suppose that the connection would (or > should) be closed, so it shouldn't be a hard error. [The code comments > imply that hardError==true implies that getReference() returns a > Connection object, which is actually *not* true anyway.] > > As this thread stated right at the beginning (see subject), there is no > provision in the code for issuing an AlreadyClosedException without it > being a hard error. If we could do this, the meaning of hardError would be > preserved. > > As in the case of referring to a consumer that the client has no record > of, the client code can often determine if the channel is already closed, > and *not* risk any protocol violations before throwing the exception. In > these cases, it ought not to be a hard error: the connection can remain > unaffected. > That would be ideal, if an AlreadyClosedException due to an invocation against a closed Channel did not result in a Connection closure. The reason is (as we've been discussing in a separate thread: Channel.basicPublish to a non-existent exchange...) sometimes the client receives an AlreadyClosedException *before* they are ever notified that the Channel was closed. This happens if you're doing rapid basicPublish calls to a non-existent exchange. Eventually basicPublish fails with an AlreadyClosedException, but this often occurs before the Channel's ShutdownListener is called. So the client has no fair way of avoiding the AlreadyClosedException. So from my perspective, there are a few things I'd prefer to see out of all this: - That AlreadyClosedExceptions be allowed to represent channels that were already closed (as seems to be the case with the reference being set to a Channel). - That an invocation against a Channel that has already been closed does not result in the Connection being closed (as seems to be the case). - That AlreadyClosedExceptions include the Method that originally cased the closure as the shutdown reason (if any), such as 404. This would allow me to determine why a basicPublish fails. Cheers, Jonathan > > Steve Powell [*Cell*: +44-7815-838-558] [RabbitMQ > ,* *Pivotal ] > *?L?enfer, c?est les autres.? *Sartre > > _______________________________________________ > 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 Oct 22 17:18:44 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 22 Oct 2013 20:18:44 +0400 Subject: [rabbitmq-discuss] Limitations with RabbitMQ Java Client In-Reply-To: <1382457776550-30727.post@n5.nabble.com> References: <1382457776550-30727.post@n5.nabble.com> Message-ID: <0D685A7E-BFBC-4166-97D7-A9A98D7CF0D5@rabbitmq.com> On 22 Oct 2013, at 20:02, "k.madnani84" wrote: > I am using the RabbitMQ Java client 3.1.5 to test the performance using > MultiCastMain.java.But my RabbitMQ crashes when executing the following > scenario: > ? > My Memory High Watermark is 4.7 GB. > > Is there any benchmark on how many consumers and producers maximum i can use > with the above watermark. > > i am facing this error at client end: > > DefaultExceptionHandler: Consumer > com.rabbitmq.client.QueueingConsumer at e02ddd > (amq.ctag-Hk684-l36FBBCV79J4p7aw) method handleDelivery for channel > AMQChannel(amqp://rbtadmin at 135.213.26.33:5672/,1) threw an exception for > channel AMQChannel(amqp://rbtadmin at 135.213.26.33:5672/,1): > java.lang.OutOfMemoryError: unable to create new native thread > at java.lang.Thread.start0(Native Method) > at java.lang.Thread.start(Thread.java:640) > at > java.util.concurrent.ThreadPoolExecutor.addIfUnderCorePoolSize(ThreadPoolExecutor.java:703) No, RabbitMQ does not crash. MulticastMain fails with java.lang.OutOfMemoryError because it cannot create a new thread. Your OS is running out of kernel threads. Every RabbitMQ Java client connection uses 6 threads (5 consumer work pool threads + I/O thread). Multiplied by 2000 in your example, that means you need 12,000 kernel threads. Use fewer publishers and consumers. Having thousands on a single machine won't give you any better throughput than a couple of hundreds, in fact, it may yield worse results. MK From brianin3d at yahoo.com Tue Oct 22 17:20:16 2013 From: brianin3d at yahoo.com (Brian Hammond) Date: Tue, 22 Oct 2013 09:20:16 -0700 (PDT) Subject: [rabbitmq-discuss] abnormally large memory use in "binaries" In-Reply-To: <5266621C.7090403@rabbitmq.com> References: <1382124784.35713.YahooMailNeo@web122001.mail.ne1.yahoo.com> <52655DF1.1050605@rabbitmq.com> <1382381403.12000.YahooMailNeo@web122001.mail.ne1.yahoo.com> <5266621C.7090403@rabbitmq.com> Message-ID: <1382458816.47116.YahooMailNeo@web122003.mail.ne1.yahoo.com> Running this now: ?netstat -t -n | grep :5672 As far as the prefetch goes, we are using a value of 500. When using a value like 1, we saw pretty bad performance. My understanding of pre-fetch was the consumer asks for that number of messages and then has to send an acknowledge before more messages are sent to it. If we have memory issues when there are almost no messages then our pre-fetch values seems an unlikely cause. If we set prefetch really low, I could see us having a lot of messages in the queue. Setting it high or unlimited should actually be better for the server. Nonetheless, I'll try it after this current batch with netstat runs to explosion. Still no luck reproducing the issue with a simple test program... On Tuesday, October 22, 2013 7:31 AM, Emile Joubert wrote: Hi Brian, On 21/10/13 19:50, Brian Hammond wrote: > Do you have a specific set of arguments in mind for netstat? If not I'll > go look at the man page. netstat shows this information by default. > I'll provide more information as my tests progress. From the reports it appears that all consumers are either using unlimited prefetch or a value of 500. It is likely that the broker memory use will be reduced if consumers use a much lower prefetch count, say 1. Would it be possible for you to try that? The reason why it might help in your particular case is most of the memory is being consumed by the Erlang processes that write to the network. I realise that it might be difficult for you to make this change to all consumers. Let me know if this is too onerous so we can discuss alternatives. -Emile -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Tue Oct 22 17:27:29 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 22 Oct 2013 20:27:29 +0400 Subject: [rabbitmq-discuss] abnormally large memory use in "binaries" In-Reply-To: <1382458816.47116.YahooMailNeo@web122003.mail.ne1.yahoo.com> References: <1382124784.35713.YahooMailNeo@web122001.mail.ne1.yahoo.com> <52655DF1.1050605@rabbitmq.com> <1382381403.12000.YahooMailNeo@web122001.mail.ne1.yahoo.com> <5266621C.7090403@rabbitmq.com> <1382458816.47116.YahooMailNeo@web122003.mail.ne1.yahoo.com> Message-ID: On 22 Oct 2013, at 20:20, Brian Hammond wrote: > My understanding of pre-fetch was the consumer asks for that number of messages and then has to send an acknowledge before more messages are sent to it. If we have memory issues when there are almost no messages then our pre-fetch values seems an unlikely cause. This is correct but note that basic.qos is set for a channel, not a consumer. > If we set prefetch really low, I could see us having a lot of messages in the queue. Setting it high or unlimited should actually be better for the server. RabbitMQ does not remove messages until they are acknowledged. Not using manual acknowledgements may ease the pressure on the server, of course, if it's an option for your system. MK From dan at danlarkin.org Tue Oct 22 18:18:04 2013 From: dan at danlarkin.org (Dan Larkin) Date: Tue, 22 Oct 2013 10:18:04 -0700 Subject: [rabbitmq-discuss] Limitations with RabbitMQ Java Client In-Reply-To: <0D685A7E-BFBC-4166-97D7-A9A98D7CF0D5@rabbitmq.com> References: <1382457776550-30727.post@n5.nabble.com> <0D685A7E-BFBC-4166-97D7-A9A98D7CF0D5@rabbitmq.com> Message-ID: On Oct 22, 2013, at 9:18 AM, Michael Klishin wrote: > Every RabbitMQ Java client connection uses 6 threads (5 consumer work pool threads + I/O thread). > Multiplied by 2000 in your example, that means you need 12,000 kernel threads. Is this true for all rabbit java client connections? What's the logic behind five consumer work pool threads? Does the number of open channels on a connection influence it? Is there an optimal channel to connection ratio? -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 195 bytes Desc: Message signed with OpenPGP using GPGMail URL: From mklishin at gopivotal.com Tue Oct 22 18:38:43 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 22 Oct 2013 21:38:43 +0400 Subject: [rabbitmq-discuss] Limitations with RabbitMQ Java Client In-Reply-To: References: <1382457776550-30727.post@n5.nabble.com> <0D685A7E-BFBC-4166-97D7-A9A98D7CF0D5@rabbitmq.com> Message-ID: On 22 Oct 2013, at 21:18, Dan Larkin wrote: > Is this true for all rabbit java client connections? All connections have an I/O thread. Consumer work pool can take an executor of your choice but it can't have less than 1 thread. > What's the logic behind five consumer work pool threads? This is the default thread pool size. Consumer work pools are primarily used to dispatch deliveries. > Does the number of open channels on a connection influence it? Is there an optimal channel to connection ratio? No. You can provide an (optional) executor to ConnectionFactory#newConnection to use a different # of threads. I don't think there is optional ration, you should start with using more channels and add more connections if you have real reasons to do so (e.g. to separate publishers that may be blocked from consumers). MK From mklishin at gopivotal.com Tue Oct 22 18:43:16 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 22 Oct 2013 21:43:16 +0400 Subject: [rabbitmq-discuss] Limitations with RabbitMQ Java Client In-Reply-To: References: <1382457776550-30727.post@n5.nabble.com> <0D685A7E-BFBC-4166-97D7-A9A98D7CF0D5@rabbitmq.com> Message-ID: <366F4D07-0440-405D-A13A-D2CAB6A63269@rabbitmq.com> On 22 Oct 2013, at 21:38, Michael Klishin wrote: > I don't think there is optional ration This should read "optimal ratio". MK From mpietrek at skytap.com Tue Oct 22 18:43:30 2013 From: mpietrek at skytap.com (Matt Pietrek) Date: Tue, 22 Oct 2013 10:43:30 -0700 Subject: [rabbitmq-discuss] RabbitMQ / Erlang not running on all cores? Message-ID: We're running RabbitMQ 3.0.2 on Ubuntu 10.04 with Erlang 1:15.b.1 on a four CPU box under pretty heavy load. Looking at the per-CPU metrics in VMWare, it looks like the beam.smp process is utilizing only one of the CPUs. One CPU is pegged at near 100%, while the others are nearly idle. Is there some sort of configuration switch I've overlooked to enable Rabbit/Beam to use all the CPUs? Thanks, Matt -------------- next part -------------- An HTML attachment was scrubbed... URL: From mpietrek at skytap.com Tue Oct 22 20:12:51 2013 From: mpietrek at skytap.com (Matt Pietrek) Date: Tue, 22 Oct 2013 12:12:51 -0700 Subject: [rabbitmq-discuss] RabbitMQ / Erlang not running on all cores? In-Reply-To: References: Message-ID: Following up on this, it looks like erlang is seeing all four cores: Erlang R15B01 (erts-5.9.1) [source] [64-bit] [smp:4:4] [async-threads:0] [kernel-poll:false] I assume this is what the [smp:4:4] refers to. On Tue, Oct 22, 2013 at 10:43 AM, Matt Pietrek wrote: > We're running RabbitMQ 3.0.2 on Ubuntu 10.04 with Erlang 1:15.b.1 on a > four CPU box under pretty heavy load. > > Looking at the per-CPU metrics in VMWare, it looks like the beam.smp > process is utilizing only one of the CPUs. One CPU is pegged at near 100%, > while the others are nearly idle. > > Is there some sort of configuration switch I've overlooked to enable > Rabbit/Beam to use all the CPUs? > > Thanks, > > Matt > -------------- next part -------------- An HTML attachment was scrubbed... URL: From reparker23 at gmail.com Tue Oct 22 20:18:01 2013 From: reparker23 at gmail.com (Robert Parker) Date: Tue, 22 Oct 2013 12:18:01 -0700 (PDT) Subject: [rabbitmq-discuss] Creating a rabbitmq.config for federation Message-ID: I'm having trouble finding good examples of how to configure a rabbitmq.config file to do what I've been doing with a set of rabbitmqctl commands. Here's the script I use to configure clustering and federation for one of my rabbitmq clusters: #!/bin/bash rabbitmqctl stop_app rabbitmqctl reset rabbitmqctl join_cluster rabbit at rabbit2 rabbitmqctl start_app rabbitmq-plugins enable rabbitmq_federation rabbitmq-plugins enable rabbitmq_federation_management rabbitmq-plugins enable rabbitmq_management service rabbitmq-server restart rabbitmqctl set_parameter federation-upstream cluster1-upstream '{"uri":["amqp://rabbit3.example.com","amqp://rabbit4.example.com"],"expires":3600000}' rabbitmqctl set_policy federate-mything "^Mything$" '{"federation-upstream-set":"all"}' 0 How do I convert that into a format that will work in a rabbitmq.config so that all I need to do is drop this config file in, reset the node, then restart rabbitmq-server to get this configuration working? Also, if you put your cluster config into rabbitmq.config on both nodes to be clustered, will they automatically set the correct /var/lib/rabbitmq/.erlang.cookie or must that step still be done manually? Thanks in advance -------------- next part -------------- An HTML attachment was scrubbed... URL: From KGanann at kroll.com Tue Oct 22 20:31:48 2013 From: KGanann at kroll.com (Ganann, Kale) Date: Tue, 22 Oct 2013 19:31:48 +0000 Subject: [rabbitmq-discuss] Deleted Queues still showing in Management Plug-in In-Reply-To: <6DB033025329784B9280ABD9516177FC67C21EB9@usbpx2pmxmbx12> References: <6DB033025329784B9280ABD9516177FC67C21E54@usbpx2pmxmbx12> <525EB465.3040806@rabbitmq.com> <6DB033025329784B9280ABD9516177FC67C21EB9@usbpx2pmxmbx12> Message-ID: <6DB033025329784B9280ABD9516177FC68C2F569@usbpx2pmxmbx12> We had some issues with this approach - when we killed the final node it seemed to hose up the MNESIA db, and when we tried to reboot none of the nodes would come back fully - they either wouldn't start or wouldn't talk to each other. I'd backed up the brokers and then spun up some new servers, which are working fine, but it wasn't a clean process getting there. Any word on the timeline for that next release? Thanks, Kale -----Original Message----- From: Ganann, Kale Sent: Wednesday, October 16, 2013 10:48 AM To: 'Simon MacMullen'; Discussions about RabbitMQ Subject: RE: [rabbitmq-discuss] Deleted Queues still showing in Management Plug-in Awesome, I'll try that. Thanks for the info! Thanks, Kale -----Original Message----- From: Simon MacMullen [mailto:simon at rabbitmq.com] Sent: Wednesday, October 16, 2013 10:45 AM To: Discussions about RabbitMQ Cc: Ganann, Kale Subject: Re: [rabbitmq-discuss] Deleted Queues still showing in Management Plug-in There is a known bug in HA which will be fixed in the next release which can cause behaviour like this (queue unresponsive in management and invisible in rabbitmqctl). It is triggered when you have a mirrored queue, and the master dies, and then the slave which would have been promoted to master dies before promotion can complete. Does that sound like the sort of thing that could have happened? One way to make that happen without killing nodes on a precise timer is to switch from one ha-mode=nodes policy to another with minimal overlap. I'm afraid the only work around at the moment is to stop the whole cluster and start it again. And the node which management claims has the master for this broken queue will hang at shutdown and need to be killed :-( Cheers, Simon On 16/10/13 16:28, Ganann, Kale wrote: > Hey all, > > One of my Devs was trying to delete a queue through the management > plugin which got created on the wrong node, and asked me to help out. > I went in and tried via the plugin, and it just hung, so I went > command-line on it and ran rabbitmqctl list_queues -p vhost. When I > do that, that queue doesn't appear in the list. Any ideas what might > be going on, and how I might be able to reconcile the two? We're > running RabbitMQ 3.1.5 on SUSE 12.04. > > 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. > > > > _______________________________________________ > 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 mklishin at gopivotal.com Tue Oct 22 21:54:58 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 23 Oct 2013 00:54:58 +0400 Subject: [rabbitmq-discuss] RabbitMQ / Erlang not running on all cores? In-Reply-To: References: Message-ID: On 22 Oct 2013, at 23:12, Matt Pietrek wrote: > Following up on this, it looks like erlang is seeing all four cores: > > Erlang R15B01 (erts-5.9.1) [source] [64-bit] [smp:4:4] [async-threads:0] [kernel-poll:false] > > I assume this is what the [smp:4:4] refers to. What is your workload like? Can it be that you have a single massively loaded queue? MK From zweicmu at gmail.com Tue Oct 22 22:03:33 2013 From: zweicmu at gmail.com (Zhibo Wei) Date: Tue, 22 Oct 2013 14:03:33 -0700 Subject: [rabbitmq-discuss] RabbitMQ / Erlang not running on all cores? In-Reply-To: References: Message-ID: As I remembered, a single queue is bounded by one core. Do you only have one queue? You can split your traffic into different queues and try it out. On Tue, Oct 22, 2013 at 1:54 PM, Michael Klishin wrote: > On 22 Oct 2013, at 23:12, Matt Pietrek wrote: > > > Following up on this, it looks like erlang is seeing all four cores: > > > > Erlang R15B01 (erts-5.9.1) [source] [64-bit] [smp:4:4] [async-threads:0] > [kernel-poll:false] > > > > I assume this is what the [smp:4:4] refers to. > > What is your workload like? Can it be that you have a single massively > loaded > queue? > > MK > _______________________________________________ > 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 szymkowiak.tomek at gmail.com Tue Oct 22 16:12:37 2013 From: szymkowiak.tomek at gmail.com (Tomasz Szymkowiak) Date: Tue, 22 Oct 2013 08:12:37 -0700 (PDT) Subject: [rabbitmq-discuss] Reading a message from sys.log Message-ID: Hi, when i'm trying to get a message from sys.log queue via rabbitmq_management plugin i'm getting: Got response code 500 with body Internal Server Error The server encountered an error while processing this request: {error, {exit, {{{badmatch, {badrpc, {'EXIT', {{badmatch, {error, {'EXIT', {{badmatch, {error, {{{badmatch,{error,not_found}}, [{rabbit_trace,init,1}, {rabbit_channel,init,1}, {gen_server2,init_it,6}, {proc_lib,init_p_do_apply,3}]}, {child,undefined,channel, {rabbit_channel,start_link, [1,<0.12001.10>,<0.12001.10>,<0.11994.10>, <<"<'rabbit at host'.2.11994.10>">>, rabbit_framing_amqp_0_9_1, {user,<<"user">>, [administrator], rabbit_auth_backend_internal, {internal_user,<<"user">>, <<103,27,123,114,70,159,120,205,173,29,114,226,83,153,225, 33,146,220,255,20>>, [administrator]}}, <<"/">>, [{<<"publisher_confirms">>,bool,true}, {<<"exchange_exchange_bindings">>,bool,true}, {<<"basic.nack">>,bool,true}, {<<"consumer_cancel_notify">>,bool,true}], <0.11998.10>,<0.12003.10>]}, intrinsic,4294967295,worker, [rabbit_channel]}}}}, [{rabbit_channel_sup,start_link,1}, {supervisor2,do_start_child_i,3}, {supervisor2,handle_call,3}, {gen_server,handle_msg,5}, {proc_lib,init_p_do_apply,3}]}}}}, [{rabbit_direct,start_channel,9}, {rpc,local_call,3}, {amqp_channel_sup,'-start_writer_fun/4-fun-0-',7}, {amqp_channel,start_writer,1}, {amqp_channel,do_rpc,1}, {amqp_channel,handle_call,3}, {gen_server,handle_msg,5}, {proc_lib,init_p_do_apply,3}]}}}}, [{amqp_channel_sup,'-start_writer_fun/4-fun-0-',7}, {amqp_channel,start_writer,1}, {amqp_channel,do_rpc,1}, {amqp_channel,handle_call,3}, {gen_server,handle_msg,5}, {proc_lib,init_p_do_apply,3}]}, {gen_server,call,[<0.12001.10>,open,infinity]}}, [{gen_server,call,3}, {amqp_gen_connection,open_channel,3}, {rabbit_mgmt_util,with_channel,5}, {rabbit_mgmt_util,with_decode,5}, {rabbit_mgmt_wm_queue_get,process_post,2}, {webmachine_resource,resource_call,3}, {webmachine_resource,do,3}, {webmachine_decision_core,resource_call,1}]}} it happens only, when the tracing is on (vhost "/") when i turn it off - the message is read properly what am i doing wrong ? rabbitmqctl status: Status of node 'rabbit at host' ... [{pid,3510}, {running_applications, [{rabbitmq_management_visualiser,"RabbitMQ Visualiser","3.1.5"}, {rabbitmq_tracing,"RabbitMQ message logging / tracing","3.1.5"}, {rabbitmq_management,"RabbitMQ Management Console","3.1.5"}, {rabbitmq_management_agent,"RabbitMQ Management Agent","3.1.5"}, {rabbit,"RabbitMQ","3.1.5"}, {os_mon,"CPO CXC 138 46","2.2.7"}, {rabbitmq_web_dispatch,"RabbitMQ Web Dispatcher","3.1.5"}, {webmachine,"webmachine","1.10.3-rmq3.1.5-gite9359c7"}, {mochiweb,"MochiMedia Web Server","2.7.0-rmq3.1.5-git680dba8"}, {xmerl,"XML parser","1.2.10"}, {inets,"INETS CXC 138 49","5.7.1"}, {mnesia,"MNESIA CXC 138 12","4.5"}, {amqp_client,"RabbitMQ AMQP Client","3.1.5"}, {sasl,"SASL CXC 138 11","2.1.10"}, {stdlib,"ERTS CXC 138 10","1.17.5"}, {kernel,"ERTS CXC 138 10","2.14.5"}]}, {os,{unix,linux}}, {erlang_version, "Erlang R14B04 (erts-5.8.5) [source] [64-bit] [smp:8:8] [rq:8] [async-threads:30] [kernel-poll:true]\n"}, {memory, [{total,50383256}, {connection_procs,605416}, {queue_procs,560056}, {plugins,702048}, {other_proc,11365416}, {mnesia,229240}, {mgmt_db,541664}, {msg_index,99296}, {other_ets,1374104}, {binary,13453984}, {code,17552765}, {atom,1601817}, {other_system,2297450}]}, {vm_memory_high_watermark,0.4}, {vm_memory_limit,3150484275}, {disk_free_limit,1000000000}, {disk_free,11425714176}, {file_descriptors, [{total_limit,924},{total_used,25},{sockets_limit,829},{sockets_used,9}]}, {processes,[{limit,1048576},{used,351}]}, {run_queue,0}, {uptime,1052426}] Regards, T. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mpietrek at skytap.com Tue Oct 22 22:31:35 2013 From: mpietrek at skytap.com (Matt Pietrek) Date: Tue, 22 Oct 2013 14:31:35 -0700 Subject: [rabbitmq-discuss] RabbitMQ / Erlang not running on all cores? In-Reply-To: References: Message-ID: Thanks Zhibo. We actually have hundreds of queues. Two of them are processing several hundred messages/second. The remaining queues are processing 1 or 2 messages second. On Tue, Oct 22, 2013 at 2:03 PM, Zhibo Wei wrote: > As I remembered, a single queue is bounded by one core. > Do you only have one queue? You can split your traffic into different > queues and try it out. > > > On Tue, Oct 22, 2013 at 1:54 PM, Michael Klishin wrote: > >> On 22 Oct 2013, at 23:12, Matt Pietrek wrote: >> >> > Following up on this, it looks like erlang is seeing all four cores: >> > >> > Erlang R15B01 (erts-5.9.1) [source] [64-bit] [smp:4:4] >> [async-threads:0] [kernel-poll:false] >> > >> > I assume this is what the [smp:4:4] refers to. >> >> What is your workload like? Can it be that you have a single massively >> loaded >> queue? >> >> MK >> _______________________________________________ >> 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 Tue Oct 22 22:46:54 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 23 Oct 2013 01:46:54 +0400 Subject: [rabbitmq-discuss] RabbitMQ / Erlang not running on all cores? In-Reply-To: References: Message-ID: On 23 Oct 2013, at 01:31, Matt Pietrek wrote: > Thanks Zhibo. We actually have hundreds of queues. Two of them are processing several hundred messages/second. The remaining queues are processing 1 or 2 messages second. Then you should see at least two cores being moderately used. As you have correctly identified, Erlang VM detects 4 cores available to it. What is odd is that you have async-threads:0, which means disk I/O will block Erlang VM schedulers. Does the Erlang R15B01 (erts-5.9.1) [source] [64-bit] [smp:4:4] [async-threads:0] [kernel-poll:false] line come from RabbitMQ or just `erl` executed on the same machine? If you run rabbitmq with RABBITMQ_ALLOW_INPUT=true in the foreground and hit Enter, you should see how many async-threads it has configured. For me it's 30 vs 10 for a new Erlang shell. I'd also recommend using vmstat and similar tools to see how many threads wait on disk I/O. By the way, do you publish messages as persistent? MK From matthias at rabbitmq.com Tue Oct 22 22:55:00 2013 From: matthias at rabbitmq.com (Matthias Radestock) Date: Tue, 22 Oct 2013 22:55:00 +0100 Subject: [rabbitmq-discuss] RabbitMQ / Erlang not running on all cores? In-Reply-To: References: Message-ID: <5266F434.4090309@rabbitmq.com> Matt, On 22/10/13 22:31, Matt Pietrek wrote: > Thanks Zhibo. We actually have hundreds of queues. Two of them are > processing several hundred messages/second. The remaining queues are > processing 1 or 2 messages second. Could be an Erlang scheduler thing. Give the latest Erlang release a try, since multi-core scheduling is definitely an area that has undergone considerable changes in recent releases. Also, try running rabbitmqctl eval 'erlang:statistics(run_queue).' if this is >0 then there are runnable processes waiting for execution, which would indicate some scheduler anomaly. Matthias. From mpietrek at skytap.com Tue Oct 22 23:38:56 2013 From: mpietrek at skytap.com (Matt Pietrek) Date: Tue, 22 Oct 2013 15:38:56 -0700 Subject: [rabbitmq-discuss] RabbitMQ / Erlang not running on all cores? In-Reply-To: References: Message-ID: Thanks Michael. The line: "Erlang R15B01 (erts-5.9.1) [source] [64-bit] [smp:4:4] [async-threads:0] [kernel-poll:false]" is from running "erl" on the same VM as the broker. Regarding the suggestion of "RABBITMQ_ALLOW_INPUT=true", this is a bit tricky for me to run. For starters, this is a Rabbit instance running in a production environment so I can't easily restart it. And even if I could, the way we start RabbitMQ is a bit quirky (long story). Is there some way to get the aysnc-threads value from a "rabbitmqctl eval..." or from the logs? I do have ready access to those. A few of the messages are persistent, but the vast majority of them are non-persistent. Our disk I/O on the box looks relatively low. Many intervals of 0 reads/writes with occasional blips up, but noting particularly heavy. Also, we are running this in a cluster with another box, with all queues in HA mode. I imagine that would have some overall CPU impact, but don't see why it would concentrate everything on one core. Thanks again, Matt On Tue, Oct 22, 2013 at 2:46 PM, Michael Klishin wrote: > On 23 Oct 2013, at 01:31, Matt Pietrek wrote: > > > Thanks Zhibo. We actually have hundreds of queues. Two of them are > processing several hundred messages/second. The remaining queues are > processing 1 or 2 messages second. > > Then you should see at least two cores being moderately used. > > As you have correctly identified, > Erlang VM detects 4 cores available to it. What is odd is that you have > async-threads:0, > which means disk I/O will block Erlang VM schedulers. > > Does the > > Erlang R15B01 (erts-5.9.1) [source] [64-bit] [smp:4:4] [async-threads:0] > [kernel-poll:false] > > line come from RabbitMQ or just `erl` executed on the same machine? > > If you run rabbitmq with RABBITMQ_ALLOW_INPUT=true in the foreground and > hit Enter, > you should see how many async-threads it has configured. > For me it's 30 vs 10 for a new Erlang shell. > > I'd also recommend using vmstat and similar tools to see how many threads > wait on disk I/O. > By the way, do you publish messages as persistent? > > MK > _______________________________________________ > 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 Tue Oct 22 23:44:36 2013 From: mpietrek at skytap.com (Matt Pietrek) Date: Tue, 22 Oct 2013 15:44:36 -0700 Subject: [rabbitmq-discuss] RabbitMQ / Erlang not running on all cores? In-Reply-To: <5266F434.4090309@rabbitmq.com> References: <5266F434.4090309@rabbitmq.com> Message-ID: Hi Matthias, The load on our box (it's in production) has dropped a little bit, but core 0 is still running nearly flat out. Here's the output you asked for: 22:39 PROD user at host:rabbitmqctl.py eval 'erlang:statistics(run_queue).' 0 ...done. Which per your comment, doesn't look like a promising lead. Are there other useful "eval" commands that I could use to ferret out what's happening? This is a box in production and we have an upcoming release that's only going to add more load on this box. Also, we are running this in a cluster with another box, with all queues in HA mode. I imagine that would have some overall CPU impact, but don't see why it would concentrate everything on one core. The slave node CPU utilization is much lower, but also shows most activity on one CPU. Thanks, Matt On Tue, Oct 22, 2013 at 2:55 PM, Matthias Radestock wrote: > Matt, > > > On 22/10/13 22:31, Matt Pietrek wrote: > >> Thanks Zhibo. We actually have hundreds of queues. Two of them are >> processing several hundred messages/second. The remaining queues are >> processing 1 or 2 messages second. >> > > Could be an Erlang scheduler thing. Give the latest Erlang release a try, > since multi-core scheduling is definitely an area that has undergone > considerable changes in recent releases. > > Also, try running > > rabbitmqctl eval 'erlang:statistics(run_queue).**' > > if this is >0 then there are runnable processes waiting for execution, > which would indicate some scheduler anomaly. > > 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 Tue Oct 22 23:47:10 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 23 Oct 2013 02:47:10 +0400 Subject: [rabbitmq-discuss] RabbitMQ / Erlang not running on all cores? In-Reply-To: References: Message-ID: On 23 Oct 2013, at 02:38, Matt Pietrek wrote: > Regarding the suggestion of "RABBITMQ_ALLOW_INPUT=true", this is a bit tricky for me to run. For starters, this is a Rabbit instance running in a production environment so I can't easily restart it. And even if I could, the way we start RabbitMQ is a bit quirky (long story). I definitely was not suggesting that you run your production node with RABBITMQ_ALLOW_INPUT. You can start a separate node on the same machine just for a moment, with RABBITMQ_ALLOW_INPUT and RABBITMQ_PORT overridden. If you run management plugin or other plugins that listen on ports, then you'll need to use a separate config. http://www.rabbitmq.com/relocate.html If you start RabbitMQ in an unusual way, can it be that you modify `erl` arguments, in particular +A? MK From matthias at rabbitmq.com Wed Oct 23 08:08:22 2013 From: matthias at rabbitmq.com (Matthias Radestock) Date: Wed, 23 Oct 2013 08:08:22 +0100 Subject: [rabbitmq-discuss] RabbitMQ / Erlang not running on all cores? In-Reply-To: References: <5266F434.4090309@rabbitmq.com> Message-ID: <526775E6.6050202@rabbitmq.com> Matt, On 22/10/13 23:44, Matt Pietrek wrote: > The load on our box (it's in production) has dropped a little bit, but > core 0 is still running nearly flat out. If you are seeing *less* than 100% utilisation of one core then your system is *not* CPU bound. Check that RabbitMQ is actually a bottlneck here, rather than, say, your producers or consumers. > Are there other useful "eval" commands that I could use to ferret out > what's happening? This is a box in production and we have an upcoming > release that's only going to add more load on this box. We could come up with some eval code to identify the top running processes. Or perhaps find a way to get etop to run (Erlang's equivalent of 'top'). But... > Also, we are running this in a cluster with another box, with all queues > in HA mode. There have been tons of improvements *and bug fixes* to mirrored queues. Some relating to performance. So I strongly recommend you upgrade RabbitMQ to the lastest version. And Erlang too, due to the SMP scheduler improvements I mentioned in my earlier email. If you still see performance anomalies after the upgrade then we can investigate further. Regards, Matthias. From szymkowiak.tomek at gmail.com Wed Oct 23 07:58:57 2013 From: szymkowiak.tomek at gmail.com (Tomasz Szymkowiak) Date: Tue, 22 Oct 2013 23:58:57 -0700 (PDT) Subject: [rabbitmq-discuss] Reading a message from sys.log In-Reply-To: References: Message-ID: <7c890528-90b4-490a-95e2-31251265da4f@googlegroups.com> I forgot to mention, that sys.log is durable queue which has two bindings with amq.rabbitmq.log exchange: one with binding key error and the other one with warning. Regards, T. W dniu wtorek, 22 pa?dziernika 2013 17:12:37 UTC+2 u?ytkownik Tomasz Szymkowiak napisa?: > > Hi, > when i'm trying to get a message from sys.log queue via > rabbitmq_management plugin i'm getting: > > > Got response code 500 with body > Internal Server Error > > The server encountered an error while processing this request: > {error, > {exit, > {{{badmatch, > {badrpc, > {'EXIT', > {{badmatch, > {error, > {'EXIT', > {{badmatch, > {error, > {{{badmatch,{error,not_found}}, > [{rabbit_trace,init,1}, > {rabbit_channel,init,1}, > {gen_server2,init_it,6}, > {proc_lib,init_p_do_apply,3}]}, > {child,undefined,channel, > {rabbit_channel,start_link, > [1,<0.12001.10>,<0.12001.10>,<0.11994.10>, > <<"<'rabbit at host'.2.11994.10>">>, > rabbit_framing_amqp_0_9_1, > {user,<<"user">>, > [administrator], > rabbit_auth_backend_internal, > {internal_user,<<"user">>, > > <<103,27,123,114,70,159,120,205,173,29,114,226,83,153,225, > 33,146,220,255,20>>, > [administrator]}}, > <<"/">>, > [{<<"publisher_confirms">>,bool,true}, > {<<"exchange_exchange_bindings">>,bool,true}, > {<<"basic.nack">>,bool,true}, > {<<"consumer_cancel_notify">>,bool,true}], > <0.11998.10>,<0.12003.10>]}, > intrinsic,4294967295,worker, > [rabbit_channel]}}}}, > [{rabbit_channel_sup,start_link,1}, > {supervisor2,do_start_child_i,3}, > {supervisor2,handle_call,3}, > {gen_server,handle_msg,5}, > {proc_lib,init_p_do_apply,3}]}}}}, > [{rabbit_direct,start_channel,9}, > {rpc,local_call,3}, > {amqp_channel_sup,'-start_writer_fun/4-fun-0-',7}, > {amqp_channel,start_writer,1}, > {amqp_channel,do_rpc,1}, > {amqp_channel,handle_call,3}, > {gen_server,handle_msg,5}, > {proc_lib,init_p_do_apply,3}]}}}}, > [{amqp_channel_sup,'-start_writer_fun/4-fun-0-',7}, > {amqp_channel,start_writer,1}, > {amqp_channel,do_rpc,1}, > {amqp_channel,handle_call,3}, > {gen_server,handle_msg,5}, > {proc_lib,init_p_do_apply,3}]}, > {gen_server,call,[<0.12001.10>,open,infinity]}}, > [{gen_server,call,3}, > {amqp_gen_connection,open_channel,3}, > {rabbit_mgmt_util,with_channel,5}, > {rabbit_mgmt_util,with_decode,5}, > {rabbit_mgmt_wm_queue_get,process_post,2}, > {webmachine_resource,resource_call,3}, > {webmachine_resource,do,3}, > {webmachine_decision_core,resource_call,1}]}} > > > it happens only, when the tracing is on (vhost "/") > when i turn it off - the message is read properly > what am i doing wrong ? > > rabbitmqctl status: > > Status of node 'rabbit at host' ... > [{pid,3510}, > {running_applications, > [{rabbitmq_management_visualiser,"RabbitMQ Visualiser","3.1.5"}, > {rabbitmq_tracing,"RabbitMQ message logging / tracing","3.1.5"}, > {rabbitmq_management,"RabbitMQ Management Console","3.1.5"}, > {rabbitmq_management_agent,"RabbitMQ Management Agent","3.1.5"}, > {rabbit,"RabbitMQ","3.1.5"}, > {os_mon,"CPO CXC 138 46","2.2.7"}, > {rabbitmq_web_dispatch,"RabbitMQ Web Dispatcher","3.1.5"}, > {webmachine,"webmachine","1.10.3-rmq3.1.5-gite9359c7"}, > {mochiweb,"MochiMedia Web Server","2.7.0-rmq3.1.5-git680dba8"}, > {xmerl,"XML parser","1.2.10"}, > {inets,"INETS CXC 138 49","5.7.1"}, > {mnesia,"MNESIA CXC 138 12","4.5"}, > {amqp_client,"RabbitMQ AMQP Client","3.1.5"}, > {sasl,"SASL CXC 138 11","2.1.10"}, > {stdlib,"ERTS CXC 138 10","1.17.5"}, > {kernel,"ERTS CXC 138 10","2.14.5"}]}, > {os,{unix,linux}}, > {erlang_version, > "Erlang R14B04 (erts-5.8.5) [source] [64-bit] [smp:8:8] [rq:8] > [async-threads:30] [kernel-poll:true]\n"}, > {memory, > [{total,50383256}, > {connection_procs,605416}, > {queue_procs,560056}, > {plugins,702048}, > {other_proc,11365416}, > {mnesia,229240}, > {mgmt_db,541664}, > {msg_index,99296}, > {other_ets,1374104}, > {binary,13453984}, > {code,17552765}, > {atom,1601817}, > {other_system,2297450}]}, > {vm_memory_high_watermark,0.4}, > {vm_memory_limit,3150484275}, > {disk_free_limit,1000000000}, > {disk_free,11425714176}, > {file_descriptors, > > [{total_limit,924},{total_used,25},{sockets_limit,829},{sockets_used,9}]}, > {processes,[{limit,1048576},{used,351}]}, > {run_queue,0}, > {uptime,1052426}] > > > Regards, > T. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From sekhar434145 at gmail.com Wed Oct 23 08:21:28 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Wed, 23 Oct 2013 12:51:28 +0530 Subject: [rabbitmq-discuss] RabbitMQ - unable to consume unfinished messages? Message-ID: We are testing unfinished messages scenario in RabbiMQ, where am running two consumers in separate command prompts, here Producer sends messages from "Message1 to Message10" and two consumers will consume messages in round-robin passion like "Message1" goes to "Consumer1" and "Message2" will go to "Consumer2", etc. To test unfinished messages what I have done is when one of the consumer [ex.Consumer2] received "Message2" then am not sending acknowledgement back to the server. In this case as per the documentation other consumer[Consumer1] has to consume message[Message2] from the server right? But, Its not happening, Consumer1 consuming remaining messages but not "Message2", why? Please find the sample code at consumer end below- while (true) { QueueingConsumer.Delivery delivery = consumer.nextDelivery(); String message = new String(delivery.getBody()); System.out.println(" [x] Received '" + message + "'"); doWork(message); System.out.println(" [x] Done"); if(!message.equals("Message2")){ channel.basicAck(delivery.getEnvelope().getDeliveryTag(), false); } } Thanks in advance! -------------- next part -------------- An HTML attachment was scrubbed... URL: From emile at rabbitmq.com Wed Oct 23 09:24:24 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Wed, 23 Oct 2013 09:24:24 +0100 Subject: [rabbitmq-discuss] RabbitMQ - unable to consume unfinished messages? In-Reply-To: References: Message-ID: <526787B8.6010902@rabbitmq.com> On 23/10/13 08:21, Rajasekhar P wrote: > when one of the consumer [ex.Consumer2] received "Message2" then > am not sending acknowledgement back to the server. In this case as per > the documentation other consumer[Consumer1] has to consume > message[Message2] from the server right? But, Its not happening, The unacknowledged messages held by Consumer2 will be returned to the queue once the channel (or connection) closes or when the unacknowledged messages are explicitly requeued by Consumer2. When that happens the messages will become eligible for redelivery to Consumer1. Also see the second tutorial for further discussion on this topic: http://www.rabbitmq.com/tutorials/tutorial-two-java.html -Emile From tim at rabbitmq.com Wed Oct 23 09:41:28 2013 From: tim at rabbitmq.com (Tim Watson) Date: Wed, 23 Oct 2013 09:41:28 +0100 Subject: [rabbitmq-discuss] Creating a rabbitmq.config for federation In-Reply-To: References: Message-ID: <00017EA5-0720-4E5E-932C-51F56C8B7D5E@rabbitmq.com> On 22 Oct 2013, at 20:18, Robert Parker wrote: > How do I convert that into a format that will work in a rabbitmq.config so that all I need to do is drop this config file in, reset the node, then restart rabbitmq-server to get this configuration working? Take a look at https://github.com/rabbitmq/rabbitmq-server/blob/master/docs/rabbitmq.config.example#L199. > Also, if you put your cluster config into rabbitmq.config on both nodes to be clustered, will they automatically set the correct /var/lib/rabbitmq/.erlang.cookie or must that step still be done manually? > Setting the correct cookie is a step that must be undertaken by a server/host administrator. RabbitMQ in fact does nothing with regards the erlang cookie file. The erlang runtime system looks for this in the home directory of the user that starts the emulator, and the rabbit startup scripts typically run as the `rabbitmq` user. HTH! Tim From tim at rabbitmq.com Wed Oct 23 09:56:47 2013 From: tim at rabbitmq.com (Tim Watson) Date: Wed, 23 Oct 2013 09:56:47 +0100 Subject: [rabbitmq-discuss] Creating a rabbitmq.config for federation In-Reply-To: <00017EA5-0720-4E5E-932C-51F56C8B7D5E@rabbitmq.com> References: <00017EA5-0720-4E5E-932C-51F56C8B7D5E@rabbitmq.com> Message-ID: <4F122880-27F3-4611-A019-4910D03D3982@rabbitmq.com> Argh - sorry Robert, that was a very incomplete answer. See inline below for more details... On 23 Oct 2013, at 09:41, Tim Watson wrote: > On 22 Oct 2013, at 20:18, Robert Parker wrote: >> How do I convert that into a format that will work in a rabbitmq.config so that all I need to do is drop this config file in, reset the node, then restart rabbitmq-server to get this configuration working? > > Take a look at https://github.com/rabbitmq/rabbitmq-server/blob/master/docs/rabbitmq.config.example#L199. > That will allow you to get your nodes clustered when they first start, if required. In order to get the various plugins to be enabled on start up, you'll have to edit the enabled-plugins file, the path to which is governed by the RABBITMQ_ENABLED_PLUGINS_FILE environment variable. This would need to look precisely thus: [rabbitmq_management,rabbitmq_federation,rabbitmq_federation_management]. Do not forget the final period (full stop), otherwise it won't parse and your nodes will likely refuse to start. You can run the `rabbitmq-plugins enable` commands first, and then take a copy of the file if you prefer. In terms of the `rabbitmqctl set_parameter` commands that you're using to set a federation-upstream, that'll be a bit more complex. What you'll need to do is use the management plugin to export the definitions of your exchange(s), queue(s), binding(s) and so on. Once you've exported these, the json file can be automatically imported (and the definitions loaded thence) on startup, See the configuration example at https://github.com/rabbitmq/rabbitmq-server/blob/master/docs/rabbitmq.config.example#L243 for the syntax required (and note that this setting lives in the `rabbitmq_management` section, not the `rabbit` one. Hopefully that'll get you going! Cheers, Tim From simon at rabbitmq.com Wed Oct 23 10:10:21 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 23 Oct 2013 10:10:21 +0100 Subject: [rabbitmq-discuss] Deleted Queues still showing in Management Plug-in In-Reply-To: <6DB033025329784B9280ABD9516177FC68C2F569@usbpx2pmxmbx12> References: <6DB033025329784B9280ABD9516177FC67C21E54@usbpx2pmxmbx12> <525EB465.3040806@rabbitmq.com> <6DB033025329784B9280ABD9516177FC67C21EB9@usbpx2pmxmbx12> <6DB033025329784B9280ABD9516177FC68C2F569@usbpx2pmxmbx12> Message-ID: <5267927D.8080905@rabbitmq.com> On 22/10/13 20:31, Ganann, Kale wrote: > Any word on the timeline for that next release? Very soon. Maybe even today. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From sekhar434145 at gmail.com Wed Oct 23 10:16:27 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Wed, 23 Oct 2013 14:46:27 +0530 Subject: [rabbitmq-discuss] RabbitMQ - unable to consume unfinished messages? In-Reply-To: <526787B8.6010902@rabbitmq.com> References: <526787B8.6010902@rabbitmq.com> Message-ID: Thanks for the reply Emile, could you please tell me how to configure re-queue messages by Consumer2 instead of closing channel. On Wed, Oct 23, 2013 at 1:54 PM, Emile Joubert wrote: > On 23/10/13 08:21, Rajasekhar P wrote: > > when one of the consumer [ex.Consumer2] received "Message2" then > > am not sending acknowledgement back to the server. In this case as per > > the documentation other consumer[Consumer1] has to consume > > message[Message2] from the server right? But, Its not happening, > > The unacknowledged messages held by Consumer2 will be returned to the > queue once the channel (or connection) closes or when the unacknowledged > messages are explicitly requeued by Consumer2. When that happens the > messages will become eligible for redelivery to Consumer1. > > Also see the second tutorial for further discussion on this topic: > http://www.rabbitmq.com/tutorials/tutorial-two-java.html > > > > -Emile > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Wed Oct 23 10:18:09 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 23 Oct 2013 10:18:09 +0100 Subject: [rabbitmq-discuss] Limitations with RabbitMQ Java Client In-Reply-To: References: <1382457776550-30727.post@n5.nabble.com> <0D685A7E-BFBC-4166-97D7-A9A98D7CF0D5@rabbitmq.com> Message-ID: <52679451.3090400@rabbitmq.com> On 22/10/13 18:38, Michael Klishin wrote: >> >Is this true for all rabbit java client connections? > All connections have an I/O thread. Consumer work pool can take an executor of your choice > but it can't have less than 1 thread. Although note that you can share an ExecutorService across Connections (by creating them with ConnectionFactory.newConnection(ExecutorService)) so the practical limit is one thread (the IO thread) per connection. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From emile at rabbitmq.com Wed Oct 23 10:27:04 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Wed, 23 Oct 2013 10:27:04 +0100 Subject: [rabbitmq-discuss] RabbitMQ - unable to consume unfinished messages? In-Reply-To: References: <526787B8.6010902@rabbitmq.com> Message-ID: <52679668.7010506@rabbitmq.com> On 23/10/13 10:16, Rajasekhar P wrote: > Thanks for the reply Emile, could you please tell me how to configure > re-queue messages by Consumer2 instead of closing channel. Quoted from http://www.rabbitmq.com/semantics.html#ordering : Messages can be returned to the queue using AMQP methods that feature a requeue parameter (basic.recover, basic.reject and basic.nack) [...] -Emile From mklishin at gopivotal.com Wed Oct 23 10:31:34 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 23 Oct 2013 13:31:34 +0400 Subject: [rabbitmq-discuss] Auto delete Queue disappears while using with direct exchange. In-Reply-To: <27E054594442884E9A46DBCF9AE740816103B3@BSDMSATMBX001.mahindrasatyam.ad> References: <27E054594442884E9A46DBCF9AE740816103B3@BSDMSATMBX001.mahindrasatyam.ad> Message-ID: <64928B75-9075-4CAD-8581-A95400D0D11B@gopivotal.com> On 23 Oct 2013, at 09:26, Rohit Patle wrote: > =ERROR REPORT==== 22-Oct-2013::18:00:21 === > connection <0.16445.6>, channel 7000 - soft error: > {amqp_error,access_refused,"queue 'zb_17_4' in vhost '/' in exclusive use", > 'basic.consume'} > > Here after this Error log the queue zb_17_4 will disappear from the list, I am wondering why some specific queues are missing? Please help. Exclusive queues are deleted when the connection that declared them is closed. The exception above suggests another connection tried to use the same queue, it caused a channel exception. This *should not* close the connection at fault, so there seems to be some application recovery logic that closes the connection that declared zb_17_4. So, it's not auto-deleted queues you see removed but exclusive queues, when their connections go away. MK From simon at rabbitmq.com Wed Oct 23 10:36:10 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 23 Oct 2013 10:36:10 +0100 Subject: [rabbitmq-discuss] Limitations with RabbitMQ Java Client In-Reply-To: <52679451.3090400@rabbitmq.com> References: <1382457776550-30727.post@n5.nabble.com> <0D685A7E-BFBC-4166-97D7-A9A98D7CF0D5@rabbitmq.com> <52679451.3090400@rabbitmq.com> Message-ID: <5267988A.20302@rabbitmq.com> On 23/10/13 10:18, Simon MacMullen wrote: > Although note that you can share an ExecutorService across Connections Actually I don't see why we shouldn't do this by default. I will file a bug... Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From mklishin at gopivotal.com Wed Oct 23 10:45:54 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 23 Oct 2013 13:45:54 +0400 Subject: [rabbitmq-discuss] Limitations with RabbitMQ Java Client In-Reply-To: <5267988A.20302@rabbitmq.com> References: <1382457776550-30727.post@n5.nabble.com> <0D685A7E-BFBC-4166-97D7-A9A98D7CF0D5@rabbitmq.com> <52679451.3090400@rabbitmq.com> <5267988A.20302@rabbitmq.com> Message-ID: <7061F786-8FA8-468E-B5DB-37FFCE4C81DC@gopivotal.com> On 23 Oct 2013, at 13:36, Simon MacMullen wrote: > Actually I don't see why we shouldn't do this by default. I will file a bug... Note that executors cannot be restated and Connection#close shuts down the executor it uses. So sharing executors between connections is quite dangerous. MK From watson.timothy at gmail.com Wed Oct 23 10:50:39 2013 From: watson.timothy at gmail.com (Tim Watson) Date: Wed, 23 Oct 2013 10:50:39 +0100 Subject: [rabbitmq-discuss] unable to join the cluster node .. In-Reply-To: References: Message-ID: Hi, First off, sorry it took so long to get to this - your question managed o slip through he cracks somehow. On 15 Oct 2013, at 16:58, sagu prf wrote: > while stoping the Ram node as master unable to fail over to > disk which alive more day than ram node and surprisingly it's why this > disc node not take over as master ( which uptime was higher than ram > node) It's not abundantly clear to me why has actually gone wrong here. What exactly does your cluster look like and which commands were applied to which nodes in order to produce the errors below. Did these error logs appear on the node that was stopped (or removed from the cluster), at which point did they appear and how did you detect that the operation failed? Did the command return any additional error information or messages? > > =ERROR REPORT==== 14-Oct-2013::10:57:01 === > Mnesia('rabbit at linuxserv05'): ** ERROR ** (core dumped to file: > "/var/lib/rabbitmq/MnesiaCore.rabbit at linuxserv05_1381_809421_158007") > ** FATAL ** Failed to merge schema: Bad cookie in table definition > rabbit_user_permission: 'rabbit at linuxserv05' = > {cstruct,rabbit_user_permission,set,['rabbit at linuxserv01'],['rabbit at linuxserv06','rabbit at linuxserv05','rabbit at linuxserv04'] > ,[],0,read_write,false,[],[],false,user_permission,[user_vhost,permission],[],[],[],{{1376,164084,168369},'rabbit at linuxserv04'}, > {{4,2},{'rabbit at linuxserv05',{1381,784616,463441}}}}, > 'rabbit at linuxserv01' = > {cstruct,rabbit_user_permission,set,[],['rabbit at linuxserv01'], > [],0,read_write,false,[],[],false,user_permission,[user_vhost,permission],[],[],[],{{1381,794520,133541},'rabbit at linuxserv01'},{{2,0},[]}} > What version of rabbit are you running? And what version of erlang? Are all nodes running the same versions of both? > > =ERROR REPORT==== 14-Oct-2013::10:57:11 === > ** Generic server mnesia_monitor terminating > ** Last message in was {'EXIT',<0.46.0>,killed} > ** When Server state == {state,<0.46.0>,[],[],true,[],undefined,[]} > ** Reason for termination == > ** killed > > =ERROR REPORT==== 14-Oct-2013::10:57:11 === > ** Generic server mnesia_recover terminating > ** Last message in was {'EXIT',<0.46.0>,killed} > ** When Server state == {state,<0.46.0>,undefined,undefined,undefined,0,false, > true,[]} > ** Reason for termination == > ** killed > > =ERROR REPORT==== 14-Oct-2013::10:57:11 === > ** Generic server mnesia_subscr terminating > ** Last message in was {'EXIT',<0.46.0>,killed} > ** When Server state == {state,<0.46.0>,20502} > ** Reason for termination == > ** killed > > =INFO REPORT==== 14-Oct-2013::10:57:11 === > application: mnesia > exited: {shutdown,{mnesia_sup,start,[normal,[]]}} > type: permanent > > =ERROR REPORT==== 14-Oct-2013::10:57:11 === > ** Generic server mnesia_snmp_sup terminating > ** Last message in was {'EXIT',<0.46.0>,killed} > ** When Server state == {state, > {local,mnesia_snmp_sup}, > simple_one_for_one, > [{child,undefined,mnesia_snmp_sup, > {mnesia_snmp_hook,start,[]}, > transient,3000,worker, > [mnesia_snmp_sup,mnesia_snmp_hook, > supervisor]}], > undefined,0,86400000,[],mnesia_snmp_sup,[]} > ** Reason for termination == > ** killed > > i have tried the > rabbit at linuxserv04% rabbitmqctl -n rabbit at linuxserv01 stop_app At which point did you do that? > > rabbit at linuxserv04% rabbitmqctl -n rabbit at linuxserv01 reset > it lost all Queue informations .. That is what reset does... > rabbit at linuxserv04% > failing to join the cluster .. > > linuxserv05%rabbitmq-server -detached failed to join . > > even i tired with manually but it was failed .. > Seems like the cluster nodes have a different view of the world. Did you experience any network partitions during this time? > is there any other method to remove this linuxserv01 from cluster and > bring back another node into cluster (linuxserv05) ? without shutdown > entire > cluster . I don't think so. It looks to me (and perhaps one of the other developers is better versed in this and will correct me) as though your nodes are very confused about cluster membership. You could've tried starting the failing node with RABBITMQ_NODE_ONLY=1 and then running leave_cluster or some such, but now that you've reset it I don't think that will work. Tim From steve at rabbitmq.com Wed Oct 23 11:24:48 2013 From: steve at rabbitmq.com (Steve Powell) Date: Wed, 23 Oct 2013 11:24:48 +0100 Subject: [rabbitmq-discuss] AlreadyClosedException always sets hardError and initiatedByApplication to true In-Reply-To: References: <5BFF87E3-BBD7-421D-8CD2-C8AE6E8A7FD8@rabbitmq.com> <65CCF6A8-199D-4BB4-ABEE-DC79C2413F23@rabbitmq.com> <2C78313F-BB0B-4882-8183-290131293E8A@rabbitmq.com> Message-ID: <7495FFDC-5C6B-4BE3-AD68-79C3AF96F82D@rabbitmq.com> Jonathan, There are some subtleties here. Comments in-line: On 22 Oct 2013, at 17:07, Jonathan Halterman wrote: > if you're doing rapid basicPublish calls to a non-existent exchange. Eventually basicPublish fails with an AlreadyClosedException, but this often occurs before the Channel's ShutdownListener is called. So the client has no fair way of avoiding the AlreadyClosedException. Let's get one thing out of the way first of all. Basic.Publish is an asynchronous call. Therefore, if the channel is known and open as far as the client is concerned, there is no good reason for the Basic.Publish to fail (or know anything about the exchange's existence) and no way for the client to prevent subsequent Basic.Publish calls until there are replies back from the server. Nor is there any way to stop previously queued consumer actions on that channel from running. Consumers will be driven (eventually) with a handleShutdownSignal() as their last action. Any channel ShutdownListener will also be driven with the ShutdownSignalException passed to it, but asynchronously. Ordering of action and listener call is not enforced by the client. If a subsequent action on a closed channel is executed, you will get an AlreadyClosedException (sometimes?ought this to be always?) and this is due to an application initiated action (!), and has a channel reference. (It is represented as a hard error, which is probably wrong.) Given the channel reference you can get the ShutdownSignalException which closed that channel with Channel.getCloseReason(). This also works on Connections. > So from my perspective, there are a few things I'd prefer to see out of all this: > > - That AlreadyClosedExceptions be allowed to represent channels that were already closed (as seems to be the case with the reference being set to a Channel). On Channel method calls it does that already, but has hardError set to true, which is sometimes misleading. > - That an invocation against a Channel that has already been closed does not result in the Connection being closed (as seems to be the case). It depends on what you mean by 'already closed'. If the client knows it has closed, then yes, I agree with you. If it doesn't (yet) know it has closed (as in the case for a little while after a publish to a non-existent exchange) then it may not be able to throw an exception (yet). It may, though, because some actions are synchronous with server interaction, which means we can tell from the response if something went wrong. > - That AlreadyClosedExceptions include the Method that originally cased the closure as the shutdown reason (if any), such as 404. This would allow me to determine why a basicPublish fails. See above: given the object that has closed, you should be able to get the ShutdownSignalException and determine why it closed. Steve Powell [Cell: +44-7815-838-558] [RabbitMQ, Pivotal] ?L?enfer, c?est les autres.? Sartre -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Wed Oct 23 11:31:38 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 23 Oct 2013 11:31:38 +0100 Subject: [rabbitmq-discuss] Reading a message from sys.log In-Reply-To: <7c890528-90b4-490a-95e2-31251265da4f@googlegroups.com> References: <7c890528-90b4-490a-95e2-31251265da4f@googlegroups.com> Message-ID: <5267A58A.5020706@rabbitmq.com> Have you by any chance deleted the exchange amq.rabbitmq.trace? Admittedly that's not exactly a clear error message. Cheers, Simon On 23/10/13 07:58, Tomasz Szymkowiak wrote: > I forgot to mention, that sys.log is durable queue which has two > bindings with amq.rabbitmq.log exchange: one with binding key error and > the other one with warning. > Regards, > T. > > W dniu wtorek, 22 pa?dziernika 2013 17:12:37 UTC+2 u?ytkownik Tomasz > Szymkowiak napisa?: > > Hi, > when i'm trying to get a message from sys.log queue via > rabbitmq_management plugin i'm getting: > > > Got response code 500 with body > Internal Server Error > > The server encountered an error while processing this request: > {error, > {exit, > {{{badmatch, > {badrpc, > {'EXIT', > {{badmatch, > {error, > {'EXIT', > {{badmatch, > {error, > {{{badmatch,{error,not_found}}, > [{rabbit_trace,init,1}, > {rabbit_channel,init,1}, > {gen_server2,init_it,6}, > {proc_lib,init_p_do_apply,3}]}, > {child,undefined,channel, > {rabbit_channel,start_link, > [1,<0.12001.10>,<0.12001.10>,<0.11994.10>, > <<"<'rabbit at host'.2.11994.10>">>, > rabbit_framing_amqp_0_9_1, > {user,<<"user">>, > [administrator], > rabbit_auth_backend_internal, > {internal_user,<<"user">>, > > <<103,27,123,114,70,159,120,205,173,29,114,226,83,153,225, > 33,146,220,255,20>>, > [administrator]}}, > <<"/">>, > [{<<"publisher_confirms">>,bool,true}, > {<<"exchange_exchange_bindings">>,bool,true}, > {<<"basic.nack">>,bool,true}, > {<<"consumer_cancel_notify">>,bool,true}], > <0.11998.10>,<0.12003.10>]}, > intrinsic,4294967295,worker, > [rabbit_channel]}}}}, > [{rabbit_channel_sup,start_link,1}, > {supervisor2,do_start_child_i,3}, > {supervisor2,handle_call,3}, > {gen_server,handle_msg,5}, > {proc_lib,init_p_do_apply,3}]}}}}, > [{rabbit_direct,start_channel,9}, > {rpc,local_call,3}, > {amqp_channel_sup,'-start_writer_fun/4-fun-0-',7}, > {amqp_channel,start_writer,1}, > {amqp_channel,do_rpc,1}, > {amqp_channel,handle_call,3}, > {gen_server,handle_msg,5}, > {proc_lib,init_p_do_apply,3}]}}}}, > [{amqp_channel_sup,'-start_writer_fun/4-fun-0-',7}, > {amqp_channel,start_writer,1}, > {amqp_channel,do_rpc,1}, > {amqp_channel,handle_call,3}, > {gen_server,handle_msg,5}, > {proc_lib,init_p_do_apply,3}]}, > {gen_server,call,[<0.12001.10>,open,infinity]}}, > [{gen_server,call,3}, > {amqp_gen_connection,open_channel,3}, > {rabbit_mgmt_util,with_channel,5}, > {rabbit_mgmt_util,with_decode,5}, > {rabbit_mgmt_wm_queue_get,process_post,2}, > {webmachine_resource,resource_call,3}, > {webmachine_resource,do,3}, > {webmachine_decision_core,resource_call,1}]}} > > > it happens only, when the tracing is on (vhost "/") > when i turn it off - the message is read properly > what am i doing wrong ? > > rabbitmqctl status: > > Status of node 'rabbit at host' ... > [{pid,3510}, > {running_applications, > [{rabbitmq_management_visualiser,"RabbitMQ Visualiser","3.1.5"}, > {rabbitmq_tracing,"RabbitMQ message logging / tracing","3.1.5"}, > {rabbitmq_management,"RabbitMQ Management Console","3.1.5"}, > {rabbitmq_management_agent,"RabbitMQ Management Agent","3.1.5"}, > {rabbit,"RabbitMQ","3.1.5"}, > {os_mon,"CPO CXC 138 46","2.2.7"}, > {rabbitmq_web_dispatch,"RabbitMQ Web Dispatcher","3.1.5"}, > {webmachine,"webmachine","1.10.3-rmq3.1.5-gite9359c7"}, > {mochiweb,"MochiMedia Web Server","2.7.0-rmq3.1.5-git680dba8"}, > {xmerl,"XML parser","1.2.10"}, > {inets,"INETS CXC 138 49","5.7.1"}, > {mnesia,"MNESIA CXC 138 12","4.5"}, > {amqp_client,"RabbitMQ AMQP Client","3.1.5"}, > {sasl,"SASL CXC 138 11","2.1.10"}, > {stdlib,"ERTS CXC 138 10","1.17.5"}, > {kernel,"ERTS CXC 138 10","2.14.5"}]}, > {os,{unix,linux}}, > {erlang_version, > "Erlang R14B04 (erts-5.8.5) [source] [64-bit] [smp:8:8] [rq:8] > [async-threads:30] [kernel-poll:true]\n"}, > {memory, > [{total,50383256}, > {connection_procs,605416}, > {queue_procs,560056}, > {plugins,702048}, > {other_proc,11365416}, > {mnesia,229240}, > {mgmt_db,541664}, > {msg_index,99296}, > {other_ets,1374104}, > {binary,13453984}, > {code,17552765}, > {atom,1601817}, > {other_system,2297450}]}, > {vm_memory_high_watermark,0.4}, > {vm_memory_limit,3150484275}, > {disk_free_limit,1000000000}, > {disk_free,11425714176}, > {file_descriptors, > > [{total_limit,924},{total_used,25},{sockets_limit,829},{sockets_used,9}]}, > {processes,[{limit,1048576},{used,351}]}, > {run_queue,0}, > {uptime,1052426}] > > > Regards, > T. > > > > _______________________________________________ > 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 steve at rabbitmq.com Wed Oct 23 11:47:08 2013 From: steve at rabbitmq.com (Steve Powell) Date: Wed, 23 Oct 2013 11:47:08 +0100 Subject: [rabbitmq-discuss] Limitations with RabbitMQ Java Client In-Reply-To: <7061F786-8FA8-468E-B5DB-37FFCE4C81DC@gopivotal.com> References: <1382457776550-30727.post@n5.nabble.com> <0D685A7E-BFBC-4166-97D7-A9A98D7CF0D5@rabbitmq.com> <52679451.3090400@rabbitmq.com> <5267988A.20302@rabbitmq.com> <7061F786-8FA8-468E-B5DB-37FFCE4C81DC@gopivotal.com> Message-ID: <39F4B030-6C6E-49D9-B8D3-2272E6A5FB4A@rabbitmq.com> It is not dangerous to share executors between connections. If you supply your own Executor (which you must do if you want to share them), then the client will not shutdown the executor when the connection closes. If you rely on the default, then the (private) executor is closed for you when the connection closes. Sharing the executor between multiple connections by default means we would have to have a more complex rule for tidying up the (shared) executor, and possibly some option for setting it off? If the user needs this they can achieve it explicitly at present. Steve Powell [Cell: +44-7815-838-558] [RabbitMQ, Pivotal] ?L?enfer, c?est les autres.? Sartre On 23 Oct 2013, at 10:45, Michael Klishin wrote: > > On 23 Oct 2013, at 13:36, Simon MacMullen wrote: > >> Actually I don't see why we shouldn't do this by default. I will file a bug... > > Note that executors cannot be restated and Connection#close shuts down the executor > it uses. So sharing executors between connections is quite dangerous. > > MK > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss From sekhar434145 at gmail.com Wed Oct 23 12:37:37 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Wed, 23 Oct 2013 17:07:37 +0530 Subject: [rabbitmq-discuss] RabbitMQ - can we make use policies as load balancing in cluster? In-Reply-To: <79BE6D67-B4A8-4E20-8115-9CECBE197F63@rabbitmq.com> References: <38A50CA9-FB0C-42DE-81A7-6FF93CD41836@rabbitmq.com> <6D9D02A8-E143-46DB-99A2-A0E282D28AC3@rabbitmq.com> <8FCEEF28-4DDE-4612-A25E-6C4EC292751D@rabbitmq.com> <79BE6D67-B4A8-4E20-8115-9CECBE197F63@rabbitmq.com> Message-ID: Hi MK, sorry for sending messages again, as per my understanding it sounds like with policies we cannot achieve load balancing right? On Fri, Oct 18, 2013 at 1:21 PM, Michael Klishin wrote: > On 18 Oct 2013, at 11:40, Rajasekhar P wrote: > > > Can you please clarify me this as well, with policies only we can > achieve mirrored queues right? > > Policies is a way to add queue attributes in a centralised way. Instead of > your apps knowing how to set up mirroring or > replication, you may choose to configure a policy to do it instead. > > A policy is a named pattern, e.g. ^log.*, which matches queue names. For > the names that match, policy is applied > (extra attributes are added). > > At the moment, policies are used for two RabbitMQ features: mirrored > queues (replication of message contents) and > federated exchanges (primarily useful for WAN-friendly asynchronous > replication). > > > if not, how mirrored queues and policies are different? > > See above. > > > In the previous mail you have mentioned something about federated > exchanges. Can we achieve load balancing with this? > > Not really. Federated exchanges allow you replicate a stream of messages > published to exchange X across N nodes > or clusters. > > Federated queues are different. They allow load balancing of a single > queue between nodes, however, > this is a new feature that's only available in RabbitMQ 3.2 (nightlies) > and need some documentation > improvements. > > Feel free to give nightly builds a try but wait for 3.2 final release > before deploying into production. > > > And how exactly it is different from Mirrored queues? Currently we are > using 3.1.3, can you please share docs related federation? > > http://www.rabbitmq.com/federation.html > > Initial federated queues docs: > http://next.rabbitmq.com/federated-queues.html > > MK > > > > _______________________________________________ > 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 Oct 23 13:03:51 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 23 Oct 2013 16:03:51 +0400 Subject: [rabbitmq-discuss] RabbitMQ - can we make use policies as load balancing in cluster? In-Reply-To: References: <38A50CA9-FB0C-42DE-81A7-6FF93CD41836@rabbitmq.com> <6D9D02A8-E143-46DB-99A2-A0E282D28AC3@rabbitmq.com> <8FCEEF28-4DDE-4612-A25E-6C4EC292751D@rabbitmq.com> <79BE6D67-B4A8-4E20-8115-9CECBE197F63@rabbitmq.com> Message-ID: <2FF28FBE-D6D4-46B8-953B-3001C3B911D7@rabbitmq.com> On 23 Oct 2013, at 15:37, Rajasekhar P wrote: > Hi MK, sorry for sending messages again, as per my understanding it sounds like with policies we cannot achieve load balancing right? Rajasekhar, Policies are used for more than one feature. Two of them cannot be used for load balancing, one that can ? federated queues ? is not available in RabbitMQ 3.1.x. My earlier email answers this question in more detail. 3.2, which includes federated queues that you want, will ship very soon. MK From sekhar434145 at gmail.com Wed Oct 23 13:08:46 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Wed, 23 Oct 2013 17:38:46 +0530 Subject: [rabbitmq-discuss] RabbitMQ - can we make use policies as load balancing in cluster? In-Reply-To: <2FF28FBE-D6D4-46B8-953B-3001C3B911D7@rabbitmq.com> References: <38A50CA9-FB0C-42DE-81A7-6FF93CD41836@rabbitmq.com> <6D9D02A8-E143-46DB-99A2-A0E282D28AC3@rabbitmq.com> <8FCEEF28-4DDE-4612-A25E-6C4EC292751D@rabbitmq.com> <79BE6D67-B4A8-4E20-8115-9CECBE197F63@rabbitmq.com> <2FF28FBE-D6D4-46B8-953B-3001C3B911D7@rabbitmq.com> Message-ID: Thank you so much MK for the response. On Wed, Oct 23, 2013 at 5:33 PM, Michael Klishin wrote: > > On 23 Oct 2013, at 15:37, Rajasekhar P wrote: > > > Hi MK, sorry for sending messages again, as per my understanding it > sounds like with policies we cannot achieve load balancing right? > > Rajasekhar, > > Policies are used for more than one feature. Two of them cannot be used > for load balancing, > one that can ? federated queues ? is not available in RabbitMQ 3.1.x. > My earlier email answers this question in more detail. > > 3.2, which includes federated queues that you want, will ship very soon. > > MK > _______________________________________________ > 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 sekhar434145 at gmail.com Wed Oct 23 14:09:05 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Wed, 23 Oct 2013 18:39:05 +0530 Subject: [rabbitmq-discuss] RabbitMQ - can we make use policies as load balancing in cluster? In-Reply-To: References: <38A50CA9-FB0C-42DE-81A7-6FF93CD41836@rabbitmq.com> <6D9D02A8-E143-46DB-99A2-A0E282D28AC3@rabbitmq.com> <8FCEEF28-4DDE-4612-A25E-6C4EC292751D@rabbitmq.com> <79BE6D67-B4A8-4E20-8115-9CECBE197F63@rabbitmq.com> <2FF28FBE-D6D4-46B8-953B-3001C3B911D7@rabbitmq.com> Message-ID: Hi Team, I have one more question on clustering from RabbitMQ HA documentation understanding. As per the docs, with clustering we can only achieve high-availability i.e, fail-over(where all the queues are mirrored across the nodes) not exactly load balancing right? Where load balancing is, when one of the node in cluster achieved peak level where that node cannot handle further queues. In this case newly generated queues has to go to other node in the cluster right? But, I couldn't find this kind of behavior in the document. Can't we achieve these kind of behaviors with RabbitMQ clustering? Thanks in advance. On Wed, Oct 23, 2013 at 5:38 PM, Rajasekhar P wrote: > Thank you so much MK for the response. > > > On Wed, Oct 23, 2013 at 5:33 PM, Michael Klishin wrote: > >> >> On 23 Oct 2013, at 15:37, Rajasekhar P wrote: >> >> > Hi MK, sorry for sending messages again, as per my understanding it >> sounds like with policies we cannot achieve load balancing right? >> >> Rajasekhar, >> >> Policies are used for more than one feature. Two of them cannot be used >> for load balancing, >> one that can ? federated queues ? is not available in RabbitMQ 3.1.x. >> My earlier email answers this question in more detail. >> >> 3.2, which includes federated queues that you want, will ship very soon. >> >> MK >> _______________________________________________ >> 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 Oct 23 14:19:36 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 23 Oct 2013 14:19:36 +0100 Subject: [rabbitmq-discuss] Reading a message from sys.log In-Reply-To: References: <7c890528-90b4-490a-95e2-31251265da4f@googlegroups.com> <5267A58A.5020706@rabbitmq.com> Message-ID: <5267CCE8.5080405@rabbitmq.com> Try: $ rabbitmqctl eval 'rabbit_exchange:declare(rabbit_misc:r(<<"/">>, exchange, <<"amq.rabbitmq.trace">>), topic, true, false, false, []).' Cheers, Simon On 23/10/13 13:02, Tomasz Szymkowiak wrote: > Yes, actually I do not have exchange amq.rabbitmq.trace, I probably > removed it. > > What is the easiest way to re-create it ? When I'm trying to do this via > rabbitmq_management I'm getting this error: > ACCESS_REFUSED - exchange name 'amq.rabbitmq.trace' contains reserved > prefix 'amq.*' > > What comes to my mind is to download broker definition file, reset node > (rabbitmqctl reset) and upload definition againg but i hope there is an > easier way. > > Thank you in advance > Regards, > T. > > > 2013/10/23 Simon MacMullen > > > Have you by any chance deleted the exchange amq.rabbitmq.trace? > > Admittedly that's not exactly a clear error message. > > Cheers, Simon > > On 23/10/13 07:58, Tomasz Szymkowiak wrote: > > I forgot to mention, that sys.log is durable queue which has two > bindings with amq.rabbitmq.log exchange: one with binding key > error and > the other one with warning. > Regards, > T. > > W dniu wtorek, 22 pa?dziernika 2013 17:12:37 UTC+2 u?ytkownik Tomasz > Szymkowiak napisa?: > > Hi, > when i'm trying to get a message from sys.log queue via > rabbitmq_management plugin i'm getting: > > > Got response code 500 with body > Internal Server Error > > The server encountered an error while processing this request: > {error, > {exit, > {{{badmatch, > {badrpc, > {'EXIT', > {{badmatch, > {error, > {'EXIT', > {{badmatch, > {error, > {{{badmatch,{error,not_found}}__, > [{rabbit_trace,init,1}, > {rabbit_channel,init,1}, > {gen_server2,init_it,6}, > {proc_lib,init_p_do_apply,3}]}__, > {child,undefined,channel, > {rabbit_channel,start_link, > [1,<0.12001.10>,<0.12001.10>,<__0.11994.10>, > <<"<'rabbit at host'.2.11994.10>"__>>, > rabbit_framing_amqp_0_9_1, > {user,<<"user">>, > [administrator], > rabbit_auth_backend_internal, > {internal_user,<<"user">>, > > <<103,27,123,114,70,159,120,__205,173,29,114,226,83,153,225, > 33,146,220,255,20>>, > [administrator]}}, > <<"/">>, > [{<<"publisher_confirms">>,__bool,true}, > > {<<"exchange_exchange___bindings">>,bool,true}, > {<<"basic.nack">>,bool,true}, > > {<<"consumer_cancel_notify">>,__bool,true}], > <0.11998.10>,<0.12003.10>]}, > intrinsic,4294967295,worker, > [rabbit_channel]}}}}, > [{rabbit_channel_sup,start___link,1}, > {supervisor2,do_start_child_i,__3}, > {supervisor2,handle_call,3}, > {gen_server,handle_msg,5}, > {proc_lib,init_p_do_apply,3}]}__}}}, > [{rabbit_direct,start_channel,__9}, > {rpc,local_call,3}, > {amqp_channel_sup,'-start___writer_fun/4-fun-0-',7}, > {amqp_channel,start_writer,1}, > {amqp_channel,do_rpc,1}, > {amqp_channel,handle_call,3}, > {gen_server,handle_msg,5}, > {proc_lib,init_p_do_apply,3}]}__}}}, > [{amqp_channel_sup,'-start___writer_fun/4-fun-0-',7}, > {amqp_channel,start_writer,1}, > {amqp_channel,do_rpc,1}, > {amqp_channel,handle_call,3}, > {gen_server,handle_msg,5}, > {proc_lib,init_p_do_apply,3}]}__, > {gen_server,call,[<0.12001.10>__,open,infinity]}}, > [{gen_server,call,3}, > {amqp_gen_connection,open___channel,3}, > {rabbit_mgmt_util,with___channel,5}, > {rabbit_mgmt_util,with_decode,__5}, > {rabbit_mgmt_wm_queue_get,__process_post,2}, > {webmachine_resource,resource___call,3}, > {webmachine_resource,do,3}, > {webmachine_decision_core,__resource_call,1}]}} > > > it happens only, when the tracing is on (vhost "/") > when i turn it off - the message is read properly > what am i doing wrong ? > > rabbitmqctl status: > > Status of node 'rabbit at host' ... > [{pid,3510}, > {running_applications, > [{rabbitmq_management___visualiser,"RabbitMQ > Visualiser","3.1.5"}, > {rabbitmq_tracing,"RabbitMQ message logging / > tracing","3.1.5"}, > {rabbitmq_management,"RabbitMQ Management > Console","3.1.5"}, > {rabbitmq_management_agent,"__RabbitMQ Management > Agent","3.1.5"}, > {rabbit,"RabbitMQ","3.1.5"}, > {os_mon,"CPO CXC 138 46","2.2.7"}, > {rabbitmq_web_dispatch,"__RabbitMQ Web > Dispatcher","3.1.5"}, > > {webmachine,"webmachine","1.__10.3-rmq3.1.5-gite9359c7"}, > {mochiweb,"MochiMedia Web > Server","2.7.0-rmq3.1.5-__git680dba8"}, > {xmerl,"XML parser","1.2.10"}, > {inets,"INETS CXC 138 49","5.7.1"}, > {mnesia,"MNESIA CXC 138 12","4.5"}, > {amqp_client,"RabbitMQ AMQP Client","3.1.5"}, > {sasl,"SASL CXC 138 11","2.1.10"}, > {stdlib,"ERTS CXC 138 10","1.17.5"}, > {kernel,"ERTS CXC 138 10","2.14.5"}]}, > {os,{unix,linux}}, > {erlang_version, > "Erlang R14B04 (erts-5.8.5) [source] [64-bit] > [smp:8:8] [rq:8] > [async-threads:30] [kernel-poll:true]\n"}, > {memory, > [{total,50383256}, > {connection_procs,605416}, > {queue_procs,560056}, > {plugins,702048}, > {other_proc,11365416}, > {mnesia,229240}, > {mgmt_db,541664}, > {msg_index,99296}, > {other_ets,1374104}, > {binary,13453984}, > {code,17552765}, > {atom,1601817}, > {other_system,2297450}]}, > {vm_memory_high_watermark,0.4}__, > {vm_memory_limit,3150484275}, > {disk_free_limit,1000000000}, > {disk_free,11425714176}, > {file_descriptors, > > > [{total_limit,924},{total___used,25},{sockets_limit,829},{__sockets_used,9}]}, > {processes,[{limit,1048576},{__used,351}]}, > {run_queue,0}, > {uptime,1052426}] > > > Regards, > T. > > > > _________________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.__rabbitmq.com > > https://lists.rabbitmq.com/__cgi-bin/mailman/listinfo/__rabbitmq-discuss > > > > > -- > Simon MacMullen > RabbitMQ, Pivotal > > -- Simon MacMullen RabbitMQ, Pivotal From emile at rabbitmq.com Wed Oct 23 14:30:40 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Wed, 23 Oct 2013 14:30:40 +0100 Subject: [rabbitmq-discuss] RabbitMQ 3.2.0 released Message-ID: <5267CF80.30506@rabbitmq.com> The RabbitMQ team is pleased to announce the release of RabbitMQ 3.2.0. This release introduces federated queues and features enhanced policies for aspects of the broker which previously required AMQP arguments. Clients can now obtain better feedback about authentication failures and broker alarm conditions. This release corrects a number of defects in the broker and plugins. The minimum version of Erlang has been changed from R12B5 to R13B03. See the release notes at: http://www.rabbitmq.com/release-notes/README-3.2.0.txt for more information. The new release can be downloaded from: http://www.rabbitmq.com/download.html As always, we welcome any questions, bug reports, and other feedback on this release, as well as general suggestions for features and enhancements in future releases. Mail us via the RabbitMQ discussion list. Regards, The RabbitMQ Team (http://www.rabbitmq.com) From mklishin at gopivotal.com Wed Oct 23 14:50:56 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 23 Oct 2013 17:50:56 +0400 Subject: [rabbitmq-discuss] RabbitMQ - can we make use policies as load balancing in cluster? In-Reply-To: References: <38A50CA9-FB0C-42DE-81A7-6FF93CD41836@rabbitmq.com> <6D9D02A8-E143-46DB-99A2-A0E282D28AC3@rabbitmq.com> <8FCEEF28-4DDE-4612-A25E-6C4EC292751D@rabbitmq.com> <79BE6D67-B4A8-4E20-8115-9CECBE197F63@rabbitmq.com> <2FF28FBE-D6D4-46B8-953B-3001C3B911D7@rabbitmq.com> Message-ID: <30211806-7DF7-40CC-9866-3621AFCDE965@rabbitmq.com> On 23 Oct 2013, at 17:09, Rajasekhar P wrote: > I have one more question on clustering from RabbitMQ HA documentation understanding. As per the docs, with clustering we can only achieve high-availability i.e, fail-over(where all the queues are mirrored across the nodes) not exactly load balancing right? Clustering serves more than one purpose. HA is one. Distributing load across *multiple* queues on multiple nodes is another. > > Where load balancing is, when one of the node in cluster achieved peak level where that node cannot handle further queues. In this case newly generated queues has to go to other node in the cluster right? Yes. > But, I couldn't find this kind of behavior in the document. Can't we achieve these kind of behaviors with RabbitMQ clustering? Put an HAproxy in front of your cluster and make all clients connect to it. It will distribute connections and thus newly created queues between cluster nodes. There is an issue with data locality with this setup (your clients may be talking to a node other than the one that hosts master for a queue it needs) but it still can be a significant improvement overall. MK From steve at rabbitmq.com Wed Oct 23 14:51:33 2013 From: steve at rabbitmq.com (Steve Powell) Date: Wed, 23 Oct 2013 14:51:33 +0100 Subject: [rabbitmq-discuss] Limitations with RabbitMQ Java Client In-Reply-To: <39F4B030-6C6E-49D9-B8D3-2272E6A5FB4A@rabbitmq.com> References: <1382457776550-30727.post@n5.nabble.com> <0D685A7E-BFBC-4166-97D7-A9A98D7CF0D5@rabbitmq.com> <52679451.3090400@rabbitmq.com> <5267988A.20302@rabbitmq.com> <7061F786-8FA8-468E-B5DB-37FFCE4C81DC@gopivotal.com> <39F4B030-6C6E-49D9-B8D3-2272E6A5FB4A@rabbitmq.com> Message-ID: <42104957-9225-4527-9877-C52979C84BF0@rabbitmq.com> One more point. As is usual for ThreadPoolExecutor (Java) objects, the threads in the pool are created on demand. So it is not correct to say that all connections will have 6 threads created. If you don't use Consumer callbacks at all, there will only be one connection thread created (for async communication). Even if you have callbacks, you will have at most one extra thread per channel. The default ExecutorService we generate uses a fixed pool of size 5, which means once 5 are created no more are allocated (requests beyond this are queued until a thread is free). These threads persist until the ExecutorService is stopped. This happens automatically when the connection is closed. If an ExecutorService is supplied by the application it is never explicitly stopped by the client. Steve Powell [Cell: +44-7815-838-558] [RabbitMQ, Pivotal] ?L?enfer, c?est les autres.? Sartre On 23 Oct 2013, at 11:47, Steve Powell wrote: > It is not dangerous to share executors between connections. > > If you supply your own Executor (which you must do if you want to share them), then the client will not shutdown the executor when the connection closes. If you rely on the default, then the (private) executor is closed for you when the connection closes. > > Sharing the executor between multiple connections by default means we would have to have a more complex rule for tidying up the (shared) executor, and possibly some option for setting it off? If the user needs this they can achieve it explicitly at present. > > Steve Powell [Cell: +44-7815-838-558] [RabbitMQ, Pivotal] > ?L?enfer, c?est les autres.? Sartre > > On 23 Oct 2013, at 10:45, Michael Klishin wrote: > >> >> On 23 Oct 2013, at 13:36, Simon MacMullen wrote: >> >>> Actually I don't see why we shouldn't do this by default. I will file a bug... >> >> Note that executors cannot be restated and Connection#close shuts down the executor >> it uses. So sharing executors between connections is quite dangerous. >> >> MK >> _______________________________________________ >> 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 mklishin at gopivotal.com Wed Oct 23 15:13:35 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 23 Oct 2013 18:13:35 +0400 Subject: [rabbitmq-discuss] ANN RabbitMQ plugin improvements in Logstash 1.2.2 Message-ID: <1B0ED14E-F6F6-4D48-A242-23497D66CB79@rabbitmq.com> RabbitMQ Logstash plugin users may be interested in learning about some RabbitMQ-related changes in 1.2.2: https://github.com/logstash/logstash/blob/27df6c2830909c9eda9fffb63c00be3d4203fe2e/CHANGELOG#L1 TL;DR: there is one bug fixed, the new plugin (rabbitmq) obsoleted the old one (amqp). MK From mike at suteki.co.uk Wed Oct 23 15:44:03 2013 From: mike at suteki.co.uk (Mike Hadlow) Date: Wed, 23 Oct 2013 15:44:03 +0100 Subject: [rabbitmq-discuss] EasyNetQ: Publisher Confirms Message-ID: EasyNetQ has a new implementation of publisher confirms. Read all about it here: http://mikehadlow.blogspot.co.uk/2013/10/easynetq-publisher-confirms.html Mike -------------- next part -------------- An HTML attachment was scrubbed... URL: From Petr.Gotthard at Honeywell.com Wed Oct 23 15:47:58 2013 From: Petr.Gotthard at Honeywell.com (Gotthard, Petr) Date: Wed, 23 Oct 2013 14:47:58 +0000 Subject: [rabbitmq-discuss] RabbitMQ webpage typo Message-ID: Hello, at this page http://www.rabbitmq.com/plugins.html#building the last sentence says "if you are running RabbitMQ 3.2.0, you should check out all plugins with the Mercurial tag rabbitmq_v3.2.0". I believe the tag should be rabbitmq_v3_2_0 instead of rabbitmq_v3.2.0. Petr -------------- next part -------------- An HTML attachment was scrubbed... URL: From axansh at gmail.com Wed Oct 23 13:18:25 2013 From: axansh at gmail.com (Axansh Sheth) Date: Wed, 23 Oct 2013 05:18:25 -0700 (PDT) Subject: [rabbitmq-discuss] [Error] PRECONDITION_FAILED Message-ID: Hi, I wanted to upgrade AMQP library [php] 0.9 to latest. I have updated that and change my Publisher and consumer code. In publisher code for 0.9 : $this->ex = new AMQPExchange($conn); $this->ex->declare($exchange, $type); I changed it : $this->ex = new AMQPExchange($ch); $this->ex->setName($exchange); $this->ex->setType($type); $this->ex->setFlags(AMQP_DURABLE | AMQP_AUTODELETE); $this->ex->declare(); But i got this error : ncaught exception 'AMQPExchangeException' with message 'Server channel error: 406, message: PRECONDITION_FAILED If i commented $this->ex->declare(); then works fine, I found this is redeclare problem. Shall i comment : $this->ex->declare(); or shall i change some thing? I do not loose my earlier functionality. Please guide me for same. Thanks a lot. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jonathan.skrzypek at gs.com Wed Oct 23 15:09:51 2013 From: jonathan.skrzypek at gs.com (Jonathan Skrzypek) Date: Wed, 23 Oct 2013 07:09:51 -0700 (PDT) Subject: [rabbitmq-discuss] RabbitMQ JMS Client Message-ID: <1382537391868-30766.post@n5.nabble.com> Hi, I'm trying to test the JMS Client for vFabric RabbitMQ. My understanding is that the JMS implementation in this client doesn't use the classic JNDI/lookup way of doing things in the JMS world. Instead you have to use an ObjectFactor to create and register your factory. I couldn't find java samples showing how to use the client. I know there is a reference app but it's using the Play Framework Scala. I tried to get a connectionfactory from ObjectFactory.createConnectionFactory(Reference ref, Name name), with no luck. I get a factory, but get a non-explicit exception when trying to call createConnection(), like : Exception occurred: com.rabbitmq.jms.util.RMQJMSException: tcp://broker:port Is there a simple java sample anywhere ? Has somebody been able to build the usual connectionfactory->connection->session->producer/consumer object tree ? Regards. -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/RabbitMQ-JMS-Client-tp30766.html Sent from the RabbitMQ mailing list archive at Nabble.com. From simon at rabbitmq.com Wed Oct 23 16:10:12 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 23 Oct 2013 16:10:12 +0100 Subject: [rabbitmq-discuss] [Error] PRECONDITION_FAILED In-Reply-To: References: Message-ID: <5267E6D4.9060306@rabbitmq.com> I don't know whether the php client eats the error description or you just didn't post it, but the PRECONDITION_FAILED is telling you that you can't declare an exchange with the characteristics you asked for, since it already exists but with different characteristics. i.e. it might not be durable, or be of a different type, or might not be auto-delete. My money's on auto-delete for what it's worth. rabbitmqctl list_exchanges or the management plugin will let you see what form the exchange currently takes. Cheers, Simon On 23/10/13 13:18, Axansh Sheth wrote: > Hi, > > I wanted to upgrade AMQP library [php] 0.9 to latest. > I have updated that and change my Publisher and consumer code. > > In publisher code for 0.9 : > > $this->ex = new AMQPExchange($conn); > $this->ex->declare($exchange, $type); > > I changed it : > > $this->ex = new AMQPExchange($ch); > $this->ex->setName($exchange); > $this->ex->setType($type); > $this->ex->setFlags(AMQP_DURABLE | AMQP_AUTODELETE); > $this->ex->declare(); > > But i got this error : ncaught exception 'AMQPExchangeException' with > message 'Server channel error: 406, message: PRECONDITION_FAILED > > If i commented $this->ex->declare(); > then works fine, > > I found this is redeclare problem. > > Shall i comment : $this->ex->declare(); or > shall i change some thing? > > I do not loose my earlier functionality. > > Please guide me for same. > > Thanks a lot. > > > _______________________________________________ > 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 mklishin at gopivotal.com Wed Oct 23 16:39:05 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 23 Oct 2013 19:39:05 +0400 Subject: [rabbitmq-discuss] [Error] PRECONDITION_FAILED In-Reply-To: References: Message-ID: <0D52D0C7-9C67-4D25-B2AB-80FC3DA3D695@rabbitmq.com> On 23 Oct 2013, at 16:18, Axansh Sheth wrote: > Shall i comment : $this->ex->declare(); or > shall i change some thing? > > I do not loose my earlier functionality. You need to do one of the following: * Provide exactly the same arguments the exchange currently has (use Management UI to find this out) * Delete the exchange and re-declare it with the arguments you want. Likely a PHP client default has changed between releases. MK From steve at rabbitmq.com Wed Oct 23 17:13:44 2013 From: steve at rabbitmq.com (Steve Powell) Date: Wed, 23 Oct 2013 17:13:44 +0100 Subject: [rabbitmq-discuss] RabbitMQ JMS Client In-Reply-To: <1382537391868-30766.post@n5.nabble.com> References: <1382537391868-30766.post@n5.nabble.com> Message-ID: <5F11F876-5C8A-45E3-A341-44671200AB0F@rabbitmq.com> Hi Jonathan, Although The JMS Client for vFabric RabbitMQ (RJMS) doesn't supply a JNDI provider it is quite happy using Destinations and ConnectionFactorys from JNDI. You will have to write an admin application to populate your JNDI space (create these objects using the RJMS client and the com.rabbitmq.jms.admin package). Then once in you can retrieve connections and destinations from the JNDI in an RJMS app in the normal way. The admin objects are Serializable and Referenceable as needed by the JNDI create/store/retrieve mechanisms. Having said that, it should be possible for you to create and use the ConnectionFactory and Destinations directly created by this API. > I tried to get a connectionfactory from > ObjectFactory.createConnectionFactory(Reference ref, Name name), with no > luck. An ObjectFactory is used by JNDI to create an object from a Reference. We produce a reference (on demand) when JNDI stores an object, and JNDI recreates the object using a Reference when you retrieve it. createConnectionFactory and createDestination are methods on RMQObjectFactory, which is presumably what you used but I wonder where you got the Reference argument from? To create a ConnectionFactory directly, first instantiate a RMQConnectionFactory: new RMQConnectionFactory() set the host/port/etc individually, or use the setUri(String) method like this: setUri("amqp://uid:pass at host.name:port/vhost") (the RabbitMQ site tells you what you can put in the AMQP scheme and how, the standard RabbitMQ defaults apply), and then createConnection() will do the rest (or createQueueConnection or createTopicConnection). You can provide the userid/password pair on the createConnection(String,String) method call instead if you prefer. After you get a connection, you can create a Session and createQueue(QUEUE_NAME) to create a Queue destination on the fly, or else you can create a Destination (with various parameter options) with a new RMQDestination(?) constructor and use it directly. Let me know how it goes. I'm keen to know how hard you find it to work your way through this, and any feedback should be passed through your support channel, or email me directly on steve at rabbitmq.com. This mailing list continues to be for general queries. Steve Powell [Cell: +44-7815-838-558] [RabbitMQ, Pivotal] ?L?enfer, c?est les autres.? Sartre On 23 Oct 2013, at 15:09, Jonathan Skrzypek wrote: > Hi, > > I'm trying to test the JMS Client for vFabric RabbitMQ. > My understanding is that the JMS implementation in this client doesn't use > the classic JNDI/lookup way of doing things in the JMS world. > Instead you have to use an ObjectFactor to create and register your factory. > > I couldn't find java samples showing how to use the client. > I know there is a reference app but it's using the Play Framework Scala. > > I tried to get a connectionfactory from > ObjectFactory.createConnectionFactory(Reference ref, Name name), with no > luck. > I get a factory, but get a non-explicit exception when trying to call > createConnection(), like : > Exception occurred: com.rabbitmq.jms.util.RMQJMSException: tcp://broker:port > > Is there a simple java sample anywhere ? Has somebody been able to build the > usual connectionfactory->connection->session->producer/consumer object tree > ? > > Regards. > > > > -- > View this message in context: http://rabbitmq.1065348.n5.nabble.com/RabbitMQ-JMS-Client-tp30766.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 usha.narasappa at emc.com Wed Oct 23 17:17:16 2013 From: usha.narasappa at emc.com (Narasappa, Usha) Date: Wed, 23 Oct 2013 16:17:16 +0000 Subject: [rabbitmq-discuss] [rabbitmq] /var/log/messages flooded with su: (to rabbitmq) root on none Message-ID: Hi, We use rabbitmq-c amqp client (0.2.0) to publish messages to RabbitMQ broker. The /var/log/messages file is flooded with the following: Oct 23 05:32:29 director-1-1-a su: pam_limits(su:session): invalid line '^H' - skipped Oct 23 05:32:44 director-1-1-a su: (to rabbitmq) root on none Oct 23 05:32:44 director-1-1-a su: pam_limits(su:session): invalid line '^H' - skipped Oct 23 05:32:59 director-1-1-a su: (to rabbitmq) root on none Oct 23 05:32:59 director-1-1-a su: pam_limits(su:session): invalid line '^H' - skipped Oct 23 05:33:14 director-1-1-a su: (to rabbitmq) root on none It appears that root used the su command to take on the identity of "rabbitmq". I also see that /etc/passwd file has the "rabbitmq" username which kind of proves the above theory. It would be of great help if you could let me know what exactly is done after taking on the identity of "rabbitmq". Basically, I am searching a way to turn off these messages so that /var/log/messages does not overgrow and lose important information. As an additional information, logs under /var/log/rabbitmq do not have any error messages. Any other clues/suggestions/pointers are welcome. Thanks, Usha -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Wed Oct 23 17:43:07 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 23 Oct 2013 20:43:07 +0400 Subject: [rabbitmq-discuss] [rabbitmq] /var/log/messages flooded with su: (to rabbitmq) root on none In-Reply-To: References: Message-ID: On 23 Oct 2013, at 20:17, "Narasappa, Usha" wrote: > Any other clues/suggestions/pointers are welcome. Can it be that your /etc/security/limits.conf or one of the files included in it has an erroneous ^H in it? [1] 1. http://en.wikipedia.org/wiki/Backspace#.5EH MK From simon at rabbitmq.com Wed Oct 23 17:43:15 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 23 Oct 2013 17:43:15 +0100 Subject: [rabbitmq-discuss] A note on queue federation and upgrades to 3.2.0 Message-ID: <5267FCA3.5050005@rabbitmq.com> tl;dr version: if you define "federation-upstream-set" and "ha-mode" *in the same policy definition*, you might need to take action when upgrading. We hope this won't apply to many people; mostly "federation-upstream-set" and "ha-mode" would be used in distinct policies. Longer version: So RabbitMQ 3.2.0 was released today (woo!) A headline feature is federated queues. But obviously you only want your queues to be federated if that's what you chose, your queues should not just become federated when you upgrade. Queue federation in 3.2.0 is controlled by the same "federation-upstream-set" policy definition that controls exchange federation. But this gives us a problem - you might previously have had a federation policy that coincidentally matched some queues, but did nothing as a consequence. We don't want those queues to suddenly become federated without asking! So 3.2.0 introduces a new feature for policies: you can decide whether you want your policy to match just exchanges, just queues or both. During the upgrade process to 3.2.0 we look at your policies and decide for each one whether it should match exchanges, queues or both. We do this by looking for "federation-upstream-set" and "ha-mode" definitions. If there's a "federation-upstream-set" definition, we assume the policy is meant to match exchanges. If there's an "ha-mode" policy, we assume it should match queues. And if it contains both, we assume it should match both. So in the latter case the queue might start trying to federate. Assuming you don't want that, you should split the policy into two - one that matches exchanges only and defines "federation-upstream-set", and one which matches queues only and defines "ha-mode". Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From erez.semaria at gmail.com Wed Oct 23 19:06:10 2013 From: erez.semaria at gmail.com (elpatron) Date: Wed, 23 Oct 2013 11:06:10 -0700 (PDT) Subject: [rabbitmq-discuss] Queue crash and deletion event Message-ID: <1382551570293-30776.post@n5.nabble.com> Was watching my queues on the console interface yesterday and an unusually large durable queue of 40k persistent messages seemed to purge itself down to zero in seconds. Prior to the apparent purge I noted strange rates on the incoming, deliver / get and ack columns. In some cases the rates were around negative 200. I found no mention of this in the logs or the erl_crash.dump. Has anyone here seen or heard of behavior like this? All my queues, exchanges and messages are programmatically set to be persistent so I found it odd. My theory is that there was a bug in the display (makes sense given the bugginess of the negative rates) because a queue dropping 40k messages without a peep seems too weird. Any thoughts? -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Queue-crash-and-deletion-event-tp30776.html Sent from the RabbitMQ mailing list archive at Nabble.com. From rabbitt at gmail.com Wed Oct 23 19:20:37 2013 From: rabbitt at gmail.com (Carl Corliss) Date: Wed, 23 Oct 2013 14:20:37 -0400 Subject: [rabbitmq-discuss] Configuring Auth LDAP Backend using LDAP+SSL/TLS Message-ID: Greetings, I've been using RabbitMQ for a while now though this is my first time attempting to use the LDAP authentication backend plugin. I have a requirement to use SSL/TLS for LDAP connections (openldap ssf: simple_bind=128 update_ssf=128), so either LDAPS:// or LDAP://+starttls. However, from what I can tell, the plugin isn't talking to LDAP using SSL/TLS so ldap based logins are failing. Based on the documentation, which I could very well be misinterpreting, I setup the use_ssl option using ssl_options as a guide, however that doesn't appear to be working. You can see my settings, and log output here: https://gist.github.com/rabbitt/cf2d42a011cff8bfe188 Any suggestions/help/criticism is greatly appreciated! Thanks in advance!, -- Carl P. Corliss From mklishin at gopivotal.com Wed Oct 23 19:30:35 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 23 Oct 2013 22:30:35 +0400 Subject: [rabbitmq-discuss] Queue crash and deletion event In-Reply-To: <1382551570293-30776.post@n5.nabble.com> References: <1382551570293-30776.post@n5.nabble.com> Message-ID: <9A2A6F4B-0FAD-46E4-B1A2-FB886EF03C82@rabbitmq.com> On 23 Oct 2013, at 22:06, elpatron wrote: > My theory is that there was a bug in the display (makes sense given the > bugginess of the negative rates) because a queue dropping 40k messages > without a peep seems too weird. > Any thoughts? Can you confirm that there is no chance queue.purge was executed on the queue at the same time or that the queue could have a TTL? Does rabbitmqctl suggest there are no messages in the queue, too? You mention erl_crash.dump, how is that related to messages disappearing in the UI? MK From jamesmcc at gmail.com Wed Oct 23 19:53:52 2013 From: jamesmcc at gmail.com (James M.) Date: Wed, 23 Oct 2013 11:53:52 -0700 Subject: [rabbitmq-discuss] ANN RabbitMQ Visualizer Message-ID: The RabbitMQ Visualizer is a project that aims to reproduce the functionality of the RabbitMQ Simulator using D3.js. The goals (aside from learning d3.js) were to be as portable and customizable as possible. The implementation is purely client side and can be accessed directly here: http://jmcle.github.io/rabbitmq-visualizer Check out the Github project for a more complete list of features and details: https://github.com/jmcle/rabbitmq-visualizer Any feedback or suggestions are more than welcome. Regards, James M. -------------- next part -------------- An HTML attachment was scrubbed... URL: From viraj.gupte at credorax.com Wed Oct 23 20:25:13 2013 From: viraj.gupte at credorax.com (viraj.gupte) Date: Wed, 23 Oct 2013 12:25:13 -0700 (PDT) Subject: [rabbitmq-discuss] Migrating federation from 2.8.7 to 3.1.0 Message-ID: <1382556313966-30780.post@n5.nabble.com> When I try migrating from RabbitMQ 2.8.7 to 3.1.0. I get a few errors. I know the way to configure federation has undergone a change since 3.0.0 versions. There was a way, to use rabbitmq_old_federation for backward compatibility, but that has been removed now. What measures should be taken to preserve the messages and federation settings of 2.8.7 in 3.1.0? -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Migrating-federation-from-2-8-7-to-3-1-0-tp30780.html Sent from the RabbitMQ mailing list archive at Nabble.com. From mklishin at gopivotal.com Wed Oct 23 20:27:46 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 23 Oct 2013 23:27:46 +0400 Subject: [rabbitmq-discuss] ANN RabbitMQ Visualizer In-Reply-To: References: Message-ID: <14335D47-0126-408A-B256-A21ED86E6183@rabbitmq.com> On 23 Oct 2013, at 22:53, James M. wrote: > http://jmcle.github.io/rabbitmq-visualizer > > Check out the Github project for a more complete list of features and details: > > https://github.com/jmcle/rabbitmq-visualizer > > Any feedback or suggestions are more than welcome. James, This looks very nice! Maybe you and ?lvaro (RabbitMQ Simulator author) should join forces ;) MK From viraj.gupte at credorax.com Wed Oct 23 20:27:59 2013 From: viraj.gupte at credorax.com (viraj.gupte) Date: Wed, 23 Oct 2013 12:27:59 -0700 (PDT) Subject: [rabbitmq-discuss] Creating a rabbitmq.config for federation In-Reply-To: References: Message-ID: <1382556479655-30781.post@n5.nabble.com> You can try creating federation using Management API. Its very convenient as compared to rabbitmqctl approach. -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Creating-a-rabbitmq-config-for-federation-tp30737p30781.html Sent from the RabbitMQ mailing list archive at Nabble.com. From erez.semaria at gmail.com Wed Oct 23 21:51:20 2013 From: erez.semaria at gmail.com (elpatron) Date: Wed, 23 Oct 2013 13:51:20 -0700 (PDT) Subject: [rabbitmq-discuss] Queue crash and deletion event In-Reply-To: <9A2A6F4B-0FAD-46E4-B1A2-FB886EF03C82@rabbitmq.com> References: <1382551570293-30776.post@n5.nabble.com> <9A2A6F4B-0FAD-46E4-B1A2-FB886EF03C82@rabbitmq.com> Message-ID: <1382561480536-30782.post@n5.nabble.com> Pretty sure that no one purged the queue. I mentioned erl_dump because the next morning rabbit crashed and I thought that perhaps the two were related -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Queue-crash-and-deletion-event-tp30776p30782.html Sent from the RabbitMQ mailing list archive at Nabble.com. From goyalk at vmware.com Wed Oct 23 23:28:45 2013 From: goyalk at vmware.com (Kapil Goyal) Date: Wed, 23 Oct 2013 15:28:45 -0700 (PDT) Subject: [rabbitmq-discuss] RabbitMQ crashed Message-ID: <71739893.000017e4.000000c6@KAPILPC.vmware.com> Hi, I had a RabbitMQ instance crash under constant load. I was sending about 400 messages per second to a queue and the queue size was growing with time, i.e. the draining of queue was slower than the rate of publishing. Below is the error from the logs. Can you help me understand the root cause of this crash? =ERROR REPORT==== 21-Oct-2013::20:32:11 === ** Generic server <0.764.0> terminating ** Last message in was pre_hibernate ** When Server state == {ch,running,rabbit_framing_amqp_0_9_1,1,<0.757.0>, <0.762.0>,<0.757.0>, <<"127.0.0.1:42600 -> 127.0.0.1:5672">>, {lstate,<0.763.0>,true,false}, none,8434, {[{8433,<<"amq.ctag-8UDwLESsF_jg_1qLyYfVIA">>, {<0.233.0>,8432}}, {8432,<<"amq.ctag-8UDwLESsF_jg_1qLyYfVIA">>, {<0.233.0>,8431}}, {8431,<<"amq.ctag-8UDwLESsF_jg_1qLyYfVIA">>, {<0.233.0>,8430}}, {8430,<<"amq.ctag-8UDwLESsF_jg_1qLyYfVIA">>, {<0.233.0>,8429}}, {8429,<<"amq.ctag-8UDwLESsF_jg_1qLyYfVIA">>, {<0.233.0>,8428}}, {8428,<<"amq.ctag-8UDwLESsF_jg_1qLyYfVIA">>, {<0.233.0>,8427}}, {8427,<<"amq.ctag-8UDwLESsF_jg_1qLyYfVIA">>, {<0.233.0>,8426}}, {8426,<<"amq.ctag-8UDwLESsF_jg_1qLyYfVIA">>, {<0.233.0>,8425}}, {8425,<<"amq.ctag-8UDwLESsF_jg_1qLyYfVIA">>, {<0.233.0>,8424}}, {8424,<<"amq.ctag-8UDwLESsF_jg_1qLyYfVIA">>, {<0.233.0>,8423}}, {8423,<<"amq.ctag-8UDwLESsF_jg_1qLyYfVIA">>, {<0.233.0>,8422}}, {8422,<<"amq.ctag-8UDwLESsF_jg_1qLyYfVIA">>, {<0.233.0>,8421}}, {8421,<<"amq.ctag-8UDwLESsF_jg_1qLyYfVIA">>, {<0.233.0>,8420}}, {8420,<<"amq.ctag-8UDwLESsF_jg_1qLyYfVIA">>, {<0.233.0>,8419}}, {8419,<<"amq.ctag-8UDwLESsF_jg_1qLyYfVIA">>, {<0.233.0>,8418}}, {8418,<<"amq.ctag-8UDwLESsF_jg_1qLyYfVIA">>, {<0.233.0>,8417}}, {8417,<<"amq.ctag-8UDwLESsF_jg_1qLyYfVIA">>, {<0.233.0>,8416}}, {8416,<<"amq.ctag-8UDwLESsF_jg_1qLyYfVIA">>, {<0.233.0>,8415}}, {8415,<<"amq.ctag-8UDwLESsF_jg_1qLyYfVIA">>, {<0.233.0>,8414}}, {8414,<<"amq.ctag-8UDwLESsF_jg_1qLyYfVIA">>, {<0.233.0>,8413}}], [{8413,<<"amq.ctag-8UDwLESsF_jg_1qLyYfVIA">>, {<0.233.0>,8412}}]}, {user,<<"vsm">>, [administrator], rabbit_auth_backend_internal, {internal_user,<<"vsm">>, <<110,220,216,189,136,246,198,45,125,163,135,132,58, 245,179,46,244,240,41,150>>, [administrator]}}, <<"vshield">>,<<"vsm_request_queue">>, {dict,1,16,16,8,80,48, {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]}, {{[],[],[],[],[],[],[],[],[], [[<0.233.0>| {resource,<<"vshield">>,queue, <<"vsm_request_queue">>}]], [],[],[],[],[],[]}}}, {dict,1,16,16,8,80,48, {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]}, {{[],[],[],[],[],[],[],[],[], [[<0.233.0>|#Ref<0.0.0.21445>]], [],[],[],[],[],[]}}}, {dict,1,16,16,8,80,48, {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]}, {{[],[],[],[],[],[],[],[], [[<<"amq.ctag-8UDwLESsF_jg_1qLyYfVIA">>| {amqqueue, {resource,<<"vshield">>,queue, <<"vsm_request_queue">>}, true,false,none, [{<<"x-message-ttl">>,long,600000}], <0.233.0>,[],[],undefined,[]}]], [],[],[],[],[],[],[]}}}, {set,0,16,16,8,80,48, {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]}, {{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]}}}, {dict,1,16,16,8,80,48, {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]}, {{[],[],[],[],[],[],[],[],[], [[<0.233.0>| {1, {<<"amq.ctag-8UDwLESsF_jg_1qLyYfVIA">>,nil, nil}}]], [],[],[],[],[],[]}}}, {set,1,16,16,8,80,48, {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]}, {{[],[],[],[],[],[],[],[],[], [<0.233.0>], [],[],[],[],[],[]}}}, <0.755.0>, {state,fine,5000,#Ref<0.0.0.231446>}, false,1, {{0,nil},{0,nil}}, [], [{<<"exchange_exchange_bindings">>,bool,true}, {<<"consumer_cancel_notify">>,bool,true}, {<<"basic.nack">>,bool,true}, {<<"publisher_confirms">>,bool,true}], none} ** Reason for termination == ** {timeout,{gen_server,call,[<0.763.0>,get_prefetch_limit]}} Thanks Kapil -------------- next part -------------- An HTML attachment was scrubbed... URL: From jhalterman at gmail.com Thu Oct 24 00:14:55 2013 From: jhalterman at gmail.com (Jonathan Halterman) Date: Wed, 23 Oct 2013 16:14:55 -0700 Subject: [rabbitmq-discuss] AlreadyClosedException always sets hardError and initiatedByApplication to true In-Reply-To: <7495FFDC-5C6B-4BE3-AD68-79C3AF96F82D@rabbitmq.com> References: <5BFF87E3-BBD7-421D-8CD2-C8AE6E8A7FD8@rabbitmq.com> <65CCF6A8-199D-4BB4-ABEE-DC79C2413F23@rabbitmq.com> <2C78313F-BB0B-4882-8183-290131293E8A@rabbitmq.com> <7495FFDC-5C6B-4BE3-AD68-79C3AF96F82D@rabbitmq.com> Message-ID: Hey Steve, On Wed, Oct 23, 2013 at 3:24 AM, Steve Powell wrote: > Jonathan, > There are some subtleties here. Comments in-line: > > On 22 Oct 2013, at 17:07, Jonathan Halterman wrote: > > if you're doing rapid basicPublish calls to a non-existent exchange. > Eventually basicPublish fails with an AlreadyClosedException, but this > often occurs before the Channel's ShutdownListener is called. So the client > has no fair way of avoiding the AlreadyClosedException. > > Let's get one thing out of the way first of all. > > Basic.Publish is an asynchronous call. Therefore, if the channel is known > and open as far as the client is concerned, there is no good reason for the > Basic.Publish to fail (or know anything about the exchange's existence) > and no way for the client to prevent subsequent Basic.Publish calls until > there are replies back from the server. Nor is there any way to stop > previously queued consumer actions on that channel from running. Consumers > will be driven (eventually) with a handleShutdownSignal() as their last > action. Any channel ShutdownListener will also be driven with the > ShutdownSignalException passed to it, but asynchronously. Ordering of > action and listener call is not enforced by the client. > > If a subsequent action on a closed channel is executed, you will get an > AlreadyClosedException (sometimes?ought this to be always?) and this is > due to an application initiated action (!), and has a channel reference. > (It is represented as a hard error, which is probably wrong.) > > Given the channel reference you can get the ShutdownSignalException *which > closed that channel* with Channel.getCloseReason(). > This also works on Connections. > Ah yes, thanks for this pointer. > > So from my perspective, there are a few things I'd prefer to see out of > all this: > > - That AlreadyClosedExceptions be allowed to represent channels that were > already closed (as seems to be the case with the reference being set to a > Channel). > > On Channel method calls it does that already, but has hardError set to > true, which is sometimes misleading. > > - That an invocation against a Channel that has already been closed does > not result in the Connection being closed (as seems to be the case). > > It depends on what you mean by 'already closed'. If the client knows it > has closed, then yes, I agree with you. If it doesn't (yet) know it has > closed (as in the case for a little while after a publish to a non-existent > exchange) then it may not be able to throw an exception (yet). It may, > though, because some actions are synchronous with server interaction, which > means we can tell from the response if something went wrong. > In the case of basicPublish to a non-existent queue, eventually the channel will be closed, but the first time the client learns that the channel has been closed might be when it receives an AlreadyClosedException. And that's fine to me, as long as it doesn't result in the connection being closed, which it doesn't right now. > > - That AlreadyClosedExceptions include the Method that originally cased > the closure as the shutdown reason (if any), such as 404. This would allow > me to determine why a basicPublish fails. > > See above: given the object that has closed, you should be able to get the > ShutdownSignalException and determine why it closed. > > Steve Powell [*Cell*: +44-7815-838-558] [RabbitMQ > ,* *Pivotal ] > *?L?enfer, c?est les autres.? *Sartre > > > _______________________________________________ > 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 jhalterman at gmail.com Thu Oct 24 00:38:49 2013 From: jhalterman at gmail.com (Jonathan Halterman) Date: Wed, 23 Oct 2013 16:38:49 -0700 Subject: [rabbitmq-discuss] [ANNOUNCEMENT] Introducing Lyra: A High Availability RabbitMQ Client Message-ID: I'm happy to announce the initial release of Lyra: a high availability client for RabbitMQ on the JVM! -- Lyra is a RabbitMQ client that helps you achieve high availability in your services by embracing failure, allowing for AMQP resources such as connections, channels and consumers to be automatically recovered when server or network failures occur. It also supports automatic invocation retries, and exposes a simple, lightweight API built around the Java AMQP-client library. For more info, visit the project page: https://github.com/jhalterman/lyra Questions, comments, and suggestions are welcome. Cheers, Jonathan -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Thu Oct 24 01:23:39 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 24 Oct 2013 04:23:39 +0400 Subject: [rabbitmq-discuss] [ANNOUNCEMENT] Introducing Lyra: A High Availability RabbitMQ Client In-Reply-To: References: Message-ID: On 24 Oct 2013, at 03:38, Jonathan Halterman wrote: > Lyra is a RabbitMQ client that helps you achieve high availability in your services by embracing failure, allowing for AMQP resources such as connections, channels and consumers to be automatically recovered when server or network failures occur. It also supports automatic invocation retries, and exposes a simple, lightweight API built around the Java AMQP-client library. > > For more info, visit the project page: > > https://github.com/jhalterman/lyra > > Questions, comments, and suggestions are welcome. Very nice! A couple of questions: * "Automatic resource recovery" in README is a little vague. Can you explain how it works and what kind of scenarios does it cover? * Are you familiar with how Ruby and Clojure clients perform recovery, e.g. [1]? FYI, there are chances that similar features will eventually make it into the Java client, although there is no specific plan for this at the moment. But more 3rd party clients that support recovery demonstrates the need for such features. 1. http://rubybunny.info/articles/error_handling.html MK From mklishin at gopivotal.com Thu Oct 24 01:24:45 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 24 Oct 2013 04:24:45 +0400 Subject: [rabbitmq-discuss] Queue crash and deletion event In-Reply-To: <1382561480536-30782.post@n5.nabble.com> References: <1382551570293-30776.post@n5.nabble.com> <9A2A6F4B-0FAD-46E4-B1A2-FB886EF03C82@rabbitmq.com> <1382561480536-30782.post@n5.nabble.com> Message-ID: On 24 Oct 2013, at 00:51, elpatron wrote: > Pretty sure that no one purged the queue. I mentioned erl_dump because the > next morning rabbit crashed and I thought that perhaps the two were related If there was a crash, there should be something in the RabbitMQ log files about it. Can you post any crash entries? MK From mklishin at gopivotal.com Thu Oct 24 01:33:22 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 24 Oct 2013 04:33:22 +0400 Subject: [rabbitmq-discuss] RabbitMQ crashed In-Reply-To: <71739893.000017e4.000000c6@KAPILPC.vmware.com> References: <71739893.000017e4.000000c6@KAPILPC.vmware.com> Message-ID: <54DFDE0F-CEA6-4941-9A26-49463198F442@rabbitmq.com> On 24 Oct 2013, at 02:28, Kapil Goyal wrote: > Below is the error from the logs. Can you help me understand the root cause of this crash? A channel process tried to get its basic.qos setting from its limiter (another process that controls deliveries of messages from the queue to consumers) and the operation timed out. This looks like something Rabbit should handle better (at least not take down the entire node). What version of Rabbit do you run? What basic.qos values do you use? Do you have a way to reproduce the issue more or less reliably? Is this the only error message in the logs? MK From jhalterman at gmail.com Thu Oct 24 04:14:53 2013 From: jhalterman at gmail.com (Jonathan Halterman) Date: Wed, 23 Oct 2013 20:14:53 -0700 Subject: [rabbitmq-discuss] [ANNOUNCEMENT] Introducing Lyra: A High Availability RabbitMQ Client In-Reply-To: References: Message-ID: Hey Michael - Comments below: On Wed, Oct 23, 2013 at 5:23 PM, Michael Klishin wrote: > > On 24 Oct 2013, at 03:38, Jonathan Halterman wrote: > > > Lyra is a RabbitMQ client that helps you achieve high availability in > your services by embracing failure, allowing for AMQP resources such as > connections, channels and consumers to be automatically recovered when > server or network failures occur. It also supports automatic invocation > retries, and exposes a simple, lightweight API built around the Java > AMQP-client library. > > > > For more info, visit the project page: > > > > https://github.com/jhalterman/lyra > > > > Questions, comments, and suggestions are welcome. > > Very nice! > > A couple of questions: > > * "Automatic resource recovery" in README is a little vague. Can you > explain how it works and what kind of scenarios does it cover? > Sure. Lyra distinguishes between recovery and retries. If an invocation such as Channel.basicConsume fails due to an unexpected (not user initiated) channel closure, the channel is automatically recovered, along with any consumers, according to the configured recovery policy. Likewise, if a Connection invocation fails as the result of an unexpected connection closure, the connection, along with its channels and their consumers, are recovered according to the configured policies. After the resources are recovered, the failed invocation may be retried if it is deemed retryable, according to the configured retry policy. For connection/channel closures that are not the result of an invocation, the closed resources are simply recovered in the background. As for what recovery entails, it's basically recreating the closed resource and copying any/all state from the closed resource to the recovered resource. Lyra does this under the covers where the user isn't exposed to the details. > * Are you familiar with how Ruby and Clojure clients perform recovery, > e.g. [1]? > Definitely! I spent a good amount of time studying every client I could find including Langohr and Bunny. The general goal of Lyra is along the lines of what Bunny strives to do with recovery. What I found was that there's a good amount of complexity in addressing the variety of failure scenarios and the combination of failures that might occur both initially and during the recovery process. For example, a channel invocation could trigger a channel closure which kicks off a recovery that fails for some other reason, requiring another channel recovery or perhaps even a connection recovery. Failures can cascade in interesting ways. Lyra strives to address this completely. If you're interested in some of these scenarios, have a look at Lyra's functional tests (particularly the *Invocation and *Recovery test classes): https://github.com/jhalterman/lyra/tree/master/src/test/java/net/jodah/lyra/internal > > FYI, there are chances that similar features will eventually make it into > the Java client, although > there is no specific plan for this at the moment. But more 3rd party > clients that support recovery > demonstrates the need for such features. > > 1. http://rubybunny.info/articles/error_handling.html > > MK > _______________________________________________ > 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 Thu Oct 24 05:27:15 2013 From: sagu.prf1 at gmail.com (sagu prf) Date: Wed, 23 Oct 2013 21:27:15 -0700 Subject: [rabbitmq-discuss] Rabbitmq cluster unstable issue Message-ID: Hi Team , can you please assist me on this issue and is there any work around for this issue ? =ERROR REPORT==== 23-Oct-2013::00:21:46 === ** Node 'rabbit at linuxserv1' not responding ** ** Removing (timedout) connection ** =ERROR REPORT==== 23-Oct-2013::00:21:46 === webmachine error: path="/rabbitmqadmin/api/overview" {error, {error, {case_clause,{{badrpc,nodedown}}}, [{rabbit_mgmt_wm_overview,'-contexts/1-lc$^0/1-0-',2,[]}, {rabbit_mgmt_wm_overview,'-rabbit_mochiweb_contexts/0-lc$^0/1-0-',1, []}, {rabbit_mgmt_wm_overview,rabbit_mochiweb_contexts,0,[]}, {rabbit_mgmt_wm_overview,to_json,2,[]}, {webmachine_resource,resource_call,3,[]}, {webmachine_resource,do,3,[]}, {webmachine_decision_core,resource_call,1,[]}, {webmachine_decision_core,decision,1,[]}]}} =INFO REPORT==== 23-Oct-2013::00:21:46 === rabbit on node 'rabbit at linuxserv3' down =ERROR REPORT==== 23-Oct-2013::00:22:01 === ** Node 'rabbit at linuxserv3' not responding ** ** Removing (timedout) connection ** =INFO REPORT==== 23-Oct-2013::00:22:01 === rabbit on node 'rabbit at linuxserv2' down Thank you Regards sagu From michael.s.klishin at gmail.com Thu Oct 24 05:30:15 2013 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Thu, 24 Oct 2013 08:30:15 +0400 Subject: [rabbitmq-discuss] Rabbitmq cluster unstable issue In-Reply-To: References: Message-ID: 2013/10/24 sagu prf > =ERROR REPORT==== 23-Oct-2013::00:21:46 === > ** Node 'rabbit at linuxserv1' not responding ** > ** Removing (timedout) connection ** > ? > > =INFO REPORT==== 23-Oct-2013::00:21:46 === > rabbit on node 'rabbit at linuxserv3' down > > =ERROR REPORT==== 23-Oct-2013::00:22:01 === > ** Node 'rabbit at linuxserv3' not responding ** > ** Removing (timedout) connection ** > rabbit at linuxserv2 cannot reach rabbit at linuxserv1 and rabbit at linuxserv3 -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From axansh at gmail.com Thu Oct 24 05:50:51 2013 From: axansh at gmail.com (Axansh Sheth) Date: Thu, 24 Oct 2013 10:20:51 +0530 Subject: [rabbitmq-discuss] [Error] PRECONDITION_FAILED In-Reply-To: <0D52D0C7-9C67-4D25-B2AB-80FC3DA3D695@rabbitmq.com> References: <0D52D0C7-9C67-4D25-B2AB-80FC3DA3D695@rabbitmq.com> Message-ID: Michael thanks for help. I just follow steps which you told me and it works :) I am very happy with the solution and this group. Thanks again Michael and Simon Thanks and Best Regards, Axansh Sheth On Wed, Oct 23, 2013 at 9:09 PM, Michael Klishin wrote: > > On 23 Oct 2013, at 16:18, Axansh Sheth wrote: > > > Shall i comment : $this->ex->declare(); or > > shall i change some thing? > > > > I do not loose my earlier functionality. > > You need to do one of the following: > > * Provide exactly the same arguments the exchange currently has (use > Management UI to find this out) > * Delete the exchange and re-declare it with the arguments you want. > > Likely a PHP client default has changed between releases. > > MK -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Thu Oct 24 06:31:42 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 24 Oct 2013 09:31:42 +0400 Subject: [rabbitmq-discuss] ANN Bunny 1.0.0.rc3 Message-ID: <93E05677-14B0-4BE0-85A5-0ED1EDC3838F@gopivotal.com> Bunny 1.0.0.rc3 is released [1]. This is a minor feature and usability release and very likely the last preview release before 1.0.0. Release notes: http://blog.rubyrabbitmq.info/blog/2013/10/24/bunny-1-dot-0-0-dot-rc3-is-released/ 1. http://rubygems.org/gems/bunny/versions/1.0.0.rc3 -- MK Software Engineer, Pivotal/RabbitMQ -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From sank16mail at gmail.com Thu Oct 24 07:35:03 2013 From: sank16mail at gmail.com (Alexander Scherbakov) Date: Wed, 23 Oct 2013 23:35:03 -0700 (PDT) Subject: [rabbitmq-discuss] How to determine bottleneck under high load? Message-ID: <24b3c85e-7250-402e-9f91-b9ca26027e01@googlegroups.com> Hi. I have server 16Gb RAM, 16 CPU. RabbitMQ receive from publisher ~30 000 msg/sec in 1 queue (type direct, message size about 150 bytes). In resource monitors I see no problem. CPU load is small, memory have no problem, network and I/O too. Where there may be a bottleneck? Regards, Alexndr. -------------- next part -------------- An HTML attachment was scrubbed... URL: From sank16mail at gmail.com Thu Oct 24 07:41:43 2013 From: sank16mail at gmail.com (Alexander Scherbakov) Date: Wed, 23 Oct 2013 23:41:43 -0700 (PDT) Subject: [rabbitmq-discuss] I think the Java tutorial has an error In-Reply-To: References: Message-ID: <084828c4-d206-4ab9-8eff-d77c77a39a8e@googlegroups.com> First parameter is "the exchange to publish the message to": void *basicPublish*(java.lang.String exchange, java.lang.String routingKey, AMQP.BasicProperties props, byte[] body) throws java.io.IOException API: http://www.rabbitmq.com/releases/rabbitmq-java-client/v1.7.0/rabbitmq-java-client-javadoc-1.7.0/com/rabbitmq/client/Channel.html#basicPublish(java.lang.String, java.lang.String, com.rabbitmq.client.AMQP.BasicProperties, byte[]) On Tuesday, October 22, 2013 12:21:58 AM UTC+4, Kevin Meek wrote: > > The first Java tutorial has > > String message = "Hello World!"; > channel.basicPublish("", QUEUE_NAME, null, message.getBytes()); > > where I believe the first parameter should be the message String itself. No? > > Kevin > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From sank16mail at gmail.com Thu Oct 24 07:43:51 2013 From: sank16mail at gmail.com (Alexander Scherbakov) Date: Wed, 23 Oct 2013 23:43:51 -0700 (PDT) Subject: [rabbitmq-discuss] I think the Java tutorial has an error In-Reply-To: References: Message-ID: <66cb239d-b6c1-4fd9-abd9-500c3e6634a5@googlegroups.com> First parameter is "the exchange to publish the message to": void *basicPublish*(java.lang.String exchange, java.lang.String routingKey, AMQP.BasicProperties props, byte[] body) throws java.io.IOException It can be empty for simple direct queues API: http://www.rabbitmq.com/releases/rabbitmq-java-client/v1.7.0/rabbitmq-java-client-javadoc-1.7.0/com/rabbitmq/client/Channel.html#basicPublish(java.lang.String, java.lang.String, com.rabbitmq.client.AMQP.BasicProperties, byte[]) On Tuesday, October 22, 2013 12:21:58 AM UTC+4, Kevin Meek wrote: > > The first Java tutorial has > > String message = "Hello World!"; > channel.basicPublish("", QUEUE_NAME, null, message.getBytes()); > > where I believe the first parameter should be the message String itself. No? > > Kevin > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From peng.shi at startechsoft.com Thu Oct 24 10:15:22 2013 From: peng.shi at startechsoft.com (=?us-ascii?B?uavLvnFx08rP5A==?=) Date: Thu, 24 Oct 2013 17:15:22 +0800 Subject: [rabbitmq-discuss] Question about Server Fail to Forward messages Message-ID: <201310241715169592585@startechsoft.com> Hi, I install rabbitmq-server on ubuntu by apt-get to many servers. Some of them can not forward messages, but others can. When I run "service rabbitmq-server status", they all return the status (indicate running). Can I run something like test, to find out whether rabbitmq-server can forward message or not? And how can I get the reason of fail on server? Thank you very much! Wish you have a good day! Sincerely, Peng.Shi -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Thu Oct 24 10:31:44 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 24 Oct 2013 10:31:44 +0100 Subject: [rabbitmq-discuss] RabbitMQ crashed In-Reply-To: <54DFDE0F-CEA6-4941-9A26-49463198F442@rabbitmq.com> References: <71739893.000017e4.000000c6@KAPILPC.vmware.com> <54DFDE0F-CEA6-4941-9A26-49463198F442@rabbitmq.com> Message-ID: <5268E900.5070000@rabbitmq.com> On 24/10/13 01:33, Michael Klishin wrote: > This looks like something Rabbit should handle better (at least not take down the entire > node). I don't think it took down the entire node, I expect the queue crashed. Still unacceptable though. We should never make use of gen_server:call/2 (which defaults to a 5 second timeout), always gen_server:call/3 with 'infinity' as the timeout. Kapil, this will be fixed in the next release. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Thu Oct 24 10:35:33 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 24 Oct 2013 10:35:33 +0100 Subject: [rabbitmq-discuss] How to determine bottleneck under high load? In-Reply-To: <24b3c85e-7250-402e-9f91-b9ca26027e01@googlegroups.com> References: <24b3c85e-7250-402e-9f91-b9ca26027e01@googlegroups.com> Message-ID: <5268E9E5.6040206@rabbitmq.com> It's not currently very easy to figure out which parts of your RabbitMQ server are bottlenecks. This is something we'd like to improve in the future. However, I can take a guess. Any single queue process can only use 1 CPU core to 100%. So I suspect that's what you're seeing, and 30k msg/s sounds about right for a single queue with small transient messages. So to go faster you'll need to split the load across queues. Cheers, Simon On 24/10/13 07:35, Alexander Scherbakov wrote: > Hi. > > I have server 16Gb RAM, 16 CPU. > RabbitMQ receive from publisher ~30 000 msg/sec in 1 queue (type direct, > message size about 150 bytes). > In resource monitors I see no problem. CPU load is small, memory have no > problem, network and I/O too. > Where there may be a bottleneck? > > > Regards, > Alexndr. > > > _______________________________________________ > 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 mklishin at gopivotal.com Thu Oct 24 10:42:04 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 24 Oct 2013 13:42:04 +0400 Subject: [rabbitmq-discuss] Question about Server Fail to Forward messages In-Reply-To: <201310241715169592585@startechsoft.com> References: <201310241715169592585@startechsoft.com> Message-ID: <10B1BD88-EFCD-4C4C-9DB4-C05A573020AE@rabbitmq.com> On 24 Oct 2013, at 13:15, ??qq?? wrote: > Some of them can not forward messages, but others can. Can you explain what process do you use to find out if a node can ?forward messages?? MK From simon at rabbitmq.com Thu Oct 24 10:43:18 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 24 Oct 2013 10:43:18 +0100 Subject: [rabbitmq-discuss] Configuring Auth LDAP Backend using LDAP+SSL/TLS In-Reply-To: References: Message-ID: <5268EBB6.4010504@rabbitmq.com> Currently you can't set SSL options for LDAP connections, you can only set {use_ssl, true} to make a connection without presenting a client certificate. I guess this should be fixed. Also you have {port, 389} which is unlikely to work as it's the non-SSL port and I'm not at all convinced eldap (the underlying Erlang LDAP library) supports StartTLS. So the only configuration that could work at the moment is {use_ssl, true}, {port, 636} Cheers, Simon On 23/10/13 19:20, Carl Corliss wrote: > Greetings, > > I've been using RabbitMQ for a while now though this is my first > time attempting to use the LDAP authentication backend plugin. I have > a requirement to use SSL/TLS for LDAP connections (openldap ssf: > simple_bind=128 update_ssf=128), so either LDAPS:// or > LDAP://+starttls. However, from what I can tell, the plugin isn't > talking to LDAP using SSL/TLS so ldap based logins are failing. > > Based on the documentation, which I could very well be > misinterpreting, I setup the use_ssl option using ssl_options as a > guide, however that doesn't appear to be working. > > You can see my settings, and log output here: > > https://gist.github.com/rabbitt/cf2d42a011cff8bfe188 > > Any suggestions/help/criticism is greatly appreciated! > > Thanks in advance!, > > -- > Carl P. Corliss > _______________________________________________ > 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 kecok0 at gmail.com Thu Oct 24 05:32:52 2013 From: kecok0 at gmail.com (=?UTF-8?Q?H=C3=A9ctor_Veiga?=) Date: Wed, 23 Oct 2013 21:32:52 -0700 (PDT) Subject: [rabbitmq-discuss] Flow detection in the RabbitMQ Java Client in 3.2.0 Message-ID: <6099053a-2cff-4699-b76a-dc1ac0fd475a@googlegroups.com> Hi, I would like to know if in the released version of RabbitMQ server (3.2.0) the server provides the the capability to the client to know if it is in flow control. Based on this post: http://rabbitmq.1065348.n5.nabble.com/RabbitMQ-Flow-Control-Behavior-Questions-td26539.html it seems that the server wasn't sending the flag so the FlowListener was not working at all. Also, there is one new thing called BlockListener at the connection level. I have been trying to find info about this class but the link is broken: http://www.rabbitmq.com/connection_blocked.html . Does the BlockListener provide information about when the producer is getting flow or blocked? Is it actually working? Thanks! Hector. -------------- next part -------------- An HTML attachment was scrubbed... URL: From hxuanji at gmail.com Thu Oct 24 06:52:57 2013 From: hxuanji at gmail.com (HongXuan Ji) Date: Wed, 23 Oct 2013 22:52:57 -0700 (PDT) Subject: [rabbitmq-discuss] body size limit of basic_public?! Message-ID: <3f79811d-ec4c-4108-aab5-a7bdd8c48be4@googlegroups.com> Hi all, I'm using pika. I'm wondering whether there is any limit of the body data size when doing _channel.basic_publish. Because I need to put some picture binary data into the body when doing basic_publish, I want to make sure firstly. Do you have any idea? Thanks a lot. Ivan Ji -------------- next part -------------- An HTML attachment was scrubbed... URL: From peng.shi at startechsoft.com Thu Oct 24 10:47:26 2013 From: peng.shi at startechsoft.com (=?utf-8?B?5YWs5Y+4cXHpgq7nrrE=?=) Date: Thu, 24 Oct 2013 17:47:26 +0800 Subject: [rabbitmq-discuss] Question about Server Fail to Forward messages References: <201310241715169592585@startechsoft.com>, <10B1BD88-EFCD-4C4C-9DB4-C05A573020AE@rabbitmq.com> Message-ID: <2013102417472322130110@startechsoft.com> Hi MK, Thank you for your concern. I write a java program to send "Hello World" to rabbitmq servers, and another program to receive message by same queue. I run them by different rabbitmq servers, but some can receive message normally, others can not. Sincerely, Peng.Shi From: Michael Klishin Date: 2013-10-24 17:42 To: Discussions about RabbitMQ CC: peng.shi Subject: Re: [rabbitmq-discuss] Question about Server Fail to Forward messages On 24 Oct 2013, at 13:15, ??qq?? wrote: > Some of them can not forward messages, but others can. Can you explain what process do you use to find out if a node can ?forward messages?? MK -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Thu Oct 24 10:52:57 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 24 Oct 2013 13:52:57 +0400 Subject: [rabbitmq-discuss] Flow detection in the RabbitMQ Java Client in 3.2.0 In-Reply-To: <6099053a-2cff-4699-b76a-dc1ac0fd475a@googlegroups.com> References: <6099053a-2cff-4699-b76a-dc1ac0fd475a@googlegroups.com> Message-ID: <4B709EB5-0FEA-411A-968A-3FD9BEE4F92A@rabbitmq.com> On 24 Oct 2013, at 08:32, H?ctor Veiga wrote: > 't sending the flag so the FlowListener was not working at all. Flow control is a deprecated feature. Instead, recent versions of RabbitMQ will block publishers by not reading from the socket until all alarms (used RAM, # of file available descriptors, disk space available) clear. Clients are notified about these events as of RabbitMQ 3.2 and only if they indicate that they support connection.[un]blocked in capabilities. > Also, there is one new thing called BlockListener at the connection level. I have been trying to find info about this class but the link is broken: http://www.rabbitmq.com/connection_blocked.html . The correct link is http://www.rabbitmq.com/connection-blocked.html. What page did you find http://www.rabbitmq.com/connection_blocked.html on? > Does the BlockListener provide information about when the producer is getting flow or blocked? Yes, that?s how you register connection.blocked and connection.unblocked listeners in the Java client. MK From mklishin at gopivotal.com Thu Oct 24 10:54:43 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 24 Oct 2013 13:54:43 +0400 Subject: [rabbitmq-discuss] body size limit of basic_public?! In-Reply-To: <3f79811d-ec4c-4108-aab5-a7bdd8c48be4@googlegroups.com> References: <3f79811d-ec4c-4108-aab5-a7bdd8c48be4@googlegroups.com> Message-ID: <7298F998-611E-4E3A-883D-B16EF0002F47@rabbitmq.com> On 24 Oct 2013, at 09:52, HongXuan Ji wrote: > I'm using pika. I'm wondering whether there is any limit of the body data size when doing _channel.basic_publish. > Because I need to put some picture binary data into the body when doing basic_publish, I want to make sure firstly. > > Do you have any idea? Large message bodies are framed (common frame size is 128K), you should be able to publish messages comparable in size to the amount of RAM you have in the client (or on the rabbitmq node, whichever is lower). So even RAW images should not be an issue if Pika implements framing correctly (it should). MK From mklishin at gopivotal.com Thu Oct 24 10:59:06 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 24 Oct 2013 13:59:06 +0400 Subject: [rabbitmq-discuss] Question about Server Fail to Forward messages In-Reply-To: <2013102417472322130110@startechsoft.com> References: <201310241715169592585@startechsoft.com>, <10B1BD88-EFCD-4C4C-9DB4-C05A573020AE@rabbitmq.com> <2013102417472322130110@startechsoft.com> Message-ID: <32E87C34-C391-4D74-A68D-573B61BC7D22@gopivotal.com> On 24 Oct 2013, at 13:47, ??qq?? wrote: > I run them by different rabbitmq servers, but some can receive message normally, others can not. You can enable and use management plugin to find out what?s going on. Also, make sure your publishers are not blocked because of available disk space, see ?Disk based flow control? on http://www.rabbitmq.com/memory.html. Some Linux distributions are known to have small (< 1 GB) partitions which RabbitMQ is started on. RabbitMQ requires at least 1 GB of disk space available by default (this can be tuned via config). MK From simon at rabbitmq.com Thu Oct 24 11:01:46 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 24 Oct 2013 11:01:46 +0100 Subject: [rabbitmq-discuss] Question about Server Fail to Forward messages In-Reply-To: <32E87C34-C391-4D74-A68D-573B61BC7D22@gopivotal.com> References: <201310241715169592585@startechsoft.com>, <10B1BD88-EFCD-4C4C-9DB4-C05A573020AE@rabbitmq.com> <2013102417472322130110@startechsoft.com> <32E87C34-C391-4D74-A68D-573B61BC7D22@gopivotal.com> Message-ID: <5268F00A.4030405@rabbitmq.com> On 24/10/13 10:59, Michael Klishin wrote: > Some Linux distributions are known to have small (< 1 GB) partitions > which RabbitMQ is started on. RabbitMQ requires at least 1 GB of disk space > available by default (this can be tuned via config). Note that in 3.2.0 we reduced this default limit to 50MB (as well as taking various actions to make that a safer thing to do!) So this should be much harder to run into now. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Thu Oct 24 11:07:15 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 24 Oct 2013 11:07:15 +0100 Subject: [rabbitmq-discuss] Flow detection in the RabbitMQ Java Client in 3.2.0 In-Reply-To: <4B709EB5-0FEA-411A-968A-3FD9BEE4F92A@rabbitmq.com> References: <6099053a-2cff-4699-b76a-dc1ac0fd475a@googlegroups.com> <4B709EB5-0FEA-411A-968A-3FD9BEE4F92A@rabbitmq.com> Message-ID: <5268F153.7060501@rabbitmq.com> On 24/10/13 10:52, Michael Klishin wrote: > On 24 Oct 2013, at 08:32, H?ctor Veiga wrote: > >> 't sending the flag so the FlowListener was not working at all. > > Flow control is a deprecated feature. Flow control *using the AMQP method channel.flow* is a deprecated feature. Or at least we stopped the server from doing that some time ago because it has severe limitations. So FlowListener is only useful when talking to ancient RabbitMQ versions or other non-RabbitMQ AMQP servers. Flow control as a concept is alive and well! > Instead, recent versions of > RabbitMQ will block publishers by not reading from the socket until > all alarms (used RAM, # of file available descriptors, disk space > available) clear. Note that we block using TCP backpressure in two different cases: 1) Because some resource (memory / disk / file descriptors) is exhausted (shows up as "blocked" in red in the management web UI) 2) Because the publisher is publishing faster than some component in the server (usually queue(s)) can accept messages. (shows up as "flow" in yellow in the management web UI) > Clients are notified about these events as of RabbitMQ 3.2 and only > if they indicate that they support connection.[un]blocked in > capabilities. ...but clients are only notified about 1) above, not 2). Why is that? Because we expect that in case 1) above we will typically block the client for a while (several seconds at the very least) until more resources become available. When disk space is exhausted we will block until more disk space appears - which could take an arbitrary amount of time. However, in case 2) above we only expect to actually block the client for a matter of milliseconds - the client will flick between blocked and unblocked many times a second. All the client should see is that it is publishing at a slower rate than otherwise it might manage to. It's not obvious how to indicate that to the client - we certainly would not want to spam it with connection.blocked and connection.unblocked many times per second. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Thu Oct 24 11:18:05 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 24 Oct 2013 11:18:05 +0100 Subject: [rabbitmq-discuss] Migrating federation from 2.8.7 to 3.1.0 In-Reply-To: <1382556313966-30780.post@n5.nabble.com> References: <1382556313966-30780.post@n5.nabble.com> Message-ID: <5268F3DD.8020604@rabbitmq.com> On 23/10/13 20:25, viraj.gupte wrote: > When I try migrating from RabbitMQ 2.8.7 to 3.1.0. I get a few errors. I know > the way to configure federation has undergone a change since 3.0.0 versions. > There was a way, to use rabbitmq_old_federation for backward compatibility, > but that has been removed now. What measures should be taken to preserve the > messages and federation settings of 2.8.7 in 3.1.0? You will need to: * Delete exchanges of type x-federation * Declare them again as normal exchanges of whichever type you wanted * Set parameters for each upstream * Set a policy to mark them as federated * Remove the rabbit_federation section from your configuration file In other words, you need to migrate the configuration yourself I'm afraid. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From mklishin at gopivotal.com Thu Oct 24 11:20:05 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 24 Oct 2013 14:20:05 +0400 Subject: [rabbitmq-discuss] Flow detection in the RabbitMQ Java Client in 3.2.0 In-Reply-To: <4B709EB5-0FEA-411A-968A-3FD9BEE4F92A@rabbitmq.com> References: <6099053a-2cff-4699-b76a-dc1ac0fd475a@googlegroups.com> <4B709EB5-0FEA-411A-968A-3FD9BEE4F92A@rabbitmq.com> Message-ID: On 24 Oct 2013, at 13:52, Michael Klishin wrote: > What page did you find http://www.rabbitmq.com/connection_blocked.html on? The page is http://www.rabbitmq.com/memory.html and the link has been corrected. Thanks for reporting. MK From jonathan.skrzypek at gs.com Thu Oct 24 12:35:52 2013 From: jonathan.skrzypek at gs.com (Jonathan Skrzypek) Date: Thu, 24 Oct 2013 04:35:52 -0700 (PDT) Subject: [rabbitmq-discuss] RabbitMQ JMS Client In-Reply-To: <5F11F876-5C8A-45E3-A341-44671200AB0F@rabbitmq.com> References: <1382537391868-30766.post@n5.nabble.com> <5F11F876-5C8A-45E3-A341-44671200AB0F@rabbitmq.com> Message-ID: <1382614552057-30815.post@n5.nabble.com> Hi, Thanks for this exhaustive answer ! In fact the issue was unrelated to JNDI/Objectfactory, it was just the way I set up host/port. But so then I managed to get/use a factory 2 ways ; - Create a new one as mentioned => connectionFactory = new RMQConnectionFactory(); - With the object factory but tricking the createConnectionFactory() with dummy references and names javax.naming.Reference ref = new javax.naming.Reference("ref"); Name a = null; RMQObjectFactory ObjectFactory = new RMQObjectFactory(); connectionFactory = (RMQConnectionFactory) ObjectFactory.createConnectionFactory(ref,a); Unusual indeed, but it's working. Jonathan -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/RabbitMQ-JMS-Client-tp30766p30815.html Sent from the RabbitMQ mailing list archive at Nabble.com. From simon at rabbitmq.com Thu Oct 24 12:47:20 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 24 Oct 2013 12:47:20 +0100 Subject: [rabbitmq-discuss] RabbitMQ webpage typo In-Reply-To: References: Message-ID: <526908C8.30608@rabbitmq.com> On 23/10/13 15:47, Gotthard, Petr wrote: > I believe the tag should be rabbitmq_v3_2_0 instead of rabbitmq_v3.2.0. Good point. Fixed, thanks. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From sank16mail at gmail.com Thu Oct 24 14:10:23 2013 From: sank16mail at gmail.com (Alexander Scherbakov) Date: Thu, 24 Oct 2013 17:10:23 +0400 Subject: [rabbitmq-discuss] How to determine bottleneck under high load? In-Reply-To: <5268E9E5.6040206@rabbitmq.com> References: <24b3c85e-7250-402e-9f91-b9ca26027e01@googlegroups.com> <5268E9E5.6040206@rabbitmq.com> Message-ID: Looks like it. Thank you. ???????, 24 ??????? 2013 ?. ???????????? Simon MacMullen ?????: > It's not currently very easy to figure out which parts of your RabbitMQ > server are bottlenecks. This is something we'd like to improve in the > future. > > However, I can take a guess. Any single queue process can only use 1 CPU > core to 100%. So I suspect that's what you're seeing, and 30k msg/s sounds > about right for a single queue with small transient messages. > > So to go faster you'll need to split the load across queues. > > Cheers, Simon > > On 24/10/13 07:35, Alexander Scherbakov wrote: > >> Hi. >> >> I have server 16Gb RAM, 16 CPU. >> RabbitMQ receive from publisher ~30 000 msg/sec in 1 queue (type direct, >> message size about 150 bytes). >> In resource monitors I see no problem. CPU load is small, memory have no >> problem, network and I/O too. >> Where there may be a bottleneck? >> >> >> Regards, >> Alexndr. >> >> >> ______________________________**_________________ >> rabbitmq-discuss mailing list >> rabbitmq-discuss at lists.rabbitmq.com >> https://lists.rabbitmq.com/**cgi-bin/mailman/listinfo/**rabbitmq-discuss >> >> > > -- > Simon MacMullen > RabbitMQ, Pivotal > -------------- next part -------------- An HTML attachment was scrubbed... URL: From steve at rabbitmq.com Thu Oct 24 15:01:28 2013 From: steve at rabbitmq.com (Steve Powell) Date: Thu, 24 Oct 2013 15:01:28 +0100 Subject: [rabbitmq-discuss] RabbitMQ JMS Client In-Reply-To: <1382614552057-30815.post@n5.nabble.com> References: <1382537391868-30766.post@n5.nabble.com> <5F11F876-5C8A-45E3-A341-44671200AB0F@rabbitmq.com> <1382614552057-30815.post@n5.nabble.com> Message-ID: <519B9365-B4CC-41C8-9948-494FBB0E763B@rabbitmq.com> On 24 Oct 2013, at 12:35, Jonathan Skrzypek wrote: > In fact the issue was unrelated to JNDI/Objectfactory, it was just the way I > set up host/port. Indeed, I did wonder how you set these up. The RMQConnectionFactory you get by using RMQObjectFactory directly (with a 'dummy' Reference) is simply the default; exactly the same as when you use new RMQConnectionFactory() directly. I hope you make more progress now. Steve Powell [Cell: +44-7815-838-558] [RabbitMQ, Pivotal] ?L?enfer, c?est les autres.? Sartre -------------- next part -------------- An HTML attachment was scrubbed... URL: From steve at rabbitmq.com Thu Oct 24 15:29:54 2013 From: steve at rabbitmq.com (Steve Powell) Date: Thu, 24 Oct 2013 15:29:54 +0100 Subject: [rabbitmq-discuss] I think the Java tutorial has an error In-Reply-To: <66cb239d-b6c1-4fd9-abd9-500c3e6634a5@googlegroups.com> References: <66cb239d-b6c1-4fd9-abd9-500c3e6634a5@googlegroups.com> Message-ID: Steve Powell [M: +44-7815-838-558; H:+44-1962-775-598; W:+44-2380-111-528] What I tell you three times is true. Lewis Carroll; Hunting of the Snark: Fit the First On 24 Oct 2013, at 07:43, Alexander Scherbakov wrote: > First parameter is "the exchange to publish the message to": -------------- next part -------------- An HTML attachment was scrubbed... URL: From stuart.sierra at cognitect.com Thu Oct 24 15:40:22 2013 From: stuart.sierra at cognitect.com (Stuart Sierra) Date: Thu, 24 Oct 2013 10:40:22 -0400 Subject: [rabbitmq-discuss] Java waitForConfirmsOrDie(timeout) can block indefinitely Message-ID: Hello list, It appears that flow control can cause the Java API to block indefinitely on the call to Channel.waitForConfirmsOrDie(long timeout), regardless of the timeout value. Is this intentional? I tested this with RabbitMQ 3.2.0 and the official Java client 3.2.0. Steps to reproduce: 1. Start a RabbitMQ broker 2. Connect with the Java client 3. Create a Channel and call `confirmSelect` 4. Run `rabbitmqctl set_vm_memory_high_watermark 0.0` 5. Call `basicPublish` to publish a message 6. Call `Channel.waitForConfirmsOrDie(1000L)` 7. Wait for more than 1 second: no exception 8. Run `rabbitmqctl set_vm_memory_high_watermark 0.4` 9. TimeoutException is thrown I think this is because ChannelN.waitForConfirmsOrDie(long timeout) catches TimeoutException and calls: close(AMQP.PRECONDITION_FAILED, "TIMEOUT WAITING FOR ACK"); The call to `close` blocks indefinitely because the RabbitMQ connection is blocked. The TimeoutException does not get thrown until after the connection is unblocked. As a workaround, I am calling `Channel.waitForConfirms(long timeout)` and throwing an exception if returns false. Regards, Stuart Sierra Cognitect, Inc. -------------- next part -------------- An HTML attachment was scrubbed... URL: From shrikltc at gmail.com Thu Oct 24 16:04:47 2013 From: shrikltc at gmail.com (Shrinivas Kulkarni) Date: Thu, 24 Oct 2013 20:34:47 +0530 Subject: [rabbitmq-discuss] RabbitMQ is failing after installing Devstack Message-ID: Hi, Please need help, I have installed devstack on fedora19 and found that after installation completed RabbitMQ service is not running How I solve this problem can anyone help me ? Here is the log : -------------------------- [root at destiny rabbitmq]# rabbitmqctl status Status of node rabbit at destiny ... Error: unable to connect to node rabbit at destiny: nodedown DIAGNOSTICS =========== nodes in question: [rabbit at destiny] hosts, their running nodes and ports: - unable to connect to epmd on destiny: address (cannot connect to host/port) current node details: - node name: rabbitmqctl13047 at destiny - home dir: /var/lib/rabbitmq - cookie hash: s6XJ2l63F6Pz3eTZdny3UA== [root at destiny rabbitmq]# [stack at destiny ~]$ systemctl status rabbitmq-server.service rabbitmq-server.service - RabbitMQ broker Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; disabled) Active: failed (Result: exit-code) since Thu 2013-10-24 18:30:23 IST; 10min ago Process: 12246 ExecStopPost=/usr/bin/rm /var/run/rabbitmq/pid (code=exited, status=0/SUCCESS) Process: 12218 ExecStop=/usr/lib/rabbitmq/bin/rabbitmqctl stop (code=exited, status=2) Process: 12160 ExecStartPost=/usr/lib/rabbitmq/bin/rabbitmqctl wait /var/run/rabbitmq/pid (code=exited, status=2) Process: 12159 ExecStart=/usr/lib/rabbitmq/bin/rabbitmq-server (code=exited, status=1/FAILURE) [stack at destiny ~]$ [stack at destiny ~]$ [root at destiny rabbitmq]# pwd /var/lib/rabbitmq [root at destiny rabbitmq]# [root at destiny rabbitmq]# ls [root at destiny rabbitmq]# [root at destiny rabbitmq]# ls -a . .. .erlang.cookie [root at destiny rabbitmq]# [root at destiny rabbitmq]# [root at destiny rabbitmq]# cat .erlang.cookie KJMZUMQQJXUZHYQXEOOP[root at destiny rabbitmq]# [root at destiny rabbitmq]# [root at destiny rabbitmq]# Thanks ! ~ Shrinivas -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Thu Oct 24 16:45:34 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 24 Oct 2013 16:45:34 +0100 Subject: [rabbitmq-discuss] other transports besides TCP In-Reply-To: References: <5fd53a4c-debb-4526-8507-f23ca60a28b8@googlegroups.com> <5257DCB8.8070303@rabbitmq.com> <525D0614.9000304@rabbitmq.com> Message-ID: <5269409E.3020204@rabbitmq.com> Did you see Matthias' response here? http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2013-October/031215.html I think his advice is sound. Get things working over TCP first, change one thing at a time. Cheers, Simon On 24/10/13 16:38, Jorg Eloy wrote: > Hi Simon, > Have you ever read my previous email? > I'm very interested in consume messages by UDP. > Greetings. > Jorg > > > 2013/10/16 Jorg Eloy > > > Hi Simon, > > Thanks for your help, continue with our interest in consuming the > enqueued messages, > in order to get more than one consumer per queue. > Exist something similar to fanout exchange type in UPD? > > Actually, I'm trying with UDP consumer without get it. So I've the > Consumer that I use with TCP transport, > and it's very strange, It works perfect when consumes messages from > a host where the brokerMQ is installed. > But when I try to consume messages from the other host, it's no > possible. > Besides that when I tried to declare the exchange and queue from the > another host different to the broker, These aren't created. > > Any ideas? What else should I try? > Best regards and thanks in advance, > > Jorg > > > 2013/10/15 Simon MacMullen > > > Hi. > > I compiled your code and it works for me. I had to provide the > address and port for the DatagramPacket, so you probably want to > make sure those are correct. Also make sure the packet is not > being eaten by a firewall. > > Cheers, Simon > > > On 15/10/2013 09:25, Jorg Eloy wrote: > > Hi Simon, > > Thanks for your reply, let me said that when I sent messages > using UDP, > these messages are bounded to the queue in the channel with > this line of > code: > /channel.queueBind(q1, xnameRaw, "#");/ > > > When I'm using Wireshark, I can view these messages arriving > to the > broker but they didn't reach to the exchange. > > Why I'm using UDP instead of TCP is because I'm tried with > AMQP to work > with sensors and servers, > where sensors enqueue messages using UDP due to the typical > sensor data > is redundant an some loss can be tolerated > and the servers receive these messages using a channel > protocol over > TCP, The servers might use TCP to transport messages reliably. > > Thanks again. > > > PD. Here I put some important lines of the code that I'm > using actually > to do this task. > > ------------------------------__------------------------------__------------- > / String xnameRaw = "UDP raw exchage for testing"; > > String xtype = "x-udp"; > > ConnectionFactory factory = new ConnectionFactory(); > > Connection connection = factory.newConnection(); > Channel channel = connection.createChannel(); > > factory.setHost(BROKERMQ); > factory.setUsername("guest"); > factory.setPassword("guest"); > factory.setPort(PORT); > > Map declArgs = new HashMap Object>(); > > declArgs.put("ip", "0.0.0.0"); > declArgs.put("port", (short) PORT); > > channel.exchangeDeclare(__xnameRaw, xtype, false, > false, false, > declArgs); > String q1 = channel.queueDeclare().__getQueue(); > channel.queueBind(q1, xnameRaw, "#"); > > DatagramSocket u2 = new DatagramSocket(); > DatagraPacket pOutRaw = new DatagramPacket(message, > message.length, > address, PORT); > > u2.send(pOutRaw); > channel.basicPublish(xnameRaw, routingKey, null, > message);/ > ------------------------------__------------------------------__------------- > > > > 2013/10/11 Simon MacMullen >> > > > I'm afraid your message doesn't really give us much to > go on, other > than "it doesn't work". > > I suggest you try to break the problem down: when you > send a UDP > packet, can you see it reach the broker in wireshark? > Can you see it > go into a queue (bound to the UDP exchange with "#") in the > management plugin? And so on. > > Also, out of interest, why do you want to use UDP > instead of TCP? > > Cheers, Simon > > On 11/10/2013 10:27AM, Jorg Eloy wrote: > > Hi all, > I'm looking another transport for AMQP in place of TCP, > Nowadays, I'm trying work with UPD exchange of tonyg > [https://github.com/tonyg/udp-____exchange > > > >], with the plugin to > rabbitmq, to > get a similar scenario with publishers, consumers, > queues and > exchanges, > But I can't get it. > > My actual situation is that: > I send messages from the publisher to the exchange > and these > messages > are not published, I can view in the web management > tool how the > delivery rate in the exchange is altered, > I'm using basicPublish to publish the messages and > QueueingConsumer to > consume the messages, Also DatagramSockets and > DatagramPackets > to send > and receive by UDP. > But as I said before, these messages are don't > received in the > consumer. > Including that I use the same routing keys in the > messages and when > I try sending messages directly to the queue > created for the > consumer, > these messages arrive successfully > > Can someone know what is the error? > > Thanks in advance. > > > > > -- > Simon MacMullen > RabbitMQ, Pivotal > > > > > -- Simon MacMullen RabbitMQ, Pivotal From usha.narasappa at emc.com Thu Oct 24 17:19:25 2013 From: usha.narasappa at emc.com (Narasappa, Usha) Date: Thu, 24 Oct 2013 16:19:25 +0000 Subject: [rabbitmq-discuss] [rabbitmq] /var/log/messages flooded with su: (to rabbitmq) root on none Message-ID: Hi, We use rabbitmq-c amqp client (0.2.0) to publish messages to RabbitMQ broker. The /var/log/messages file is flooded with the following: Oct 23 05:32:29 director-1-1-a su: pam_limits(su:session): invalid line '^H' - skipped Oct 23 05:32:44 director-1-1-a su: (to rabbitmq) root on none Oct 23 05:32:44 director-1-1-a su: pam_limits(su:session): invalid line '^H' - skipped Oct 23 05:32:59 director-1-1-a su: (to rabbitmq) root on none Oct 23 05:32:59 director-1-1-a su: pam_limits(su:session): invalid line '^H' - skipped Oct 23 05:33:14 director-1-1-a su: (to rabbitmq) root on none It appears that root used the su command to take on the identity of "rabbitmq". I also see that /etc/passwd file has the "rabbitmq" username which kind of proves the above theory. It would be of great help if you could let me know what exactly is done after taking on the identity of "rabbitmq". Basically, I am searching a way to turn off these messages so that /var/log/messages does not overgrow and lose important information. As an additional information, logs under /var/log/rabbitmq do not have any error messages. Any other clues/suggestions/pointers are welcome. Thanks, Usha -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Thu Oct 24 17:24:17 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 24 Oct 2013 17:24:17 +0100 Subject: [rabbitmq-discuss] [rabbitmq] /var/log/messages flooded with su: (to rabbitmq) root on none In-Reply-To: References: Message-ID: <526949B1.5000406@rabbitmq.com> Did you see Michael's response to your previous posting of the same question, here? http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2013-October/031288.html Cheers, Simon On 24/10/13 17:19, Narasappa, Usha wrote: > Hi, > > We use rabbitmq-c amqp client (0.2.0) to publish messages to RabbitMQ > broker. The /var/log/messages file is flooded with the following: > > Oct 23 05:32:29 director-1-1-a su: pam_limits(su:session): invalid line > '^H' - skipped > > Oct 23 05:32:44 director-1-1-a su: (to rabbitmq) root on none > > Oct 23 05:32:44 director-1-1-a su: pam_limits(su:session): invalid line > '^H' - skipped > > Oct 23 05:32:59 director-1-1-a su: (to rabbitmq) root on none > > Oct 23 05:32:59 director-1-1-a su: pam_limits(su:session): invalid line > '^H' - skipped > > Oct 23 05:33:14 director-1-1-a su: (to rabbitmq) root on none > > It appears that root used the su command to take on the identity of > "rabbitmq". > > I also see that /etc/passwd file has the "rabbitmq" username which kind > of proves the above theory. > > It would be of great help if you could let me know what exactly is done > after taking on the identity of "rabbitmq". > > Basically, I am searching a way to turn off these messages so that > /var/log/messages does not overgrow and lose important information. > > As an additional information, logs under /var/log/rabbitmq do not have > any error messages. > > Any other clues/suggestions/pointers are welcome. > > Thanks, > > Usha > > > > _______________________________________________ > 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 mklishin at gopivotal.com Thu Oct 24 17:29:30 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 24 Oct 2013 20:29:30 +0400 Subject: [rabbitmq-discuss] [rabbitmq] /var/log/messages flooded with su: (to rabbitmq) root on none In-Reply-To: References: Message-ID: <876BCE62-71F7-4D58-8AF7-1956F606F215@rabbitmq.com> On 24 Oct 2013, at 20:19, Narasappa, Usha wrote: > Oct 23 05:32:29 director-1-1-a su: pam_limits(su:session): invalid line '^H' - skipped > Oct 23 05:32:44 director-1-1-a su: (to rabbitmq) root on none This question was replied to a couple of days ago: please verify that your /etc/security/* files do not have ^H in them [1]. RabbitMQ process runs as `rabbitmq` and does not do anything unsual: it starts rabbitmq-server with a preconfigured environment. 1. http://en.wikipedia.org/wiki/Backspace#.5EH MK From mklishin at gopivotal.com Thu Oct 24 17:33:07 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 24 Oct 2013 20:33:07 +0400 Subject: [rabbitmq-discuss] Java waitForConfirmsOrDie(timeout) can block indefinitely In-Reply-To: References: Message-ID: On 24 Oct 2013, at 18:40, Stuart Sierra wrote: > Is this intentional? > > I tested this with RabbitMQ 3.2.0 and the official Java client 3.2.0. > > Steps to reproduce: > ? Start a RabbitMQ broker > ? Connect with the Java client > ? Create a Channel and call `confirmSelect` > ? Run `rabbitmqctl set_vm_memory_high_watermark 0.0` > ? Call `basicPublish` to publish a message > ? Call `Channel.waitForConfirmsOrDie(1000L)` > ? Wait for more than 1 second: no exception > ? Run `rabbitmqctl set_vm_memory_high_watermark 0.4` > ? TimeoutException is thrown > I think this is because ChannelN.waitForConfirmsOrDie(long timeout) catches TimeoutException and calls: > > close(AMQP.PRECONDITION_FAILED, "TIMEOUT WAITING FOR ACK"); > > The call to `close` blocks indefinitely because the RabbitMQ connection is blocked. The TimeoutException does not get thrown until after the connection is unblocked. This is not intentional, just an edge case that isn?t covered well. With 3.2, clients will get notifications when their connections are blocked, so we can use this information to throw an exception before calling #close(). Unfortunately, it is much trickier with older RabbitMQ versions. MK From mcintoshj at gmail.com Thu Oct 24 17:48:30 2013 From: mcintoshj at gmail.com (Jason McIntosh) Date: Thu, 24 Oct 2013 11:48:30 -0500 Subject: [rabbitmq-discuss] Management API and monitoring Message-ID: SO I'm working on a set of monitoring tools (already have some python scripts built for Nagios, now looking at Zabbix templates) to monitor rabbit queues and their information. The basic stuff I've got setup and working right now are: queue memory queue messages queue unack'd messages queue consumers aliveness of a vhost mem used/limit disk free/limit fd used/limit proc used/limit sockets used/limit The question I have is on the queue - I'd like to be able to monitor when the queue was last "accessed" for message publishes. I was looking at the idle_since but it looks like the date there gets reset anytime you even look at the list of queues. Is there some field I'm missing that might have that information? Ideally, I'd like to alert on for example "This queue hasn't received messages in quite a long while, possibly the publisher is not publishing messages correctly". Anyone have any thoughts? Suggestions? Other things they monitor? One interesting thing I noticed while working on monitoring. rabbitmqctl does not seem like a very efficient mechanism for use by monitoring tools. I started off using ctl to get various queue and server information and found that it was extremely expensive to call repeatedly. I tried using some python scripts to hit the management API and my CPU load went down by about 70%. Not sure if other people have seem the same using rabbitmqctl? Thanks! Jason -- Jason McIntosh https://github.com/jasonmcintosh/ 573-424-7612 -------------- next part -------------- An HTML attachment was scrubbed... URL: From graeme at sudo.ca Thu Oct 24 19:30:31 2013 From: graeme at sudo.ca (Graeme N) Date: Thu, 24 Oct 2013 11:30:31 -0700 Subject: [rabbitmq-discuss] Feature Req / Bug list In-Reply-To: References: <874A73DF-5283-4508-8AD2-43BC53DC9196@rabbitmq.com> Message-ID: Hi everyone, Took longer than I anticipated, but here's my first pass at reproducible test cases for some of the issues I reported. Attached to this e-mail is a tarball that I've been unpacking into /etc/rabbitmq/cluster on a 4CPU/4GB RAM VM running CentOS 6.4, rabbitmq-server-3.2.0-1.noarch.rpm, and librabbitmq-tools-0.3.0-1.el6.x86_64. These are the same issues we saw on our production hardware, so they seem to be reproducible. - cd /etc/rabbitmq/cluster - create a 5 node local cluster: ./create_cluster.sh - Bug: even though node and management port listeners are specified, the first instance started will still incorrectly bind to port 55672 for the management interface. - remove existing queues and create and 100 queues in parallel: ./setup_queues.sh - Bugs: many of the operations fail, instead of just blocking because the cluster is busy, with a variety of error messages, and often even have rabbit commands hang and never return. Run this script in a "while true" bash loop to see it fall apart pretty quickly. - populate queues with 1000 messages each in parallel: ./populate_queues.sh - Note: shows low delivery rates noted before on spinning disks (60-80 msgs/sec), even though my VM storage is on btrfs RAID10 capable of sustained block writes > 200MB/s. iostat shows the VM is only generating 1-8 MB/s of IO. Looking at messages under /var/lib/rabbitmq/mnesia/rabbit2 at localhost/queues, they seem to be chunked into 64, 68, 72, and 84 kiB files before being delivered to the 16MiB msg_store_persistent/*.rdq files. This implies a lot of random IO while delivering messages, which explains why the performance problems disappear when switching to SSDs, even just two SSDs in RAID1. Typically with other data stores we'd expect to see on-disk chunks that are multiples of 128 MiB to properly leverage RAID block IO, in both incoming and finalized data stores. The effect of this is that it takes ~20m to load ~32 MiB of messages, which is pretty awful. - set policies to evenly balance queues across cluster nodes: ./rebalance_queues.sh - Bugs: Also demonstrates API failures with too many simultaneous requests, may require ctl-Cing the script to re-run it. Run multiple times, and admin interface shows ~20% of queues don't fully sync to all 3 specified nodes after new "nodes" policy is applied, they require additional sync commands even though they have ha-sync-mode:automatic. After 2-3 runs, some queues get stuck with "0% resyncing", and the entire API interface stops responding completely until the cluster is killed and restarted. Hopefully you guys can replicate these results, since they are 100% reproducible here. Any questions / comments, fire away. Graeme On Fri, Oct 4, 2013 at 11:32 AM, Graeme N wrote: > > On Fri, Oct 4, 2013 at 1:54 AM, Tim Watson wrote: > >> > All items below were discovered while deploying 3.1.5 over the past few >> days. Hosts in question have 24 sandy bridge HT cores, 64GB of RAM, XFS >> filesystem, running on CentOS 6. Cluster is 5 nodes, with a default HA >> policy on all queues of exact/3/automatic-sync. >> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: break-rabbitmq-v1.tar.xz Type: application/x-xz Size: 1312 bytes Desc: not available URL: From gstepken at googlemail.com Thu Oct 24 19:34:54 2013 From: gstepken at googlemail.com (Guido Stepken) Date: Thu, 24 Oct 2013 20:34:54 +0200 Subject: [rabbitmq-discuss] Feature Req / Bug list In-Reply-To: References: Message-ID: "single node with ~35k active open filehandles" I assume, all those file handles point to same content? If this would be the case, programmers should go back to school, learn from scratch. Where does this come from? Am 03.10.2013 23:04 schrieb "Graeme N" : > Hey everyone, > > I've recently been doing a deployment of a 5 node rabbit cluster, and > found some rough edges I thought I should share. I realize many of these > are feature reqs, but I'm hoping that I just haven't discovered the proper > configuration to deal with some of these issues, or have misunderstood > Rabbit's behaviour. If not, hopefully they can become feature req items > that'll make a dev schedule at some point. > > All items below were discovered while deploying 3.1.5 over the past few > days. Hosts in question have 24 sandy bridge HT cores, 64GB of RAM, XFS > filesystem, running on CentOS 6. Cluster is 5 nodes, with a default HA > policy on all queues of exact/3/automatic-sync. > > HA / Clustering: > > - expected queues to be distributed evenly among cluster machines, instead > got all queues on first 3 machines in the cluster, nothing on the last 2. > - expected message reads from a mirror machine for a queue to do the read > i/o locally, so as to spread out workload, but it appears to always go to > the host where the queue was created. > - this led to a single node with ~35k active open filehandles, and 4 nodes > with ~90. not an optimum distribution of read workload. > - expected that if system a queue was created on is permanently removed > (shut down and "rabbitmqctl forget_cluster_node hostname"'d), automatic > sync would ensure there's the right number of copies replicated, but > instead it just left every single queue under replicated. > - when a new policy is applied that defines specific replication nodes, or > a number of copies using 'exact, and auto-sync is set, sometimes it just > syncs the first replica and leaves any others unsynced and calls it job > done. This is bad. > - had to add a new global HA policy and delete the existing one before > rabbit fixed my queue replication. > - Attempted to create small per-queue policies to redistribute messages > and then delete the per-queue policies, but this often leads to a > inconsistent cluster state where queues continued to show as being part of > a policy that was already deleted, attempt to resync, and get stuck, unable > to complete or switch back to the global default policy. > - sometimes the cluster refuses to accept any more policy commands. Have > to fully shut down and restart the cluster to clear this condition. > - sometimes policies applied to empty and inactive queues don't get > correctly applied, and the queue hangs on "resyncing / 100%". this makes no > sense, given the queue is empty, and requires a full cluster restart to > clear. > - would like to see a tool to redistribute queues amongst available > cluster machines according to HA policy. Ideally something that happens > automatically on queue creation, cluster membership and policy changes, but > would take something manual I could run out of cron. > - I've managed to get the cluster into an inconsistent state a /lot/ using > the HA features, so it feels like they need more automated stress testing > and bulletproofing. > > Persistent message storage: > > - it appears as if messages are put into very small batch files on the > filesystem (1-20 MB) > - this causes the filesystem to thrash if your IO isn't good at random IO > (SATA disks) and you have lots of persistent messages (>200k messages > 500kB-1MB in size) that don't fit in RAM. > - this caused CentOS 6 kernel to kill erlang after stalling the XFS > filesystem for > 120s. > - if a node crashes, Rabbit seems to rescan the entire on-disk datastore > before continuing, instead of using some sort of checkpointing or > journaling system to quickly recover from a crash. > - all of above should be solvable by using an existing append-only > datastore like eLevelDB or Bitcask. > - we solved for now by using SSDs, but this bumps up the cost of each RMQ > node, and doesn't solve the node crash recovery problem, just speeds up the > process somewhat. > > Web API: > - API seems to block when cluster is busy, even for informational GETs, so > you can't determine what's going on with the cluster. > - Some API operations seem to block until they complete (like putting a > new policy), while others return immediately even though they're definitely > not completed yet (like deleting a policy). It's not documented which have > which behaviour, or why they don't just all block until op is completed. > > Hopefully you guys can educate me on what I'm doing wrong in some of these > scenarios, or how to mitigate some of these issues. Any issue that requires > taking down and restarting the cluster to fix is especially troubling. > > Thanks, > Graeme > > > _______________________________________________ > 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 mcintoshj at gmail.com Thu Oct 24 19:41:00 2013 From: mcintoshj at gmail.com (Jason McIntosh) Date: Thu, 24 Oct 2013 13:41:00 -0500 Subject: [rabbitmq-discuss] about the installation of rabbitmq In-Reply-To: <2A3FFF86-717B-4CA7-9315-B5094D273833@rabbitmq.com> References: <420a391e.27f4.141d8a5c796.Coremail.norwen_qian@163.com> <2A3FFF86-717B-4CA7-9315-B5094D273833@rabbitmq.com> Message-ID: Note that the erlang solutions install doesn't provide erlang, but esl-erlang I believe. Try: https://github.com/jasonmcintosh/esl-erlang-compat/blob/master/rpmbuild/RPMS/noarch/esl-erlang-compat-R14B-1.el6.noarch.rpm?raw=true Installing that - should provide erlang, provided you have the esl-erlang installed. The installation docs here: http://www.rabbitmq.com/install-rpm.html Explain in more detail. Jason On Mon, Oct 21, 2013 at 3:04 AM, Michael Klishin wrote: > > On oct 21, 2013, at 5:34 a.m., J.Tsien wrote: > > > Why cannot rabbitmq detect erlang? How to solve this problem? > > Install Erlang from an PRM package (e.g. from Erlang Solutions). > > MK > > > > > _______________________________________________ > 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 graeme at sudo.ca Thu Oct 24 20:55:47 2013 From: graeme at sudo.ca (Graeme N) Date: Thu, 24 Oct 2013 12:55:47 -0700 Subject: [rabbitmq-discuss] Feature Req / Bug list In-Reply-To: References: Message-ID: On Thu, Oct 24, 2013 at 11:34 AM, Guido Stepken wrote: > "single node with ~35k active open filehandles" > > I assume, all those file handles point to same content? If this would be > the case, programmers should go back to school, learn from scratch. > > Where does this come from? > Heh, well, those are Rabbit's filehandle counts. I was trying to point out that the rabbit IO workload is... sub optimal, and I guess I've made my point. ;) Graeme -------------- next part -------------- An HTML attachment was scrubbed... URL: From goyalk at vmware.com Thu Oct 24 22:29:51 2013 From: goyalk at vmware.com (Kapil Goyal) Date: Thu, 24 Oct 2013 14:29:51 -0700 (PDT) Subject: [rabbitmq-discuss] RabbitMQ crashed In-Reply-To: <5268E900.5070000@rabbitmq.com> References: <71739893.000017e4.000000c6@KAPILPC.vmware.com> <54DFDE0F-CEA6-4941-9A26-49463198F442@rabbitmq.com> <5268E900.5070000@rabbitmq.com> Message-ID: <92f2a1f7.000017e4.000000d3@KAPILPC.vmware.com> Simon, Michael, Thanks for your responses. > What version of Rabbit do you run? 3.1.5 > What basic.qos values do you use? Prefetch-count = 50 > Do you have a way to reproduce the issue more or less reliably? We have only tried this once. We plan to try it again early next week. > Is this the only error message in the logs? There are many errors like this before the crash: =ERROR REPORT==== 21-Oct-2013::20:01:09 === webmachine error: path="/api/connections" "Unauthorized" > I don't think it took down the entire node, I expect the queue crashed. > Still unacceptable though. Error message says "Generic server <0.764.0> terminating". Does this not indicate that node crashed? > Kapil, this will be fixed in the next release. This is good news. But, our product is already shipped with RabbitMQ 3.1.5 and upgrade won't be easy. Nonetheless, is this totally a server issue, being hit because of high load, or can we do anything at the client end to avoid it? Regards Kapil -----Original Message----- From: Simon MacMullen [mailto:simon at rabbitmq.com] Sent: Thursday, October 24, 2013 2:32 AM To: Discussions about RabbitMQ Cc: Michael Klishin; Kapil Goyal Subject: Re: [rabbitmq-discuss] RabbitMQ crashed On 24/10/13 01:33, Michael Klishin wrote: > This looks like something Rabbit should handle better (at least not > take down the entire node). I don't think it took down the entire node, I expect the queue crashed. Still unacceptable though. We should never make use of gen_server:call/2 (which defaults to a 5 second timeout), always gen_server:call/3 with 'infinity' as the timeout. Kapil, this will be fixed in the next release. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From mklishin at gopivotal.com Thu Oct 24 22:39:23 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Fri, 25 Oct 2013 01:39:23 +0400 Subject: [rabbitmq-discuss] RabbitMQ crashed In-Reply-To: <92f2a1f7.000017e4.000000d3@KAPILPC.vmware.com> References: <71739893.000017e4.000000c6@KAPILPC.vmware.com> <54DFDE0F-CEA6-4941-9A26-49463198F442@rabbitmq.com> <5268E900.5070000@rabbitmq.com> <92f2a1f7.000017e4.000000d3@KAPILPC.vmware.com> Message-ID: <17A3B0E9-7223-4720-A184-8519439B25F8@gopivotal.com> On 25 Oct 2013, at 01:29, Kapil Goyal wrote: >> Is this the only error message in the logs? > There are many errors like this before the crash: > =ERROR REPORT==== 21-Oct-2013::20:01:09 === > webmachine error: path="/api/connections" > ?Unauthorized" This is a warning from HTTP API. Something tries to access /api/connections without having permissions to do so. So, it?s a red herring. > >> I don't think it took down the entire node, I expect the queue crashed. >> Still unacceptable though. > Error message says "Generic server <0.764.0> terminating". Does this not > indicate that node crashed? Server here means gen_server, an Erlang process behavior (think of it as a class named *Server, if it helps). It should not bring down the node. > >> Kapil, this will be fixed in the next release. > This is good news. But, our product is already shipped with RabbitMQ 3.1.5 > and upgrade won't be easy. Nonetheless, is this totally a server issue, > being hit because of high load, or can we do anything at the client end to > avoid it? This is a server issue. From time to time one process does not respond to another process in < 5 seconds and the caller crashes without a timeout. Presumably this is because of short hardware resources. There is no client-side work around I?m afraid. MK Software Engineer, Pivotal/RabbitMQ From tyger2007 at gmail.com Thu Oct 24 23:35:18 2013 From: tyger2007 at gmail.com (Iyenemi Tyger) Date: Thu, 24 Oct 2013 15:35:18 -0700 (PDT) Subject: [rabbitmq-discuss] Transfering file from machine to machine using RabbitMQ In-Reply-To: References: <25061768.2088.1337032570321.JavaMail.geo-discussion-forums@ynev2> Message-ID: <37541040-69df-4ca5-9708-f2ab9ea20538@googlegroups.com> Please is there any size limit to the amount of file you can send? From videlalvaro at gmail.com Thu Oct 24 23:41:24 2013 From: videlalvaro at gmail.com (Alvaro Videla) Date: Fri, 25 Oct 2013 00:41:24 +0200 Subject: [rabbitmq-discuss] Transfering file from machine to machine using RabbitMQ In-Reply-To: <37541040-69df-4ca5-9708-f2ab9ea20538@googlegroups.com> References: <25061768.2088.1337032570321.JavaMail.geo-discussion-forums@ynev2> <37541040-69df-4ca5-9708-f2ab9ea20538@googlegroups.com> Message-ID: See this answer regarding body size for basic publish: http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2013-October/031321.html On Fri, Oct 25, 2013 at 12:35 AM, Iyenemi Tyger wrote: > Please is there any size limit to the amount of file you can send? > _______________________________________________ > 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 Fri Oct 25 09:59:29 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Fri, 25 Oct 2013 09:59:29 +0100 Subject: [rabbitmq-discuss] Management API and monitoring In-Reply-To: References: Message-ID: <526A32F1.9020804@rabbitmq.com> On 24/10/2013 5:48PM, Jason McIntosh wrote: > The question I have is on the queue - I'd like to be able to monitor > when the queue was last "accessed" for message publishes. Probably your best bet is to look at the inbound message rate from the mgmt API. > I was looking > at the idle_since but it looks like the date there gets reset anytime > you even look at the list of queues. That reports on the last time anything contacted the queue to wake it up - this would include publishing, consuming, (re)declaring, or listing it with rabbitmqctl (not mgmt). > One interesting thing I noticed while working on monitoring. > rabbitmqctl does not seem like a very efficient mechanism for use by > monitoring tools. I started off using ctl to get various queue and > server information and found that it was extremely expensive to call > repeatedly. I tried using some python scripts to hit the management API > and my CPU load went down by about 70%. Not sure if other people have > seem the same using rabbitmqctl? This is expected. rabbitmqctl and the management API have quite different designs - in brief the management API maintains a database of current stats for everything that's going on, based on stats events emitted by queues, channels and connections. On the other hand when rabbitmqctl wants to know something it just goes and asks the queue / channel / connection directly - so it's a much simpler design but not as performant. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Fri Oct 25 11:37:20 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Fri, 25 Oct 2013 11:37:20 +0100 Subject: [rabbitmq-discuss] Feature Req / Bug list In-Reply-To: References: <874A73DF-5283-4508-8AD2-43BC53DC9196@rabbitmq.com> Message-ID: <526A49E0.3010707@rabbitmq.com> First of all, thank you for taking the time to generate a test case. I haven't reproduced anything yet, but rest assured that I will attempt to do so. I do have some quibbles with a couple of your assertions though: On 24/10/2013 7:30PM, Graeme N wrote: > - Bug: even though node and management port listeners are specified, the > first instance started will still incorrectly bind to port 55672 for the > management interface. Any node with the management plugin will attempt to bind to this port to serve an HTTP redirect to the new port (55672 was the old mgmt port in 2.x). Note that unlike all the other port bindings this will not prevent the server from starting up if it fails to bind (we changed it from 55672 since there were problems binding sometimes). So yeah, this is pretty hard coded, but it's meant as a fairly invisible usability / migration thing. If it bothers you, you can turn it off by modifying your script to: -rabbitmq_management listener [{port,4444$n},{redirect_old_port,false}] This redirect port will be going away in 3.3.0. > - populate queues with 1000 messages each in parallel: ./populate_queues.sh > - Note: shows low delivery rates noted before on spinning disks (60-80 > msgs/sec), even though my VM storage is on btrfs RAID10 capable of > sustained block writes > 200MB/s. iostat shows the VM is only generating > 1-8 MB/s of IO. Looking at messages under > /var/lib/rabbitmq/mnesia/rabbit2 at localhost/queues, they seem to be > chunked into 64, 68, 72, and 84 kiB files before being delivered to the > 16MiB msg_store_persistent/*.rdq files. This implies a lot of random IO > while delivering messages, which explains why the performance problems > disappear when switching to SSDs, even just two SSDs in RAID1. Typically > with other data stores we'd expect to see on-disk chunks that are > multiples of 128 MiB to properly leverage RAID block IO, in both > incoming and finalized data stores. The effect of this is that it takes > ~20m to load ~32 MiB of messages, which is pretty awful. Err, your script invokes amqp-publish(1) in a loop. 100,000 times. I suspect most of the slowness is due to the time taken to fork that many processes, open and close that many AMQP connections, and so on. I would guess this goes faster on an SSD because you can fork() faster. Certainly I can populate 100 queues with 1,000 messages each in a rather small fraction of a second with the PerfTest tool (http://www.rabbitmq.com/java-tools.html) if the same message goes to all queues 1,000 times, or in less than 10 seconds if each message is distinct. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From watson.timothy at gmail.com Fri Oct 25 11:03:33 2013 From: watson.timothy at gmail.com (Tim Watson) Date: Fri, 25 Oct 2013 11:03:33 +0100 Subject: [rabbitmq-discuss] Feature Req / Bug list In-Reply-To: References: Message-ID: On 24 Oct 2013, at 19:34, Guido Stepken wrote: > "single node with ~35k active open filehandles" > > I assume, all those file handles point to same content? > No, they will not. > Where does this come from? > The file descriptor count? Add up connections, port programs, linked in drivers, message store segments, index journals, database drivers, etc. 35k fd count is not unreasonable if there's a lot going on. Did you check the recommended limits on a bunch of other server applications recently? Fd use can grow fast and reasonable counts depend on workload. Tim > Am 03.10.2013 23:04 schrieb "Graeme N" : > Hey everyone, > > I've recently been doing a deployment of a 5 node rabbit cluster, and found some rough edges I thought I should share. I realize many of these are feature reqs, but I'm hoping that I just haven't discovered the proper configuration to deal with some of these issues, or have misunderstood Rabbit's behaviour. If not, hopefully they can become feature req items that'll make a dev schedule at some point. > > All items below were discovered while deploying 3.1.5 over the past few days. Hosts in question have 24 sandy bridge HT cores, 64GB of RAM, XFS filesystem, running on CentOS 6. Cluster is 5 nodes, with a default HA policy on all queues of exact/3/automatic-sync. > > HA / Clustering: > > - expected queues to be distributed evenly among cluster machines, instead got all queues on first 3 machines in the cluster, nothing on the last 2. > - expected message reads from a mirror machine for a queue to do the read i/o locally, so as to spread out workload, but it appears to always go to the host where the queue was created. > - this led to a single node with ~35k active open filehandles, and 4 nodes with ~90. not an optimum distribution of read workload. > - expected that if system a queue was created on is permanently removed (shut down and "rabbitmqctl forget_cluster_node hostname"'d), automatic sync would ensure there's the right number of copies replicated, but instead it just left every single queue under replicated. > - when a new policy is applied that defines specific replication nodes, or a number of copies using 'exact, and auto-sync is set, sometimes it just syncs the first replica and leaves any others unsynced and calls it job done. This is bad. > - had to add a new global HA policy and delete the existing one before rabbit fixed my queue replication. > - Attempted to create small per-queue policies to redistribute messages and then delete the per-queue policies, but this often leads to a inconsistent cluster state where queues continued to show as being part of a policy that was already deleted, attempt to resync, and get stuck, unable to complete or switch back to the global default policy. > - sometimes the cluster refuses to accept any more policy commands. Have to fully shut down and restart the cluster to clear this condition. > - sometimes policies applied to empty and inactive queues don't get correctly applied, and the queue hangs on "resyncing / 100%". this makes no sense, given the queue is empty, and requires a full cluster restart to clear. > - would like to see a tool to redistribute queues amongst available cluster machines according to HA policy. Ideally something that happens automatically on queue creation, cluster membership and policy changes, but would take something manual I could run out of cron. > - I've managed to get the cluster into an inconsistent state a /lot/ using the HA features, so it feels like they need more automated stress testing and bulletproofing. > > Persistent message storage: > > - it appears as if messages are put into very small batch files on the filesystem (1-20 MB) > - this causes the filesystem to thrash if your IO isn't good at random IO (SATA disks) and you have lots of persistent messages (>200k messages 500kB-1MB in size) that don't fit in RAM. > - this caused CentOS 6 kernel to kill erlang after stalling the XFS filesystem for > 120s. > - if a node crashes, Rabbit seems to rescan the entire on-disk datastore before continuing, instead of using some sort of checkpointing or journaling system to quickly recover from a crash. > - all of above should be solvable by using an existing append-only datastore like eLevelDB or Bitcask. > - we solved for now by using SSDs, but this bumps up the cost of each RMQ node, and doesn't solve the node crash recovery problem, just speeds up the process somewhat. > > Web API: > - API seems to block when cluster is busy, even for informational GETs, so you can't determine what's going on with the cluster. > - Some API operations seem to block until they complete (like putting a new policy), while others return immediately even though they're definitely not completed yet (like deleting a policy). It's not documented which have which behaviour, or why they don't just all block until op is completed. > > Hopefully you guys can educate me on what I'm doing wrong in some of these scenarios, or how to mitigate some of these issues. Any issue that requires taking down and restarting the cluster to fix is especially troubling. > > Thanks, > Graeme > > > _______________________________________________ > 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 Oct 25 13:13:56 2013 From: mike at suteki.co.uk (Mike Hadlow) Date: Fri, 25 Oct 2013 13:13:56 +0100 Subject: [rabbitmq-discuss] Request-Response per request reply queue, or shared reply queue Message-ID: Hi, I'm sure this question must have been asked many times before, but I can't seem to find a definitive answer. I want to build a request-reply pattern in EasyNetQ. Is it best to create a reply queue for every request as Alvaro Videla suggests here: http://videlalvaro.github.io/2010/10/rpc-over-rabbitmq.html Or, is it best to create a single reply queue that many requests can share, as described on the RabbitMQ website: http://www.rabbitmq.com/tutorials/tutorial-six-python.html The first seems to have a lot of overhead. The second suffers from having to have a some component looking after the reply queue and channel. How have others solved this problem? Thanks Mike -------------- next part -------------- An HTML attachment was scrubbed... URL: From sekhar434145 at gmail.com Fri Oct 25 13:24:39 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Fri, 25 Oct 2013 17:54:39 +0530 Subject: [rabbitmq-discuss] RabbitMQ - how to consume priority messages? Message-ID: Hi Team, I want to know how to consume priority messages, let say the scenario, in a queue there are 100 messages already exist but when 101th message comes into the queue which is having more priority than existing messages, in this case I want consume 101th message. How to achieve this? Is this behavior exist in RabbitMQ? Thanks in advance. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Fri Oct 25 13:24:55 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Fri, 25 Oct 2013 16:24:55 +0400 Subject: [rabbitmq-discuss] Request-Response per request reply queue, or shared reply queue In-Reply-To: References: Message-ID: <4A6B1285-5C7B-4BA6-ACF6-681311B88697@rabbitmq.com> On 25 Oct 2013, at 16:13, Mike Hadlow wrote: > I want to build a request-reply pattern in EasyNetQ. Is it best to create a reply queue for every request as Alvaro Videla suggests here: > http://videlalvaro.github.io/2010/10/rpc-over-rabbitmq.html > > Or, is it best to create a single reply queue that many requests can share, as described on the RabbitMQ website: > http://www.rabbitmq.com/tutorials/tutorial-six-python.html > > The first seems to have a lot of overhead. The second suffers from having to have a some component looking after the reply queue and channel. > > How have others solved this problem? Mike, It?s fine to not create a new reply queue for every request but every client (e.g. an object) should not share it with other clients. One reply queue per client sounds reasonable to me. ? MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Fri Oct 25 13:42:48 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Fri, 25 Oct 2013 16:42:48 +0400 Subject: [rabbitmq-discuss] RabbitMQ - how to consume priority messages? In-Reply-To: References: Message-ID: <0520BD5E-889A-4A13-BD8C-21B3351CE7A3@rabbitmq.com> On 25 Oct 2013, at 16:24, Rajasekhar P wrote: > I want to know how to consume priority messages, let say the scenario, in a queue there are 100 messages already exist but when 101th message comes into the queue which is having more priority than existing messages, in this case I want consume 101th message. How to achieve this? Is this behavior exist in RabbitMQ? RabbitMQ messages have a priority field but RabbitMQ itself currently does not use it. You can use multiple queues for different priorities (say, mail1 though mail5) and make publishers publish messages such that they end up in one of the queues depending on message priority. Then to consume higher priority messages faster you need to combine application-level logic with higher basic.qos setting for channels that use higher priority queues (so they are given messages faster, on average). MK From simon at rabbitmq.com Fri Oct 25 14:16:00 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Fri, 25 Oct 2013 14:16:00 +0100 Subject: [rabbitmq-discuss] Feature Req / Bug list In-Reply-To: <526A49E0.3010707@rabbitmq.com> References: <874A73DF-5283-4508-8AD2-43BC53DC9196@rabbitmq.com> <526A49E0.3010707@rabbitmq.com> Message-ID: <526A6F10.4020400@rabbitmq.com> On 25/10/2013 11:37AM, Simon MacMullen wrote: > First of all, thank you for taking the time to generate a test case. I > haven't reproduced anything yet, but rest assured that I will attempt to > do so. OK, I've replicated crashes with the script rebalance_cluster.sh. These will receive prompt attention! Incidentally a strong contributing factor appears to be backgrounding "rabbitmqctl set_policy" and thus running lots of copies simultaneously. So a workaround is to only run one copy at once. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From mcintoshj at gmail.com Fri Oct 25 14:54:11 2013 From: mcintoshj at gmail.com (Jason McIntosh) Date: Fri, 25 Oct 2013 08:54:11 -0500 Subject: [rabbitmq-discuss] Rabbit connections dying from protected enviornment In-Reply-To: <6DB033025329784B9280ABD9516177FC67C21E17@usbpx2pmxmbx12> References: <6DB033025329784B9280ABD9516177FC67C1D2FE@usbpx2pmxmbx12> <52582322.30403@rabbitmq.com> <6DB033025329784B9280ABD9516177FC67C21E17@usbpx2pmxmbx12> Message-ID: We hit the same kinda things with the F5's. The F5's work more as a proxy and not a router so the basic TCP FastL4 connection profile does a reset on an idle connection at a default of 5 minutes. We added a new F5 FastL4 profile for 10 minute resets and upgraded to the rabbit 3 release that added heartbeat support, and a lot of our issues went away. Note you'd only see the issue if there was 0 traffic going through, e.g. no messages being published. We have a lot of servers set to shovel to a centralized location and some of our remote nodes weren't publishing regularly - turns out we saw very regular (5 minute intervals) disconnects on the log files. I would recommend tweaking your connection settings. For example, the f5's don't have a default protocol handler for AMQP, so we had to use TCP handling. Jason On Wed, Oct 16, 2013 at 10:21 AM, Ganann, Kale wrote: > They hadn't had their heartbeats set correctly. We've updated the broker > to push a heartbeat every four minutes from our end of the connection. > Thanks for your help! > > Thanks, > Kale > > -----Original Message----- > From: Emile Joubert [mailto:emile at rabbitmq.com] > Sent: Friday, October 11, 2013 11:11 AM > To: Discussions about RabbitMQ > Cc: Ganann, Kale > Subject: Re: [rabbitmq-discuss] Rabbit connections dying from protected > enviornment > > > Hi Kale, > > On 11/10/13 16:54, Ganann, Kale wrote: > > > If we try to go past the VIP straight to a node, it fails outright > > In what way exactly does it fail? What do the broker logfiles say? > > What happens if you shut down all but one of the broker nodes? > > > Thus the main issue is what is the client seeing that causing it to > > restart the connection. > > That's hard to guess without knowing the logic of the client or it's > network input. > > > Any ideas on what in that sequence could be hosing us up? > > It should be possible to provide better feedback if you can supply the > output of connecting the client via the tracer: > http://www.rabbitmq.com/javadoc/com/rabbitmq/tools/Tracer.html > > > > > > -Emile > > > > > 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. > > _______________________________________________ > 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 mcintoshj at gmail.com Fri Oct 25 15:01:09 2013 From: mcintoshj at gmail.com (Jason McIntosh) Date: Fri, 25 Oct 2013 09:01:09 -0500 Subject: [rabbitmq-discuss] Connection blocked by "flow" for more than 600 seconds In-Reply-To: <525D266B.1070207@rabbitmq.com> References: <52548229.9000502@rabbitmq.com> <1381273745546-30354.post@n5.nabble.com> <5254935B.9040400@rabbitmq.com> <5255221D.3050907@rabbitmq.com> <1381458152747-30402.post@n5.nabble.com> <5257E135.1000909@rabbitmq.com> <52581BDA.5080108@rabbitmq.com> <1381668181993-30465.post@n5.nabble.com> <1381678115717-30467.post@n5.nabble.com> <525D266B.1070207@rabbitmq.com> Message-ID: Something else I tend to do while this is going. Run a few things, including iotop, top, and look at numa too: numactl --show `cat /var/run/rabbitmq/pid` Jason On Tue, Oct 15, 2013 at 6:26 AM, Matthias Radestock wrote: > On 13/10/13 16:28, Choo wrote: > >> After upgrading to Erlang R16B02 with Nightly Build (RabbitMQ >> 3.1.5.41009), >> although the "File Descriptors" issue is fixed, the problem still >> persists. >> : ( >> >> > ScreenShot-20131013.jpg >> > >> >> We started the subscriber modules first, then publishers. As you can see, >> after start publisher modules, the processes worked for less than 1 >> minute, >> then blocked, then worked for another shot, and blocked, and it seemed to >> happen around 3-4 times, after that, the connections were forever blocked. >> >> In term of limited resources: >> - memory seemed plenty >> - file descriptor looked perfect >> - disk space should not be a problem >> >> Any suggestion would be very welcome. >> > > Please post the output of 'rabbitmqctl report' when you get into the above > situation, i.e. have all connections blocked forever. > > Matthias. > > > ______________________________**_________________ > 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 mklishin at gopivotal.com Fri Oct 25 15:13:16 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Fri, 25 Oct 2013 18:13:16 +0400 Subject: [rabbitmq-discuss] Rabbit connections dying from protected enviornment In-Reply-To: References: <6DB033025329784B9280ABD9516177FC67C1D2FE@usbpx2pmxmbx12> <52582322.30403@rabbitmq.com> <6DB033025329784B9280ABD9516177FC67C21E17@usbpx2pmxmbx12> Message-ID: On 25 Oct 2013, at 17:54, Jason McIntosh wrote: > We hit the same kinda things with the F5's. The F5's work more as a proxy and not a router so the basic TCP FastL4 connection profile does a reset on an idle connection at a default of 5 minutes. Jason, Do you know if there is a widely used default timeout for F5?s? Or only specific models use the 5 minute value? Thanks. MK From mcintoshj at gmail.com Fri Oct 25 15:40:58 2013 From: mcintoshj at gmail.com (Jason McIntosh) Date: Fri, 25 Oct 2013 09:40:58 -0500 Subject: [rabbitmq-discuss] Rabbit connections dying from protected enviornment In-Reply-To: References: <6DB033025329784B9280ABD9516177FC67C1D2FE@usbpx2pmxmbx12> <52582322.30403@rabbitmq.com> <6DB033025329784B9280ABD9516177FC67C21E17@usbpx2pmxmbx12> Message-ID: The F5 load balancers (LTMs) by default do a reset on time out at 300 seconds. http://support.f5.com/kb/en-us/solutions/public/7000/600/sol7606.html If you look, the TCP and Fast L4 profiles both default idle timeout at 300 seconds. The LTM is their "Local Traffic Manager" - I'm not actually sure about their other products. Their GTM's are just dns providers so nothing there. But I THINK their firewalls have some of the same timeouts. Note the "LTM"'s are pretty equivalent to HAProxy. On crack. The GTM's are sorta like BIND - again on crack :) Jason On Fri, Oct 25, 2013 at 9:13 AM, Michael Klishin wrote: > > On 25 Oct 2013, at 17:54, Jason McIntosh wrote: > > > We hit the same kinda things with the F5's. The F5's work more as a > proxy and not a router so the basic TCP FastL4 connection profile does a > reset on an idle connection at a default of 5 minutes. > > Jason, > > Do you know if there is a widely used default timeout for F5?s? Or only > specific models use the 5 minute value? > > Thanks. > > MK > _______________________________________________ > 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 sarithaneerukonda at india.cogbooks.com Fri Oct 25 16:18:11 2013 From: sarithaneerukonda at india.cogbooks.com (Saritha N) Date: Fri, 25 Oct 2013 20:48:11 +0530 Subject: [rabbitmq-discuss] Can't set short node name!\nPlease check your configuration\n Message-ID: Hi , I am new to Rabbitmq server.I followed this installation steps for Erlang and RabbitMQ server 1.cd /usr/save 2.wget http://www.erlang.org/download/otp_src_R16B.tar.gz 3.tar xvfz /usr/save/otp_src_R16B.tar.gz 4.cd otp_src_R16B 5.LANG=C; export LANG 6../configure 7.make 8.make install For RabbitMq server 1.cd /usr/save 2.wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.0.4/rabbitmq-server-generic-unix-3.0.4.tar.gz 3.tar xvfz rabbitmq-server-generic-unix-3.0.4.tar.gz 4.cd rabbitmq_server-3.0.4 5.cd /usr/save/rabbitmq_server-3.0.4 6.sbin/rabbitmq-server -detached It throws this error for me Warning: PID file not written; -detached was passed. {error_logger,{{2013,10,25},{8,0,24}},"Can't set short node name!\nPlease check your configuration\n",[]} {error_logger,{{2013,10,25},{8,0,24}},crash_report,[[{initial_call,{net_kernel,init,['Argument__1']}},{pid,<0.21.0>},{registered_name,[]},{error_info,{exit,{error,badarg},[{gen_server,init_it,6,[{file,"gen_server.erl"},{line,320}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,239}]}]}},{ancestors,[net_sup,kernel_sup,<0.10.0>]},{messages,[]},{links,[<0.18.0>]},{dictionary,[{longnames,false}]},{trap_exit,true},{status,running},{heap_size,610},{stack_size,27},{reductions,244}],[]]} {error_logger,{{2013,10,25},{8,0,24}},supervisor_report,[{supervisor,{local,net_sup}},{errorContext,start_error},{reason,{'EXIT',nodistribution}},{offender,[{pid,undefined},{name,net_kernel},{mfargs,{net_kernel,start_link,[[rabbitmqprelaunch674,shortnames]]}},{restart_type,permanent},{shutdown,2000},{child_type,worker}]}]} {error_logger,{{2013,10,25},{8,0,24}},supervisor_report,[{supervisor,{local,kernel_sup}},{errorContext,start_error},{reason,{shutdown,{failed_to_start_child,net_kernel,{'EXIT',nodistribution}}}},{offender,[{pid,undefined},{name,net_sup},{mfargs,{erl_distribution,start_link,[]}},{restart_type,permanent},{shutdown,infinity},{child_type,supervisor}]}]} And I have created rabbitmq-env.conf In cd /usr/save/rabbitmq_server-3.0.4/etc/rabbitmq/rabbitmq-env.conf by setting the parameter RABBITMQ_NODENAME=rabbit at 192.168.1.25 After doing this also I am getting the same error . Please help me out. -- Thanks & Regards, Saritha -------------- next part -------------- An HTML attachment was scrubbed... URL: From videlalvaro at gmail.com Fri Oct 25 16:22:31 2013 From: videlalvaro at gmail.com (Alvaro Videla) Date: Fri, 25 Oct 2013 17:22:31 +0200 Subject: [rabbitmq-discuss] Can't set short node name!\nPlease check your configuration\n In-Reply-To: References: Message-ID: Perhaps are you running Erlang from another process, and that process was started using long names? In any case, you can try restarting the epmd process. On Fri, Oct 25, 2013 at 5:18 PM, Saritha N < sarithaneerukonda at india.cogbooks.com> wrote: > Hi , > I am new to Rabbitmq server.I followed this installation steps for Erlang > and RabbitMQ server > 1.cd /usr/save > 2.wget http://www.erlang.org/download/otp_src_R16B.tar.gz > 3.tar xvfz /usr/save/otp_src_R16B.tar.gz > 4.cd otp_src_R16B > 5.LANG=C; export LANG > 6../configure > 7.make > 8.make install > > For RabbitMq server > 1.cd /usr/save > 2.wget > http://www.rabbitmq.com/releases/rabbitmq-server/v3.0.4/rabbitmq-server-generic-unix-3.0.4.tar.gz > 3.tar xvfz rabbitmq-server-generic-unix-3.0.4.tar.gz > 4.cd rabbitmq_server-3.0.4 > 5.cd /usr/save/rabbitmq_server-3.0.4 > 6.sbin/rabbitmq-server -detached > It throws this error for me > Warning: PID file not written; -detached was passed. > {error_logger,{{2013,10,25},{8,0,24}},"Can't set short node name!\nPlease > check your configuration\n",[]} > > {error_logger,{{2013,10,25},{8,0,24}},crash_report,[[{initial_call,{net_kernel,init,['Argument__1']}},{pid,<0.21.0>},{registered_name,[]},{error_info,{exit,{error,badarg},[{gen_server,init_it,6,[{file,"gen_server.erl"},{line,320}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,239}]}]}},{ancestors,[net_sup,kernel_sup,<0.10.0>]},{messages,[]},{links,[<0.18.0>]},{dictionary,[{longnames,false}]},{trap_exit,true},{status,running},{heap_size,610},{stack_size,27},{reductions,244}],[]]} > > {error_logger,{{2013,10,25},{8,0,24}},supervisor_report,[{supervisor,{local,net_sup}},{errorContext,start_error},{reason,{'EXIT',nodistribution}},{offender,[{pid,undefined},{name,net_kernel},{mfargs,{net_kernel,start_link,[[rabbitmqprelaunch674,shortnames]]}},{restart_type,permanent},{shutdown,2000},{child_type,worker}]}]} > > {error_logger,{{2013,10,25},{8,0,24}},supervisor_report,[{supervisor,{local,kernel_sup}},{errorContext,start_error},{reason,{shutdown,{failed_to_start_child,net_kernel,{'EXIT',nodistribution}}}},{offender,[{pid,undefined},{name,net_sup},{mfargs,{erl_distribution,start_link,[]}},{restart_type,permanent},{shutdown,infinity},{child_type,supervisor}]}]} > > And I have created rabbitmq-env.conf > In cd /usr/save/rabbitmq_server-3.0.4/etc/rabbitmq/rabbitmq-env.conf by > setting the parameter > RABBITMQ_NODENAME=rabbit at 192.168.1.25 > > After doing this also I am getting the same error . > Please help me out. > > -- > Thanks & Regards, > Saritha > > _______________________________________________ > 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 Oct 25 16:36:00 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Fri, 25 Oct 2013 19:36:00 +0400 Subject: [rabbitmq-discuss] Can't set short node name!\nPlease check your configuration\n In-Reply-To: References: Message-ID: <471965FF-660F-4F6B-8EFB-01EA0A691233@rabbitmq.com> On 25 Oct 2013, at 19:18, Saritha N wrote: > 2.wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.0.4/rabbitmq-server-generic-unix-3.0.4.tar.gz > 3.tar xvfz rabbitmq-server-generic-unix-3.0.4.tar.gz > 4.cd rabbitmq_server-3.0.4 > 5.cd /usr/save/rabbitmq_server-3.0.4 Saritha, Please switch to RabbitMQ 3.2.0. MK From graeme at sudo.ca Fri Oct 25 17:13:00 2013 From: graeme at sudo.ca (Graeme N) Date: Fri, 25 Oct 2013 09:13:00 -0700 Subject: [rabbitmq-discuss] Feature Req / Bug list In-Reply-To: <526A49E0.3010707@rabbitmq.com> References: <874A73DF-5283-4508-8AD2-43BC53DC9196@rabbitmq.com> <526A49E0.3010707@rabbitmq.com> Message-ID: On Fri, Oct 25, 2013 at 3:37 AM, Simon MacMullen wrote: > First of all, thank you for taking the time to generate a test case. I > haven't reproduced anything yet, but rest assured that I will attempt to do > so. > > I do have some quibbles with a couple of your assertions though: Great! Part of this conversation is to help me get up to speed quickly on rabbit internals and architecture, since I'm relatively new to it, and we're in the middle of deploying it for a bunch of different uses. So, please correct me if I've misunderstood its behaviour or design. :) > -rabbitmq_management listener [{port,4444$n},{redirect_old_port,false}] > > This redirect port will be going away in 3.3.0. > > Ahhh, this does make sense, and you're right, it doesn't seem to have an adverse affects on cluster operations. Err, your script invokes amqp-publish(1) in a loop. 100,000 times. I > suspect most of the slowness is due to the time taken to fork that many > processes, open and close that many AMQP connections, and so on. I would > guess this goes faster on an SSD because you can fork() faster. > Hmmm... I wouldn't expect this to be the case, since I can fork 100000 echos is about 1s on this box. I am willing to admit that there could be issues in the way the data's being generated out of bash, or for any number of other reasons though. However, we did see a cluster of 5 machines backed by 7200 RPM disks get swamped with IO unexpectedly early, which is the issue I'm trying to reproduce, so I'll work harder on a better test case. > Certainly I can populate 100 queues with 1,000 messages each in a rather > small fraction of a second with the PerfTest tool ( > http://www.rabbitmq.com/java-tools.html) if the same message goes to all > queues 1,000 times, or in less than 10 seconds if each message is distinct. > Good to know. I'll be sure to use this when I rework this test case. Graeme -------------- next part -------------- An HTML attachment was scrubbed... URL: From mcintoshj at gmail.com Fri Oct 25 17:14:19 2013 From: mcintoshj at gmail.com (Jason McIntosh) Date: Fri, 25 Oct 2013 11:14:19 -0500 Subject: [rabbitmq-discuss] Can't set short node name!\nPlease check your configuration\n In-Reply-To: <471965FF-660F-4F6B-8EFB-01EA0A691233@rabbitmq.com> References: <471965FF-660F-4F6B-8EFB-01EA0A691233@rabbitmq.com> Message-ID: As I recall, Rabbit doesn't support IP Addresses or FQDN's - did that change with 3.2? I noticed most of the calls use -sname instead of -name (e.g. rabbitmqctl is still as of 3.2 using -sname). I tried at one point switching stuff over to -name and it had some rather nasty impacts. I'll probably pick it up again at some point as we use some fairly long DNS names for our servers, and we were hoping to cluster them using the fully qualified names. Note our servers are on the same network switch, but we had a policy that they couldn't talk to one other except using FQDNs (long story). For our cluster we added the short names to the resolv.conf lookups, but that wasn't considered ideal. Jason On Fri, Oct 25, 2013 at 10:36 AM, Michael Klishin wrote: > On 25 Oct 2013, at 19:18, Saritha N > wrote: > > > 2.wget > http://www.rabbitmq.com/releases/rabbitmq-server/v3.0.4/rabbitmq-server-generic-unix-3.0.4.tar.gz > > 3.tar xvfz rabbitmq-server-generic-unix-3.0.4.tar.gz > > 4.cd rabbitmq_server-3.0.4 > > 5.cd /usr/save/rabbitmq_server-3.0.4 > > Saritha, > > Please switch to RabbitMQ 3.2.0. > > MK > _______________________________________________ > 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 graeme at sudo.ca Fri Oct 25 17:17:56 2013 From: graeme at sudo.ca (Graeme N) Date: Fri, 25 Oct 2013 09:17:56 -0700 Subject: [rabbitmq-discuss] Feature Req / Bug list In-Reply-To: <526A6F10.4020400@rabbitmq.com> References: <874A73DF-5283-4508-8AD2-43BC53DC9196@rabbitmq.com> <526A49E0.3010707@rabbitmq.com> <526A6F10.4020400@rabbitmq.com> Message-ID: On Fri, Oct 25, 2013 at 6:16 AM, Simon MacMullen wrote: > OK, I've replicated crashes with the script rebalance_cluster.sh. These > will receive prompt attention! > Great! This is the only issue I've found that I'm really worried about, since we do want the ability to rebalance queues across our cluster when adjusting cluster topology, so we can properly distribute workload amongst the nodes. Everything else has pretty simple workarounds. > Incidentally a strong contributing factor appears to be backgrounding > "rabbitmqctl set_policy" and thus running lots of copies simultaneously. So > a workaround is to only run one copy at once. Yeah, I did that intentionally in my test script so it'd be easier to reproduce the issue. I was actually doing this sequentially when I initially wrote my script to rebalance queues across the cluster, and still encountered the issue, it just took a lot more cluster operations before it happened. Presumably if you fix the parallel case, (by making the API handler block when running API reqs hits an upper bound or something?), it'll automatically solve any issues with the sequential case. Graeme -------------- next part -------------- An HTML attachment was scrubbed... URL: From mcintoshj at gmail.com Fri Oct 25 17:24:59 2013 From: mcintoshj at gmail.com (Jason McIntosh) Date: Fri, 25 Oct 2013 11:24:59 -0500 Subject: [rabbitmq-discuss] Getting the routing key from connection (web stomp) In-Reply-To: <5257D7AA.9000908@rabbitmq.com> References: <0290a0ff-00ec-4b42-a61f-5912ff23ec6d@googlegroups.com> <5257D7AA.9000908@rabbitmq.com> Message-ID: A few other thoughts on your topology. Take a strong look at the routing keys and exchanges and queues. Rabbit's really designed to be a "asynchronous" messaging platform. I'm not sure though I understand what you mean by clients as well. Is the system doing the request to the stomp API your client? And it's also the client that wants to consume from the queue in an RPC kinda mechanism? What you could do in this case, would be startup a consumer in your process with a generated random value (e.g. machine name and datetime), the WEB STOMP publishes to a direct exchange with a message that includes a header "Return data to queue ". Your server side processing receives that message, processes it, reads that header and publishes a message to that queue. Then your consumer "thread" after your publisher is ready can just deliver the resulting message, and auto-delete the queue. Just one possibility. Jason On Fri, Oct 11, 2013 at 5:49 AM, Emile Joubert wrote: > > Hi Magnus, > > Apologies for the delayed response to your query. > > On 28/09/13 22:18, Magnus Andersson wrote: > > > I need to get a handle on the routing key for the generated temporary > > queue when using web stomp. I can't get that from the JavaScript side. > > If you need the name of a temporary queue then that is normally a sign > that you should name the queue yourself instead of relying on a > server-generated name. > > > My desired scenario for my event driven app. > > 1) Browser client opens a websocket connection to rabbitmq web stomp > > 2) When calling client.connect, the routing key is made available > > (example: amq.gen-oQVllULAASDvZdXsxFADHg). *Not working today?* > > Opening a connection does not involve a routing key. > > > There is a fan-out exchange that all clients subscribe to. But I mostly > > want to send messages to one dedicated client at a time. > > If you want to address clients individually then the clients should > maintain separate individual subscriptions for that line of > communication, possibly not involving temporary queue names. > > > The documentation is very scarce on Web Stomp and I'm new to RabbitMQ > > and not particularly Erlang proficient. So I need some pointers. > > There are some examples that illustrate use of the plugin: > > http://hg.rabbitmq.com/rabbitmq-web-stomp-examples/ > > > > > > -Emile > _______________________________________________ > 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 Fri Oct 25 17:40:35 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Fri, 25 Oct 2013 17:40:35 +0100 Subject: [rabbitmq-discuss] Feature Req / Bug list In-Reply-To: References: <874A73DF-5283-4508-8AD2-43BC53DC9196@rabbitmq.com> <526A49E0.3010707@rabbitmq.com> Message-ID: <526A9F03.3000302@rabbitmq.com> On 25/10/2013 5:13PM, Graeme N wrote: > Err, your script invokes amqp-publish(1) in a loop. 100,000 times. I > suspect most of the slowness is due to the time taken to fork that > many processes, open and close that many AMQP connections, and so > on. I would guess this goes faster on an SSD because you can fork() > faster. > > > Hmmm... I wouldn't expect this to be the case, since I can fork > 100000 echos is about 1s on this box. I am willing to admit that > there could be issues in the way the data's being generated out of > bash, or for any number of other reasons though. It might be setting up and tearing down 100k AMQP connections then... anyway, I ran it myself and it is several orders of magnitude slower than it should be. > Yeah, I did that intentionally in my test script so it'd be easier to > reproduce the issue. I was actually doing this sequentially when I > initially wrote my script to rebalance queues across the cluster, and > still encountered the issue, it just took a lot more cluster > operations before it happened. Presumably if you fix the parallel > case, (by making the API handler block when running API reqs hits an > upper bound or something?), it'll automatically solve any issues with > the sequential case. I should think so. But thanks, that's useful to know. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From sp345s at att.com Fri Oct 25 17:56:19 2013 From: sp345s at att.com (PATAR, SAGAR) Date: Fri, 25 Oct 2013 16:56:19 +0000 Subject: [rabbitmq-discuss] JMS Client with Rabbit MQ Message-ID: <59BF56992750434F89F8EBE141E64B1D01828067@GAALPA1MSGUSR9C.ITServices.sbc.com> We are trying to migrate our existing JMS Message broker to Rabbit MQ ...Wanted to check if Rabbit MQ support our existing JMS based clients without any changes .. Can we receive message with JMS API using rabbit MQ?? Thank you -------------- next part -------------- An HTML attachment was scrubbed... URL: From graeme at sudo.ca Fri Oct 25 18:43:40 2013 From: graeme at sudo.ca (Graeme N) Date: Fri, 25 Oct 2013 10:43:40 -0700 Subject: [rabbitmq-discuss] Feature Req / Bug list In-Reply-To: <526A9F03.3000302@rabbitmq.com> References: <874A73DF-5283-4508-8AD2-43BC53DC9196@rabbitmq.com> <526A49E0.3010707@rabbitmq.com> <526A9F03.3000302@rabbitmq.com> Message-ID: > It might be setting up and tearing down 100k AMQP connections then... > anyway, I ran it myself and it is several orders of magnitude slower > than it should be. That's the thing, I wouldn't expect the underlying storage to have any effect on that operation either. That should be something that's purely bound by RAM/CPU and kernel/erlang socket handling. I'll definitely try and put together a reproducible test case that demonstrates the issue so we can drill into it a bit better. Graeme -------------- next part -------------- An HTML attachment was scrubbed... URL: From mcintoshj at gmail.com Fri Oct 25 20:00:56 2013 From: mcintoshj at gmail.com (Jason McIntosh) Date: Fri, 25 Oct 2013 14:00:56 -0500 Subject: [rabbitmq-discuss] Management API and monitoring In-Reply-To: <526A32F1.9020804@rabbitmq.com> References: <526A32F1.9020804@rabbitmq.com> Message-ID: Hrmm, looking at the API's now, - incoming: [ - { - stats: { - publish: 44, - publish_details: { - rate: 0.4 } }, - exchange: { - name: "phi", - vhost: "phi" } } ], Is the publish details time delayed? e.g. for the last "5 minutes" or how is that reset? I don't see a "published since" kinda of field that would let me calculate a rate of incoming message flow. I can image that's a "transactions per minute" kinda rate, but that'll never hit 0 if the queue received one message since the beginning of time and nothing since. Now I did see this: - 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: 71, - persistent_count: 0, - avg_ingress_rate: 0, - avg_egress_rate: 0, - avg_ack_ingress_rate: 0, - avg_ack_egress_rate: 0, - mirror_seen: 0, - mirror_senders: 1 }, Is the next_seq_id used perhaps? I COULD store the previous value and if the value hasn't changed in 5 minutes on the monitoring side, alert on that, assuming that that changes based upon each message received? SO also going to release this: https://github.com/jasonmcintosh/rabbitmq-zabbix This is built off of some of the other monitoring stuff I've been working on, but focused on zabbix. The code gives an example template that (to me) is a pretty solid set of monitoring items for each server, auto-discovery, and basic stuff to monitor rabbitmq using zabbix. Eventually, I'd like to do a more push vs. pull type system, using zabbix_sender and a background process that regularly polls the API (perhaps even a plugin if I can learn enough erlang) and submits data to zabbix, instead of zabbix polling the server. Jason On Fri, Oct 25, 2013 at 3:59 AM, Simon MacMullen wrote: > On 24/10/2013 5:48PM, Jason McIntosh wrote: > >> The question I have is on the queue - I'd like to be able to monitor >> when the queue was last "accessed" for message publishes. >> > > Probably your best bet is to look at the inbound message rate from the > mgmt API. > > > I was looking >> at the idle_since but it looks like the date there gets reset anytime >> you even look at the list of queues. >> > > That reports on the last time anything contacted the queue to wake it up - > this would include publishing, consuming, (re)declaring, or listing it with > rabbitmqctl (not mgmt). > > > One interesting thing I noticed while working on monitoring. >> rabbitmqctl does not seem like a very efficient mechanism for use by >> monitoring tools. I started off using ctl to get various queue and >> server information and found that it was extremely expensive to call >> repeatedly. I tried using some python scripts to hit the management API >> and my CPU load went down by about 70%. Not sure if other people have >> seem the same using rabbitmqctl? >> > > This is expected. rabbitmqctl and the management API have quite different > designs - in brief the management API maintains a database of current stats > for everything that's going on, based on stats events emitted by queues, > channels and connections. On the other hand when rabbitmqctl wants to know > something it just goes and asks the queue / channel / connection directly - > so it's a much simpler design but not as performant. > > Cheers, Simon > > -- > Simon MacMullen > RabbitMQ, Pivotal > -- Jason McIntosh https://github.com/jasonmcintosh/ 573-424-7612 -------------- next part -------------- An HTML attachment was scrubbed... URL: From mcintoshj at gmail.com Fri Oct 25 20:22:55 2013 From: mcintoshj at gmail.com (Jason McIntosh) Date: Fri, 25 Oct 2013 14:22:55 -0500 Subject: [rabbitmq-discuss] Management API and monitoring In-Reply-To: References: <526A32F1.9020804@rabbitmq.com> Message-ID: Just found this older post: http://rabbitmq.1065348.n5.nabble.com/Monitoring-Message-Throughput-td17436.html So looks like the avg_ingress_rate is over 5 seconds would get me what I'm looking for - that should probably never be 0 if we're regularly having publishes. Of course I'll have to poll it every 5 seconds or it could be 0 on occasion. Jason On Fri, Oct 25, 2013 at 2:00 PM, Jason McIntosh wrote: > Hrmm, looking at the API's now, > > - incoming: > [ > - > { > - stats: > { > - publish: 44, > - publish_details: > { > - rate: 0.4 > } > }, > - exchange: > { > - name: "phi", > - vhost: "phi" > } > } > ], > > Is the publish details time delayed? e.g. for the last "5 minutes" or how > is that reset? I don't see a "published since" kinda of field that would > let me calculate a rate of incoming message flow. I can image that's a > "transactions per minute" kinda rate, but that'll never hit 0 if the queue > received one message since the beginning of time and nothing since. > > Now I did see this: > > - 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: 71, > - persistent_count: 0, > - avg_ingress_rate: 0, > - avg_egress_rate: 0, > - avg_ack_ingress_rate: 0, > - avg_ack_egress_rate: 0, > - mirror_seen: 0, > - mirror_senders: 1 > }, > > > Is the next_seq_id used perhaps? I COULD store the previous value and if > the value hasn't changed in 5 minutes on the monitoring side, alert on > that, assuming that that changes based upon each message received? > > SO also going to release this: > https://github.com/jasonmcintosh/rabbitmq-zabbix > > This is built off of some of the other monitoring stuff I've been working > on, but focused on zabbix. The code gives an example template that (to me) > is a pretty solid set of monitoring items for each server, auto-discovery, > and basic stuff to monitor rabbitmq using zabbix. Eventually, I'd like to > do a more push vs. pull type system, using zabbix_sender and a background > process that regularly polls the API (perhaps even a plugin if I can learn > enough erlang) and submits data to zabbix, instead of zabbix polling the > server. > > Jason > > > > On Fri, Oct 25, 2013 at 3:59 AM, Simon MacMullen wrote: > >> On 24/10/2013 5:48PM, Jason McIntosh wrote: >> >>> The question I have is on the queue - I'd like to be able to monitor >>> when the queue was last "accessed" for message publishes. >>> >> >> Probably your best bet is to look at the inbound message rate from the >> mgmt API. >> >> >> I was looking >>> at the idle_since but it looks like the date there gets reset anytime >>> you even look at the list of queues. >>> >> >> That reports on the last time anything contacted the queue to wake it up >> - this would include publishing, consuming, (re)declaring, or listing it >> with rabbitmqctl (not mgmt). >> >> >> One interesting thing I noticed while working on monitoring. >>> rabbitmqctl does not seem like a very efficient mechanism for use by >>> monitoring tools. I started off using ctl to get various queue and >>> server information and found that it was extremely expensive to call >>> repeatedly. I tried using some python scripts to hit the management API >>> and my CPU load went down by about 70%. Not sure if other people have >>> seem the same using rabbitmqctl? >>> >> >> This is expected. rabbitmqctl and the management API have quite different >> designs - in brief the management API maintains a database of current stats >> for everything that's going on, based on stats events emitted by queues, >> channels and connections. On the other hand when rabbitmqctl wants to know >> something it just goes and asks the queue / channel / connection directly - >> so it's a much simpler design but not as performant. >> >> Cheers, Simon >> >> -- >> Simon MacMullen >> RabbitMQ, Pivotal >> > > > > -- > 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 fercascue at gmail.com Fri Oct 25 20:35:45 2013 From: fercascue at gmail.com (fercascue) Date: Fri, 25 Oct 2013 12:35:45 -0700 (PDT) Subject: [rabbitmq-discuss] Send RabbitMQ message to port Message-ID: <1382729744945-30863.post@n5.nabble.com> Hi, When a message arrives to RabbitMQ: It's possible to send it to a specific port for consume it? I dont care if port is TCP or UDP. Thanks in advance. B.R Fercascue -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Send-RabbitMQ-message-to-port-tp30863.html Sent from the RabbitMQ mailing list archive at Nabble.com. From jkuch at gopivotal.com Fri Oct 25 21:02:29 2013 From: jkuch at gopivotal.com (Jerry Kuch) Date: Fri, 25 Oct 2013 13:02:29 -0700 Subject: [rabbitmq-discuss] Send RabbitMQ message to port In-Reply-To: <1382729744945-30863.post@n5.nabble.com> References: <1382729744945-30863.post@n5.nabble.com> Message-ID: Could you clarify your question? Clients connect to Rabbit, to both publish into the broker and consume from it, using the standard AMQP port, 5672, by default, although this can be reconfigured. Jerry On Fri, Oct 25, 2013 at 12:35 PM, fercascue wrote: > Hi, > > When a message arrives to RabbitMQ: It's possible to send it to a specific > port for consume it? > I dont care if port is TCP or UDP. > > Thanks in advance. > B.R > Fercascue > > > > -- > View this message in context: > http://rabbitmq.1065348.n5.nabble.com/Send-RabbitMQ-message-to-port-tp30863.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 mpietrek at skytap.com Fri Oct 25 22:00:10 2013 From: mpietrek at skytap.com (Matt Pietrek) Date: Fri, 25 Oct 2013 14:00:10 -0700 Subject: [rabbitmq-discuss] RabbitMQ / Erlang not running on all cores? In-Reply-To: <526775E6.6050202@rabbitmq.com> References: <5266F434.4090309@rabbitmq.com> <526775E6.6050202@rabbitmq.com> Message-ID: Following up on this to close the loop on what happened, and hopefully provide some useful information if anybody else run into a similar problem. Long story short, I was able to find/fix the problem without needing to upgrade from RabbitMQ 3.0.2 and Erlang R15B01. (Although I hope to upgrade soon.) Our server had ~800 connections with associated subscriptions from clients. Using top, I found a disproportionate amount of time spent in system code on core 0. Using strace, I found that poll() was being called, specifying ~800 file descriptors (i.e., all our connections). Turns out that Erlang by default doesn't use the much more efficient epoll() mechanism. However, RabbitMQ's startup of Erlang includes the "+K true" option, which tells Erlang to use epoll. For reasons I won't go into, I was setting the RABBITMQ_SERVER_ERL_ARGS environment variable, not realizing that what I put there *replaced* what RabbitMQ passes to Erlang. I mistakenly believed it got *added* to the Erlang start parameter. Once I changed the RABBITMQ_SERVER_ERL_ARGS variable to include the RabbitMQ defaults as well, things started working much better. For what it's worth, it might be useful for RabbitMQ to log the Erlang related stuff and highlight if any thing's been changed from the defaults. Thanks Matthias, Michael and Zhibo for your help! On Wed, Oct 23, 2013 at 12:08 AM, Matthias Radestock wrote: > Matt, > > > On 22/10/13 23:44, Matt Pietrek wrote: > >> The load on our box (it's in production) has dropped a little bit, but >> core 0 is still running nearly flat out. >> > > If you are seeing *less* than 100% utilisation of one core then your > system is *not* CPU bound. > > Check that RabbitMQ is actually a bottlneck here, rather than, say, your > producers or consumers. > > > Are there other useful "eval" commands that I could use to ferret out >> what's happening? This is a box in production and we have an upcoming >> release that's only going to add more load on this box. >> > > We could come up with some eval code to identify the top running > processes. Or perhaps find a way to get etop to run (Erlang's equivalent of > 'top'). But... > > > Also, we are running this in a cluster with another box, with all queues >> in HA mode. >> > > There have been tons of improvements *and bug fixes* to mirrored queues. > Some relating to performance. So I strongly recommend you upgrade RabbitMQ > to the lastest version. And Erlang too, due to the SMP scheduler > improvements I mentioned in my earlier email. > > If you still see performance anomalies after the upgrade then we can > investigate further. > > > Regards, > > > 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 k.madnani84 at gmail.com Sat Oct 26 02:21:10 2013 From: k.madnani84 at gmail.com (k.madnani84) Date: Fri, 25 Oct 2013 18:21:10 -0700 (PDT) Subject: [rabbitmq-discuss] Error in setting policy in RabbitMQ-3.2.0 Message-ID: <1382750470796-30871.post@n5.nabble.com> Hi, I upgraded my RabbitMQ to latest version 3.2.0 but am facing an issue while setting the Federation policy.This was working perfectly fine with RabbitMQ 3.1.5.Did something change in the way policies are to be set from rabitmqctl? //opt/app/rabbitmq/sbin/rabbitmqctl set_policy -p / HA-Mirror-Federate-adminvhost '\.fedMirror$' '{"federation-upstream-set":"all","ha-mode":"all"}' 2 Error: invalid command 'set_policy HA-Mirror-Federate-adminvhost \.fedMirror$ {"federation-upstream-set":"all","ha-mode":"all"} 2' -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Error-in-setting-policy-in-RabbitMQ-3-2-0-tp30871.html Sent from the RabbitMQ mailing list archive at Nabble.com. From k.madnani84 at gmail.com Sat Oct 26 02:47:36 2013 From: k.madnani84 at gmail.com (k.madnani84) Date: Fri, 25 Oct 2013 18:47:36 -0700 (PDT) Subject: [rabbitmq-discuss] Error in setting policy in RabbitMQ-3.2.0 In-Reply-To: <1382750470796-30871.post@n5.nabble.com> References: <1382750470796-30871.post@n5.nabble.com> Message-ID: <1382752056758-30872.post@n5.nabble.com> Got it!!!! I guess a new parameter '--policy' is being introduced in setpolicy. It works that way. //opt/app/rabbitmq/sbin/rabbitmqctl set_policy -p / HA-Mirror-Federate-adminvhost '\.fedMirror$' '{"federation-upstream-set":"all","ha-mode":"all"}' --priority 2 Are there changes in any other rabbitmqctl commands? -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Error-in-setting-policy-in-RabbitMQ-3-2-0-tp30871p30872.html Sent from the RabbitMQ mailing list archive at Nabble.com. From julian+rabbitmq at dotr.com Sat Oct 26 21:33:58 2013 From: julian+rabbitmq at dotr.com (Julian Lyndon-Smith) Date: Sat, 26 Oct 2013 21:33:58 +0100 Subject: [rabbitmq-discuss] forwarding between vHosts Message-ID: I have a scenario where I need to be able to have a multi-tenant MQ server, so I started using vHosts. However, I also need to be able to route / transfer / forward messages from a stomp client that is sending to the / vhost to another vhost based on the queue that the message was sent to for example, the stomp client sends to /queue/api/foo.bar , I want to send the message to vHost foo I can , obviously create a stomp client for each tenant, but that becomes real expensive in resources very quickly and was hoping that there would be a better way Many thanks Julian From KGanann at kroll.com Sat Oct 26 21:56:15 2013 From: KGanann at kroll.com (Ganann, Kale) Date: Sat, 26 Oct 2013 20:56:15 +0000 Subject: [rabbitmq-discuss] Issues after upgrade Message-ID: <6DB033025329784B9280ABD9516177FC68C340FB@usbpx2pmxmbx12> Hi all, Just upgraded our Dev instance to 3.2.0, and shortly after we started it appears node 1 came crashing down after running fine for a few hours, and is not allowing for a reboot. The startup_err and erl_crash.dump both say the same thing: Slogan: init terminating in do_boot () Our version is Erlang R14B04, and the other two nodes continue to run fine. I saw some people had a permissions issue with that, but after rerunning the chown commands to give rabbitmq ownership of /var/lib/rabbitmq and its contents we continue to see issues. In the rabbitmq at node1.log, I see this error: =INFO REPORT==== 26-Oct-2013::15:36:36 === Error description: {error,{could_not_write_file,"/var/lib/rabbitmq/mnesia/rabbit at node1/cluster_nodes.config", enospc}} Any ideas what else I could be looking at? 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.laing at nytimes.com Sat Oct 26 22:00:42 2013 From: michael.laing at nytimes.com (Laing, Michael) Date: Sat, 26 Oct 2013 17:00:42 -0400 Subject: [rabbitmq-discuss] forwarding between vHosts In-Reply-To: References: Message-ID: We use shovels for inter-vhost communication like that. Easy and quick. Except you have to restart a cluster member to pick up the config... Michael On Sat, Oct 26, 2013 at 4:33 PM, Julian Lyndon-Smith < julian+rabbitmq at dotr.com> wrote: > I have a scenario where I need to be able to have a multi-tenant MQ > server, so I started using vHosts. > > However, I also need to be able to route / transfer / forward messages > from a stomp client that is sending to the / vhost to another vhost > based on the queue that the message was sent to > > for example, the stomp client sends to /queue/api/foo.bar , I want to > send the message to vHost foo > > I can , obviously create a stomp client for each tenant, but that > becomes real expensive in resources very quickly and was hoping that > there would be a better way > > Many thanks > > Julian > _______________________________________________ > 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 julian+rabbitmq at dotr.com Sat Oct 26 22:09:49 2013 From: julian+rabbitmq at dotr.com (Julian Lyndon-Smith) Date: Sat, 26 Oct 2013 22:09:49 +0100 Subject: [rabbitmq-discuss] forwarding between vHosts In-Reply-To: References: Message-ID: Thanks for the info. I still have a couple of questions ;) Is there an api for adding shovels ? The tenants are dynamic (ie they can be created at any time, and not known in advance) Or do you have to manually edit a file ? You have to restart the server to add a new shovel ? Really ? If that's a case, it's a no go - data is flying around from several sources and I couldn't stop 20 clients in order to add a 21st. Julian On 26 October 2013 22:00, Laing, Michael wrote: > We use shovels for inter-vhost communication like that. > > Easy and quick. Except you have to restart a cluster member to pick up the > config... > > Michael > > > On Sat, Oct 26, 2013 at 4:33 PM, Julian Lyndon-Smith > wrote: >> >> I have a scenario where I need to be able to have a multi-tenant MQ >> server, so I started using vHosts. >> >> However, I also need to be able to route / transfer / forward messages >> from a stomp client that is sending to the / vhost to another vhost >> based on the queue that the message was sent to >> >> for example, the stomp client sends to /queue/api/foo.bar , I want to >> send the message to vHost foo >> >> I can , obviously create a stomp client for each tenant, but that >> becomes real expensive in resources very quickly and was hoping that >> there would be a better way >> >> Many thanks >> >> Julian >> _______________________________________________ >> 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 michael.laing at nytimes.com Sat Oct 26 22:29:10 2013 From: michael.laing at nytimes.com (Laing, Michael) Date: Sat, 26 Oct 2013 17:29:10 -0400 Subject: [rabbitmq-discuss] forwarding between vHosts In-Reply-To: References: Message-ID: Hmm - shovels are best for mostly static setups currently... I experimented as well using federation awhile back, and that is dynamically configurable by setting policies using the mgt api. It worked, but at the time federation was new, and I found shovels to be rugged and suitable for my use case. In our next internal release I think I will start deploying some federated links however. So I would try federation if you really need to architect this way. Good luck! Michael On Sat, Oct 26, 2013 at 5:09 PM, Julian Lyndon-Smith < julian+rabbitmq at dotr.com> wrote: > Thanks for the info. I still have a couple of questions ;) > > Is there an api for adding shovels ? The tenants are dynamic (ie they > can be created at any time, and not known in advance) Or do you have > to manually edit a file ? > > You have to restart the server to add a new shovel ? Really ? If > that's a case, it's a no go - data is flying around from several > sources and I couldn't stop 20 clients in order to add a 21st. > > Julian > > > > On 26 October 2013 22:00, Laing, Michael > wrote: > > We use shovels for inter-vhost communication like that. > > > > Easy and quick. Except you have to restart a cluster member to pick up > the > > config... > > > > Michael > > > > > > On Sat, Oct 26, 2013 at 4:33 PM, Julian Lyndon-Smith > > wrote: > >> > >> I have a scenario where I need to be able to have a multi-tenant MQ > >> server, so I started using vHosts. > >> > >> However, I also need to be able to route / transfer / forward messages > >> from a stomp client that is sending to the / vhost to another vhost > >> based on the queue that the message was sent to > >> > >> for example, the stomp client sends to /queue/api/foo.bar , I want to > >> send the message to vHost foo > >> > >> I can , obviously create a stomp client for each tenant, but that > >> becomes real expensive in resources very quickly and was hoping that > >> there would be a better way > >> > >> Many thanks > >> > >> Julian > >> _______________________________________________ > >> 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 mklishin at gopivotal.com Sun Oct 27 00:06:35 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Sun, 27 Oct 2013 03:06:35 +0400 Subject: [rabbitmq-discuss] Issues after upgrade In-Reply-To: <6DB033025329784B9280ABD9516177FC68C340FB@usbpx2pmxmbx12> References: <6DB033025329784B9280ABD9516177FC68C340FB@usbpx2pmxmbx12> Message-ID: On 27 Oct 2013, at 00:56, Ganann, Kale wrote: > Error description: > {error,{could_not_write_file,"/var/lib/rabbitmq/mnesia/rabbit at node1/cluster_nodes.config", > enospc}} Your partition is out of space. MK From KGanann at kroll.com Sun Oct 27 01:07:54 2013 From: KGanann at kroll.com (Ganann, Kale) Date: Sun, 27 Oct 2013 01:07:54 +0000 Subject: [rabbitmq-discuss] Issues after upgrade In-Reply-To: References: <6DB033025329784B9280ABD9516177FC68C340FB@usbpx2pmxmbx12>, Message-ID: <6DB033025329784B9280ABD9516177FC68C341F9@usbpx2pmxmbx12> Duh. Thanks, I appreciate the help! ________________________________________ From: rabbitmq-discuss-bounces at lists.rabbitmq.com [rabbitmq-discuss-bounces at lists.rabbitmq.com] on behalf of Michael Klishin [mklishin at gopivotal.com] Sent: Saturday, October 26, 2013 6:06 PM To: Discussions about RabbitMQ Subject: Re: [rabbitmq-discuss] Issues after upgrade On 27 Oct 2013, at 00:56, Ganann, Kale wrote: > Error description: > {error,{could_not_write_file,"/var/lib/rabbitmq/mnesia/rabbit at node1/cluster_nodes.config", > enospc}} Your partition is out of space. MK _______________________________________________ rabbitmq-discuss mailing list rabbitmq-discuss at lists.rabbitmq.com https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss 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 carl.hoerberg at gmail.com Sun Oct 27 05:16:24 2013 From: carl.hoerberg at gmail.com (carlhoerberg) Date: Sat, 26 Oct 2013 22:16:24 -0700 (PDT) Subject: [rabbitmq-discuss] Unable to access management portal after upgarding erlang and RabbitMQ In-Reply-To: <52172BFC.2080705@rabbitmq.com> References: <2dc98c94.000002d4.0000000b@KAPILPC.vmware.com> <52172BFC.2080705@rabbitmq.com> Message-ID: <1382850984653-30885.post@n5.nabble.com> I'm not sure why this happens with erlang r16, but by forcing the chipers used you solve it, for instance: {ciphers,[{rsa,aes_128_cbc,sha}]} -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Unable-to-access-management-portal-after-upgarding-erlang-and-RabbitMQ-tp28946p30885.html Sent from the RabbitMQ mailing list archive at Nabble.com. From usha.narasappa at emc.com Mon Oct 28 06:03:26 2013 From: usha.narasappa at emc.com (Narasappa, Usha) Date: Mon, 28 Oct 2013 06:03:26 +0000 Subject: [rabbitmq-discuss] [rabbitmq] /var/log/messages flooded with su: (to rabbitmq) root on none In-Reply-To: <876BCE62-71F7-4D58-8AF7-1956F606F215@rabbitmq.com> References: <876BCE62-71F7-4D58-8AF7-1956F606F215@rabbitmq.com> Message-ID: Hi, You were right in pointing out that the /etc/security/* files had ^H characters. Removing the ^H characters has helped in getting rid of " linux su: pam_limits(su:session): invalid line '^H' - skipped". The following messages still keep flooding the /var/log/messages: Oct 28 06:31:09 linux su: (to rabbitmq) root on none Oct 28 06:31:24 linux su: (to rabbitmq) root on none Oct 28 06:31:39 linux su: (to rabbitmq) root on none Oct 28 06:31:54 linux su: (to rabbitmq) root on none Any idea about the reason and how to get rid of these messages? Thanks, Usha -----Original Message----- From: Michael Klishin [mailto:mklishin at gopivotal.com] Sent: Thursday, October 24, 2013 10:00 PM To: Discussions about RabbitMQ Cc: Narasappa, Usha Subject: Re: [rabbitmq-discuss] [rabbitmq] /var/log/messages flooded with su: (to rabbitmq) root on none On 24 Oct 2013, at 20:19, Narasappa, Usha wrote: > Oct 23 05:32:29 director-1-1-a su: pam_limits(su:session): invalid > line '^H' - skipped Oct 23 05:32:44 director-1-1-a su: (to rabbitmq) > root on none This question was replied to a couple of days ago: please verify that your /etc/security/* files do not have ^H in them [1]. RabbitMQ process runs as `rabbitmq` and does not do anything unsual: it starts rabbitmq-server with a preconfigured environment. 1. http://en.wikipedia.org/wiki/Backspace#.5EH MK From Rohit.Patel2 at techmahindra.com Mon Oct 28 07:31:44 2013 From: Rohit.Patel2 at techmahindra.com (Rohit Patle) Date: Mon, 28 Oct 2013 07:31:44 +0000 Subject: [rabbitmq-discuss] Rabbitmq Crash Reports. Message-ID: <27E054594442884E9A46DBCF9AE74081610481@BSDMSATMBX001.mahindrasatyam.ad> Hi Michael, After even I shifted to new Erlang version i.e RabbitMQ 3.1.5, Erlang R16B02 from RabbitMQ 3.1.5, Erlang R16B01. I am getting the Rabbitmq CRASH at-least one time in a day. FYI I am attaching the CRASH REPORT's for your reference with this mail. Kindly suggest what could be the reason and how I can over come the same? 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: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: init-1.txt URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: init-4.txt URL: From simon at rabbitmq.com Mon Oct 28 09:03:09 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Mon, 28 Oct 2013 09:03:09 +0000 Subject: [rabbitmq-discuss] forwarding between vHosts In-Reply-To: References: Message-ID: <526E284D.4000805@rabbitmq.com> At some point in the future - hopefully 3.3.0 - we intend to allow for dynamic shovels too, by the way. Cheers, Simon On 26/10/2013 10:29PM, Laing, Michael wrote: > Hmm - shovels are best for mostly static setups currently... > > I experimented as well using federation awhile back, and that is > dynamically configurable by setting policies using the mgt api. > > It worked, but at the time federation was new, and I found shovels to be > rugged and suitable for my use case. In our next internal release I > think I will start deploying some federated links however. > > So I would try federation if you really need to architect this way. > > Good luck! > > Michael > > > > On Sat, Oct 26, 2013 at 5:09 PM, Julian Lyndon-Smith > > wrote: > > Thanks for the info. I still have a couple of questions ;) > > Is there an api for adding shovels ? The tenants are dynamic (ie they > can be created at any time, and not known in advance) Or do you have > to manually edit a file ? > > You have to restart the server to add a new shovel ? Really ? If > that's a case, it's a no go - data is flying around from several > sources and I couldn't stop 20 clients in order to add a 21st. > > Julian > > > > On 26 October 2013 22:00, Laing, Michael > wrote: > > We use shovels for inter-vhost communication like that. > > > > Easy and quick. Except you have to restart a cluster member to > pick up the > > config... > > > > Michael > > > > > > On Sat, Oct 26, 2013 at 4:33 PM, Julian Lyndon-Smith > > > wrote: > >> > >> I have a scenario where I need to be able to have a multi-tenant MQ > >> server, so I started using vHosts. > >> > >> However, I also need to be able to route / transfer / forward > messages > >> from a stomp client that is sending to the / vhost to another vhost > >> based on the queue that the message was sent to > >> > >> for example, the stomp client sends to /queue/api/foo.bar , I > want to > >> send the message to vHost foo > >> > >> I can , obviously create a stomp client for each tenant, but that > >> becomes real expensive in resources very quickly and was hoping that > >> there would be a better way > >> > >> Many thanks > >> > >> Julian > >> _______________________________________________ > >> 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 > -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Mon Oct 28 09:08:06 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Mon, 28 Oct 2013 09:08:06 +0000 Subject: [rabbitmq-discuss] Error in setting policy in RabbitMQ-3.2.0 In-Reply-To: <1382752056758-30872.post@n5.nabble.com> References: <1382750470796-30871.post@n5.nabble.com> <1382752056758-30872.post@n5.nabble.com> Message-ID: <526E2976.9060008@rabbitmq.com> On 26/10/2013 2:47AM, k.madnani84 wrote: > I guess a new parameter '--policy' is being introduced in setpolicy. It > works that way. Yes. Well, I think you typoed for '--priority'. > Are there changes in any other rabbitmqctl commands? I don't believe so. Well, set_policy now also supports an "--apply-to" flag. We only really changed that because the old way was unclear and not very extensible. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Mon Oct 28 09:12:53 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Mon, 28 Oct 2013 09:12:53 +0000 Subject: [rabbitmq-discuss] Management API and monitoring In-Reply-To: References: <526A32F1.9020804@rabbitmq.com> Message-ID: <526E2A95.2080603@rabbitmq.com> On 25/10/2013 8:00PM, Jason McIntosh wrote: > Is the publish details time delayed? e.g. for the last "5 minutes" or > how is that reset? I don't see a "published since" kinda of field that > would let me calculate a rate of incoming message flow. I can image > that's a "transactions per minute" kinda rate, but that'll never hit 0 > if the queue received one message since the beginning of time and > nothing since. By default it should apply to the last five seconds, but it will be influenced by the msg_rates_incr argument mentioned here: http://hg.rabbitmq.com/rabbitmq-management/raw-file/rabbitmq_v3_2_0/priv/www/api/index.html > Now I did see this: > > * > backing_queue_status: So *technically* you shouldn't use this as it is undocumented-subject-to-change and also dependent on the backing queue implementation. However, in practice the backing_queue_status hasn't changed since 2.0.0 and nobody ever changes the backing queue implementation, so you should be good. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Mon Oct 28 09:14:55 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Mon, 28 Oct 2013 09:14:55 +0000 Subject: [rabbitmq-discuss] RabbitMQ / Erlang not running on all cores? In-Reply-To: References: <5266F434.4090309@rabbitmq.com> <526775E6.6050202@rabbitmq.com> Message-ID: <526E2B0F.8040306@rabbitmq.com> On 25/10/2013 10:00PM, Matt Pietrek wrote: > > For what it's worth, it might be useful for RabbitMQ to log the Erlang > related stuff and highlight if any thing's been changed from the defaults. Hmm, interesting idea. I'll file a bug. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From julian+rabbitmq at dotr.com Mon Oct 28 09:21:54 2013 From: julian+rabbitmq at dotr.com (Julian Lyndon-Smith) Date: Mon, 28 Oct 2013 09:21:54 +0000 Subject: [rabbitmq-discuss] forwarding between vHosts In-Reply-To: <526E284D.4000805@rabbitmq.com> References: <526E284D.4000805@rabbitmq.com> Message-ID: that's great news .. when ? ;) Also, do shovels allow you to move messages based on content ? On 28 October 2013 09:03, Simon MacMullen wrote: > At some point in the future - hopefully 3.3.0 - we intend to allow for > dynamic shovels too, by the way. > > Cheers, Simon > > On 26/10/2013 10:29PM, Laing, Michael wrote: >> >> Hmm - shovels are best for mostly static setups currently... >> >> I experimented as well using federation awhile back, and that is >> dynamically configurable by setting policies using the mgt api. >> >> It worked, but at the time federation was new, and I found shovels to be >> rugged and suitable for my use case. In our next internal release I >> think I will start deploying some federated links however. >> >> So I would try federation if you really need to architect this way. >> >> Good luck! >> >> Michael >> >> >> >> On Sat, Oct 26, 2013 at 5:09 PM, Julian Lyndon-Smith >> > wrote: >> >> Thanks for the info. I still have a couple of questions ;) >> >> Is there an api for adding shovels ? The tenants are dynamic (ie they >> can be created at any time, and not known in advance) Or do you have >> to manually edit a file ? >> >> You have to restart the server to add a new shovel ? Really ? If >> that's a case, it's a no go - data is flying around from several >> sources and I couldn't stop 20 clients in order to add a 21st. >> >> Julian >> >> >> >> On 26 October 2013 22:00, Laing, Michael > > wrote: >> > We use shovels for inter-vhost communication like that. >> > >> > Easy and quick. Except you have to restart a cluster member to >> pick up the >> > config... >> > >> > Michael >> > >> > >> > On Sat, Oct 26, 2013 at 4:33 PM, Julian Lyndon-Smith >> > > >> wrote: >> >> >> >> I have a scenario where I need to be able to have a multi-tenant >> MQ >> >> server, so I started using vHosts. >> >> >> >> However, I also need to be able to route / transfer / forward >> messages >> >> from a stomp client that is sending to the / vhost to another >> vhost >> >> based on the queue that the message was sent to >> >> >> >> for example, the stomp client sends to /queue/api/foo.bar , I >> want to >> >> send the message to vHost foo >> >> >> >> I can , obviously create a stomp client for each tenant, but that >> >> becomes real expensive in resources very quickly and was hoping >> that >> >> there would be a better way >> >> >> >> Many thanks >> >> >> >> Julian >> >> _______________________________________________ >> >> 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 >> > > -- > 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 jan.wedel at googlemail.com Sun Oct 27 11:30:33 2013 From: jan.wedel at googlemail.com (Jan Wedel) Date: Sun, 27 Oct 2013 12:30:33 +0100 Subject: [rabbitmq-discuss] Architectuaral Problem - What exchange type to choose? Message-ID: <66F4FA72-DFAA-4A73-B570-CB1590E16B45@gmail.com> Hi, we are currently using ActiveMQ with message selectors which are in fact discouraged and having weird results (like blocked consumers) and bad performance. Since I?m about to rewrite parts of the server in Erlang, I?m also evaluating Rabbit as the new MQ system. I?ve read the tutorials and parts of the other docs and trying to figure out how I could solve our problems with Rabbit. Since I couldn?t, I?m writing to you and you could point me in the right direction. Just a small summary of what needs to be done, later I explain how I plan to realise it using rabbit: Domain: We have Devices, lets say D1, D2, D3, D4 etc.. which are grouped in device groups, lets say Group ?GA" has D1, D2 and D3 (devices are unique and can only belong to one group): Group ?GA? - Device ?D1" - Device ?D2" - Device ?D3" Group ?GB? - Device ?D4? (?) * These devices are embedded devices and are not alway connected to the server. * A device may leave a message and/or retrieve pending messages when it is connected. * A group owner is also not connected to the server all the time and may connect to retrieve pending messages from a device or leave a message for a device. Use Cases: So we have the following use cases in short: - D->G: Device ?D1" connects and leaves some messages M1, M2 and disconnects. - The owner of group ?GA? connects, retrieves pending messages from ?D1? (i.e. M1, M2). - G->D: The owner of group ?GA? leaves a message for device ?D1?. - D->D: Device ?D2? connects and leaves a message for ?D3? - D->* : Device ?D3? connects and leaves a message broadcasted to all devices of the group (i.e. D1 and D2) Possible Implementation with Rabbit: Each device has an in persistent queue, called ?..to?. The group owner has a persistent queue for each device ?..from?. (Queue name may actually be exchange names) - When a device connects and wants to leave a message for the group owner, it creates a producer for queue ?G1.D1.from? and publishes the message. - When the group owner GA connects and wants to leave a message for D1, it creates a producer for queue ?G1.D1.to? and publishes the message. - When a device connects and wants to retrieve pending message from the group owner, it creates a consumer for queue ?G1.D1.to? and consumes the messages. - When the group owner GA connects and wants to retrieve pending messages from D1, it creates a consumer for queue ?G1.D1.from? and consumes the messages. - When D1 wants to send a message to D3, it creates a producer for ?G1.D3.to? - When D3 wants to broadcast a message, it creates a producer for ?G1.*.to? Now, the first parts ok, the problem may arise when direct message sending and broadcasting is involved. Intuitivly, I would be looking for an exchange to would support dynamic routing, so that I could use the routing keys with wildcards for a message ?G1.*.to? which would route the message to all ?to? queues from all devices in group G1. But the bindings and work the other way a round. You must have fixed routing keys for a message and wildcards in bindings. Is there a way to achieve this with existing rabbit feature and exchange types or do I have to build my own exchange? May with an other architecture, e.g. not using named queues but more sophisticated exchanges etc. Thanks a lot, especially when you?ve read the whole mail :) Jan From simon at rabbitmq.com Mon Oct 28 09:39:23 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Mon, 28 Oct 2013 09:39:23 +0000 Subject: [rabbitmq-discuss] forwarding between vHosts In-Reply-To: References: <526E284D.4000805@rabbitmq.com> Message-ID: <526E30CB.9030501@rabbitmq.com> On 28/10/2013 9:21AM, Julian Lyndon-Smith wrote: > that's great news .. when ? ;) We don't like to make predictions more concrete than "in the future" and less concrete than "it's in the nightly builds" I'm afraid. So it'll have to be "in the future". > Also, do shovels allow you to move messages based on content ? No. That's less likely to change. Cheers, Simon > On 28 October 2013 09:03, Simon MacMullen wrote: >> At some point in the future - hopefully 3.3.0 - we intend to allow for >> dynamic shovels too, by the way. >> >> Cheers, Simon >> >> On 26/10/2013 10:29PM, Laing, Michael wrote: >>> >>> Hmm - shovels are best for mostly static setups currently... >>> >>> I experimented as well using federation awhile back, and that is >>> dynamically configurable by setting policies using the mgt api. >>> >>> It worked, but at the time federation was new, and I found shovels to be >>> rugged and suitable for my use case. In our next internal release I >>> think I will start deploying some federated links however. >>> >>> So I would try federation if you really need to architect this way. >>> >>> Good luck! >>> >>> Michael >>> >>> >>> >>> On Sat, Oct 26, 2013 at 5:09 PM, Julian Lyndon-Smith >>> > wrote: >>> >>> Thanks for the info. I still have a couple of questions ;) >>> >>> Is there an api for adding shovels ? The tenants are dynamic (ie they >>> can be created at any time, and not known in advance) Or do you have >>> to manually edit a file ? >>> >>> You have to restart the server to add a new shovel ? Really ? If >>> that's a case, it's a no go - data is flying around from several >>> sources and I couldn't stop 20 clients in order to add a 21st. >>> >>> Julian >>> >>> >>> >>> On 26 October 2013 22:00, Laing, Michael >> > wrote: >>> > We use shovels for inter-vhost communication like that. >>> > >>> > Easy and quick. Except you have to restart a cluster member to >>> pick up the >>> > config... >>> > >>> > Michael >>> > >>> > >>> > On Sat, Oct 26, 2013 at 4:33 PM, Julian Lyndon-Smith >>> > > >>> wrote: >>> >> >>> >> I have a scenario where I need to be able to have a multi-tenant >>> MQ >>> >> server, so I started using vHosts. >>> >> >>> >> However, I also need to be able to route / transfer / forward >>> messages >>> >> from a stomp client that is sending to the / vhost to another >>> vhost >>> >> based on the queue that the message was sent to >>> >> >>> >> for example, the stomp client sends to /queue/api/foo.bar , I >>> want to >>> >> send the message to vHost foo >>> >> >>> >> I can , obviously create a stomp client for each tenant, but that >>> >> becomes real expensive in resources very quickly and was hoping >>> that >>> >> there would be a better way >>> >> >>> >> Many thanks >>> >> >>> >> Julian >>> >> _______________________________________________ >>> >> 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 >>> >> >> -- >> Simon MacMullen >> RabbitMQ, Pivotal >> _______________________________________________ >> 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 > -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Mon Oct 28 09:43:50 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Mon, 28 Oct 2013 09:43:50 +0000 Subject: [rabbitmq-discuss] Architectuaral Problem - What exchange type to choose? In-Reply-To: <66F4FA72-DFAA-4A73-B570-CB1590E16B45@gmail.com> References: <66F4FA72-DFAA-4A73-B570-CB1590E16B45@gmail.com> Message-ID: <526E31D6.4070102@rabbitmq.com> On 27/10/2013 11:30AM, Jan Wedel wrote: > - When D3 wants to broadcast a message, it creates a producer for > ?G1.*.to? > > Now, the first parts ok, the problem may arise when direct message > sending and broadcasting is involved. Intuitivly, I would be looking > for an exchange to would support dynamic routing, so that I could use > the routing keys with wildcards for a message ?G1.*.to? which would > route the message to all ?to? queues from all devices in group G1. > But the bindings and work the other way a round. You must have fixed > routing keys for a message and wildcards in bindings. So why don't you get all devices in group G1 to bind with routing key "G1.to" in addition to routing key "G1..to"? Then you just publish with routing key "G1.to" to send to all of G1. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From Shashank.Lothe at techmahindra.com Mon Oct 28 10:15:29 2013 From: Shashank.Lothe at techmahindra.com (Lothe Shashank) Date: Mon, 28 Oct 2013 10:15:29 +0000 Subject: [rabbitmq-discuss] Queries regarding rabbitmq-C APIs Message-ID: Hi, I have few queries regarding rabbitmq-C APIs. 1. Is there is a way to check from rabbitmq-c library function, if the network cable is pulled out? Why amqp_basic_publish API returns success if network cable is pulled out from client? 2. Establish connection with broker. Pull out network cable, call amqp_channel_close. It crashes. 3. Establish connection with broker for auto delete queue and do "rabbitmqctl stop_app" on broker. The connection is closed automatically. Now call amqp_destroy_connection. It crashes. Can someone 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 julian+rabbitmq at dotr.com Mon Oct 28 13:44:25 2013 From: julian+rabbitmq at dotr.com (Julian Lyndon-Smith) Date: Mon, 28 Oct 2013 13:44:25 +0000 Subject: [rabbitmq-discuss] sending stomp message to vHost Message-ID: If I have a stomp client (login: a, passcode b) that is connected to a vHost called "foo", and the user credentials also allow access to a vHost "bar", how can the client send a message to vHost "bar" ? I have tried adding the host:bar to the send frame but seemed to have no effect. if I logon to the management console with the a,b credentials I can send a message to a topic in vHost bar. thanks Julian From emile at rabbitmq.com Mon Oct 28 14:46:06 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Mon, 28 Oct 2013 14:46:06 +0000 Subject: [rabbitmq-discuss] sending stomp message to vHost In-Reply-To: References: Message-ID: <526E78AE.4080505@rabbitmq.com> Hi, On 28/10/13 13:44, Julian Lyndon-Smith wrote: > If I have a stomp client (login: a, passcode b) that is connected to a > vHost called "foo", and the user credentials also allow access to a > vHost "bar", how can the client send a message to vHost "bar" ? The client can maintain two separate connections for the two vhosts and send messages on the appropriate connection. -Emile From daniel.mitchell at gmail.com Mon Oct 28 12:55:22 2013 From: daniel.mitchell at gmail.com (Daniel Mitchell) Date: Mon, 28 Oct 2013 05:55:22 -0700 (PDT) Subject: [rabbitmq-discuss] SSL Certification Verification Fail Message-ID: Hello, I've been trying to get mosquitto_sub to connect to RabbitMQ, when I perform a test using test.mosquitto.org and their certificate it works fine and when I connect to my RabbitMQ using OpenSSL s_client and I supply the CAfile it performs the handshake correctly. However this fails when sending the CAfile via mosquitto_sub vagrant at precise32:/opt/data$ ./mosquitto-1.2.2/client/mosquitto_sub -h 54.229.163.21 -p 8883 -t "#" -d --cafile DigiCertEA.pem --tls-version tlsv1 Client mosqsub/3530-precise32 sending CONNECT OpenSSL Error: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed Error: Protocol error RabbitMQ = 3.2.0 OpenSSL = 1.0.1 Erlang = R16B This is the detail from my log in RabbitMQ. The CAfiles have slightly different names but using openssl x509 -in -text -noout gives the same serial number =ERROR REPORT==== 28-Oct-2013::12:52:02 === SSL: certify: tls_connection.erl:2286:Fatal error: certificate unknown =ERROR REPORT==== 28-Oct-2013::12:52:07 === ** Generic server <0.594.0> terminating ** Last message in was {inet_async,#Port<0.14157>,35762,{ok,#Port<0.15830>}} ** When Server state == {state, {rabbit_mqtt_sup,start_ssl_client, [[{cacertfile,"/etc/ssl/certs/DigiCertCA.pem"}, {certfile, "/etc/ssl/certs/star_*****_****_net_chain.pem"}, {keyfile, "/etc/ssl/private/*****.****.net.key"}, {verify,verify_none}, {fail_if_no_peer_cert,false}]]}, #Port<0.14157>,35762} ** Reason for termination == ** {timeout,{gen_server2,call, [<0.596.0>, {go,#Port<0.15830>, #Fun}]}} =ERROR REPORT==== 28-Oct-2013::12:52:07 === ** Generic server <0.596.0> terminating ** Last message in was {go,#Port<0.15830>,#Fun} ** When Server state == undefined ** Reason for termination == ** {{badmatch,{error,{ssl_upgrade_error,{tls_alert,"certificate unknown"}}}}, [{rabbit_mqtt_reader,handle_call,3,[]}, {gen_server2,handle_msg,2,[]}, {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,239}]}]} Is this a problem with RabbitMQ or perhaps the mosquitto_sub client? If it belongs to the latter I guess I should redirect my question :) Cheers, Dan -------------- next part -------------- An HTML attachment was scrubbed... URL: From daniel.mitchell at gmail.com Mon Oct 28 12:59:14 2013 From: daniel.mitchell at gmail.com (Daniel Mitchell) Date: Mon, 28 Oct 2013 05:59:14 -0700 (PDT) Subject: [rabbitmq-discuss] SSL Certificate Verfitcation failures Message-ID: Hello, I've been trying to get mosquitto_sub to connect to RabbitMQ, when I perform a test using test.mosquitto.org and their certificate it works fine and when I connect to my RabbitMQ using OpenSSL s_client and I supply the CAfile it performs the handshake correctly. However this fails when sending the CAfile via mosquitto_sub vagrant at precise32:/opt/data$ ./mosquitto-1.2.2/client/ mosquitto_sub -h **.***.***.** -p 8883 -t "#" -d --cafile DigiCertEA.pem --tls-version tlsv1 Client mosqsub/3530-precise32 sending CONNECT OpenSSL Error: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed Error: Protocol error RabbitMQ = 3.2.0 OpenSSL = 1.0.1 Erlang = R16B This is the detail from my log in RabbitMQ. The CAfiles have slightly different names but using openssl x509 -in -text -noout gives the same serial number =ERROR REPORT==== 28-Oct-2013::12:52:02 === SSL: certify: tls_connection.erl:2286:Fatal error: certificate unknown =ERROR REPORT==== 28-Oct-2013::12:52:07 === ** Generic server <0.594.0> terminating ** Last message in was {inet_async,#Port<0.14157>,35762,{ok,#Port<0.15830>}} ** When Server state == {state, {rabbit_mqtt_sup,start_ssl_client, [[{cacertfile,"/etc/ssl/certs/DigiCertCA.pem"}, {certfile, "/etc/ssl/certs/star_*****_****_net_chain.pem"}, {keyfile, "/etc/ssl/private/*****.****.net.key"}, {verify,verify_none}, {fail_if_no_peer_cert,false}]]}, #Port<0.14157>,35762} ** Reason for termination == ** {timeout,{gen_server2,call, [<0.596.0>, {go,#Port<0.15830>, #Fun}]}} =ERROR REPORT==== 28-Oct-2013::12:52:07 === ** Generic server <0.596.0> terminating ** Last message in was {go,#Port<0.15830>,#Fun} ** When Server state == undefined ** Reason for termination == ** {{badmatch,{error,{ssl_upgrade_error,{tls_alert,"certificate unknown"}}}}, [{rabbit_mqtt_reader,handle_call,3,[]}, {gen_server2,handle_msg,2,[]}, {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,239}]}]} Is this a problem with RabbitMQ or perhaps the mosquitto_sub client? If it belongs to the latter I guess I should redirect my question :) Cheers, Dan -------------- next part -------------- An HTML attachment was scrubbed... URL: From fahecs at gmail.com Mon Oct 28 15:16:09 2013 From: fahecs at gmail.com (=?UTF-8?Q?F=C3=A1bio_Silva?=) Date: Mon, 28 Oct 2013 08:16:09 -0700 (PDT) Subject: [rabbitmq-discuss] PHP receive.php exception in tutorial Message-ID: <74980e72-f626-4fe1-9b63-89c4317ab9a4@googlegroups.com> I've just downloaded the rabbitmq server and copied the sender/receiver tutorial examples described here: http://www.rabbitmq.com/tutorials/tutorial-one-php.html and that can be found here: https://github.com/rabbitmq/rabbitmq-tutorials/tree/master/php But when my receive.php finishes the queues, it throw an exemption: PHP Fatal error: Uncaught exception 'PhpAmqpLib\Exception\AMQPRuntimeException' with message 'Error reading data. Received 0 instead of expected 7 bytes' in /var/www/rabbitmq/vendor/videlalvaro/php-amqplib/PhpAmqpLib/Wire/IO/StreamIO.php:50 Stack trace: #0 /var/www/rabbitmq/vendor/videlalvaro/php-amqplib/PhpAmqpLib/Wire/AMQPReader.php(128): PhpAmqpLib\Wire\IO\StreamIO->read(7) #1 /var/www/rabbitmq/vendor/videlalvaro/php-amqplib/PhpAmqpLib/Wire/AMQPReader.php(88): PhpAmqpLib\Wire\AMQPReader->rawread(7) #2 /var/www/rabbitmq/vendor/videlalvaro/php-amqplib/PhpAmqpLib/Connection/AbstractConnection.php(311): PhpAmqpLib\Wire\AMQPReader->read(7) #3 /var/www/rabbitmq/vendor/videlalvaro/php-amqplib/PhpAmqpLib/Connection/AbstractConnection.php(344): PhpAmqpLib\Connection\AbstractConnection->wait_frame(0) #4 /var/www/rabbitmq/vendor/videlalvaro/php-amqplib/PhpAmqpLib/Channel/AbstractChannel.php(121): PhpAmqpLib\Connection\AbstractConnection->wait_channel(1, 0) #5 /var/www/rabbitmq/vendor/videlalvaro/php-amqplib/PhpAmqpLib/Channel/Abstrac in /var/www/rabbitmq/vendor/videlalvaro/php-amqplib/PhpAmqpLib/Wire/IO/StreamIO.php on line 50 -------------- next part -------------- An HTML attachment was scrubbed... URL: From reparker23 at gmail.com Mon Oct 28 15:25:01 2013 From: reparker23 at gmail.com (Robert Parker) Date: Mon, 28 Oct 2013 08:25:01 -0700 (PDT) Subject: [rabbitmq-discuss] Creating a rabbitmq.config for federation In-Reply-To: References: Message-ID: Anybody? Are there any white papers anywhere on how to configure federation in rabbitmq.config similar to what I'm doing above? Its much easier to deploy a single file to each system to configure rabbitmq than run a set of rabbitmqctl commands in a script. Thanks, Robert On Tuesday, October 22, 2013 2:18:01 PM UTC-5, Robert Parker wrote: > > I'm having trouble finding good examples of how to configure > a rabbitmq.config file to do what I've been doing with a set of rabbitmqctl > commands. Here's the script I use to configure clustering and federation > for one of my rabbitmq clusters: > > #!/bin/bash > > rabbitmqctl stop_app > rabbitmqctl reset > rabbitmqctl join_cluster rabbit at rabbit2 > rabbitmqctl start_app > rabbitmq-plugins enable rabbitmq_federation > rabbitmq-plugins enable rabbitmq_federation_management > rabbitmq-plugins enable rabbitmq_management > service rabbitmq-server restart > > rabbitmqctl set_parameter federation-upstream cluster1-upstream > '{"uri":["amqp://rabbit3.example.com","amqp://rabbit4.example.com > "],"expires":3600000}' > rabbitmqctl set_policy federate-mything "^Mything$" > '{"federation-upstream-set":"all"}' 0 > > > > How do I convert that into a format that will work in a rabbitmq.config so > that all I need to do is drop this config file in, reset the node, then > restart rabbitmq-server to get this configuration working? Also, if you > put your cluster config into rabbitmq.config on both nodes to be > clustered, will they automatically set the > correct /var/lib/rabbitmq/.erlang.cookie or must that step still be done > manually? > > Thanks in advance > -------------- next part -------------- An HTML attachment was scrubbed... URL: From emile at rabbitmq.com Mon Oct 28 15:31:53 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Mon, 28 Oct 2013 15:31:53 +0000 Subject: [rabbitmq-discuss] SSL Certificate Verfitcation failures In-Reply-To: References: Message-ID: <526E8369.6010909@rabbitmq.com> Hi David, On 28/10/13 12:59, Daniel Mitchell wrote: > RabbitMQ = 3.2.0 > OpenSSL = 1.0.1 > Erlang = R16B > > =ERROR REPORT==== 28-Oct-2013::12:52:02 === > SSL: certify: tls_connection.erl:2286:Fatal error: certificate unknown tls_connection.erl appeared in R16B01. I'm not sure how you could have got that error using R16B. If you are using a patched Erlang VM then that might be part of the problem. The "certificate unknown" error is very generic, according to the OpenSSL documentation: "Some other (unspecified) issue arose in processing the certificate, rendering it unacceptable." I would suggest using the techniques described in https://www.rabbitmq.com/troubleshooting-ssl.html to acquire more diagnostic information. Do you get the same error with a certificate that you generate yourself? -Emile From simon at rabbitmq.com Mon Oct 28 15:37:41 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Mon, 28 Oct 2013 15:37:41 +0000 Subject: [rabbitmq-discuss] Creating a rabbitmq.config for federation In-Reply-To: References: Message-ID: <526E84C5.4070500@rabbitmq.com> Did you see any of the responses here: http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2013-October/031243.html ? If you are using the google group you should be aware that: 1) We are not in control of it, and the person who was in control of it has vanished. 2) It seems mediocre at forwarding messages from the mailing list. Cheers, Simon On 28/10/2013 3:25PM, Robert Parker wrote: > Anybody? Are there any white papers anywhere on how to configure > federation in rabbitmq.config similar to what I'm doing above? Its much > easier to deploy a single file to each system to configure rabbitmq than > run a set of rabbitmqctl commands in a script. > > Thanks, > Robert > > On Tuesday, October 22, 2013 2:18:01 PM UTC-5, Robert Parker wrote: > > I'm having trouble finding good examples of how to configure > a rabbitmq.config file to do what I've been doing with a set of > rabbitmqctl commands. Here's the script I use to configure > clustering and federation for one of my rabbitmq clusters: > > #!/bin/bash > > rabbitmqctl stop_app > rabbitmqctl reset > rabbitmqctl join_cluster rabbit at rabbit2 > rabbitmqctl start_app > rabbitmq-plugins enable rabbitmq_federation > rabbitmq-plugins enable rabbitmq_federation_management > rabbitmq-plugins enable rabbitmq_management > service rabbitmq-server restart > > rabbitmqctl set_parameter federation-upstream cluster1-upstream > '{"uri":["amqp://rabbit3.example.com > ","amqp://rabbit4.example.com > "],"expires":3600000}' > rabbitmqctl set_policy federate-mything "^Mything$" > '{"federation-upstream-set":"all"}' 0 > > > > How do I convert that into a format that will work in a > rabbitmq.config so that all I need to do is drop this config file > in, reset the node, then restart rabbitmq-server to get this > configuration working? Also, if you put your cluster config into > rabbitmq.config on both nodes to be clustered, will they > automatically set the correct /var/lib/rabbitmq/.erlang.cookie or > must that step still be done manually? > > Thanks in advance > > > > _______________________________________________ > 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 mklishin at gopivotal.com Mon Oct 28 15:40:49 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Mon, 28 Oct 2013 19:40:49 +0400 Subject: [rabbitmq-discuss] PHP receive.php exception in tutorial In-Reply-To: <74980e72-f626-4fe1-9b63-89c4317ab9a4@googlegroups.com> References: <74980e72-f626-4fe1-9b63-89c4317ab9a4@googlegroups.com> Message-ID: On 28 Oct 2013, at 19:16, F?bio Silva wrote: > PHP Fatal error: Uncaught exception 'PhpAmqpLib\Exception\AMQPRuntimeException' with message 'Error reading data. Received 0 instead of expected 7 bytes' in /var/www/rabbitmq/vendor/videlalvaro/php-amqplib/PhpAmqpLib/Wire/IO/StreamIO.php:50 > Stack trace: What?s in RabbitMQ log? There was an issue fixed in the client you use that made it handle empty socket reads in a sensible way. I suspect this is an authentication issue. MK From mklishin at gopivotal.com Mon Oct 28 15:48:19 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Mon, 28 Oct 2013 19:48:19 +0400 Subject: [rabbitmq-discuss] PHP receive.php exception in tutorial In-Reply-To: <74980e72-f626-4fe1-9b63-89c4317ab9a4@googlegroups.com> References: <74980e72-f626-4fe1-9b63-89c4317ab9a4@googlegroups.com> Message-ID: <518AB362-16F0-4958-B357-543C12737D61@rabbitmq.com> On 28 Oct 2013, at 19:16, F?bio Silva wrote: > PHP Fatal error: Uncaught exception 'PhpAmqpLib\Exception\AMQPRuntimeException' with message 'Error reading data. Received 0 instead of expected 7 bytes' in /var/www/rabbitmq/vendor/videlalvaro/php-amqplib/PhpAmqpLib/Wire/IO/StreamIO.php:50 > Stack trace: What?s in RabbitMQ log? There was an issue fixed in the client you use that made it handle empty socket reads in a sensible way. I suspect this is an authentication issue. MK From daniel.mitchell at gmail.com Mon Oct 28 17:11:02 2013 From: daniel.mitchell at gmail.com (Daniel Mitchell) Date: Mon, 28 Oct 2013 17:11:02 +0000 Subject: [rabbitmq-discuss] SSL Certificate Verfitcation failures In-Reply-To: <526E8369.6010909@rabbitmq.com> References: <526E8369.6010909@rabbitmq.com> Message-ID: Hi Emile, Apologies I am using R16B01 I also tested R16B and had the same result but with ssl_connection.erl instead of tls_connection.erl I've been testing a few configurations over the weekend on this. I'm actually getting that error with the test certificates I made following the SSL example on the RabbitMQ SSL page. Again just with the mosquitto_sub client and not openssl s_client Running through the troubleshooting steps show's that erlang does indeed support tlsv1 and that openssl has validated my handshake by creating a local server and client. Very strange issue, I think it sways more to the mosquitto_sub client now though... Cheers, Dan On 28 October 2013 15:31, Emile Joubert wrote: > > Hi David, > > On 28/10/13 12:59, Daniel Mitchell wrote: > > > RabbitMQ = 3.2.0 > > OpenSSL = 1.0.1 > > Erlang = R16B > > > > > =ERROR REPORT==== 28-Oct-2013::12:52:02 === > > SSL: certify: tls_connection.erl:2286:Fatal error: certificate unknown > > tls_connection.erl appeared in R16B01. I'm not sure how you could have > got that error using R16B. If you are using a patched Erlang VM then > that might be part of the problem. > > The "certificate unknown" error is very generic, according to the > OpenSSL documentation: "Some other (unspecified) issue arose in > processing the certificate, rendering it unacceptable." > > I would suggest using the techniques described in > https://www.rabbitmq.com/troubleshooting-ssl.html > to acquire more diagnostic information. > Do you get the same error with a certificate that you generate yourself? > > > > > -Emile > > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From videlalvaro at gmail.com Mon Oct 28 17:58:17 2013 From: videlalvaro at gmail.com (Alvaro Videla) Date: Mon, 28 Oct 2013 18:58:17 +0100 Subject: [rabbitmq-discuss] PHP receive.php exception in tutorial In-Reply-To: <518AB362-16F0-4958-B357-543C12737D61@rabbitmq.com> References: <74980e72-f626-4fe1-9b63-89c4317ab9a4@googlegroups.com> <518AB362-16F0-4958-B357-543C12737D61@rabbitmq.com> Message-ID: Do you have the right credentials, user, password and vhost? On Monday, October 28, 2013, Michael Klishin wrote: > On 28 Oct 2013, at 19:16, F?bio Silva > > wrote: > > > PHP Fatal error: Uncaught exception > 'PhpAmqpLib\Exception\AMQPRuntimeException' with message 'Error reading > data. Received 0 instead of expected 7 bytes' in > /var/www/rabbitmq/vendor/videlalvaro/php-amqplib/PhpAmqpLib/Wire/IO/StreamIO.php:50 > > Stack trace: > > What?s in RabbitMQ log? > > There was an issue fixed in the client you use that made it handle empty > socket > reads in a sensible way. > > I suspect this is an authentication issue. > > MK > > _______________________________________________ > 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 graeme at sudo.ca Mon Oct 28 19:00:09 2013 From: graeme at sudo.ca (Graeme N) Date: Mon, 28 Oct 2013 12:00:09 -0700 Subject: [rabbitmq-discuss] Feature Req / Bug list In-Reply-To: <526A49E0.3010707@rabbitmq.com> References: <874A73DF-5283-4508-8AD2-43BC53DC9196@rabbitmq.com> <526A49E0.3010707@rabbitmq.com> Message-ID: > Certainly I can populate 100 queues with 1,000 messages each in a rather > small fraction of a second with the PerfTest tool ( > http://www.rabbitmq.com/java-tools.html) if the same message goes to all > queues 1,000 times, or in less than 10 seconds if each message is distinct Quick question about using this perftest tool. I'm trying to use it to populate my test queues quicker for future tests, but I can't seem to get it to leave the messages in the queues. With a queue called "test", it was enough with amqp-publish to set the routing key to "test", and messages would get delivered to that queue. However, with this tool, I can see messages being delivered to the cluster, but they never make it to the queue or are retained there: ./runjava.sh com.rabbitmq.examples.PerfTest -k "test" -C 100000 -x 1 -y 0 -s 4 -f persistent (I'm assuming the -s size is in bytes) You're right that it does seem much faster, but without it actually storing to a queue it's hard to say whether it's even attempting the same operations. It appears as if this tool uses the "direct" exchange, which doesn't route anywhere, and so messages are immediately dropped. I can't seem to figure out how to use the default exchange, unlike amqp-publish, specifying the empty string as an exchange just causes a big java stack dump with this tool. Any suggestions? Graeme -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael at rabbitmq.com Mon Oct 28 19:18:16 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Mon, 28 Oct 2013 23:18:16 +0400 Subject: [rabbitmq-discuss] Feature Req / Bug list In-Reply-To: References: <874A73DF-5283-4508-8AD2-43BC53DC9196@rabbitmq.com> <526A49E0.3010707@rabbitmq.com> Message-ID: <61705EBA-366B-4B77-BBFE-D7B2E14F3E5A@rabbitmq.com> On 28 Oct 2013, at 23:00, Graeme N wrote: > With a queue called "test", it was enough with amqp-publish to set the routing key to "test", and messages would get delivered to that queue. This means that amqp-publish uses default exchange for publishing. PerfTest can use any exchange. > However, with this tool, I can see messages being delivered to the cluster, but they never make it to the queue or are retained there: > > ./runjava.sh com.rabbitmq.examples.PerfTest -k "test" -C 100000 -x 1 -y 0 -s 4 -f persistent Add -e ?? -t ?direct? to publish using default exchange. Perhaps PerfTest should use default exchange unless exchange name is provided. MK From graeme at sudo.ca Mon Oct 28 19:28:56 2013 From: graeme at sudo.ca (Graeme N) Date: Mon, 28 Oct 2013 12:28:56 -0700 Subject: [rabbitmq-discuss] Feature Req / Bug list In-Reply-To: <61705EBA-366B-4B77-BBFE-D7B2E14F3E5A@rabbitmq.com> References: <874A73DF-5283-4508-8AD2-43BC53DC9196@rabbitmq.com> <526A49E0.3010707@rabbitmq.com> <61705EBA-366B-4B77-BBFE-D7B2E14F3E5A@rabbitmq.com> Message-ID: On Mon, Oct 28, 2013 at 12:18 PM, Michael Klishin wrote: > > However, with this tool, I can see messages being delivered to the > cluster, but they never make it to the queue or are retained there: > > > > ./runjava.sh com.rabbitmq.examples.PerfTest -k "test" -C 100000 -x 1 -y > 0 -s 4 -f persistent > > Add -e ?? -t ?direct? to publish using default exchange. > > Perhaps PerfTest should use default exchange unless exchange name is > provided. > That's the behaviour I'd expect, but isn't good if someone runs against a production cluster (which isn't a great idea, but still, it might happen). In any case, -t direct doesn't seem to help, getting the same stack traces. Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; reason: {#method(reply-code=403, reply-text=ACCESS_REFUSED - operation not permitted on the default exchange, class-id=40, method-id=10), null, ""} I don't see any options to this class to pass guest/guest default authentication to it, which might be what's happening here. Is there an environment variable or something I'm missing to set the login username and password? Graeme -------------- next part -------------- An HTML attachment was scrubbed... URL: From brianin3d at yahoo.com Mon Oct 28 19:32:17 2013 From: brianin3d at yahoo.com (Brian Hammond) Date: Mon, 28 Oct 2013 12:32:17 -0700 (PDT) Subject: [rabbitmq-discuss] abnormally large memory use in "binaries" In-Reply-To: <1382458816.47116.YahooMailNeo@web122003.mail.ne1.yahoo.com> References: <1382124784.35713.YahooMailNeo@web122001.mail.ne1.yahoo.com> <52655DF1.1050605@rabbitmq.com> <1382381403.12000.YahooMailNeo@web122001.mail.ne1.yahoo.com> <5266621C.7090403@rabbitmq.com> <1382458816.47116.YahooMailNeo@web122003.mail.ne1.yahoo.com> Message-ID: <1382988737.24921.YahooMailNeo@web122005.mail.ne1.yahoo.com> Sorry for the delay.? Here is the output with the netstat output. On Tuesday, October 22, 2013 12:20 PM, Brian Hammond wrote: Running this now: ?netstat -t -n | grep :5672 As far as the prefetch goes, we are using a value of 500. When using a value like 1, we saw pretty bad performance. My understanding of pre-fetch was the consumer asks for that number of messages and then has to send an acknowledge before more messages are sent to it. If we have memory issues when there are almost no messages then our pre-fetch values seems an unlikely cause. If we set prefetch really low, I could see us having a lot of messages in the queue. Setting it high or unlimited should actually be better for the server. Nonetheless, I'll try it after this current batch with netstat runs to explosion. Still no luck reproducing the issue with a simple test program... On Tuesday, October 22, 2013 7:31 AM, Emile Joubert wrote: Hi Brian, On 21/10/13 19:50, Brian Hammond wrote: > Do you have a specific set of arguments in mind for netstat? If not I'll > go look at the man page. netstat shows this information by default. > I'll provide more information as my tests progress. From the reports it appears that all consumers are either using unlimited prefetch or a value of 500. It is likely that the broker memory use will be reduced if consumers use a much lower prefetch count, say 1. Would it be possible for you to try that? The reason why it might help in your particular case is most of the memory is being consumed by the Erlang processes that write to the network. I realise that it might be difficult for you to make this change to all consumers. Let me know if this is too onerous so we can discuss alternatives. -Emile -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: rabbit-report-with-netstat.tgz Type: application/octet-stream Size: 471807 bytes Desc: not available URL: From michael at rabbitmq.com Mon Oct 28 19:33:57 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Mon, 28 Oct 2013 23:33:57 +0400 Subject: [rabbitmq-discuss] Feature Req / Bug list In-Reply-To: References: <874A73DF-5283-4508-8AD2-43BC53DC9196@rabbitmq.com> <526A49E0.3010707@rabbitmq.com> <61705EBA-366B-4B77-BBFE-D7B2E14F3E5A@rabbitmq.com> Message-ID: On 28 Oct 2013, at 23:28, Graeme N wrote: > Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; reason: {#method(reply-code=403, reply-text=ACCESS_REFUSED - operation not permitted on the default exchange, class-id=40, method-id=10), null, ""} > > I don't see any options to this class to pass guest/guest default authentication to it, which might be what's happening here. Is there an environment variable or something I'm missing to set the login username and password? It is not an authentication failure. PerfTest tries to modify the exchange you provide and predefined exchanges cannot be modified. You need to use a custom exchange, possibly created with a script. MK From graeme at sudo.ca Mon Oct 28 19:53:31 2013 From: graeme at sudo.ca (Graeme N) Date: Mon, 28 Oct 2013 12:53:31 -0700 Subject: [rabbitmq-discuss] Feature Req / Bug list In-Reply-To: References: <874A73DF-5283-4508-8AD2-43BC53DC9196@rabbitmq.com> <526A49E0.3010707@rabbitmq.com> <61705EBA-366B-4B77-BBFE-D7B2E14F3E5A@rabbitmq.com> Message-ID: On Mon, Oct 28, 2013 at 12:33 PM, Michael Klishin wrote: > It is not an authentication failure. PerfTest tries to modify the exchange > you provide and predefined > exchanges cannot be modified. > Ahhh, that makes sense. Does make PerfTest less of a generally useful tool, however. > You need to use a custom exchange, possibly created with a script. > Ok. Is there a simple way to replicate the default exchange's rules (ie routing key == destination queue)? Or do I have to manually set up rules for each queue I add if it's not the default queue? Graeme -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael at rabbitmq.com Mon Oct 28 20:07:45 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Tue, 29 Oct 2013 00:07:45 +0400 Subject: [rabbitmq-discuss] Feature Req / Bug list In-Reply-To: References: <874A73DF-5283-4508-8AD2-43BC53DC9196@rabbitmq.com> <526A49E0.3010707@rabbitmq.com> <61705EBA-366B-4B77-BBFE-D7B2E14F3E5A@rabbitmq.com> Message-ID: <92E1A6B8-E4D1-47C5-A108-9E254EC2EF9D@rabbitmq.com> On 28 Oct 2013, at 23:53, Graeme N wrote: > Ok. Is there a simple way to replicate the default exchange's rules (ie routing key == destination queue)? Or do I have to manually set up rules for each queue I add if it's not the default queue? There is no such thing as default queue. Every queue is automatically bound to the default exchange in the same vhost with routing key = queue name. You can bind other exchanges to a group of queues using the same rule manually. Or just use a fanout with 1 queue bound to it. MK From graeme at sudo.ca Mon Oct 28 20:14:35 2013 From: graeme at sudo.ca (Graeme N) Date: Mon, 28 Oct 2013 13:14:35 -0700 Subject: [rabbitmq-discuss] Feature Req / Bug list In-Reply-To: <92E1A6B8-E4D1-47C5-A108-9E254EC2EF9D@rabbitmq.com> References: <874A73DF-5283-4508-8AD2-43BC53DC9196@rabbitmq.com> <526A49E0.3010707@rabbitmq.com> <61705EBA-366B-4B77-BBFE-D7B2E14F3E5A@rabbitmq.com> <92E1A6B8-E4D1-47C5-A108-9E254EC2EF9D@rabbitmq.com> Message-ID: On Mon, Oct 28, 2013 at 1:07 PM, Michael Klishin wrote: > On 28 Oct 2013, at 23:53, Graeme N wrote: > > > Ok. Is there a simple way to replicate the default exchange's rules (ie > routing key == destination queue)? Or do I have to manually set up rules > for each queue I add if it's not the default queue? > > There is no such thing as default queue. Oh sorry, I meant "default exchange". Basically just want an exchange I can use with this tool with the same ruleset as the default exchange, but it doesn't sound like that's super easy to accomplish. I'm going a different direction now anyway, the go amqp libs are easy to use and seem performant, so I'm just whipping up a little populator in go. Seems to be doing the job, so I think I'm gonna forget about PerfTest for now. Thanks for the advice though! Graeme -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael at rabbitmq.com Mon Oct 28 20:22:40 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Tue, 29 Oct 2013 00:22:40 +0400 Subject: [rabbitmq-discuss] Feature Req / Bug list In-Reply-To: References: <874A73DF-5283-4508-8AD2-43BC53DC9196@rabbitmq.com> <526A49E0.3010707@rabbitmq.com> <61705EBA-366B-4B77-BBFE-D7B2E14F3E5A@rabbitmq.com> <92E1A6B8-E4D1-47C5-A108-9E254EC2EF9D@rabbitmq.com> Message-ID: On 29 Oct 2013, at 00:14, Graeme N wrote: > I'm going a different direction now anyway, the go amqp libs are easy to use and seem performant, so I'm just whipping up a little populator in go. Seems to be doing the job, so I think I'm gonna forget about PerfTest for now. Take a look at https://github.com/gocardless/amqpc, too. MK From rafareyeslopez at gmail.com Mon Oct 28 18:36:44 2013 From: rafareyeslopez at gmail.com (Rafa Reyes) Date: Mon, 28 Oct 2013 11:36:44 -0700 (PDT) Subject: [rabbitmq-discuss] Restarting Consumer appears often Message-ID: <31c17a04-1e42-45f9-aae4-9269523ee599@googlegroups.com> Hi all, I'm using RabbitMQ along with Spring 3. The thing is all works fine but i see usually in logs the following trace: (SimpleMessageListenerContainer.java:run:550) - Restarting Consumer: tag=[amq.ctag-HkT6eNPrENhXeRJ-jg7qKw], channel=Cached Rabbit Channel: AMQChannel(amqp://guest at 127.0.1.1:5672/,2038), acknowledgeMode=AUTO local queue size=0 Why this might be? Thanks in advance. -------------- next part -------------- An HTML attachment was scrubbed... URL: From graeme at sudo.ca Mon Oct 28 20:31:08 2013 From: graeme at sudo.ca (Graeme N) Date: Mon, 28 Oct 2013 13:31:08 -0700 Subject: [rabbitmq-discuss] Feature Req / Bug list In-Reply-To: References: <874A73DF-5283-4508-8AD2-43BC53DC9196@rabbitmq.com> <526A49E0.3010707@rabbitmq.com> <61705EBA-366B-4B77-BBFE-D7B2E14F3E5A@rabbitmq.com> <92E1A6B8-E4D1-47C5-A108-9E254EC2EF9D@rabbitmq.com> Message-ID: Ran into another interesting issue which I'm not gonna create a full test case for right now, as I'm trying to focus on clustering problems, but I thought it was worth mentioning. It looks like if you have a bunch of persistent queues full of messages (~10k each in this case), and you delete them via the API and then recreate them immediately, Rabbit won't have finished deleting messages out of mnesia / disk, and so they'll reappear with some subset of the messages that were present before queue deletion. This is definitely not the behaviour I'd expect, although it makes sense if queue deletion happens asynchronously. Even so, might be worth revisiting the behaviour and making sure old messages are purged on queue deletion before letting a "new" queue with the same name be created. Graeme On Mon, Oct 28, 2013 at 1:22 PM, Michael Klishin wrote: > On 29 Oct 2013, at 00:14, Graeme N wrote: > > > I'm going a different direction now anyway, the go amqp libs are easy to > use and seem performant, so I'm just whipping up a little populator in go. > Seems to be doing the job, so I think I'm gonna forget about PerfTest for > now. > > Take a look at https://github.com/gocardless/amqpc, too. > > MK > _______________________________________________ > 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 matthias at rabbitmq.com Mon Oct 28 20:36:41 2013 From: matthias at rabbitmq.com (Matthias Radestock) Date: Mon, 28 Oct 2013 20:36:41 +0000 Subject: [rabbitmq-discuss] Feature Req / Bug list In-Reply-To: References: <874A73DF-5283-4508-8AD2-43BC53DC9196@rabbitmq.com> <526A49E0.3010707@rabbitmq.com> <61705EBA-366B-4B77-BBFE-D7B2E14F3E5A@rabbitmq.com> <92E1A6B8-E4D1-47C5-A108-9E254EC2EF9D@rabbitmq.com> Message-ID: <526ECAD9.2030703@rabbitmq.com> On 28/10/13 20:31, Graeme N wrote: > It looks like if you have a bunch of persistent queues full of messages > (~10k each in this case), and you delete them via the API and then > recreate them immediately, Rabbit won't have finished deleting messages > out of mnesia / disk, and so they'll reappear with some subset of the > messages that were present before queue deletion. I can assure you that is not what happens. Looking forward to your test code to prove me wrong :) Matthias. From graeme at sudo.ca Mon Oct 28 20:40:36 2013 From: graeme at sudo.ca (Graeme N) Date: Mon, 28 Oct 2013 13:40:36 -0700 Subject: [rabbitmq-discuss] Feature Req / Bug list In-Reply-To: <526ECAD9.2030703@rabbitmq.com> References: <874A73DF-5283-4508-8AD2-43BC53DC9196@rabbitmq.com> <526A49E0.3010707@rabbitmq.com> <61705EBA-366B-4B77-BBFE-D7B2E14F3E5A@rabbitmq.com> <92E1A6B8-E4D1-47C5-A108-9E254EC2EF9D@rabbitmq.com> <526ECAD9.2030703@rabbitmq.com> Message-ID: On Mon, Oct 28, 2013 at 1:36 PM, Matthias Radestock wrote: > On 28/10/13 20:31, Graeme N wrote: > >> It looks like if you have a bunch of persistent queues full of messages >> (~10k each in this case), and you delete them via the API and then >> recreate them immediately, Rabbit won't have finished deleting messages >> out of mnesia / disk, and so they'll reappear with some subset of the >> messages that were present before queue deletion. >> > > I can assure you that is not what happens. > > Looking forward to your test code to prove me wrong :) > Well, if you've got my script bundle from earlier in the thread, just update with this script. Use them to build a test cluster, populate 100 queues with 1000 messages each. Then run this script to delete and recreate all the queues. This always produces new queues for me that contain old messages. ;) Graeme -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: populate_queues.sh Type: application/x-sh Size: 227 bytes Desc: not available URL: From jan.wedel at googlemail.com Mon Oct 28 20:54:59 2013 From: jan.wedel at googlemail.com (Jan Wedel) Date: Mon, 28 Oct 2013 21:54:59 +0100 Subject: [rabbitmq-discuss] Architectuaral Problem - What exchange type to choose? In-Reply-To: <526E31D6.4070102@rabbitmq.com> References: <66F4FA72-DFAA-4A73-B570-CB1590E16B45@gmail.com> <526E31D6.4070102@rabbitmq.com> Message-ID: <4F2E23BD-1006-46D2-B168-AD80102B2266@gmail.com> Hi Simon, thanks for your reply! Ok, so when I get this correctly, I would create an exchange for each device as follows: - key ?.? -> queue ?..from" - key ?.? -> queue ?..to? - key ?? -> queue ?..to" - key ?? -> queue ?..to? (?) - key ?? -> queue ?..to? Is that about what you suggested? That?s a whole lot of bindings? depending on the number of devices. Would that be a (performance-)problem, lets say we have 1000 devices each having an exchange with >1000 bindings? Plus, it is possible, that new devices will be added dynamically. Is there a problem, adding new devices und thus its exchanges, queues and bindings to other devices on-the-fly? Regards, //Jan On 28 Oct 2013, at 10:43, Simon MacMullen wrote: > On 27/10/2013 11:30AM, Jan Wedel wrote: >> - When D3 wants to broadcast a message, it creates a producer for >> ?G1.*.to? >> >> Now, the first parts ok, the problem may arise when direct message >> sending and broadcasting is involved. Intuitivly, I would be looking >> for an exchange to would support dynamic routing, so that I could use >> the routing keys with wildcards for a message ?G1.*.to? which would >> route the message to all ?to? queues from all devices in group G1. >> But the bindings and work the other way a round. You must have fixed >> routing keys for a message and wildcards in bindings. > > So why don't you get all devices in group G1 to bind with routing key "G1.to" in addition to routing key "G1..to"? Then you just publish with routing key "G1.to" to send to all of G1. > > Cheers, Simon > > -- > Simon MacMullen > RabbitMQ, Pivotal From mikhail.smal at gmail.com Mon Oct 28 21:01:55 2013 From: mikhail.smal at gmail.com (Mikhail Shirokov) Date: Tue, 29 Oct 2013 01:01:55 +0400 Subject: [rabbitmq-discuss] How can I increase msg/second on writing to queue? Message-ID: I am new in rabbitMQ and using SimpleAmqpClient to work with it. I have one connection on write and one on read, each in own thread. Also I am using acking to support a sort of transactions. But it works too slow for me. I've only 2 msg/s on pushing and I don't know how increase it. I think, I can add new threads and channels, but is there other way? -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.s.klishin at gmail.com Mon Oct 28 21:02:56 2013 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Tue, 29 Oct 2013 01:02:56 +0400 Subject: [rabbitmq-discuss] Architectuaral Problem - What exchange type to choose? In-Reply-To: <4F2E23BD-1006-46D2-B168-AD80102B2266@gmail.com> References: <66F4FA72-DFAA-4A73-B570-CB1590E16B45@gmail.com> <526E31D6.4070102@rabbitmq.com> <4F2E23BD-1006-46D2-B168-AD80102B2266@gmail.com> Message-ID: 2013/10/29 Jan Wedel > > That?s a whole lot of bindings? depending on the number of devices. Would > that be a (performance-)problem, lets say we have 1000 devices each having > an exchange with >1000 bindings? > It depends on exchange type but a few thousands bindings doesn't sound too bad. Only benchmarking with your actual workload will prove me right or wrong ;) > Plus, it is possible, that new devices will be added dynamically. Is there > a problem, adding new devices und thus its exchanges, queues and bindings > to other devices on-the-fly? No, that's why with AMQP applications define the topology. -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From matthias at rabbitmq.com Mon Oct 28 21:04:39 2013 From: matthias at rabbitmq.com (Matthias Radestock) Date: Mon, 28 Oct 2013 21:04:39 +0000 Subject: [rabbitmq-discuss] Feature Req / Bug list In-Reply-To: References: <874A73DF-5283-4508-8AD2-43BC53DC9196@rabbitmq.com> <526A49E0.3010707@rabbitmq.com> <61705EBA-366B-4B77-BBFE-D7B2E14F3E5A@rabbitmq.com> <92E1A6B8-E4D1-47C5-A108-9E254EC2EF9D@rabbitmq.com> <526ECAD9.2030703@rabbitmq.com> Message-ID: <526ED167.1010308@rabbitmq.com> On 28/10/13 20:40, Graeme N wrote: > Well, if you've got my script bundle from earlier in the thread, just > update with this script. Use them to build a test cluster, populate 100 > queues with 1000 messages each. Then run this script to delete and > recreate all the queues. This always produces new queues for me that > contain old messages. ;) Publishing is asynchronous. AFAICT the test node does not guarantee that all published messages have made it to the queues by the time populate_queues terminates. Some messages could still sit in various network or internal (pre-routing) buffers. If you then, concurrently, delete the queues and recreate them, the buffered messages will get routed to the newly created queues. That's one explanation. The other possibility is that one of the other issues you reported is somehow causing this. Obviously if rabbit internals are exploding in various interesting ways (indicated by errors getting written to the SASL logs), as is happening in your tests, then all bets are off. Matthias. From michael.s.klishin at gmail.com Mon Oct 28 21:09:21 2013 From: michael.s.klishin at gmail.com (Michael Klishin) Date: Tue, 29 Oct 2013 01:09:21 +0400 Subject: [rabbitmq-discuss] Architectuaral Problem - What exchange type to choose? In-Reply-To: <4F2E23BD-1006-46D2-B168-AD80102B2266@gmail.com> References: <66F4FA72-DFAA-4A73-B570-CB1590E16B45@gmail.com> <526E31D6.4070102@rabbitmq.com> <4F2E23BD-1006-46D2-B168-AD80102B2266@gmail.com> Message-ID: 2013/10/29 Jan Wedel > > Ok, so when I get this correctly, I would create an exchange for each > device as follows: > - key ?.? -> queue ?..from" > - key ?.? -> queue ?..to? > - key ?? -> queue ?..to" > - key ?? -> queue ?..to? > (?) > - key ?? -> queue ?..to? > > Is that about what you suggested? By the way, if I understand it correct the suggestion is to create queues and bindings dynamically. You should be able to at least get started with a single exchange. -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -------------- next part -------------- An HTML attachment was scrubbed... URL: From matthias at rabbitmq.com Mon Oct 28 21:12:24 2013 From: matthias at rabbitmq.com (Matthias Radestock) Date: Mon, 28 Oct 2013 21:12:24 +0000 Subject: [rabbitmq-discuss] Architectuaral Problem - What exchange type to choose? In-Reply-To: <4F2E23BD-1006-46D2-B168-AD80102B2266@gmail.com> References: <66F4FA72-DFAA-4A73-B570-CB1590E16B45@gmail.com> <526E31D6.4070102@rabbitmq.com> <4F2E23BD-1006-46D2-B168-AD80102B2266@gmail.com> Message-ID: <526ED338.8080303@rabbitmq.com> On 28/10/13 20:54, Jan Wedel wrote: > Ok, so when I get this correctly, I would create an exchange for each device as follows: > - key ?.? -> queue ?..from" > - key ?.? -> queue ?..to? > - key ?? -> queue ?..to" > - key ?? -> queue ?..to? > (?) > - key ?? -> queue ?..to? > > Is that about what you suggested? I don't see why you'd need a separate exchange per device. Or more than one queue per device. Matthias. From jkuch at gopivotal.com Mon Oct 28 21:13:12 2013 From: jkuch at gopivotal.com (Jerry Kuch) Date: Mon, 28 Oct 2013 14:13:12 -0700 Subject: [rabbitmq-discuss] How can I increase msg/second on writing to queue? In-Reply-To: References: Message-ID: More details? How is the queue declared? What options are you using when you publish? What clients/languages are you using? 2 messages per second is ridiculously low, under pretty much any non-pathological conditions, so it would be useful to learn more about just what you're doing and what environment you're doing it in to explain and improve your results. On Mon, Oct 28, 2013 at 2:01 PM, Mikhail Shirokov wrote: > I am new in rabbitMQ and using SimpleAmqpClient to work with it. I have > one connection on write and one on read, each in own thread. Also I am > using acking to support a sort of transactions. But it works too slow for > me. I've only 2 msg/s on pushing and I don't know how increase it. I think, > I can add new threads and channels, but is there other way? > > _______________________________________________ > 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 mikhail.smal at gmail.com Mon Oct 28 21:32:23 2013 From: mikhail.smal at gmail.com (Mikhail Shirokov) Date: Tue, 29 Oct 2013 01:32:23 +0400 Subject: [rabbitmq-discuss] How can I increase msg/second on writing to queue? In-Reply-To: References: Message-ID: I am using c++ with client *https://github.com/alanxz/SimpleAmqpClient*. I have used functions as in the example * https://github.com/alanxz/SimpleAmqpClient/blob/master/examples/SimplePublisher.cpp * to publish. I just realize that I am also using a serialization library and I need to disable it in my client to get more clean results. On 29 October 2013 01:13, Jerry Kuch wrote: > More details? How is the queue declared? What options are you using when > you publish? What clients/languages are you using? > > 2 messages per second is ridiculously low, under pretty much any > non-pathological conditions, so it would be useful to learn more about just > what you're doing and what environment you're doing it in to explain and > improve your results. > > > > On Mon, Oct 28, 2013 at 2:01 PM, Mikhail Shirokov wrote: > >> I am new in rabbitMQ and using SimpleAmqpClient to work with it. I have >> one connection on write and one on read, each in own thread. Also I am >> using acking to support a sort of transactions. But it works too slow for >> me. I've only 2 msg/s on pushing and I don't know how increase it. I think, >> I can add new threads and channels, but is there other way? >> >> _______________________________________________ >> 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 graeme at sudo.ca Mon Oct 28 21:46:29 2013 From: graeme at sudo.ca (Graeme N) Date: Mon, 28 Oct 2013 14:46:29 -0700 Subject: [rabbitmq-discuss] Feature Req / Bug list In-Reply-To: <526ED167.1010308@rabbitmq.com> References: <874A73DF-5283-4508-8AD2-43BC53DC9196@rabbitmq.com> <526A49E0.3010707@rabbitmq.com> <61705EBA-366B-4B77-BBFE-D7B2E14F3E5A@rabbitmq.com> <92E1A6B8-E4D1-47C5-A108-9E254EC2EF9D@rabbitmq.com> <526ECAD9.2030703@rabbitmq.com> <526ED167.1010308@rabbitmq.com> Message-ID: On Mon, Oct 28, 2013 at 2:04 PM, Matthias Radestock wrote: > On 28/10/13 20:40, Graeme N wrote: > >> Well, if you've got my script bundle from earlier in the thread, just >> update with this script. Use them to build a test cluster, populate 100 >> queues with 1000 messages each. Then run this script to delete and >> recreate all the queues. This always produces new queues for me that >> contain old messages. ;) >> > > Publishing is asynchronous. AFAICT the test node does not guarantee that > all published messages have made it to the queues by the time > populate_queues terminates. Some messages could still sit in various > network or internal (pre-routing) buffers. If you then, concurrently, > delete the queues and recreate them, the buffered messages will get routed > to the newly created queues. > Yeah, I typically wait until the management console reports all messages delivered to all queues, so I'm not just automating running these scripts in a row. I've been assuming that if the management console reports messages are delivered, then this scenario doesn't apply. > That's one explanation. The other possibility is that one of the other > issues you reported is somehow causing this. Obviously if rabbit internals > are exploding in various interesting ways (indicated by errors getting > written to the SASL logs), as is happening in your tests, then all bets are > off. > Well, when I've been running this, I updated my scripts to do queue deletion linearly (without any shell level parallelism), as should be seen in the updated setup script. In this situation, I'm not seeing it throw a bunch of obvious errors, but when I go to create the new message queues, they show up with some subset of the original messages in them. Graeme -------------- next part -------------- An HTML attachment was scrubbed... URL: From grussell at gopivotal.com Mon Oct 28 21:53:08 2013 From: grussell at gopivotal.com (Gary Russell) Date: Mon, 28 Oct 2013 17:53:08 -0400 Subject: [rabbitmq-discuss] Restarting Consumer appears often In-Reply-To: <31c17a04-1e42-45f9-aae4-9269523ee599@googlegroups.com> References: <31c17a04-1e42-45f9-aae4-9269523ee599@googlegroups.com> Message-ID: It typically means the listener threw an exception of some sort. If you look further back in the log, you should see messages... Consumer raised exception, processing can restart if the connection factory supports it. Exception summary: ... if you turn on DEBUG logging you'll get a full stack trace of the exception rather than just the exception's message. (or there are a few other specific exceptions that generate other messages). On Mon, Oct 28, 2013 at 2:36 PM, Rafa Reyes wrote: > Hi all, > > I'm using RabbitMQ along with Spring 3. The thing is all works fine but i > see usually in logs the following trace: > > (SimpleMessageListenerContainer.java:run:550) - Restarting Consumer: > tag=[amq.ctag-HkT6eNPrENhXeRJ-jg7qKw], channel=Cached Rabbit Channel: > AMQChannel(amqp://guest at 127.0.1.1:5672/,2038), acknowledgeMode=AUTO local > queue size=0 > > > Why this might be? > > Thanks in advance. > > _______________________________________________ > 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 bipul.dutta at gen-e.com Tue Oct 29 00:10:06 2013 From: bipul.dutta at gen-e.com (Bipul Dutta) Date: Mon, 28 Oct 2013 17:10:06 -0700 Subject: [rabbitmq-discuss] Challenges with Windows 7, No FQDN, IP as node name Message-ID: Hi All, Struggling with this issue a bit wondering if anyone could shed some light, appreciate it. rabbitmq windows service running perfectly without even modifying "hosts" file to include the IP. Trouble is with the >rabbitmqctl status throws the following exception: >rabbitmqctl.bat status RabbitMQ Home: c:\rabbitmq {error_logger,{{2013,10,28},{19,2,44}},"Can't set long node name!\nPlease check your configuration\n",[]} {error_logger,{{2013,10,28},{19,2,44}},crash_report,[[{initial_call,{net_kernel,init,['Argument__1'] }},{pid,<0.20.0>},{registered_name,[]},{error_info,{exit,{error,badarg},[{gen_server,init_it,6,[{fil e,"gen_server.erl"},{line,320}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,239}]}]}}, {ancestors,[net_sup,kernel_sup,<0.10.0>]},{messages,[]},{links,[<0.17.0>]},{dictionary,[{longnames,t rue}]},{trap_exit,true},{status,running},{heap_size,4185},{stack_size,27},{reductions,2137}],[]]} {error_logger,{{2013,10,28},{19,2,44}},supervisor_report,[{supervisor,{local,net_sup}},{errorContext ,start_error},{reason,{'EXIT',nodistribution}},{offender,[{pid,undefined},{name,net_kernel},{mfargs, {net_kernel,start_link,[[rabbitmqctl2558526,longnames]]}},{restart_type,permanent},{shutdown,2000},{ child_type,worker}]}]} {error_logger,{{2013,10,28},{19,2,44}},supervisor_report,[{supervisor,{local,kernel_sup}},{errorCont ext,start_error},{reason,{shutdown,{failed_to_start_child,net_kernel,{'EXIT',nodistribution}}}},{off ender,[{pid,undefined},{name,net_sup},{mfargs,{erl_distribution,start_link,[]}},{restart_type,perman ent},{shutdown,infinity},{child_type,supervisor}]}]} {error_logger,{{2013,10,28},{19,2,44}},crash_report,[[{initial_call,{application_master,init,['Argum ent__1','Argument__2','Argument__3','Argument__4']}},{pid,<0.9.0>},{registered_name,[]},{error_info, {exit,{{shutdown,{failed_to_start_child,net_sup,{shutdown,{failed_to_start_child,net_kernel,{'EXIT', nodistribution}}}}},{kernel,start,[normal,[]]}},[{application_master,init,4,[{file,"application_mast er.erl"},{line,138}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,239}]}]}},{ancestors, [<0.8.0>]},{messages,[{'EXIT',<0.10.0>,normal}]},{links,[<0.8.0>,<0.7.0>]},{dictionary,[]},{trap_exi t,true},{status,running},{heap_size,376},{stack_size,27},{reductions,117}],[]]} {error_logger,{{2013,10,28},{19,2,44}},std_info,[{application,kernel},{exited,{{shutdown,{failed_to_ start_child,net_sup,{shutdown,{failed_to_start_child,net_kernel,{'EXIT',nodistribution}}}}},{kernel, start,[normal,[]]}}},{type,permanent}]} {"Kernel pid terminated",application_controller,"{application_start_failure,kernel,{{shutdown,{faile d_to_start_child,net_sup,{shutdown,{failed_to_start_child,net_kernel,{'EXIT',nodistribution}}}}},{ke rnel,start,[normal,[]]}}}"} Crash dump was written to: erl_crash.dump Kernel pid terminated (application_controller) ({application_start_failure,kernel,{{shutdown,{failed _to_start_child,net_sup,{shutdown,{failed_to_start_child,net_kernel,{'EXIT',nodistribution}}}}},{k Thanks a lot. Bipul Dutta. This message contains confidential information and is intended only for the individual named. If you are not the named addressee, any delivery, disclosure, dissemination or distribution of this e-mail is unlawful and strictly prohibited. Please notify the sender immediately by e-mail if you have received this e-mail by mistake and delete this e-mail from your system. E-mail transmissions cannot be guaranteed to be secure or without error, as information could be intercepted, corrupted, lost, destroyed, arrive late, be incomplete, or contain viruses. The sender therefore does not accept liability for any errors or omissions in the contents of this message, which errors or omissions arise as a result of e-mail transmission. If verification is required, please request a hard-copy version. (genE-dct1) -------------- next part -------------- An HTML attachment was scrubbed... URL: From k.madnani84 at gmail.com Tue Oct 29 04:09:20 2013 From: k.madnani84 at gmail.com (k.madnani84) Date: Mon, 28 Oct 2013 21:09:20 -0700 (PDT) Subject: [rabbitmq-discuss] Deleting all queues in rabbitmq. Message-ID: <1383019760521-30933.post@n5.nabble.com> Hi, Is there any single command available which could delete all the queues in rabbitmq ? I tried to look a lot on internet but couldnt find one and if there is no command can we make it up by deleting some files from mnesia? I read in a blog that we could do that way but my mnesia folder consist of lot of directories not sure which one to clear to delete all the queues. There was a folder "queues" in mnesia which i cleared after stopping the node but after restarting the node the queues came back? -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Deleting-all-queues-in-rabbitmq-tp30933.html Sent from the RabbitMQ mailing list archive at Nabble.com. From saritha.cogbooks at gmail.com Tue Oct 29 04:49:00 2013 From: saritha.cogbooks at gmail.com (saritha) Date: Mon, 28 Oct 2013 21:49:00 -0700 (PDT) Subject: [rabbitmq-discuss] Can't set short node name!\nPlease check your configuration\n In-Reply-To: References: <471965FF-660F-4F6B-8EFB-01EA0A691233@rabbitmq.com> Message-ID: <1383022140684-30934.post@n5.nabble.com> Hi, I have changed to RabbitMQ 3.2.0 erl -sname rabbit at 192.168.1.26 I am getting the same error.. In /etc/rabbitmq/rabbitmq-env.conf NODE_IP_ADDRESS=192.168.1.26 NODENAME=rabbit at 192.168.1.26 If I call rabbitmqctl status Still I getting the same error {error_logger,{{2013,10,28},{7,43,47}},"Can't set short node name!\nPlease check your configuration\n",[]} Please help me out... -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Can-t-set-short-node-name-nPlease-check-your-configuration-n-tp30851p30934.html Sent from the RabbitMQ mailing list archive at Nabble.com. From sagu.prf1 at gmail.com Tue Oct 29 05:17:42 2013 From: sagu.prf1 at gmail.com (sagu prf) Date: Mon, 28 Oct 2013 22:17:42 -0700 Subject: [rabbitmq-discuss] Rabbitmq cluster issue Message-ID: Hello Team , I need your advise on the following issue , We are facing network issue frequently on our environment and i made rabbitmq cluster unstable ( each node on 3 node cluster considered one itself is up other 2 node is down ). i am planning to setup additional secondary network card on each rabbitmq node in place with private IP address (10.1.1.1 , .2 and .3 ) and connected to switch/hub . Primary network card with IP address for Amqp communication and secondary network card IP address (10.1.1.1) (hub) . Whether it will protect from network issue on primary interface ?Please give me some pointer .. we are running rabbitmq version 2.8.1 with erlang R15B02 ..we want to stick with this version .. Regards sg From saritha.cogbooks at gmail.com Tue Oct 29 06:42:11 2013 From: saritha.cogbooks at gmail.com (saritha) Date: Mon, 28 Oct 2013 23:42:11 -0700 (PDT) Subject: [rabbitmq-discuss] Can't set short node name!\nPlease check your configuration\n In-Reply-To: <1383022140684-30934.post@n5.nabble.com> References: <471965FF-660F-4F6B-8EFB-01EA0A691233@rabbitmq.com> <1383022140684-30934.post@n5.nabble.com> Message-ID: <1383028931379-30936.post@n5.nabble.com> Hi, I used erl -name rabbitmq at 192.168.1.26 Erlang R16B (erts-5.10.1) [source] [64-bit] [async-threads:10] [hipe] [kernel-poll:false] Eshell V5.10.1 (abort with ^G) (rabbitmq at 192.168.1.26)1> rabbitmq-service start for this command its not showing any error ,BUT even I didn't understand whether the server started succesfully or not.This may be silly but please explain me.How it works. -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Can-t-set-short-node-name-nPlease-check-your-configuration-n-tp30851p30936.html Sent from the RabbitMQ mailing list archive at Nabble.com. From graeme at sudo.ca Tue Oct 29 00:06:09 2013 From: graeme at sudo.ca (Graeme N) Date: Mon, 28 Oct 2013 17:06:09 -0700 Subject: [rabbitmq-discuss] Feature Req / Bug list In-Reply-To: References: <874A73DF-5283-4508-8AD2-43BC53DC9196@rabbitmq.com> <526A49E0.3010707@rabbitmq.com> <61705EBA-366B-4B77-BBFE-D7B2E14F3E5A@rabbitmq.com> <92E1A6B8-E4D1-47C5-A108-9E254EC2EF9D@rabbitmq.com> <526ECAD9.2030703@rabbitmq.com> <526ED167.1010308@rabbitmq.com> Message-ID: More fun with RabbitMQ clustering! These next couple I wouldn't believe if I couldn't consistently reproduce them. Attached is a new script package which includes some updates to previous scripts, as well as the go based queue populator. First, is an issue where if you apply a global policy, then populate a bunch of queues, after the queues are done populating rabbitmq removes about 3/4s of them. It is baffling, I've attached screenshots, since I can't really believe it myself. To reproduce: - ./create_cluster.sh && ./setup_queues.sh && RABBITMQ_NODENAME="rabbit1 at localhost" rabbitmqctl set_policy --priority 0 global_pol ".*" '{"ha-mode": "exactly", "ha-params": 3, "ha-sync-mode": "automatic"}' && sleep 5 && ./populate_queues.sh - watch cluster admin queues page (http://localhost:4441/#/queues), see all the queues fill up with 10000 messages, and then see 2/3rds of them disappear once most of the queues are full. - This happens both in my test VM, and on a bare metal server with 64GB of RAM and 24 cores. Next is an issue where removing and re-adding nodes breaks rabbitmq clustering. We keep running into this in prod where we'll attempt to adjust our cluster topology, things will break, and we'll have to take the whole cluster down and bring it back up again to fix it. - ./create_cluster.sh && ./setup_queues.sh && ./populate_queues.sh && RABBITMQ_NODENAME="rabbit1 at localhost" rabbitmqctl set_policy --priority 0 global_pol ".*" '{"ha-mode": "exactly", "ha-params": 3, "ha-sync-mode": "automatic"}' - watch cluster admin pages, wait until all messages are populated and queues are synced, noting that since we applied the policy after populating the queues, for some reason this doesn't cause the queues to be removed like in the previous case. - ./toggle_nodes.sh - watch nodes be removed and re-added, should only take ~5 of these full cycles before the script loop hangs, and doesn't return from the cluster op it's attempting to perform. If you ctl-C the script and run it again, it should just hang and refuse to perform any more cluster join/leave operations on any node. - it's also likely you'll see queues where one of the mirrors isn't correctly synced, or possibly is partially synced but stuck and not finishing syncing, likely related to previous policy bugs I reported. - queues in these states often don't accept new messages for delivery, stalling message processing. We've found that once the cluster's in this state, it behaves really oddly and needs to be fully shut down (or "killall beam.smp") and then brought back up before it behaves normally. We had an incident after adding a single node last friday where ~4 queues stopped accepting new messages and held up our entire workload until the entire cluster was shut down and brought back up. These errors are all really strange, and so I'm hoping you guys can reproduce them, and best case scenario, find something that accounts for these problems which we can then patch in our production environment. Thank! Graeme -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 1-rmq-before-populating.png Type: image/png Size: 295282 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 2-rmq-some-missing.png Type: image/png Size: 302599 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 3-rmq-more-missing.png Type: image/png Size: 233218 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 4-rmq-most-missing.png Type: image/png Size: 150011 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: break-rabbitmq-v2.tar.xz Type: application/x-xz Size: 951556 bytes Desc: not available URL: From abid.varshani at gmail.com Tue Oct 29 03:28:55 2013 From: abid.varshani at gmail.com (Abid Varshani) Date: Tue, 29 Oct 2013 08:58:55 +0530 Subject: [rabbitmq-discuss] Rabbitmq server wont start on AWS linux AMI Message-ID: Hi I have installed RabbitMQ using RPM based distro which was successful. But when I try to start the server using *"/etc/init.d/rabbitmq-server start"*, it hangs. startup_err file has following error *"/etc/init.d/rabbitmq-server: line 64: startproc: command not found"* * * Btw, I am running the command as "su" * * Any help would be greatly appreciated Thanks Regards Abid -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.sander at gmail.com Tue Oct 29 04:56:53 2013 From: michael.sander at gmail.com (Michael Sander) Date: Mon, 28 Oct 2013 21:56:53 -0700 (PDT) Subject: [rabbitmq-discuss] rabbitmq nodedown - nodedown - Generic server rabbit_disk_monitor terminating Message-ID: <4e2b75de-0e07-4a4c-9ef2-e952fe2bea1a@googlegroups.com> Hi, rabbitmq seems to be running fine but every few days it seems to crash. Restarting seems to work fine, but then it crashes again after a few more days. Has anyone experienced the following before? Here is the result of rabbitmqctl status: $ sudo rabbitmqctl status Status of node 'rabbit at ocr-proc-1' ... Error: unable to connect to node 'rabbit at ocr-proc-1': nodedown DIAGNOSTICS =========== nodes in question: ['rabbit at ocr-proc-1'] hosts, their running nodes and ports: - ocr-proc-1: [{rabbitmqctl28222,41934}] current node details: - node name: 'rabbitmqctl28222 at ocr-proc-1' - home dir: /var/lib/rabbitmq - cookie hash: d0gr0DxCd08BG2w9+0Yy6Q== And the following is the logs. Let me know if there are any other files/configs I should send along. =ERROR REPORT==== 28-Oct-2013::19:48:36 === ** Generic server rabbit_disk_monitor terminating ** Last message in was update ** When Server state == {state,"/var/lib/rabbitmq/mnesia/rabbit at ocr-proc-1", 1000000000,3090534400,10000, {interval,#Ref<0.0.47.196889>}, false} ** Reason for termination == ** {{badmatch,[]}, [{rabbit_disk_monitor,parse_free_unix,1,[]}, {rabbit_disk_monitor,internal_update,1,[]}, {rabbit_disk_monitor,handle_info,2,[]}, {gen_server,handle_msg,5,[{file,"gen_server.erl"},{line,607}]}, {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,227}]}]} =INFO REPORT==== 28-Oct-2013::19:48:36 === Disabling disk free space monitoring on unsupported platform: {{'EXIT', {{badmatch,[]}, [{rabbit_disk_monitor, parse_free_unix, 1,[]}, {rabbit_disk_monitor, init,1,[]}, {gen_server, init_it,6, [{file, "gen_server.erl"}, {line, 304}]}, {proc_lib, init_p_do_apply, 3, [{file, "proc_lib.erl"}, {line, 227}]}]}}, 1887428608} -------------- next part -------------- An HTML attachment was scrubbed... URL: From solipsis at pitrou.net Tue Oct 29 09:16:54 2013 From: solipsis at pitrou.net (Antoine Pitrou) Date: Tue, 29 Oct 2013 10:16:54 +0100 Subject: [rabbitmq-discuss] Feature Req / Bug list References: <526A49E0.3010707@rabbitmq.com> <61705EBA-366B-4B77-BBFE-D7B2E14F3E5A@rabbitmq.com> <92E1A6B8-E4D1-47C5-A108-9E254EC2EF9D@rabbitmq.com> <526ECAD9.2030703@rabbitmq.com> <526ED167.1010308@rabbitmq.com> Message-ID: <20131029101654.28383f2d@pitrou.net> Le Mon, 28 Oct 2013 17:06:09 -0700, Graeme N a ?crit : > More fun with RabbitMQ clustering! > > These next couple I wouldn't believe if I couldn't consistently > reproduce them. Attached is a new script package which includes some > updates to previous scripts, as well as the go based queue populator. Speaking as a bystander here, but could you avoid posting huge messages on a public mailing-list ? If you want to post large attached data, consider using a Web hosting service. (my client tells me your message weighs 2.5MB, which even nowadays can take time to download) Thanks Antoine. From emile at rabbitmq.com Tue Oct 29 09:34:23 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Tue, 29 Oct 2013 09:34:23 +0000 Subject: [rabbitmq-discuss] Rabbitmq server wont start on AWS linux AMI In-Reply-To: References: Message-ID: <526F811F.3030808@rabbitmq.com> On 29/10/13 03:28, Abid Varshani wrote: > I have installed RabbitMQ using RPM based distro which was successful. > But when I try to start the server using "/etc/init.d/rabbitmq-server > start" , it hangs. > > startup_err file has following error > > "/etc/init.d/rabbitmq-server: line 64: startproc: command not found" That should only happen if the RPM OS is detected has SuSE, otherwise the broker is daemonised using "daemon". I was unable to reproduce the error using this AMI: # cat /etc/image-id image_name="amzn-ami-pv" image_version="2013.09" image_arch="i386" image_file="amzn-ami-pv-2013.09.0.i386.ext4" image_stamp="a0b9-e027" image_date="20130925011250" recipe_name="amzn ami" recipe_id="55ae74f2-622a-de5d-2288-c450-6402-3ea3-a8b3b196" Can you please confirm exactly which image you are using? Also see https://www.rabbitmq.com/ec2.html -Emile From emile at rabbitmq.com Tue Oct 29 10:05:53 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Tue, 29 Oct 2013 10:05:53 +0000 Subject: [rabbitmq-discuss] Deleting all queues in rabbitmq. In-Reply-To: <1383019760521-30933.post@n5.nabble.com> References: <1383019760521-30933.post@n5.nabble.com> Message-ID: <526F8881.5000902@rabbitmq.com> Hi, On 29/10/13 04:09, k.madnani84 wrote: > Is there any single command available which could delete all the queues in > rabbitmq ? There is no command to remove only the queues. It is possible to reset the state of the entire broker to factory settings by removing the database directory. That will remove queues, but alot more. You could download the broker definitions using the management plugin, remove the queues section, reset the broker database and then upload the modified broker definition. That should preserve all the broker settings but cause only queues to be removed. Another option is to list all queues using "rabbitmqctl list_queues -q name" or "rabbitmqadmin --format=bash list queues name" and feed that information into a program that deletes individual queues, e.g. "rabbitmqadmin delete queue name=...". The advantage of this method is that the broker need not be shut down. > I read in a blog that we could do that way but my mnesia folder consist of > lot of directories not sure which one to clear to delete all the queues. > > There was a folder "queues" in mnesia which i cleared after stopping the > node but after restarting the node the queues came back? Don't try to delete queues by modifying the contents of the data store on disk. -Emile From emile at rabbitmq.com Tue Oct 29 10:27:04 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Tue, 29 Oct 2013 10:27:04 +0000 Subject: [rabbitmq-discuss] Rabbitmq cluster issue In-Reply-To: References: Message-ID: <526F8D78.1020600@rabbitmq.com> Hi, On 29/10/13 05:17, sagu prf wrote: > Whether it will protect from network issue on primary interface > ?Please give me some pointer .. If the problems were caused by the network between hosts being unreliable, and if the secondary network is more reliable then it may help. Make sure that hostnames on each node resolve to the address of the secondary network. The following may be relevant: http://www.rabbitmq.com/clustering.html http://www.rabbitmq.com/partitions.html > we are running rabbitmq version 2.8.1 with erlang R15B02 ..we want to > stick with this version You are strongly advised to upgrade to the latest version. There have been many improvements and bugfixes since. -Emile From emile at rabbitmq.com Tue Oct 29 10:53:47 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Tue, 29 Oct 2013 10:53:47 +0000 Subject: [rabbitmq-discuss] Challenges with Windows 7, No FQDN, IP as node name In-Reply-To: References: Message-ID: <526F93BB.1040908@rabbitmq.com> Hi, On 29/10/13 00:10, Bipul Dutta wrote: >>rabbitmqctl status throws the following exception: > >>rabbitmqctl.bat status > > RabbitMQ Home: c:\rabbitmq > {error_logger,{{2013,10,28},{19,2,44}},"Can't set long node > name!\nPlease check your configuration\n",[]} Can you please confirm the values of the RABBIT_* environment variables when you installed the service? Installing the service with a nodename like "RABBITMQ_NODENAME=10.0.0.1" is not supported. If you must to use the IP number as a node name then replace the dots with a dash. -Emile From simon at rabbitmq.com Tue Oct 29 11:14:57 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Tue, 29 Oct 2013 11:14:57 +0000 Subject: [rabbitmq-discuss] Deleting all queues in rabbitmq. In-Reply-To: <526F8881.5000902@rabbitmq.com> References: <1383019760521-30933.post@n5.nabble.com> <526F8881.5000902@rabbitmq.com> Message-ID: <526F98B1.5070409@rabbitmq.com> On 29/10/13 10:05, Emile Joubert wrote: > Don't try to delete queues by modifying the contents of the data store > on disk. Yeah, seriously, this. Another option for deleting all queues (since 3.2.0) is to define a policy which gives every queue a very short expiry. $ rabbitmqctl set_policy deleter ".*" '{"expires":1}' --apply-to queues Then - assuming your queues are unused, which I assume is why you're deleting them - this will expire them near-immediately. Remember to delete the policy again afterwards, or you'll struggle to declare anything... $ rabbitmqctl clear_policy deleter Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From abid.varshani at gmail.com Tue Oct 29 11:13:10 2013 From: abid.varshani at gmail.com (Abid Varshani) Date: Tue, 29 Oct 2013 16:43:10 +0530 Subject: [rabbitmq-discuss] Rabbitmq server wont start on AWS linux AMI In-Reply-To: <526F811F.3030808@rabbitmq.com> References: <526F811F.3030808@rabbitmq.com> Message-ID: Thanks for responding Emile. I am using this ami."amzn-ami-pv-2013.03.0.x86_64-ebs (ami-ecbe2adc" Just to add I have tried starting the server using* "/sbin/service rabbitmq-server start" *command as well and the result is same. Also, I have been using this server for some time now but yesterday I ran into some issues while trying to reset the server. basically it won't start after resetting. Hence I uninstalled and re-installed the server today after which I started getting the above issue. Thanks Regards On Tue, Oct 29, 2013 at 3:04 PM, Emile Joubert wrote: > On 29/10/13 03:28, Abid Varshani wrote: > > > I have installed RabbitMQ using RPM based distro which was successful. > > But when I try to start the server using "/etc/init.d/rabbitmq-server > > start" , it hangs. > > > > startup_err file has following error > > > > "/etc/init.d/rabbitmq-server: line 64: startproc: command not found" > > > That should only happen if the RPM OS is detected has SuSE, otherwise > the broker is daemonised using "daemon". I was unable to reproduce the > error using this AMI: > > # cat /etc/image-id > image_name="amzn-ami-pv" > image_version="2013.09" > image_arch="i386" > image_file="amzn-ami-pv-2013.09.0.i386.ext4" > image_stamp="a0b9-e027" > image_date="20130925011250" > recipe_name="amzn ami" > recipe_id="55ae74f2-622a-de5d-2288-c450-6402-3ea3-a8b3b196" > > > Can you please confirm exactly which image you are using? > > Also see https://www.rabbitmq.com/ec2.html > > > > -Emile > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.laing at nytimes.com Tue Oct 29 11:28:15 2013 From: michael.laing at nytimes.com (Laing, Michael) Date: Tue, 29 Oct 2013 07:28:15 -0400 Subject: [rabbitmq-discuss] Deleting all queues in rabbitmq. In-Reply-To: <526F98B1.5070409@rabbitmq.com> References: <1383019760521-30933.post@n5.nabble.com> <526F8881.5000902@rabbitmq.com> <526F98B1.5070409@rabbitmq.com> Message-ID: You can also delete the vhost containing the queues - of course this deletes the exchanges in that vhost as well... And then use the broker defs as Emile suggested but without requiring a restart. Good luck, Michael On Tue, Oct 29, 2013 at 7:14 AM, Simon MacMullen wrote: > On 29/10/13 10:05, Emile Joubert wrote: > >> Don't try to delete queues by modifying the contents of the data store >> on disk. >> > > Yeah, seriously, this. > > Another option for deleting all queues (since 3.2.0) is to define a policy > which gives every queue a very short expiry. > > $ rabbitmqctl set_policy deleter ".*" '{"expires":1}' --apply-to queues > > Then - assuming your queues are unused, which I assume is why you're > deleting them - this will expire them near-immediately. Remember to delete > the policy again afterwards, or you'll struggle to declare anything... > > $ rabbitmqctl clear_policy deleter > > 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 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From emile at rabbitmq.com Tue Oct 29 11:35:08 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Tue, 29 Oct 2013 11:35:08 +0000 Subject: [rabbitmq-discuss] Rabbitmq server wont start on AWS linux AMI In-Reply-To: References: <526F811F.3030808@rabbitmq.com> Message-ID: <526F9D6C.3040502@rabbitmq.com> Hi, I tried installing with the same AMI as you on a new VM and get no error: # cat /etc/image-id image_name="amzn-ami-pv" image_version="2013.03" image_arch="x86_64" image_file="amzn-ami-pv-2013.03.0.x86_64.ext4" image_stamp="02c3-8bc3" image_date="20130326200539" recipe_name="amzn ami" recipe_id="240049bc-8990-fb91-ccad-aeb9-4dfe-eaac-44035533" # /sbin/service rabbitmq-server start Starting rabbitmq-server: SUCCESS Perhaps you mistakenly installed the SuSE RPM instead of the generic one. The RPM I tested with was rabbitmq-server-3.2.0-1.noarch.rpm. -Emile On 29/10/13 11:13, Abid Varshani wrote: > Thanks for responding Emile. > > I am using this ami."amzn-ami-pv-2013.03.0.x86_64-ebs (ami-ecbe2adc" > > Just to add I have tried starting the server using* "/sbin/service > rabbitmq-server start" *command as well and the result is same. > > Also, I have been using this server for some time now but yesterday I > ran into some issues while trying to reset the server. basically it > won't start after resetting. > > Hence I uninstalled and re-installed the server today after which I > started getting the above issue. > > Thanks > > Regards > > > On Tue, Oct 29, 2013 at 3:04 PM, Emile Joubert > wrote: > > On 29/10/13 03:28, Abid Varshani wrote: > > > I have installed RabbitMQ using RPM based distro which was successful. > > But when I try to start the server using "/etc/init.d/rabbitmq-server > > start" , it hangs. > > > > startup_err file has following error > > > > "/etc/init.d/rabbitmq-server: line 64: startproc: command not found" > > > That should only happen if the RPM OS is detected has SuSE, otherwise > the broker is daemonised using "daemon". I was unable to reproduce the > error using this AMI: > > # cat /etc/image-id > image_name="amzn-ami-pv" > image_version="2013.09" > image_arch="i386" > image_file="amzn-ami-pv-2013.09.0.i386.ext4" > image_stamp="a0b9-e027" > image_date="20130925011250" > recipe_name="amzn ami" > recipe_id="55ae74f2-622a-de5d-2288-c450-6402-3ea3-a8b3b196" > > > Can you please confirm exactly which image you are using? > > Also see https://www.rabbitmq.com/ec2.html > > > > -Emile > > > > > > > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > -- Emile Joubert RabbitMQ SpringSource, a division of VMware VMware From mklishin at gopivotal.com Tue Oct 29 11:59:34 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 29 Oct 2013 15:59:34 +0400 Subject: [rabbitmq-discuss] rabbitmq nodedown - nodedown - Generic server rabbit_disk_monitor terminating In-Reply-To: <4e2b75de-0e07-4a4c-9ef2-e952fe2bea1a@googlegroups.com> References: <4e2b75de-0e07-4a4c-9ef2-e952fe2bea1a@googlegroups.com> Message-ID: <09374867-644C-4A96-8F70-96B3826AC562@rabbitmq.com> On 29 Oct 2013, at 08:56, Michael Sander wrote: > Error: unable to connect to node 'rabbit at ocr-proc-1': nodedown rabbitmqctl cannot reach rabbit at ocr-proc-1. I assume that?s happened after the node went down. > And the following is the logs. Let me know if there are any other files/configs I should send along. What OS do you run? This means that RabbitMQ cannot detect available disk space on your platform and disables disk monitor. It does not mean that the entire RabbitMQ process is terminating. One reason for obscure node termination may be that the node simply runs out of disk space without monitoring in place. MK Software Engineer, Pivotal/RabbitMQ From emile at rabbitmq.com Tue Oct 29 12:13:03 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Tue, 29 Oct 2013 12:13:03 +0000 Subject: [rabbitmq-discuss] SSL Certificate Verfitcation failures In-Reply-To: References: <526E8369.6010909@rabbitmq.com> Message-ID: <526FA64F.7040906@rabbitmq.com> Hi Daniel, On 28/10/13 17:11, Daniel Mitchell wrote: > Very strange issue, I think it sways more to the mosquitto_sub client > now though... Let us know if you manage to narrow it down further. A tool that may be of use here is "ssldump": http://www.rtfm.com/ssldump/ -Emile From mklishin at gopivotal.com Tue Oct 29 12:23:15 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 29 Oct 2013 16:23:15 +0400 Subject: [rabbitmq-discuss] rabbitmq nodedown - nodedown - Generic server rabbit_disk_monitor terminating In-Reply-To: <4e2b75de-0e07-4a4c-9ef2-e952fe2bea1a@googlegroups.com> References: <4e2b75de-0e07-4a4c-9ef2-e952fe2bea1a@googlegroups.com> Message-ID: On 29 Oct 2013, at 08:56, Michael Sander wrote: > ** Reason for termination == > ** {{badmatch,[]}, > [{rabbit_disk_monitor,parse_free_unix,1,[]}, > {rabbit_disk_monitor,internal_update,1,[]}, > {rabbit_disk_monitor,handle_info,2,[]}, > {gen_server,handle_msg,5,[{file,"gen_server.erl"},{line,607}]}, > {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,227}]}]} > =INFO REPORT==== 28-Oct-2013::19:48:36 === > Disabling disk free space monitoring on unsupported platform: {{'EXIT', > {{badmatch,[]}, > [{rabbit_disk_monitor, > parse_free_unix, > 1,[]}, > {rabbit_disk_monitor, > init,1,[]}, > {gen_server, > init_it,6, > [{file, > "gen_server.erl"}, > {line, > 304}]}, > {proc_lib, > init_p_do_apply, > 3, > [{file, > "proc_lib.erl"}, > {line, > 227}]}]}}, > 1887428608} Michael, Is there a more or less reliable way to reproduce the issue? E.g. what OS, RabbitMQ version and RabbitMQ configuration can we try? What is your workload like? Thank you. MK Software Engineer, Pivotal/RabbitMQ From sekhar434145 at gmail.com Tue Oct 29 12:54:46 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Tue, 29 Oct 2013 18:24:46 +0530 Subject: [rabbitmq-discuss] RabbitMQ - External database configuration other than MNESIA Message-ID: Hi Team, In RabbitMQ we have in-built mnesia database which stores the information related to queues, exchanges, users, etc. I would like to know whether can we configure external databases( like MySQL) where we can store the same information?. Thanks -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Tue Oct 29 13:01:51 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 29 Oct 2013 17:01:51 +0400 Subject: [rabbitmq-discuss] RabbitMQ - External database configuration other than MNESIA In-Reply-To: References: Message-ID: <272E444F-9124-4D1D-B7FF-37984E792AC7@rabbitmq.com> On 29 Oct 2013, at 16:54, Rajasekhar P wrote: > In RabbitMQ we have in-built mnesia database which stores the information related to queues, exchanges, users, etc. I would like to know whether can we configure external databases( like MySQL) where we can store the same information?. Thanks RabbitMQ can use external authentication methods but it?s not possible to use something other than Mnesia for its internal database. MK Software Engineer, Pivotal/RabbitMQ From michael at rabbitmq.com Tue Oct 29 14:12:31 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Tue, 29 Oct 2013 18:12:31 +0400 Subject: [rabbitmq-discuss] ANN Bunny 1.0.0 (final) is released Message-ID: Bunny 1.0.0 is released to rubygems.org [1] after over 4 years in the making. Release notes: http://blog.rubyrabbitmq.info/blog/2013/10/29/bunny-1-dot-0-0-is-released/ I?d like to thank dozens of contributors and early adopters of 0.9.0+ versions who helped make 1.0.0 such a quiet release. Plans for Bunny 1.1 will be posted in the near future. 1. http://rubygems.org/gems/bunny/versions/1.0.0 MK Software Engineer, Pivotal/RabbitMQ From k.madnani84 at gmail.com Tue Oct 29 14:30:40 2013 From: k.madnani84 at gmail.com (k.madnani84) Date: Tue, 29 Oct 2013 07:30:40 -0700 (PDT) Subject: [rabbitmq-discuss] Deleting all queues in rabbitmq. In-Reply-To: <526F98B1.5070409@rabbitmq.com> References: <1383019760521-30933.post@n5.nabble.com> <526F8881.5000902@rabbitmq.com> <526F98B1.5070409@rabbitmq.com> Message-ID: <1383057040399-30955.post@n5.nabble.com> $ rabbitmqctl set_policy deleter ".*" '{"expires":1}' --apply-to queues Can you please elaborate on parameters passed here specially expires,Is it some time duration?..And i believe 'apply-to' takes exchanges as well?.Great if you update the RabbitMQ web site with this policy as well. -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Deleting-all-queues-in-rabbitmq-tp30933p30955.html Sent from the RabbitMQ mailing list archive at Nabble.com. From michael at rabbitmq.com Tue Oct 29 14:34:44 2013 From: michael at rabbitmq.com (Michael Klishin) Date: Tue, 29 Oct 2013 18:34:44 +0400 Subject: [rabbitmq-discuss] Deleting all queues in rabbitmq. In-Reply-To: <1383057040399-30955.post@n5.nabble.com> References: <1383019760521-30933.post@n5.nabble.com> <526F8881.5000902@rabbitmq.com> <526F98B1.5070409@rabbitmq.com> <1383057040399-30955.post@n5.nabble.com> Message-ID: <06351A55-F9D8-4AB0-9A55-D6EFA5E60C94@rabbitmq.com> On 29 Oct 2013, at 18:30, k.madnani84 wrote: > $ rabbitmqctl set_policy deleter ".*" '{"expires":1}' --apply-to queues > > Can you please elaborate on parameters passed here specially expires,Is it > some time duration?. This line creates a policy named deleter which applies to all names (.*) and will be applied to queues. See https://www.rabbitmq.com/ttl.html. > .And i believe 'apply-to' takes exchanges as well? Policies can be used with exchanges but exchanges cannot have TTL. MK Software Engineer, Pivotal/RabbitMQ From emile at rabbitmq.com Tue Oct 29 15:53:08 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Tue, 29 Oct 2013 15:53:08 +0000 Subject: [rabbitmq-discuss] abnormally large memory use in "binaries" In-Reply-To: <1382988737.24921.YahooMailNeo@web122005.mail.ne1.yahoo.com> References: <1382124784.35713.YahooMailNeo@web122001.mail.ne1.yahoo.com> <52655DF1.1050605@rabbitmq.com> <1382381403.12000.YahooMailNeo@web122001.mail.ne1.yahoo.com> <5266621C.7090403@rabbitmq.com> <1382458816.47116.YahooMailNeo@web122003.mail.ne1.yahoo.com> <1382988737.24921.YahooMailNeo@web122005.mail.ne1.yahoo.com> Message-ID: <526FD9E4.5090204@rabbitmq.com> Hi Brian, On 28/10/13 19:32, Brian Hammond wrote: > Here is the output with the netstat output. Thanks for this information. Can you confirm whether limiting the prefetch count to a small number (e.g. 1) helped? I see the prefetch counts are still 500 or unlimited. This change may impact performance, as you rightly point out, but it would be extremely useful to confirm whether it constrains memory use. I realise that it might be difficult for you to make this change to all consumers. Let me know if this is too onerous so we can discuss alternatives. -Emile From michael.sander at gmail.com Tue Oct 29 12:43:21 2013 From: michael.sander at gmail.com (Michael Sander) Date: Tue, 29 Oct 2013 08:43:21 -0400 Subject: [rabbitmq-discuss] rabbitmq nodedown - nodedown - Generic server rabbit_disk_monitor terminating In-Reply-To: References: <4e2b75de-0e07-4a4c-9ef2-e952fe2bea1a@googlegroups.com> Message-ID: Hi Michael, *Version: *I'm running debian linux on a Google Compute Engine instance with RabbitMQ 3.1.3. (more version info below). *Workload:* I'm using rabbitmq as part of a process to OCR many PDFs. I add many URLs to various PDFs into rabbitmq. Then, a consumer pulls that link out of rabbitmq, downloads the file, attempts to OCR it, and then sends the result to another server. *Diskspace: *During OCR, my app writes, reads, and deletes a lot of temporary files, so it is possible that I briefly an out of free disk space momentarily. But I ran df afterwards and it looks like I have enough space. (see below). Even if I did run out of disk space, shouldn't rabbitmq be somewhat graceful about it? Perhaps it should refuse any new jobs while there is no space but then come back online once it detects there is space available. *Reproducing: *Unfortunately nothing reliably reproduces it. This is one of those annoying situations where everything is working fine for a week and then all of a sudden it goes down. I'm going to setup a script that will email me when my disk space goes over 90%, so hopefully that will help identify the issue. Here is some additional version and disk usage information that may be useful $ df -h Filesystem Size Used Avail Use% Mounted on rootfs 10G 6.9G 2.7G 73% / /dev/root 10G 6.9G 2.7G 73% / none 899M 0 899M 0% /dev tmpfs 180M 4.1M 176M 3% /run tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 360M 0 360M 0% /run/shm $ cat /proc/version Linux version 3.3.8-gcg-201305291443 (nobody at google.com) (gcc version 4.6.x-google 20111101 (prerelease) (Google_crosstoolv15-gcc-4.6.x-glibc-2.11.1-grte) ) #1 SMP Wed May 29 14:49:59 PDT 2013 Appreciate the help. Best, Michael Sander michael.sander at gmail.com 607-227-9859 On Tue, Oct 29, 2013 at 8:23 AM, Michael Klishin wrote: > On 29 Oct 2013, at 08:56, Michael Sander wrote: > > > ** Reason for termination == > > ** {{badmatch,[]}, > > [{rabbit_disk_monitor,parse_free_unix,1,[]}, > > {rabbit_disk_monitor,internal_update,1,[]}, > > {rabbit_disk_monitor,handle_info,2,[]}, > > {gen_server,handle_msg,5,[{file,"gen_server.erl"},{line,607}]}, > > {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,227}]}]} > > =INFO REPORT==== 28-Oct-2013::19:48:36 === > > Disabling disk free space monitoring on unsupported platform: {{'EXIT', > > > {{badmatch,[]}, > > > [{rabbit_disk_monitor, > > > parse_free_unix, > > 1,[]}, > > > {rabbit_disk_monitor, > > > init,1,[]}, > > > {gen_server, > > > init_it,6, > > > [{file, > > > "gen_server.erl"}, > > > {line, > > > 304}]}, > > > {proc_lib, > > > init_p_do_apply, > > 3, > > > [{file, > > > "proc_lib.erl"}, > > > {line, > > > 227}]}]}}, > > > 1887428608} > > Michael, > > Is there a more or less reliable way to reproduce the issue? E.g. what OS, > RabbitMQ > version and RabbitMQ configuration can we try? What is your workload like? > > Thank you. > > MK > > Software Engineer, Pivotal/RabbitMQ > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From abid.varshani at gmail.com Tue Oct 29 14:41:45 2013 From: abid.varshani at gmail.com (Abid Varshani) Date: Tue, 29 Oct 2013 20:11:45 +0530 Subject: [rabbitmq-discuss] Rabbitmq server wont start on AWS linux AMI In-Reply-To: <526F9D6C.3040502@rabbitmq.com> References: <526F811F.3030808@rabbitmq.com> <526F9D6C.3040502@rabbitmq.com> Message-ID: Thanks Emile. You are right, I had used wrong RPM. I installed the correct RPM and its working fine. Thanks a lot for your help Regards Abid On Tue, Oct 29, 2013 at 5:05 PM, Emile Joubert wrote: > > > Hi, > > I tried installing with the same AMI as you on a new VM and get no error: > > # cat /etc/image-id > image_name="amzn-ami-pv" > image_version="2013.03" > image_arch="x86_64" > image_file="amzn-ami-pv-2013.03.0.x86_64.ext4" > image_stamp="02c3-8bc3" > image_date="20130326200539" > recipe_name="amzn ami" > recipe_id="240049bc-8990-fb91-ccad-aeb9-4dfe-eaac-44035533" > > # /sbin/service rabbitmq-server start > Starting rabbitmq-server: SUCCESS > > > Perhaps you mistakenly installed the SuSE RPM instead of the generic > one. The RPM I tested with was rabbitmq-server-3.2.0-1.noarch.rpm. > > > > > -Emile > > > > > > On 29/10/13 11:13, Abid Varshani wrote: > > Thanks for responding Emile. > > > > I am using this ami."amzn-ami-pv-2013.03.0.x86_64-ebs (ami-ecbe2adc" > > > > Just to add I have tried starting the server using* "/sbin/service > > rabbitmq-server start" *command as well and the result is same. > > > > Also, I have been using this server for some time now but yesterday I > > ran into some issues while trying to reset the server. basically it > > won't start after resetting. > > > > Hence I uninstalled and re-installed the server today after which I > > started getting the above issue. > > > > Thanks > > > > Regards > > > > > > On Tue, Oct 29, 2013 at 3:04 PM, Emile Joubert > > wrote: > > > > On 29/10/13 03:28, Abid Varshani wrote: > > > > > I have installed RabbitMQ using RPM based distro which was > successful. > > > But when I try to start the server using > "/etc/init.d/rabbitmq-server > > > start" , it hangs. > > > > > > startup_err file has following error > > > > > > "/etc/init.d/rabbitmq-server: line 64: startproc: command not > found" > > > > > > That should only happen if the RPM OS is detected has SuSE, otherwise > > the broker is daemonised using "daemon". I was unable to reproduce > the > > error using this AMI: > > > > # cat /etc/image-id > > image_name="amzn-ami-pv" > > image_version="2013.09" > > image_arch="i386" > > image_file="amzn-ami-pv-2013.09.0.i386.ext4" > > image_stamp="a0b9-e027" > > image_date="20130925011250" > > recipe_name="amzn ami" > > recipe_id="55ae74f2-622a-de5d-2288-c450-6402-3ea3-a8b3b196" > > > > > > Can you please confirm exactly which image you are using? > > > > Also see https://www.rabbitmq.com/ec2.html > > > > > > > > -Emile > > > > > > > > > > > > > > _______________________________________________ > > rabbitmq-discuss mailing list > > rabbitmq-discuss at lists.rabbitmq.com > > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > > > > -- > Emile Joubert > > RabbitMQ > SpringSource, a division of VMware > VMware > -------------- next part -------------- An HTML attachment was scrubbed... URL: From abid.varshani at gmail.com Tue Oct 29 15:37:40 2013 From: abid.varshani at gmail.com (Abid Varshani) Date: Tue, 29 Oct 2013 21:07:40 +0530 Subject: [rabbitmq-discuss] Destroying connection after ShutdownSignalException Message-ID: Hi I am connecting to rabbitmq-server from an android client. And I want to be able to destroy the connection whenever network connection is lost. The problem is as soon as network connection is lost I get ShutdownSignalException. And if I try to close the connection in this state it crashes. Moreover if I run the following command on server, the connection still seems to be running. *rabbitmqctl list_connections* * * What is the best way to destroy the connection after * ShutdownSignalException* * * Thanks * * Regards Abid -------------- next part -------------- An HTML attachment was scrubbed... URL: From graeme at sudo.ca Tue Oct 29 16:11:51 2013 From: graeme at sudo.ca (Graeme N) Date: Tue, 29 Oct 2013 09:11:51 -0700 Subject: [rabbitmq-discuss] Feature Req / Bug list In-Reply-To: <20131029101654.28383f2d@pitrou.net> References: <526A49E0.3010707@rabbitmq.com> <61705EBA-366B-4B77-BBFE-D7B2E14F3E5A@rabbitmq.com> <92E1A6B8-E4D1-47C5-A108-9E254EC2EF9D@rabbitmq.com> <526ECAD9.2030703@rabbitmq.com> <526ED167.1010308@rabbitmq.com> <20131029101654.28383f2d@pitrou.net> Message-ID: On Tue, Oct 29, 2013 at 2:16 AM, Antoine Pitrou wrote: > Speaking as a bystander here, but could you avoid posting huge messages > on a public mailing-list ? If you want to post large attached data, > consider using a Web hosting service. > > (my client tells me your message weighs 2.5MB, which even nowadays can > take time to download) > Oh, sorry. I'm just used to people using GMail, but that's not a reasonable assumption. I'll make sure to sideband scripts and such in the future. Graeme -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Tue Oct 29 16:13:57 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 29 Oct 2013 20:13:57 +0400 Subject: [rabbitmq-discuss] Destroying connection after ShutdownSignalException In-Reply-To: References: Message-ID: <3BBE92FA-573A-46F6-B963-4E731C312186@rabbitmq.com> On 29 Oct 2013, at 19:37, Abid Varshani wrote: > What is the best way to destroy the connection after ShutdownSignalException You don?t need to release any connections explicitly but there is com.rabbitmq.client.Connection#isOpen. list_connections won?t notice connection loss immediately because of how TCP works. Feel free to take a look at Lyra and how it performs recovery: https://github.com/jhalterman/lyra MK Software Engineer, Pivotal/RabbitMQ From alan.antonuk at gmail.com Tue Oct 29 16:34:45 2013 From: alan.antonuk at gmail.com (Alan Antonuk) Date: Tue, 29 Oct 2013 09:34:45 -0700 Subject: [rabbitmq-discuss] Queries regarding rabbitmq-C APIs In-Reply-To: References: Message-ID: Shashank; On Mon, Oct 28, 2013 at 3:15 AM, Lothe Shashank < Shashank.Lothe at techmahindra.com> wrote: > > > 1. Is there is a way to check from rabbitmq-c library function, if the > network cable is pulled out? > As far as I know, there isn't a portable socket API for detecting a network cable from being pulled. The best we can do is to detect when the TCP connection has been closed. All rabbitmq-c functions that cause a read or write to the socket check the return from these functions to detect the socket being closed unexpectedly. If the socket is closed the client will receive an AMQP_STATUS_SOCKET_CLOSED or AMQP_STATUS_SOCKET_ERROR as a return value. > Why amqp_basic_publish API returns success if network cable is pulled out > from client? > What's happening most likely is that the OS has not detected that that the socket has been closed, and since the message being published is smaller than the socket's send buffer, the data is being buffered by the OS. > > > 2. Establish connection with broker. Pull out network cable, call > amqp_channel_close. It crashes. > 3. Establish connection with broker for auto delete queue and do > "rabbitmqctl stop_app" on broker. The connection is closed automatically. > Now call amqp_destroy_connection. It crashes. > I've heard reports of this happening, but I haven't got any more detail on what is happening besides "it crashes". What is causing the crash? Segfault? Some other uncaught signal? (SIGPIPE for example)? Something else? If you have some other information about the crash or how I could reproduce it that would be helpful. -Alan -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Tue Oct 29 16:37:19 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 29 Oct 2013 20:37:19 +0400 Subject: [rabbitmq-discuss] rabbitmq nodedown - nodedown - Generic server rabbit_disk_monitor terminating In-Reply-To: References: <4e2b75de-0e07-4a4c-9ef2-e952fe2bea1a@googlegroups.com> Message-ID: On 29 Oct 2013, at 16:43, Michael Sander wrote: > Diskspace: During OCR, my app writes, reads, and deletes a lot of temporary files, so it is possible that I briefly an out of free disk space momentarily. But I ran df afterwards and it looks like I have enough space. (see below). Another reason may be running out of file descriptors. What?s the ulimit -n value for user rabbitmq? > Even if I did run out of disk space, shouldn't rabbitmq be somewhat graceful about it? Perhaps it should refuse any new jobs while there is no space but then come back online once it detects there is space available. See http://www.rabbitmq.com/memory.html. RabbitMQ will normally block publishers until there?s enough disk space available but for some reason disk monitor does not work in your environment, so rabbit cannot know when it runs out of disk space or file descriptors. -- MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Tue Oct 29 16:44:54 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Tue, 29 Oct 2013 20:44:54 +0400 Subject: [rabbitmq-discuss] rabbitmq nodedown - nodedown - Generic server rabbit_disk_monitor terminating In-Reply-To: References: <4e2b75de-0e07-4a4c-9ef2-e952fe2bea1a@googlegroups.com> Message-ID: <9ABF3D5F-69A4-4ED5-A7A8-B9EEB56DD699@gopivotal.com> On 29 Oct 2013, at 16:43, Michael Sander wrote: > Here is some additional version and disk usage information that may be useful Michael, Can you please run /bin/df -kP [rabbitmq database directory location] and post the output? This is what RabbitMQ disk monitor uses internally. Supposedly it gets a non-standard output back which it fails to parse. Thank you. -- MK Software Engineer, Pivotal/RabbitMQ From bipul.dutta at gen-e.com Tue Oct 29 17:32:16 2013 From: bipul.dutta at gen-e.com (Bipul Dutta) Date: Tue, 29 Oct 2013 10:32:16 -0700 Subject: [rabbitmq-discuss] Challenges with Windows 7, No FQDN, IP as node name In-Reply-To: <526F93BB.1040908@rabbitmq.com> References: <526F93BB.1040908@rabbitmq.com> Message-ID: Thanks Emile, No luck yet. Here are my RABBITMQ_* properties after your suggestion about node name: ========= env =============== set DIST=%~p0\..\..\..\.. set CURR_LOC=%CD% cd "%DIST%" set DIST=%CD% set RSMQ_BASE=%DIST%\rabbitmq set RABBITMQ_CONFIG_FILE=%RSMQ_BASE%\config\rabbitmq set RABBITMQ_ENABLED_PLUGINS_FILE=%RSMQ_BASE%\config\enabled_plugins set RABBITMQ_MNESIA_BASE=%RSMQ_BASE%\db set RABBITMQ_LOG_BASE=%RSMQ_BASE%\log set RABBITMQ_BASE=%RSMQ_BASE%\windows set ERLANG_HOME=%RABBITMQ_BASE%\erlang set RABBITMQ_COOKIE=mycookie set RABBITMQ_SERVER_START_ARGS=-setcookie %RABBITMQ_COOKIE% set RABBITMQ_CTL_ERL_ARGS=-setcookie %RABBITMQ_COOKIE% set RABBITMQ_NODENAME=rabbit at 10-20-2-52 set RABBITMQ_INET_LISTEN_PORT=35197 ======================================= ========= rabbitctl.bat file content =========== rabbitmqctl.bat has the following at the end: "!ERLANG_HOME!\bin\erl.exe" -pa "!TDP0!..\ebin" -noinput -hidden !RABBITMQ_CTL_ERL_ARGS! -name rabbitmqctl!RANDOM!!TIME:~9! -s rabbit_control_main -nodename !RABBITMQ_NODENAME! -extra !STAR! ======================================= The windows service works just fine and I can go to the admin console at http://10.20.2.52:15672 FYI, I do not have any entry in the hosts file. Thanks for the help. Bipul Dutta. On Tue, Oct 29, 2013 at 3:53 AM, Emile Joubert wrote: > > Hi, > > On 29/10/13 00:10, Bipul Dutta wrote: > > >>rabbitmqctl status throws the following exception: > > > >>rabbitmqctl.bat status > > > > RabbitMQ Home: c:\rabbitmq > > {error_logger,{{2013,10,28},{19,2,44}},"Can't set long node > > name!\nPlease check your configuration\n",[]} > > Can you please confirm the values of the RABBIT_* environment variables > when you installed the service? Installing the service with a nodename > like "RABBITMQ_NODENAME=10.0.0.1" is not supported. If you must to use > the IP number as a node name then replace the dots with a dash. > > > > -Emile > > > > > This message contains confidential information and is intended only for the individual named. If you are not the named addressee, any delivery, disclosure, dissemination or distribution of this e-mail is unlawful and strictly prohibited. Please notify the sender immediately by e-mail if you have received this e-mail by mistake and delete this e-mail from your system. E-mail transmissions cannot be guaranteed to be secure or without error, as information could be intercepted, corrupted, lost, destroyed, arrive late, be incomplete, or contain viruses. The sender therefore does not accept liability for any errors or omissions in the contents of this message, which errors or omissions arise as a result of e-mail transmission. If verification is required, please request a hard-copy version. (genE-dct1) -------------- next part -------------- An HTML attachment was scrubbed... URL: From emile at rabbitmq.com Tue Oct 29 17:38:56 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Tue, 29 Oct 2013 17:38:56 +0000 Subject: [rabbitmq-discuss] Challenges with Windows 7, No FQDN, IP as node name In-Reply-To: References: <526F93BB.1040908@rabbitmq.com> Message-ID: <526FF2B0.7070603@rabbitmq.com> Hi, On 29/10/13 17:32, Bipul Dutta wrote: > ========= rabbitctl.bat file content =========== > rabbitmqctl.bat has the following at the end: Can you confirm that everything works as expected without any modifications to the scripts and with default environment variables? Setting "-name" is not supported. "rabbit at 10-20-2-52" will not work unless "10-20-2-52" resolves. -Emile From steve at rabbitmq.com Tue Oct 29 18:01:01 2013 From: steve at rabbitmq.com (Steve Powell) Date: Tue, 29 Oct 2013 18:01:01 +0000 Subject: [rabbitmq-discuss] JMS Client with Rabbit MQ In-Reply-To: <59BF56992750434F89F8EBE141E64B1D01828067@GAALPA1MSGUSR9C.ITServices.sbc.com> References: <59BF56992750434F89F8EBE141E64B1D01828067@GAALPA1MSGUSR9C.ITServices.sbc.com> Message-ID: There is a JMS Client (jar) that uses RabbitMQ as the server. It is available as part of our commercial offering Pivotal vFabric RabbitMQ. You can learn more about this on the Pivotal page: http://www.gopivotal.com/pivotal-products/apps/vfabric (look for the RabbitMQ feature), and if you follow the support links you will get to the VMware vFabric documentation which describes the JMS support in vFabric RabbitMQ. At present the JMS Client is at version 1.0.5 (using RabbitMQ 3.1.5), and this supports most of the JMS 1.1 API. However, it does not contain any support for a JMS application reading from or writing to ordinary AMQP resources (exchange/routing key and/or queues). The internal format of the messages used by the JMS client are presently JMS Java client specific and would be difficult to decode in a non-Java AMQP client (not to mention generate). A new feature (non-JMS messages being read and written through the JMS API) is currently under development, and may form part of an upcoming release. If you wish to seek support for the JMS Client on RabbitMQ, please send a note to support at rabbitmq.com where terms for the commercial release and requirements are fielded. Steve Powell [M: +44-7815-838-558; H:+44-1962-775-598; W:+44-2380-111-528] What I tell you three times is true. Lewis Carroll; Hunting of the Snark: Fit the First On 25 Oct 2013, at 17:56, "PATAR, SAGAR" wrote: > We are trying to migrate our existing JMS Message broker to Rabbit MQ ?Wanted to check if Rabbit MQ support our existing JMS based clients without any changes .. > > Can we receive message with JMS API using rabbit MQ?? > > Thank you > _______________________________________________ > 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 KGanann at kroll.com Tue Oct 29 18:35:54 2013 From: KGanann at kroll.com (Ganann, Kale) Date: Tue, 29 Oct 2013 18:35:54 +0000 Subject: [rabbitmq-discuss] Hard Down In-Reply-To: References: Message-ID: <6414E4E0-1482-41EB-B866-A154E2D56D1B@kroll.com> > We just upgraded to 3.2 last Friday, and the system froze up today. My coworker tried a reboot when rabbitmqctl stop just hung. Node 2 says it's back, but the management interface is still down, and when he tries to start the other two nodes he gets the following crash dump... > > 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 -------------- A non-text attachment was scrubbed... Name: image.jpeg Type: image/jpeg Size: 33985 bytes Desc: image.jpeg URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: ATT00001.txt URL: From cwstorm at gmail.com Tue Oct 29 18:49:11 2013 From: cwstorm at gmail.com (cw storm) Date: Tue, 29 Oct 2013 14:49:11 -0400 Subject: [rabbitmq-discuss] How to determine if my message was publish successfully Message-ID: I've research about how to confirm if my message was publish successfully to rabbit queue. I'm using basicPublish to produce the message with mandatory flag set to true. I did a negative test where I provide the correct exchange name but an invalid routing key. However, I don't know how to capture the basic.return in my code to see if it was successful or not. I was hoping it would goto the catch block but obviously it didn't. -------------- next part -------------- An HTML attachment was scrubbed... URL: From emile at rabbitmq.com Tue Oct 29 19:59:38 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Tue, 29 Oct 2013 19:59:38 +0000 Subject: [rabbitmq-discuss] Hard Down In-Reply-To: <6414E4E0-1482-41EB-B866-A154E2D56D1B@kroll.com> References: <6414E4E0-1482-41EB-B866-A154E2D56D1B@kroll.com> Message-ID: <527013AA.7030902@rabbitmq.com> On 29/10/13 18:35, Ganann, Kale wrote: >> We just upgraded to 3.2 last Friday, and the system froze up today. >> My coworker tried a reboot when rabbitmqctl stop just hung. Node 2 >> says it's back, but the management interface is still down, and >> when he tries to start the other two nodes he gets the following >> crash dump... For the benefit of the eyesight of the community please find attached a marginally more readable version. The pertinent information is Erlang R14B04 Slogan: init terminating in do_boot -------------- next part -------------- A non-text attachment was scrubbed... Name: image.jpeg Type: image/jpeg Size: 82474 bytes Desc: not available URL: From bipul.dutta at gen-e.com Tue Oct 29 20:44:31 2013 From: bipul.dutta at gen-e.com (Bipul Dutta) Date: Tue, 29 Oct 2013 13:44:31 -0700 Subject: [rabbitmq-discuss] Challenges with Windows 7, No FQDN, IP as node name In-Reply-To: <526FF2B0.7070603@rabbitmq.com> References: <526F93BB.1040908@rabbitmq.com> <526FF2B0.7070603@rabbitmq.com> Message-ID: Thanks Emile for the help. It works!!! I changed to -sname (from -name) and added the node name in hosts file as 10.20.2.52 10-20-2-52. Awesome! Bipul. On Tue, Oct 29, 2013 at 10:38 AM, Emile Joubert wrote: > > Hi, > > On 29/10/13 17:32, Bipul Dutta wrote: > > > ========= rabbitctl.bat file content =========== > > rabbitmqctl.bat has the following at the end: > > Can you confirm that everything works as expected without any > modifications to the scripts and with default environment variables? > Setting "-name" is not supported. "rabbit at 10-20-2-52" will not work > unless "10-20-2-52" resolves. > > > > > -Emile > This message contains confidential information and is intended only for the individual named. If you are not the named addressee, any delivery, disclosure, dissemination or distribution of this e-mail is unlawful and strictly prohibited. Please notify the sender immediately by e-mail if you have received this e-mail by mistake and delete this e-mail from your system. E-mail transmissions cannot be guaranteed to be secure or without error, as information could be intercepted, corrupted, lost, destroyed, arrive late, be incomplete, or contain viruses. The sender therefore does not accept liability for any errors or omissions in the contents of this message, which errors or omissions arise as a result of e-mail transmission. If verification is required, please request a hard-copy version. (genE-dct1) -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Tue Oct 29 20:47:21 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 30 Oct 2013 00:47:21 +0400 Subject: [rabbitmq-discuss] How to determine if my message was publish successfully In-Reply-To: References: Message-ID: <13CC7496-11D1-4F77-97B8-AA425B211B0E@rabbitmq.com> On 29 Oct 2013, at 22:49, cw storm wrote: > However, I don't know how to capture the basic.return in my code to see if it was successful or not. I was hoping it would goto the catch block but obviously it didn't. This depends on your client library. What client do you use? Can you post your test code? MK Software Engineer, Pivotal/RabbitMQ From francois.beausoleil at gmail.com Tue Oct 29 20:50:36 2013 From: francois.beausoleil at gmail.com (=?UTF-8?Q?Fran=C3=A7ois_Beausoleil?=) Date: Tue, 29 Oct 2013 13:50:36 -0700 (PDT) Subject: [rabbitmq-discuss] Imprecision of the graphs on Overview Message-ID: <53b137d7-f35f-479b-b7ce-18bf4e783701@googlegroups.com> http://i.imgur.com/JgeRhz2.jpg I'm looking at the overview tab, and I don't understand: according to the overview, I'm ack'ing more messages (per second) than I'm publishing, but the total number of messages goes UP, not down... Can anybody shed some light? Is that fixed in 3.1.5 / 3.2.0? Thanks, Fran?ois -------------- next part -------------- An HTML attachment was scrubbed... URL: From matthias at rabbitmq.com Tue Oct 29 21:08:57 2013 From: matthias at rabbitmq.com (Matthias Radestock) Date: Tue, 29 Oct 2013 21:08:57 +0000 Subject: [rabbitmq-discuss] Imprecision of the graphs on Overview In-Reply-To: <53b137d7-f35f-479b-b7ce-18bf4e783701@googlegroups.com> References: <53b137d7-f35f-479b-b7ce-18bf4e783701@googlegroups.com> Message-ID: <527023E9.9040505@rabbitmq.com> On 29/10/13 20:50, Fran?ois Beausoleil wrote: > http://i.imgur.com/JgeRhz2.jpg > > I'm looking at the overview tab, and I don't understand: according to > the overview, I'm ack'ing more messages (per second) than I'm > publishing, but the total number of messages goes UP, not down... > Can anybody shed some light? I'd guess your messages get routed to more than one queue. Look at the ingress/egress rates on individual exchanges and queues to confirm that theory. > Is that fixed in 3.1.5 / 3.2.0? Nothing is broken. Matthias. From francois.beausoleil at gmail.com Tue Oct 29 21:10:13 2013 From: francois.beausoleil at gmail.com (=?UTF-8?Q?Fran=C3=A7ois_Beausoleil?=) Date: Tue, 29 Oct 2013 14:10:13 -0700 (PDT) Subject: [rabbitmq-discuss] rabbitmq-server dies from out of memory Message-ID: <0e3cfc8f-98b8-4e78-922b-b5bc459c1617@googlegroups.com> Hi all! I have a bare metal server with 32 GiB of RAM. I installed RabbitMQ 3.2.0, Erlang R16B02. When load increases (publishing over 4000 msgs/s), RabbitMQ dies with "Could not allocate memory" errors: Crash dump was written to: erl_crash.dump eheap_alloc: Cannot allocate 529782288 bytes of memory (of type "heap"). The messages which are published are about 4 KiB of XML. The persistent option is set to true, to ensure persistence across reboots. The host has configuration for overcommit: # cat /proc/sys/vm/overcommit_ratio 50 # cat /proc/sys/vm/overcommit_memory 2 On start, RabbitMQ correctly identifies the total amount of memory: =INFO REPORT==== 29-Oct-2013::20:58:03 === node : rabbit at skyler home dir : /var/lib/rabbitmq config file(s) : (none) cookie hash : mV5+4OI0hTEXkDPMtOzVdQ== log : /var/log/rabbitmq/rabbit at skyler.log sasl log : /var/log/rabbitmq/rabbit at skyler-sasl.log database dir : /var/lib/rabbitmq/mnesia/rabbit at skyler =INFO REPORT==== 29-Oct-2013::20:58:04 === Limiting to approx 3996 file handles (3594 sockets) =INFO REPORT==== 29-Oct-2013::20:58:04 === Memory limit set to 12826MB of 32066MB total. =INFO REPORT==== 29-Oct-2013::20:58:04 === Disk free limit set to 50MB On the same host, I'm also running a Java application. The Java application's max heap is set to 6 GiB, through -Xmx6g. Google and StackOverflow aren't very helpful: there are a few mentions, but not many apply to RabbitMQ, and the other ones don't seem to apply or are very old. What can I do to troubleshoot the problem? Thanks! Fran?ois -------------- next part -------------- An HTML attachment was scrubbed... URL: From videlalvaro at gmail.com Tue Oct 29 21:15:30 2013 From: videlalvaro at gmail.com (Alvaro Videla) Date: Tue, 29 Oct 2013 22:15:30 +0100 Subject: [rabbitmq-discuss] rabbitmq-server dies from out of memory In-Reply-To: <0e3cfc8f-98b8-4e78-922b-b5bc459c1617@googlegroups.com> References: <0e3cfc8f-98b8-4e78-922b-b5bc459c1617@googlegroups.com> Message-ID: Hi, Which version of Erlang are you using? 32 bits or 64 bits? What's the OS? I've seen this error on 32 bits Erlang on Mac. Regards, Alvaro On Tue, Oct 29, 2013 at 10:10 PM, Fran?ois Beausoleil < francois.beausoleil at gmail.com> wrote: > Hi all! > > I have a bare metal server with 32 GiB of RAM. I installed RabbitMQ 3.2.0, > Erlang R16B02. > > When load increases (publishing over 4000 msgs/s), RabbitMQ dies with > "Could not allocate memory" errors: > > Crash dump was written to: erl_crash.dump > eheap_alloc: Cannot allocate 529782288 bytes of memory (of type "heap"). > > The messages which are published are about 4 KiB of XML. The persistent > option is set to true, to ensure persistence across reboots. > > The host has configuration for overcommit: > > # cat /proc/sys/vm/overcommit_ratio > 50 > # cat /proc/sys/vm/overcommit_memory > 2 > > On start, RabbitMQ correctly identifies the total amount of memory: > > =INFO REPORT==== 29-Oct-2013::20:58:03 === > node : rabbit at skyler > home dir : /var/lib/rabbitmq > config file(s) : (none) > cookie hash : mV5+4OI0hTEXkDPMtOzVdQ== > log : /var/log/rabbitmq/rabbit at skyler.log > sasl log : /var/log/rabbitmq/rabbit at skyler-sasl.log > database dir : /var/lib/rabbitmq/mnesia/rabbit at skyler > > =INFO REPORT==== 29-Oct-2013::20:58:04 === > Limiting to approx 3996 file handles (3594 sockets) > > =INFO REPORT==== 29-Oct-2013::20:58:04 === > Memory limit set to 12826MB of 32066MB total. > > =INFO REPORT==== 29-Oct-2013::20:58:04 === > Disk free limit set to 50MB > > On the same host, I'm also running a Java application. The Java > application's max heap is set to 6 GiB, through -Xmx6g. > > Google and StackOverflow aren't very helpful: there are a few mentions, > but not many apply to RabbitMQ, and the other ones don't seem to apply or > are very old. > > What can I do to troubleshoot the problem? > > Thanks! > Fran?ois > > _______________________________________________ > 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 Oct 29 21:20:25 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 30 Oct 2013 01:20:25 +0400 Subject: [rabbitmq-discuss] rabbitmq-server dies from out of memory In-Reply-To: <0e3cfc8f-98b8-4e78-922b-b5bc459c1617@googlegroups.com> References: <0e3cfc8f-98b8-4e78-922b-b5bc459c1617@googlegroups.com> Message-ID: On 30 Oct 2013, at 01:10, Fran?ois Beausoleil wrote: > The host has configuration for overcommit: > > # cat /proc/sys/vm/overcommit_ratio > 50 > # cat /proc/sys/vm/overcommit_memory > 2 Can you post ulimit -a output? MK Software Engineer, Pivotal/RabbitMQ From usha.narasappa at emc.com Wed Oct 30 05:34:32 2013 From: usha.narasappa at emc.com (Narasappa, Usha) Date: Wed, 30 Oct 2013 05:34:32 +0000 Subject: [rabbitmq-discuss] [rabbitmq] /var/log/messages flooded with su: (to rabbitmq) root on none Message-ID: Hi, You were right in pointing out that the /etc/security/* files had ^H characters. Removing the ^H characters has helped in getting rid of " linux su: pam_limits(su:session): invalid line '^H' - skipped". The following messages still keep flooding the /var/log/messages: Oct 28 06:31:09 linux su: (to rabbitmq) root on none Oct 28 06:31:24 linux su: (to rabbitmq) root on none Oct 28 06:31:39 linux su: (to rabbitmq) root on none Oct 28 06:31:54 linux su: (to rabbitmq) root on none Any idea about the reason and how to get rid of these messages? Thanks, Usha -------------- next part -------------- An HTML attachment was scrubbed... URL: From sekhar434145 at gmail.com Wed Oct 30 06:31:51 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Wed, 30 Oct 2013 12:01:51 +0530 Subject: [rabbitmq-discuss] RabbitMQ_in_action latest pdf document Message-ID: Hi Team, Could please let me know where can I find the RabbitMQ_in_Action latest verion of RabbitMQ3.0 document. Could you please share if its not available in online. Thanks in advance. -------------- next part -------------- An HTML attachment was scrubbed... URL: From videlalvaro at gmail.com Wed Oct 30 06:51:01 2013 From: videlalvaro at gmail.com (Alvaro Videla) Date: Wed, 30 Oct 2013 07:51:01 +0100 Subject: [rabbitmq-discuss] RabbitMQ_in_action latest pdf document In-Reply-To: References: Message-ID: Hi, RabbitMQ in Action is a paid book, you can buy it here: http://manning.com/videla While the book covers RabbitMQ 2.x series, _most_ of the book is still relevant. We haven't decided yet if a 2nd edition is warranted. Regards, Alvaro On Wed, Oct 30, 2013 at 7:31 AM, Rajasekhar P wrote: > Hi Team, > > Could please let me know where can I find the RabbitMQ_in_Action latest > verion of RabbitMQ3.0 document. Could you please share if its not available > in online. > > Thanks in advance. > > _______________________________________________ > 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 Oct 30 08:14:34 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 30 Oct 2013 12:14:34 +0400 Subject: [rabbitmq-discuss] [rabbitmq] /var/log/messages flooded with su: (to rabbitmq) root on none In-Reply-To: References: Message-ID: <61EF621C-149D-49EC-BBEF-CBE152622125@rabbitmq.com> On 30 Oct 2013, at 09:34, Narasappa, Usha wrote: > The following messages still keep flooding the /var/log/messages: > > Oct 28 06:31:09 linux su: (to rabbitmq) root on none Oct 28 06:31:24 linux su: (to rabbitmq) root on none Oct 28 06:31:39 linux su: (to rabbitmq) root on none Oct 28 06:31:54 linux su: (to rabbitmq) root on none > > Any idea about the reason and how to get rid of these messages? I believe this is an info message from su. Something calls su to rabbitmq periodically. Perhaps you have monitoring in place that may be using rabbitmq init and/or control scripts. You can disable su logging by setting SYSLOG_SU_ENAB to false in /etc/login.defs. See man 1 su for more info. MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Wed Oct 30 08:22:07 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 30 Oct 2013 12:22:07 +0400 Subject: [rabbitmq-discuss] ANN Ruby RabbitMQ HTTP API client 0.8.0 Message-ID: RabbitMQ HTTP API client for Ruby [1] 0.8.0 is out with a couple of small features. Change log: https://github.com/ruby-amqp/rabbitmq_http_api_client/blob/master/ChangeLog.md#changes-between-070-and-080 1. https://github.com/ruby-amqp/rabbitmq_http_api_client MK Software Engineer, Pivotal/RabbitMQ From sekhar434145 at gmail.com Wed Oct 30 08:42:55 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Wed, 30 Oct 2013 14:12:55 +0530 Subject: [rabbitmq-discuss] RabbitMQ_in_action latest pdf document In-Reply-To: References: Message-ID: Thanks for reply. We have RabbitMQ2.0 series book and looking for is there any changes in the latest version of RabbitMQ 3.0 version? On Wed, Oct 30, 2013 at 12:21 PM, Alvaro Videla wrote: > Hi, > > RabbitMQ in Action is a paid book, you can buy it here: > http://manning.com/videla > > While the book covers RabbitMQ 2.x series, _most_ of the book is still > relevant. We haven't decided yet if a 2nd edition is warranted. > > Regards, > > Alvaro > > > On Wed, Oct 30, 2013 at 7:31 AM, Rajasekhar P wrote: > >> Hi Team, >> >> Could please let me know where can I find the RabbitMQ_in_Action latest >> verion of RabbitMQ3.0 document. Could you please share if its not available >> in online. >> >> Thanks in advance. >> >> _______________________________________________ >> 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 Wed Oct 30 08:46:26 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Wed, 30 Oct 2013 12:46:26 +0400 Subject: [rabbitmq-discuss] RabbitMQ_in_action latest pdf document In-Reply-To: References: Message-ID: On 30 Oct 2013, at 12:42, Rajasekhar P wrote: > We have RabbitMQ2.0 series book and looking for is there any changes in the latest version of RabbitMQ 3.0 version? There are new features and usability improvements. I don?t think any of the material in the book is outdated. MK Software Engineer, Pivotal/RabbitMQ From sekhar434145 at gmail.com Wed Oct 30 08:50:57 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Wed, 30 Oct 2013 14:20:57 +0530 Subject: [rabbitmq-discuss] RabbitMQ_in_action latest pdf document In-Reply-To: References: Message-ID: Thank you MK for the response. On Wed, Oct 30, 2013 at 2:16 PM, Michael Klishin wrote: > On 30 Oct 2013, at 12:42, Rajasekhar P wrote: > > > We have RabbitMQ2.0 series book and looking for is there any changes in > the latest version of RabbitMQ 3.0 version? > > There are new features and usability improvements. I don?t think any of > the material in the book is outdated. > > 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 psdc1978 at gmail.com Tue Oct 29 21:59:07 2013 From: psdc1978 at gmail.com (xeon) Date: Tue, 29 Oct 2013 21:59:07 +0000 Subject: [rabbitmq-discuss] drop connection it is not available Message-ID: <52702FAB.8000600@gmail.com> If the rabbitmq cannot acess a queue because is down, and a client tries to send a message to the offline queue, the connection keeps hang for a long time. Is there a way to make the connection drop quickly when it is not possible to access the queue? -- Thanks, From swetanahata2008 at gmail.com Wed Oct 30 07:56:25 2013 From: swetanahata2008 at gmail.com (snahata) Date: Wed, 30 Oct 2013 00:56:25 -0700 (PDT) Subject: [rabbitmq-discuss] Implementing the concept of virtual destinations (ActiveMQ) in RabbitMQ Message-ID: Hi All, I am new to RabbitMQ and wanted to figure out whether we can implement the concept of virtual destinations as specified in ActiveMQ in RabbitMQ as well? Virtual Destinations allows to create logical destinations that clients can use to produce and consume from but which map onto one or more physical destinations. Basically, a producer sends message to a virtual topic which is then received by the actual physical queues. These messages are then distributed to the consumers listening on those queues based on the concept of load balancing. I have attached the diagram for reference. Thanks, Sweta -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: virtual_destination.jpg Type: image/jpeg Size: 19089 bytes Desc: not available URL: From videlalvaro at gmail.com Wed Oct 30 09:22:44 2013 From: videlalvaro at gmail.com (Alvaro Videla) Date: Wed, 30 Oct 2013 10:22:44 +0100 Subject: [rabbitmq-discuss] Implementing the concept of virtual destinations (ActiveMQ) in RabbitMQ In-Reply-To: References: Message-ID: Hi, Take a look at how RabbitMQ does routing: http://www.rabbitmq.com/tutorials/tutorial-four-python.html I think that answers part of your question. ie.: "virtual destinations" are exchanges in RabbitMQ. wrt load balancing, that is, spreading the messages across queues, you could use the consistent hash exchange, which comes by default with RabbitMQ (although not enabled). Here are the docs: http://hg.rabbitmq.com/rabbitmq-consistent-hash-exchange/file/rabbitmq_v3_2_0/README.md Regards, Alvaro On Wed, Oct 30, 2013 at 8:56 AM, snahata wrote: > Hi All, > > I am new to RabbitMQ and wanted to figure out whether we can implement the > concept of virtual destinations as specified in ActiveMQ in RabbitMQ as > well? > Virtual Destinations allows to create logical destinations that clients > can use to produce and consume from but which map onto one or more physical > destinations. > Basically, a producer sends message to a virtual topic which is then > received by the actual physical queues. These messages are then distributed > to the consumers listening on those queues based on the concept of load > balancing. > I have attached the diagram for reference. > > Thanks, > Sweta > > _______________________________________________ > 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 real.recipient at hotmail.com Wed Oct 30 09:49:11 2013 From: real.recipient at hotmail.com (Mailinglist Recipient) Date: Wed, 30 Oct 2013 10:49:11 +0100 Subject: [rabbitmq-discuss] Plugins on different nodes in cluster Message-ID: Hi,we are going to cluster our RabbitMQ on more than one node due to performance. Nodes will be spread on different physical nodes in local network.How we can deal with different plug-ins? We would like the management plugin to run on one of the nodes only, is it possible? Will it manage & monitor all the nodes in cluster? Is there any document about various plugins running on different nodes in RMQ cluster? Thanks for helpMarek -------------- next part -------------- An HTML attachment was scrubbed... URL: From videlalvaro at gmail.com Wed Oct 30 09:51:57 2013 From: videlalvaro at gmail.com (Alvaro Videla) Date: Wed, 30 Oct 2013 10:51:57 +0100 Subject: [rabbitmq-discuss] Plugins on different nodes in cluster In-Reply-To: References: Message-ID: Hi, You can install the management plugin in one node, and then the management agent in the other nodes you want to monitor. See: http://www.rabbitmq.com/management.html#clustering Regards, Alvaro On Wed, Oct 30, 2013 at 10:49 AM, Mailinglist Recipient < real.recipient at hotmail.com> wrote: > Hi, > we are going to cluster our RabbitMQ on more than one node due to > performance. Nodes will be spread on different physical nodes in local > network. > How we can deal with different plug-ins? We would like the management > plugin to run on one of the nodes only, is it possible? Will it manage & > monitor all the nodes in cluster? Is there any document about various > plugins running on different nodes in RMQ cluster? > > Thanks for help > Marek > > > _______________________________________________ > 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 sekhar434145 at gmail.com Wed Oct 30 09:58:24 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Wed, 30 Oct 2013 15:28:24 +0530 Subject: [rabbitmq-discuss] RabbitMQ_in_action latest pdf document In-Reply-To: References: Message-ID: In the document chapter 7, its mentioned Warron's load balancing concepts for achieving fail-over and replication right? this is related to RabbitMQ2.0 version with active/standby passion and not applicable for RabbitMQ3.0 version right? On Wed, Oct 30, 2013 at 2:20 PM, Rajasekhar P wrote: > Thank you MK for the response. > > > On Wed, Oct 30, 2013 at 2:16 PM, Michael Klishin wrote: > >> On 30 Oct 2013, at 12:42, Rajasekhar P wrote: >> >> > We have RabbitMQ2.0 series book and looking for is there any changes in >> the latest version of RabbitMQ 3.0 version? >> >> There are new features and usability improvements. I don?t think any of >> the material in the book is outdated. >> >> 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 Oct 30 10:22:40 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 30 Oct 2013 10:22:40 +0000 Subject: [rabbitmq-discuss] rabbitmq-server dies from out of memory In-Reply-To: References: <0e3cfc8f-98b8-4e78-922b-b5bc459c1617@googlegroups.com> Message-ID: <5270DDF0.40105@rabbitmq.com> On 29/10/13 21:15, Alvaro Videla wrote: > Which version of Erlang are you using? 32 bits or 64 bits? In case it is not obvious, you can find out by starting an Erlang shell, for example: $ erl Erlang R16B01 (erts-5.10.2) [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false] Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From watson.timothy at gmail.com Wed Oct 30 10:55:56 2013 From: watson.timothy at gmail.com (Tim Watson) Date: Wed, 30 Oct 2013 10:55:56 +0000 Subject: [rabbitmq-discuss] drop connection it is not available In-Reply-To: <52702FAB.8000600@gmail.com> References: <52702FAB.8000600@gmail.com> Message-ID: <289879FF-E9A5-477A-A2AE-7BD113B17AAB@rabbitmq.com> On 29 Oct 2013, at 21:59, xeon wrote: > If the rabbitmq cannot acess a queue because is down, and a client tries to send a message to the offline queue, the connection keeps hang for a long time. Is there a way to make the connection drop quickly when it is not possible to access the queue? Can you explain this a bit more clearly please. Clients publish to exchanges, not queues. Unroutable messages are dropped on the floor, unless confirms are in use. So what exactly are you trying to do here? If you need timely detection of connectivity problems, enabling heartbeats is the way to go, but it's not clear whether or not that's the issue you're asking about. If you just want to know about unroutable messages then producer confirms are the recommended approach. Tim From francois.beausoleil at gmail.com Wed Oct 30 12:22:01 2013 From: francois.beausoleil at gmail.com (=?iso-8859-1?Q?Fran=E7ois_Beausoleil?=) Date: Wed, 30 Oct 2013 08:22:01 -0400 Subject: [rabbitmq-discuss] rabbitmq-server dies from out of memory In-Reply-To: References: <0e3cfc8f-98b8-4e78-922b-b5bc459c1617@googlegroups.com> Message-ID: <5F7F9128-116B-40A8-BF18-313136FB8DC1@gmail.com> Duh! Completely forgot that... Le 2013-10-29 ? 17:15, Alvaro Videla a ?crit : > Hi, > > Which version of Erlang are you using? 32 bits or 64 bits? Erlang R16B02 (erts-5.10.3) [source-b44b726] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false] > What's the OS? Ubuntu 12.04.3 LTS Linux skyler 3.10.9-xxxx-grs-ipv6-64 #1 SMP Wed Aug 21 11:51:59 CEST 2013 x86_64 x86_64 x86_64 GNU/Linux > I've seen this error on 32 bits Erlang on Mac. Not likely in this case. Thanks! Fran?ois Beausoleil From francois.beausoleil at gmail.com Wed Oct 30 12:23:19 2013 From: francois.beausoleil at gmail.com (=?iso-8859-1?Q?Fran=E7ois_Beausoleil?=) Date: Wed, 30 Oct 2013 08:23:19 -0400 Subject: [rabbitmq-discuss] rabbitmq-server dies from out of memory In-Reply-To: References: <0e3cfc8f-98b8-4e78-922b-b5bc459c1617@googlegroups.com> Message-ID: <22A4B340-9CA8-41CE-8854-0A521F60D771@gmail.com> Le 2013-10-29 ? 17:20, Michael Klishin a ?crit : > On 30 Oct 2013, at 01:10, Fran?ois Beausoleil wrote: > >> The host has configuration for overcommit: >> >> # cat /proc/sys/vm/overcommit_ratio >> 50 >> # cat /proc/sys/vm/overcommit_memory >> 2 > > Can you post ulimit -a output? # ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 256523 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 4096 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 256523 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited Anything else I'm missing? Thanks! Fran?ois Beausoleil From emile at rabbitmq.com Wed Oct 30 12:41:47 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Wed, 30 Oct 2013 12:41:47 +0000 Subject: [rabbitmq-discuss] Hard Down In-Reply-To: <6414E4E0-1482-41EB-B866-A154E2D56D1B@kroll.com> References: <6414E4E0-1482-41EB-B866-A154E2D56D1B@kroll.com> Message-ID: <5270FE8B.1010808@rabbitmq.com> Hi Kale, On 29/10/13 18:35, Ganann, Kale wrote: >> We just upgraded to 3.2 last Friday, and the system froze up today. >> My coworker tried a reboot when rabbitmqctl stop just hung. Node 2 >> says it's back, but the management interface is still down, and >> when he tries to start the other two nodes he gets the following >> crash dump... Unfortunately the crash dump you supplied is of limited use. The first place to look is the broker logfile (including the sasl log). Was anything logged on any of the cluster nodes at the time of the problem? I assume you have resolved the disk space issue. -Emile From videlalvaro at gmail.com Wed Oct 30 13:07:53 2013 From: videlalvaro at gmail.com (Alvaro Videla) Date: Wed, 30 Oct 2013 14:07:53 +0100 Subject: [rabbitmq-discuss] rabbitmq-server dies from out of memory In-Reply-To: <22A4B340-9CA8-41CE-8854-0A521F60D771@gmail.com> References: <0e3cfc8f-98b8-4e78-922b-b5bc459c1617@googlegroups.com> <22A4B340-9CA8-41CE-8854-0A521F60D771@gmail.com> Message-ID: Hi Fran?ois, We recently found a OOM bug related to 32bit Erlang and RabbitMQ, so sorry if I insist with this, but we want to make sure that you have/not have a 32bit Erlang when running RabbitMQ. What could happen is that the Erlang that's on the path of the rabbitmq-server script might not be the same as the Erlang that you start by calling "erl". In my Mac for example I have a globally installed 64 bit Erlang, but the standalone release comes with a 32bit Erlang. In any case, could you please start RabbitMQ and then tell us the output of the following command: rabbitmqctl eval 'erlang:system_info(system_version).' Also, on my rabbit log files I get the following lines during rabbit start up, what's on yours? =INFO REPORT==== 30-Oct-2013::01:23:36 === Memory limit set to 1594MB of 3986MB total. And finally, could you report rabbit's memory use when it's about to crash? You could get that info by running rabbitmqctl status, or by checking on the management plugin interface. Regards, Alvaro On Wed, Oct 30, 2013 at 1:23 PM, Fran?ois Beausoleil < francois.beausoleil at gmail.com> wrote: > > Le 2013-10-29 ? 17:20, Michael Klishin a ?crit : > > > On 30 Oct 2013, at 01:10, Fran?ois Beausoleil < > francois.beausoleil at gmail.com> wrote: > > > >> The host has configuration for overcommit: > >> > >> # cat /proc/sys/vm/overcommit_ratio > >> 50 > >> # cat /proc/sys/vm/overcommit_memory > >> 2 > > > > Can you post ulimit -a output? > > > # ulimit -a > core file size (blocks, -c) 0 > data seg size (kbytes, -d) unlimited > scheduling priority (-e) 0 > file size (blocks, -f) unlimited > pending signals (-i) 256523 > max locked memory (kbytes, -l) 64 > max memory size (kbytes, -m) unlimited > open files (-n) 4096 > pipe size (512 bytes, -p) 8 > POSIX message queues (bytes, -q) 819200 > real-time priority (-r) 0 > stack size (kbytes, -s) 8192 > cpu time (seconds, -t) unlimited > max user processes (-u) 256523 > virtual memory (kbytes, -v) unlimited > file locks (-x) unlimited > > Anything else I'm missing? > > Thanks! > Fran?ois Beausoleil > > _______________________________________________ > 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 lef at apago.com Wed Oct 30 13:54:19 2013 From: lef at apago.com (Lawrence Freil) Date: 30 Oct 2013 09:54:19 -0400 Subject: [rabbitmq-discuss] queue selection based on a 'feature list' Message-ID: Hello, I'm attempting to create a distributed message processing system in which messages posted requires a list of features and can only be posted to queues which have all the required features. In addition it needs to act as a direct exchange in that only one queue should receive a message. In looking over both the headers and topic exchanges it seems the wildcards are specified the wrong way around for this. For example, I have servers which can support optional features of w,x,y and z. When I publish a message it may require x and y. I don't care if the server it runs on supports w and z. So what I really need is the message to support the 'pattern'' and the queues to support the 'string'. Is there a way to accomplish this with the current exchanges? Thanks. -- Lawrence Freil From cwstorm at gmail.com Wed Oct 30 13:58:32 2013 From: cwstorm at gmail.com (cw storm) Date: Wed, 30 Oct 2013 09:58:32 -0400 Subject: [rabbitmq-discuss] How to determine if my message was publish successfully In-Reply-To: <13CC7496-11D1-4F77-97B8-AA425B211B0E@rabbitmq.com> References: <13CC7496-11D1-4F77-97B8-AA425B211B0E@rabbitmq.com> Message-ID: MK, This is my try/catch block code. When I publish, it will also but success just as long the exchange name is correct. Even if you provide and invalid routing key, it'll be success. It doesn't goto the catch block. try { ConnectionFactory factory = new ConnectionFactory(); factory.setUri(strFactoryURI); Connection conn = factory.newConnection(); Channel channel = conn.createChannel(); AMQP.BasicProperties.Builder ct = new AMQP.BasicProperties.Builder(); AMQP.BasicProperties contentTypeHeader = ct.contentType(strContentType).build(); channel.basicPublish(strExchangeName, strRoutingKey, contentTypeHeader, byteMessage); SuccessPutFlag = "true"; channel.close(); conn.close(); } catch (Exception e) { // do something } finally { pipelineCursor.insertAfter("SuccessPutFlag", SuccessPutFlag); pipelineCursor.destroy(); } On Tue, Oct 29, 2013 at 4:47 PM, Michael Klishin wrote: > On 29 Oct 2013, at 22:49, cw storm wrote: > > > However, I don't know how to capture the basic.return in my code to see > if it was successful or not. I was hoping it would goto the catch block > but obviously it didn't. > > This depends on your client library. What client do you use? Can you post > your test 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 simon at rabbitmq.com Wed Oct 30 14:03:36 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 30 Oct 2013 14:03:36 +0000 Subject: [rabbitmq-discuss] How to determine if my message was publish successfully In-Reply-To: References: <13CC7496-11D1-4F77-97B8-AA425B211B0E@rabbitmq.com> Message-ID: <527111B8.2020801@rabbitmq.com> On 30/10/13 13:58, cw storm wrote: > This is my try/catch block code. When I publish, it will also but > success just as long the exchange name is correct. Even if you provide > and invalid routing key, it'll be success. It doesn't goto the catch block. Mandatory publish failing does not cause an exception to be thrown in the Java client. You need to register a ReturnListener: http://www.rabbitmq.com/releases/rabbitmq-java-client/v3.2.0/rabbitmq-java-client-javadoc-3.2.0/com/rabbitmq/client/Channel.html#addReturnListener(com.rabbitmq.client.ReturnListener) Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Wed Oct 30 14:06:21 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 30 Oct 2013 14:06:21 +0000 Subject: [rabbitmq-discuss] queue selection based on a 'feature list' In-Reply-To: References: Message-ID: <5271125D.2040203@rabbitmq.com> On 30/10/13 13:54, Lawrence Freil wrote: > Is there a way to accomplish this with the current exchanges? I'm not sure there is. I can't think of one anyway. I don't think it would be too hard to implement as an exchange type plugin. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From videlalvaro at gmail.com Wed Oct 30 14:16:46 2013 From: videlalvaro at gmail.com (Alvaro Videla) Date: Wed, 30 Oct 2013 15:16:46 +0100 Subject: [rabbitmq-discuss] queue selection based on a 'feature list' In-Reply-To: References: Message-ID: On Wed, Oct 30, 2013 at 2:54 PM, Lawrence Freil wrote: > In addition it needs to act as a direct exchange in that only one queue > should receive a message BTW, on the direct exchange, every queue that is bound with a particular routing key will receive the message. An exchange that routes messages to one queue is the default exchange (aka anon exchange). -------------- next part -------------- An HTML attachment was scrubbed... URL: From videlalvaro at gmail.com Wed Oct 30 14:33:38 2013 From: videlalvaro at gmail.com (Alvaro Videla) Date: Wed, 30 Oct 2013 15:33:38 +0100 Subject: [rabbitmq-discuss] queue selection based on a 'feature list' In-Reply-To: References: Message-ID: Adding back rabbitmq-discuss to the loop. On Wed, Oct 30, 2013 at 3:26 PM, Lawrence Freil wrote: > Alvaro, > > I should have stated 'consumer' instead of 'queue'. The docs (and my > testing indicates that it does work this way) states: > > Direct exchanges are often used to distribute tasks between multiple > workers (instances of the same application) in a round robin manner. When > doing so, it is important to understand that, in AMQP 0-9-1, messages are > load balanced between consumers and not between queues. The exchanges will route messages to queues based on the routing key used when publishing the message and the routing key used to bind the queue(s) to the exchange. Depending on the exchange is how that routing key will be used during routing. So one message could end up in more than one queue. Once the message reached one queue (note that the message could have been delivered to more than one queue), then the messages on a particular queue will be round-robin'ed across consumers. For more details take a look here: http://www.rabbitmq.com/tutorials/amqp-concepts.html Regards, Alvaro > > > > > > On Oct 30 2013, Alvaro Videla wrote: > > On Wed, Oct 30, 2013 at 2:54 PM, Lawrence Freil wrote: >> >> In addition it needs to act as a direct exchange in that only one queue >>> should receive a message >>> >> >> >> BTW, on the direct exchange, every queue that is bound with a particular >> routing key will receive the message. An exchange that routes messages to >> one queue is the default exchange (aka anon exchange). >> >> > -- > Lawrence Freil > lef at apago.com > 770-619-1884 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From emile at rabbitmq.com Wed Oct 30 14:37:42 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Wed, 30 Oct 2013 14:37:42 +0000 Subject: [rabbitmq-discuss] queue selection based on a 'feature list' In-Reply-To: References: Message-ID: <527119B6.8030802@rabbitmq.com> On 30/10/13 13:54, Lawrence Freil wrote: > Is there a way to accomplish this with the current exchanges? There may be a way to approximate this with a topic exchange if you associate features with consumers rather than queues. You could create a queue for each combination of features and bind so that it received messages that require exactly those features. E.g. you could declare queues ____, w___, _x___, __y_, ___z, wx__, ... , w__z, ..., wxyz. and bind them: ____ with binding key _._._._ w___ with binding key w._._._ _x__ with binding key _.x._._ __y_ with binding key _._.y._ ___z with binding key _._._.z ... wx__ with binding key w.x._._ w__z with binding key w._._.z ... wxyz with binding key w.x.y.z Consumers can then consume from all queues that contain messages that demand a subset of the features offered by that consumer, e.g. a consumer that offers x and y consumes from ____ and _x__ and __y_ and _xy_ only z consumes from ____ and ___z w,x,y,z consumes from all queues Then if you publish a message with routing key _.x.y._ it will arrive at queue _xy_ and be sent to a consumer that is guaranteed to offer x and y. If the number of features is large or rapidly changing then this will become unmanageable. If the features are strictly associated with queues rather than consumers then it also won't work. -Emile From ceri at lshift.net Wed Oct 30 14:56:56 2013 From: ceri at lshift.net (Ceri Storey) Date: Wed, 30 Oct 2013 14:56:56 +0000 Subject: [rabbitmq-discuss] [BUG] Management interface fails to render queues with non utf-8 names. Message-ID: <52711E38.5020003@lshift.net> Hi, We noticed that one of our customers has created some queues whose names aren't valid UTF-8. From the AMQP spec it looks like short-strings should be valid UTF-8, and contain only certain character classes. However, my colleague Frank has tracked down some code in rabbit_channel:check_name/2 , where there's a comment to the effect that those rules aren't enforced deliberately. However, if we try to request the list of queues via the API, we get the following backtrace: webmachine error: path="/api/queues" {error,{exit,{ucs,{bad_utf8_character_code}}, [{xmerl_ucs,from_utf8,1,[{file,"xmerl_ucs.erl"},{line,185}]}, {mochijson2,json_encode_string,2,[]}, {mochijson2,'-json_encode_proplist/2-fun-0-',3,[]}, {lists,foldl,3,[{file,"lists.erl"},{line,1248}]}, {mochijson2,json_encode_proplist,2,[]}, {mochijson2,'-json_encode_array/2-fun-0-',3,[]}, {lists,foldl,3,[{file,"lists.erl"},{line,1248}]}, {mochijson2,json_encode_array,2,[]}]}} Which seems to indicate that the management console assumes that entity names are valid UTF-8. We've advised our customer to consider renaming their queues, but it'd be good to somehow rectify the difference in assumptions around name encodings. My first thought might be to percent-encoded non-utf8 data. but there's likely better ways to handle this. The quickest way to reproduce the problem would be to run this ruby script using Bunny (assuming you have a local rabbit with the default credentials): require 'bunny' bunny = Bunny.new().tap { |b| b.start } q = bunny.queue("foo\316null") Once you've done that, if you try to list the queues in the root virtualhost, you'll find you get the above exception. Thanks! -------------- next part -------------- An HTML attachment was scrubbed... URL: From lef at apago.com Wed Oct 30 15:29:12 2013 From: lef at apago.com (Lawrence Freil) Date: 30 Oct 2013 11:29:12 -0400 Subject: [rabbitmq-discuss] queue selection based on a 'feature list' In-Reply-To: <527119B6.8030802@rabbitmq.com> References: <527119B6.8030802@rabbitmq.com> Message-ID: Emile, Thanks for the reply. I had considered this approach and could use this for initial testing, however the feature set that I am looking for is somewhat large and could expand, each time doubling the combinations. I think the end result will be creating an exchange plugin very similar to the topic exchange but where the '*' and '#' can also be used in the message routing keys. Using this wouldn't break any existing topic exchange usage but would allow messages to be crafted with 'I don't care', and if a trailing '#' was always used in the message, adding new features to the servers wouldn't break existing producers. On Oct 30 2013, Emile Joubert wrote: >On 30/10/13 13:54, Lawrence Freil wrote: > >> Is there a way to accomplish this with the current exchanges? > >There may be a way to approximate this with a topic exchange if you >associate features with consumers rather than queues. You could create a >queue for each combination of features and bind so that it received >messages that require exactly those features. > >E.g. you could declare queues > >____, w___, _x___, __y_, ___z, >wx__, ... , w__z, ..., wxyz. > >and bind them: > >____ with binding key _._._._ >w___ with binding key w._._._ >_x__ with binding key _.x._._ >__y_ with binding key _._.y._ >___z with binding key _._._.z >... >wx__ with binding key w.x._._ >w__z with binding key w._._.z >... >wxyz with binding key w.x.y.z > >Consumers can then consume from all queues that contain messages that >demand a subset of the features offered by that consumer, e.g. a >consumer that offers > >x and y consumes from ____ and _x__ and __y_ and _xy_ >only z consumes from ____ and ___z >w,x,y,z consumes from all queues > >Then if you publish a message with routing key _.x.y._ it will arrive at >queue _xy_ and be sent to a consumer that is guaranteed to offer x and y. > > >If the number of features is large or rapidly changing then this will >become unmanageable. If the features are strictly associated with queues >rather than consumers then it also won't work. > > > >-Emile > > > > > > -- Lawrence Freil lef at apago.com 770-619-1884 From jon.bergli.heier at zisson.no Wed Oct 30 15:50:13 2013 From: jon.bergli.heier at zisson.no (Jon Bergli Heier) Date: Wed, 30 Oct 2013 15:50:13 +0000 Subject: [rabbitmq-discuss] Cannot log in to management interface since 3.2.0 Message-ID: Hi, we're having problems logging in to the management interface since version 3.2.0. Chrome spits out the following in the console: [Wed Oct 30 2013 16:38:41 GMT+0100 (CET)] _checkFormSubmission [form, selector: ".closest(form)", context: form, constructor: function, init: function, selector: ""?] #/login put [Wed Oct 30 2013 16:38:41 GMT+0100 (CET)] runRoute put #/login [Wed Oct 30 2013 16:38:41 GMT+0100 (CET)] 500 Error put #/login URI malformed URIError {} We've tried with IE and firefox as well, neither works. Are there any workarounds available? Jon From simon at rabbitmq.com Wed Oct 30 15:54:45 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 30 Oct 2013 15:54:45 +0000 Subject: [rabbitmq-discuss] [BUG] Management interface fails to render queues with non utf-8 names. In-Reply-To: <52711E38.5020003@lshift.net> References: <52711E38.5020003@lshift.net> Message-ID: <52712BC5.6080307@rabbitmq.com> Hmm. Yeah, this is a bug. I am much more inclined to say that it's the comment in rabbit_channel that is at fault though. Since the AMQP spec requires these things be UTF-8 (and doesn't give a way to specify an alternate encoding) then if you send an invalid UTF-8 sequence then you haven't really sent a string. I guess we need to tighten this up in the channel. Thanks for the report. Cheers, Simon On 30/10/13 14:56, Ceri Storey wrote: > Hi, > > We noticed that one of our customers has created some queues whose names > aren't valid UTF-8. From the AMQP spec it looks like short-strings > should be valid UTF-8, and contain only certain character classes. > However, my colleague Frank has tracked down some code in > rabbit_channel:check_name/2 > , > where there's a comment to the effect that those rules aren't enforced > deliberately. > > However, if we try to request the list of queues via the API, we get the > following backtrace: > > webmachine error: path="/api/queues" > {error,{exit,{ucs,{bad_utf8_character_code}}, > [{xmerl_ucs,from_utf8,1,[{file,"xmerl_ucs.erl"},{line,185}]}, > {mochijson2,json_encode_string,2,[]}, > {mochijson2,'-json_encode_proplist/2-fun-0-',3,[]}, > {lists,foldl,3,[{file,"lists.erl"},{line,1248}]}, > {mochijson2,json_encode_proplist,2,[]}, > {mochijson2,'-json_encode_array/2-fun-0-',3,[]}, > {lists,foldl,3,[{file,"lists.erl"},{line,1248}]}, > {mochijson2,json_encode_array,2,[]}]}} > > Which seems to indicate that the management console assumes that entity > names are valid UTF-8. We've advised our customer to consider renaming > their queues, but it'd be good to somehow rectify the difference in > assumptions around name encodings. My first thought might be to > percent-encoded non-utf8 data. but there's likely better ways to handle > this. > > The quickest way to reproduce the problem would be to run this ruby > script using Bunny (assuming you have a local rabbit with the default > credentials): > > require 'bunny' > bunny = Bunny.new().tap { |b| b.start } > q = bunny.queue("foo\316null") > > Once you've done that, if you try to list the queues in the root > virtualhost, you'll find you get the above exception. > > Thanks! > > > > _______________________________________________ > 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 michael.laing at nytimes.com Wed Oct 30 16:00:41 2013 From: michael.laing at nytimes.com (Laing, Michael) Date: Wed, 30 Oct 2013 12:00:41 -0400 Subject: [rabbitmq-discuss] queue selection based on a 'feature list' In-Reply-To: References: Message-ID: Perhaps this approach will help. For example: Using a key pattern of 'w.x.y.z': A server supports: 'w.x.y.-' A message needs: '-.x.y.-' Bind with the complement of the server pattern: '*.*.*.z' Publish with the complement of the message pattern: 'w.-.-.z' If server capabilities overlap there is still a routing problem... ml On Wed, Oct 30, 2013 at 9:54 AM, Lawrence Freil > wrote: > Hello, > > I'm attempting to create a distributed message processing system in which > messages posted requires a list of features and can only be posted to > queues which have all the required features. In addition it needs to act as > a direct exchange in that only one queue should receive a message. In > looking over both the headers and topic exchanges it seems the wildcards > are specified the wrong way around for this. For example, I have servers > which can support optional features of w,x,y and z. When I publish a > message it may require x and y. I don't care if the server it runs on > supports w and z. So what I really need is the message to support the > 'pattern'' and the queues to support the 'string'. Is there a way to > accomplish this with the current exchanges? > > Thanks. > > > -- > Lawrence Freil > > ______________________________**_________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.**rabbitmq.com '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 Oct 30 16:15:19 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 30 Oct 2013 16:15:19 +0000 Subject: [rabbitmq-discuss] How to determine if my message was publish successfully In-Reply-To: References: <13CC7496-11D1-4F77-97B8-AA425B211B0E@rabbitmq.com> <527111B8.2020801@rabbitmq.com> Message-ID: <52713097.4090109@rabbitmq.com> Please keep rabbitmq-discuss CCed. On 30/10/13 16:07, phillip.ho at gmail.com wrote: > Simon, > > Can you please tell me how or where to include that in my code? See: http://www.rabbitmq.com/api-guide.html#returning Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Wed Oct 30 16:17:23 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 30 Oct 2013 16:17:23 +0000 Subject: [rabbitmq-discuss] Cannot log in to management interface since 3.2.0 In-Reply-To: References: Message-ID: <52713113.40709@rabbitmq.com> Does deleting cache and cookies solve the problem? Which version were you upgrading from? Is there anything unusual about your setup? Cheers, Simon On 30/10/13 15:50, Jon Bergli Heier wrote: > Hi, we're having problems logging in to the management interface since version 3.2.0. Chrome spits out the following in the console: > > [Wed Oct 30 2013 16:38:41 GMT+0100 (CET)] _checkFormSubmission [form, selector: ".closest(form)", context: form, constructor: function, init: function, selector: ""?] #/login put > [Wed Oct 30 2013 16:38:41 GMT+0100 (CET)] runRoute put #/login > [Wed Oct 30 2013 16:38:41 GMT+0100 (CET)] 500 Error put #/login URI malformed URIError {} > > We've tried with IE and firefox as well, neither works. Are there any workarounds available? > > Jon > _______________________________________________ > 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 stuff at moesel.net Wed Oct 30 16:28:48 2013 From: stuff at moesel.net (Chris) Date: Wed, 30 Oct 2013 12:28:48 -0400 Subject: [rabbitmq-discuss] queue selection based on a 'feature list' In-Reply-To: References: <527119B6.8030802@rabbitmq.com> Message-ID: I've had cases where allowing the publisher to specify wildcards would help too. I think it's a very useful custom exchange and would gladly use it if RabbitMQ or anyone else ever published it as an extension. -Chris On Wed, Oct 30, 2013 at 11:29 AM, Lawrence Freil wrote: > Emile, > > Thanks for the reply. > > I had considered this approach and could use this for initial testing, > however the feature set that I am looking for is somewhat large and could > expand, each time doubling the combinations. I think the end result will be > creating an exchange plugin very similar to the topic exchange but where > the '*' and '#' can also be used in the message routing keys. Using this > wouldn't break any existing topic exchange usage but would allow messages > to be crafted with 'I don't care', and if a trailing '#' was always used in > the message, adding new features to the servers wouldn't break existing > producers. > > > On Oct 30 2013, Emile Joubert wrote: > > On 30/10/13 13:54, Lawrence Freil wrote: >> >> Is there a way to accomplish this with the current exchanges? >>> >> >> There may be a way to approximate this with a topic exchange if you >> associate features with consumers rather than queues. You could create a >> queue for each combination of features and bind so that it received >> messages that require exactly those features. >> >> E.g. you could declare queues >> >> ____, w___, _x___, __y_, ___z, >> wx__, ... , w__z, ..., wxyz. >> >> and bind them: >> >> ____ with binding key _._._._ >> w___ with binding key w._._._ >> _x__ with binding key _.x._._ >> __y_ with binding key _._.y._ >> ___z with binding key _._._.z >> ... >> wx__ with binding key w.x._._ >> w__z with binding key w._._.z >> ... >> wxyz with binding key w.x.y.z >> >> Consumers can then consume from all queues that contain messages that >> demand a subset of the features offered by that consumer, e.g. a >> consumer that offers >> >> x and y consumes from ____ and _x__ and __y_ and _xy_ >> only z consumes from ____ and ___z >> w,x,y,z consumes from all queues >> >> Then if you publish a message with routing key _.x.y._ it will arrive at >> queue _xy_ and be sent to a consumer that is guaranteed to offer x and y. >> >> >> If the number of features is large or rapidly changing then this will >> become unmanageable. If the features are strictly associated with queues >> rather than consumers then it also won't work. >> >> >> >> -Emile >> >> >> >> >> >> >> > -- > Lawrence Freil > lef at apago.com > 770-619-1884 > ______________________________**_________________ > 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 Oct 30 17:50:38 2013 From: k.madnani84 at gmail.com (k.madnani84) Date: Wed, 30 Oct 2013 10:50:38 -0700 (PDT) Subject: [rabbitmq-discuss] Unable to view all policies in RabbitMQ 3.2.0 Message-ID: <1383155438868-31011.post@n5.nabble.com> Hi, Since i upgraded to 3.2.0, i cant view all the policies(Related to all Virtual Host) in the management plugin UI to which i have logged in with the user with administrator rights. Earlier in 3.1.X version when i use to login with the user with administrator rights i was able to see all the policies with respect to all Virtual Host in the UI but its not the case now.Now i can see only the policies with respect to Vhost to which the administrator user is associated too. Is the behaviour changed in 3.2.0? -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/Unable-to-view-all-policies-in-RabbitMQ-3-2-0-tp31011.html Sent from the RabbitMQ mailing list archive at Nabble.com. From simon at rabbitmq.com Wed Oct 30 17:55:44 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Wed, 30 Oct 2013 17:55:44 +0000 Subject: [rabbitmq-discuss] Unable to view all policies in RabbitMQ 3.2.0 In-Reply-To: <1383155438868-31011.post@n5.nabble.com> References: <1383155438868-31011.post@n5.nabble.com> Message-ID: <52714820.1030304@rabbitmq.com> On 30/10/13 17:50, k.madnani84 wrote: > Since i upgraded to 3.2.0, i cant view all the policies(Related to all > Virtual Host) in the management plugin UI to which i have logged in with the > user with administrator rights. > > Earlier in 3.1.X version when i use to login with the user with > administrator rights i was able to see all the policies with respect to all > Virtual Host in the UI but its not the case now.Now i can see only the > policies with respect to Vhost to which the administrator user is associated > too. > > Is the behaviour changed in 3.2.0? Yes, it's to bring policies and parameters more in line with exchanges and queues (where you've always needed to have permissions for a given vhost in order to see them). Allowing administrators to see policies but not the exchanges and queues to which they apply seems a bit odd. If you need an admin user which can see policies in all vhosts, you need to make sure that user has permissions for all vhosts. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From KGanann at kroll.com Wed Oct 30 17:56:07 2013 From: KGanann at kroll.com (Ganann, Kale) Date: Wed, 30 Oct 2013 17:56:07 +0000 Subject: [rabbitmq-discuss] Hard Down In-Reply-To: <5270FE8B.1010808@rabbitmq.com> References: <6414E4E0-1482-41EB-B866-A154E2D56D1B@kroll.com> <5270FE8B.1010808@rabbitmq.com> Message-ID: <6DB033025329784B9280ABD9516177FC68C37DA9@usbpx2pmxmbx12> Yes, we had cleared the disk issue - the issue appears to be with one of our older tools (designed on 3.1.2) for creating vHosts, Exchanges and Queues automagically - something in the tool goes funky when anything new is created on the 3.2 cluster, or rather, created and then deleted. Anything it created prior to 3.2 is fine. We're investigating... thanks for your help! Thanks, Kale -----Original Message----- From: Emile Joubert [mailto:emile at rabbitmq.com] Sent: Wednesday, October 30, 2013 7:42 AM To: Discussions about RabbitMQ Cc: Ganann, Kale Subject: Re: [rabbitmq-discuss] Hard Down Hi Kale, On 29/10/13 18:35, Ganann, Kale wrote: >> We just upgraded to 3.2 last Friday, and the system froze up today. >> My coworker tried a reboot when rabbitmqctl stop just hung. Node 2 >> says it's back, but the management interface is still down, and when >> he tries to start the other two nodes he gets the following crash >> dump... Unfortunately the crash dump you supplied is of limited use. The first place to look is the broker logfile (including the sasl log). Was anything logged on any of the cluster nodes at the time of the problem? I assume you have resolved the disk space issue. -Emile 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 emile at rabbitmq.com Wed Oct 30 18:51:24 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Wed, 30 Oct 2013 18:51:24 +0000 Subject: [rabbitmq-discuss] Hard Down In-Reply-To: <6DB033025329784B9280ABD9516177FC68C37DA9@usbpx2pmxmbx12> References: <6414E4E0-1482-41EB-B866-A154E2D56D1B@kroll.com> <5270FE8B.1010808@rabbitmq.com> <6DB033025329784B9280ABD9516177FC68C37DA9@usbpx2pmxmbx12> Message-ID: <5271552C.9060208@rabbitmq.com> Hi Kale, On 30/10/13 17:56, Ganann, Kale wrote: > Yes, we had cleared the disk issue - the issue appears to be with one > of our older tools (designed on 3.1.2) for creating vHosts, Exchanges > and Queues automagically - something in the tool goes funky when > anything new is created on the 3.2 cluster, or rather, created and > then deleted. Anything it created prior to 3.2 is fine. We're > investigating... thanks for your help! This entry from the 3.2.0 changelog could have relevance: 25716 allow missing exchanges & queues to be deleted and unbound without generating an AMQP error If the tool worked fine on earlier versions then it will probably need to be updated. -Emile From jonathan.channon at gmail.com Wed Oct 30 17:54:40 2013 From: jonathan.channon at gmail.com (jchannon) Date: Wed, 30 Oct 2013 10:54:40 -0700 (PDT) Subject: [rabbitmq-discuss] 2.8.5: high cpu usage on return from standby In-Reply-To: <52468727.3040504@rabbitmq.com> References: <03df01cd746c$a6476840$f2d638c0$@saseco.dk> <5020F39E.20007@rabbitmq.com> <041701cd7498$3c9a0430$b5ce0c90$@saseco.dk> <50211747.20002@rabbitmq.com> <50A3C01C.70606@rabbitmq.com> <1380304107803-29997.post@n5.nabble.com> <52468727.3040504@rabbitmq.com> Message-ID: <1383155680214-31012.post@n5.nabble.com> I have Erlang OTP R16B02 (x64) and this issue still exists -- View this message in context: http://rabbitmq.1065348.n5.nabble.com/2-8-5-high-cpu-usage-on-return-from-standby-tp21264p31012.html Sent from the RabbitMQ mailing list archive at Nabble.com. From cwstorm at gmail.com Wed Oct 30 19:56:34 2013 From: cwstorm at gmail.com (cw storm) Date: Wed, 30 Oct 2013 15:56:34 -0400 Subject: [rabbitmq-discuss] How to determine if my message was publish successfully In-Reply-To: <52713097.4090109@rabbitmq.com> References: <13CC7496-11D1-4F77-97B8-AA425B211B0E@rabbitmq.com> <527111B8.2020801@rabbitmq.com> <52713097.4090109@rabbitmq.com> Message-ID: I'm using the java client libraries from RabbitMQ. Just wondering if it's possible to determine if a message was publish to the queue successfully or not after invoking basicPublish. If so, can you please share example code how this is accomplish? On Wed, Oct 30, 2013 at 12:15 PM, Simon MacMullen wrote: > Please keep rabbitmq-discuss CCed. > > On 30/10/13 16:07, phillip.ho at gmail.com wrote: > >> Simon, >> >> Can you please tell me how or where to include that in my code? >> > > See: http://www.rabbitmq.com/api-**guide.html#returning > > > 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 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Wed Oct 30 20:02:09 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 31 Oct 2013 00:02:09 +0400 Subject: [rabbitmq-discuss] How to determine if my message was publish successfully In-Reply-To: References: <13CC7496-11D1-4F77-97B8-AA425B211B0E@rabbitmq.com> <527111B8.2020801@rabbitmq.com> <52713097.4090109@rabbitmq.com> Message-ID: <25728C02-D318-46D6-AED3-E6B4DF0C24AA@rabbitmq.com> On 30 Oct 2013, at 23:56, cw storm wrote: > I'm using the java client libraries from RabbitMQ. Just wondering if it's possible to determine if a message was publish to the queue successfully or not after invoking basicPublish. If so, can you please share example code how this is accomplish? http://www.rabbitmq.com/confirms.html http://hg.rabbitmq.com/rabbitmq-java-client/file/default/test/src/com/rabbitmq/examples/ConfirmDontLoseMessages.java (TL;DR: com.rabbitmq.client.Channel#waitForConfirms) Note that 1. You want confirm batches (of 16, 32, 64 messages) if possible 2. Even with batch confirmation, Publisher Confirms have significant impact on publishing throughput MK Software Engineer, Pivotal/RabbitMQ From cwstorm at gmail.com Wed Oct 30 20:42:46 2013 From: cwstorm at gmail.com (cw storm) Date: Wed, 30 Oct 2013 16:42:46 -0400 Subject: [rabbitmq-discuss] How to determine if my message was publish successfully In-Reply-To: <25728C02-D318-46D6-AED3-E6B4DF0C24AA@rabbitmq.com> References: <13CC7496-11D1-4F77-97B8-AA425B211B0E@rabbitmq.com> <527111B8.2020801@rabbitmq.com> <52713097.4090109@rabbitmq.com> <25728C02-D318-46D6-AED3-E6B4DF0C24AA@rabbitmq.com> Message-ID: MK, I want to capture the basic.return information (replyCode, replyText) if my basisPublish fails. I've set the channel to confirm.select and set mandatory flag to true. It's my understanding that if an invalid routing key is provided, the message wouldn't route anywhere and the message should return to the client since it fail to route to a queue. I just don't understand how to implement that in the java code. channel.basicPublish(strExchangeName, strRoutingKey, true, MessageProperties.PERSISTENT_TEXT_PLAIN, byteMessage); On Wed, Oct 30, 2013 at 4:02 PM, Michael Klishin wrote: > > On 30 Oct 2013, at 23:56, cw storm wrote: > > > I'm using the java client libraries from RabbitMQ. Just wondering if > it's possible to determine if a message was publish to the queue > successfully or not after invoking basicPublish. If so, can you please > share example code how this is accomplish? > > http://www.rabbitmq.com/confirms.html > > http://hg.rabbitmq.com/rabbitmq-java-client/file/default/test/src/com/rabbitmq/examples/ConfirmDontLoseMessages.java > > (TL;DR: com.rabbitmq.client.Channel#waitForConfirms) > > Note that > > 1. You want confirm batches (of 16, 32, 64 messages) if possible > 2. Even with batch confirmation, Publisher Confirms have significant > impact on publishing throughput > > 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 Oct 30 20:51:12 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 31 Oct 2013 00:51:12 +0400 Subject: [rabbitmq-discuss] How to determine if my message was publish successfully In-Reply-To: References: <13CC7496-11D1-4F77-97B8-AA425B211B0E@rabbitmq.com> <527111B8.2020801@rabbitmq.com> <52713097.4090109@rabbitmq.com> <25728C02-D318-46D6-AED3-E6B4DF0C24AA@rabbitmq.com> Message-ID: <43C9C63A-E741-4DE5-A13B-69A2077F520C@rabbitmq.com> On 31 Oct 2013, at 00:42, cw storm wrote: > I want to capture the basic.return information (replyCode, replyText) if my basisPublish fails. I've set the channel to confirm.select and set mandatory flag to true. It's my understanding that if an invalid routing key is provided, the message wouldn't route anywhere and the message should return to the client since it fail to route to a queue. I just don't understand how to implement that in the java code. Publishing is asynchronous, so is returning of messages to the client. You need to register a handler for returned messages. This can be used in combination with publisher confirms, as necessary. See http://www.rabbitmq.com/api-guide.html, ?Handling unroutable messages?. MK Software Engineer, Pivotal/RabbitMQ From cwstorm at gmail.com Wed Oct 30 21:01:16 2013 From: cwstorm at gmail.com (cw storm) Date: Wed, 30 Oct 2013 17:01:16 -0400 Subject: [rabbitmq-discuss] How to determine if my message was publish successfully In-Reply-To: <43C9C63A-E741-4DE5-A13B-69A2077F520C@rabbitmq.com> References: <13CC7496-11D1-4F77-97B8-AA425B211B0E@rabbitmq.com> <527111B8.2020801@rabbitmq.com> <52713097.4090109@rabbitmq.com> <25728C02-D318-46D6-AED3-E6B4DF0C24AA@rabbitmq.com> <43C9C63A-E741-4DE5-A13B-69A2077F520C@rabbitmq.com> Message-ID: I've tried that but it appear the block never get executed as I don't see the "this is an error". channel.confirmSelect(); channel.addReturnListener(new ReturnListener() { public void handleReturn(int replyCode, String replyText, String exchange, String routingKey, AMQP.BasicProperties props, byte[] msgContent) throws IOException { throw new RuntimeException("this is an error"); } }); On Wed, Oct 30, 2013 at 4:51 PM, Michael Klishin wrote: > > On 31 Oct 2013, at 00:42, cw storm wrote: > > > I want to capture the basic.return information (replyCode, replyText) if > my basisPublish fails. I've set the channel to confirm.select and set > mandatory flag to true. It's my understanding that if an invalid routing > key is provided, the message wouldn't route anywhere and the message should > return to the client since it fail to route to a queue. I just don't > understand how to implement that in the java code. > > Publishing is asynchronous, so is returning of messages to the client. > You need to register a handler for returned messages. This can be used in > combination > with publisher confirms, as necessary. > > See http://www.rabbitmq.com/api-guide.html, ?Handling unroutable > messages?. > > 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 Wed Oct 30 21:06:31 2013 From: cwstorm at gmail.com (cw storm) Date: Wed, 30 Oct 2013 17:06:31 -0400 Subject: [rabbitmq-discuss] How to determine if my message was publish successfully In-Reply-To: References: <13CC7496-11D1-4F77-97B8-AA425B211B0E@rabbitmq.com> <527111B8.2020801@rabbitmq.com> <52713097.4090109@rabbitmq.com> <25728C02-D318-46D6-AED3-E6B4DF0C24AA@rabbitmq.com> <43C9C63A-E741-4DE5-A13B-69A2077F520C@rabbitmq.com> Message-ID: Maybe there's no way of testing this since the publishing is async. On Wed, Oct 30, 2013 at 5:01 PM, cw storm wrote: > I've tried that but it appear the block never get executed as I don't see > the "this is an error". > > channel.confirmSelect(); > > channel.addReturnListener(new ReturnListener() > { > public void handleReturn(int replyCode, > String replyText, > String exchange, > String routingKey, > AMQP.BasicProperties props, > byte[] msgContent) > throws IOException { > throw new RuntimeException("this is an error"); > } > }); > > > On Wed, Oct 30, 2013 at 4:51 PM, Michael Klishin wrote: > >> >> On 31 Oct 2013, at 00:42, cw storm wrote: >> >> > I want to capture the basic.return information (replyCode, replyText) >> if my basisPublish fails. I've set the channel to confirm.select and set >> mandatory flag to true. It's my understanding that if an invalid routing >> key is provided, the message wouldn't route anywhere and the message should >> return to the client since it fail to route to a queue. I just don't >> understand how to implement that in the java code. >> >> Publishing is asynchronous, so is returning of messages to the client. >> You need to register a handler for returned messages. This can be used in >> combination >> with publisher confirms, as necessary. >> >> See http://www.rabbitmq.com/api-guide.html, ?Handling unroutable >> messages?. >> >> 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 Oct 30 21:12:16 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 31 Oct 2013 01:12:16 +0400 Subject: [rabbitmq-discuss] How to determine if my message was publish successfully In-Reply-To: References: <13CC7496-11D1-4F77-97B8-AA425B211B0E@rabbitmq.com> <527111B8.2020801@rabbitmq.com> <52713097.4090109@rabbitmq.com> <25728C02-D318-46D6-AED3-E6B4DF0C24AA@rabbitmq.com> <43C9C63A-E741-4DE5-A13B-69A2077F520C@rabbitmq.com> Message-ID: <53A25819-CDC9-4765-9CAB-685E1A8AD0E7@rabbitmq.com> On 31 Oct 2013, at 01:01, cw storm wrote: > I've tried that but it appear the block never get executed as I don't see the "this is an error". > > channel.confirmSelect(); > > channel.addReturnListener(new ReturnListener() > { > public void handleReturn(int replyCode, > String replyText, > String exchange, > String routingKey, > AMQP.BasicProperties props, > byte[] msgContent) > throws IOException { > throw new RuntimeException("this is an error"); > > } > }); If you expect a RuntimeException to be thrown in the thread calling basicPublish, it won't be. basic.return handlers will be executed in a different thread and the exceptions they may throw need to be handled with an exception handler (com.rabbitmq.client.impl.ExceptionHandler). You can do something like Exception e; ch.addReturnListener( // initialize e here from message attributes ); ch.basicPublish(?); ch.waitForConfirms(); if(e != null) { throw e; } but since both basic.publish and basic.return are inherently asynchronous in the protocol, it may be a better idea to handle returned messages in an asynchronous manner. MK Software Engineer, Pivotal/RabbitMQ From mklishin at gopivotal.com Wed Oct 30 21:16:31 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 31 Oct 2013 01:16:31 +0400 Subject: [rabbitmq-discuss] How to determine if my message was publish successfully In-Reply-To: <53A25819-CDC9-4765-9CAB-685E1A8AD0E7@rabbitmq.com> References: <13CC7496-11D1-4F77-97B8-AA425B211B0E@rabbitmq.com> <527111B8.2020801@rabbitmq.com> <52713097.4090109@rabbitmq.com> <25728C02-D318-46D6-AED3-E6B4DF0C24AA@rabbitmq.com> <43C9C63A-E741-4DE5-A13B-69A2077F520C@rabbitmq.com> <53A25819-CDC9-4765-9CAB-685E1A8AD0E7@rabbitmq.com> Message-ID: <221E959E-4BAD-463A-AEEF-264E281C3DD6@gopivotal.com> On 31 Oct 2013, at 01:12, Michael Klishin wrote: > You can do something like > > Exception e; > ch.addReturnListener( > // initialize e here from message attributes > ); > ch.basicPublish(?); > ch.waitForConfirms(); > > if(e != null) { > throw e; > } I should add that this code is race condition prone and should not be literally as is. It was only to demonstrate the basic idea. The return listener will be racing with waitForConfirm even if Rabbit delivers basic.return before basic.nack. -- MK Software Engineer, Pivotal/RabbitMQ From cwstorm at gmail.com Wed Oct 30 21:56:23 2013 From: cwstorm at gmail.com (cistron) Date: Wed, 30 Oct 2013 17:56:23 -0400 Subject: [rabbitmq-discuss] How to determine if my message was publish successfully In-Reply-To: <221E959E-4BAD-463A-AEEF-264E281C3DD6@gopivotal.com> References: <13CC7496-11D1-4F77-97B8-AA425B211B0E@rabbitmq.com> <527111B8.2020801@rabbitmq.com> <52713097.4090109@rabbitmq.com> <25728C02-D318-46D6-AED3-E6B4DF0C24AA@rabbitmq.com> <43C9C63A-E741-4DE5-A13B-69A2077F520C@rabbitmq.com> <53A25819-CDC9-4765-9CAB-685E1A8AD0E7@rabbitmq.com> <221E959E-4BAD-463A-AEEF-264E281C3DD6@gopivotal.com> Message-ID: <9C5E163A-51A8-4565-9CB1-1F17DE5F1B65@gmail.com> Can you recommend a better approach so that when I publish a message I want confirmation from rabbit that it was either successful or not. What I want is a flag of some sort from rabbit that one of the input parameters is invalid such as the routing key. Sent from my iPhone > On Oct 30, 2013, at 5:16 PM, Michael Klishin wrote: > >> On 31 Oct 2013, at 01:12, Michael Klishin wrote: >> >> You can do something like >> >> Exception e; >> ch.addReturnListener( >> // initialize e here from message attributes >> ); >> ch.basicPublish(?); >> ch.waitForConfirms(); >> >> if(e != null) { >> throw e; >> } > > I should add that this code is race condition prone and should > not be literally as is. It was only to demonstrate the basic idea. > > The return listener will be racing with waitForConfirm even if > Rabbit delivers basic.return before basic.nack. > -- > 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 Oct 30 22:22:46 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 31 Oct 2013 02:22:46 +0400 Subject: [rabbitmq-discuss] How to determine if my message was publish successfully In-Reply-To: <9C5E163A-51A8-4565-9CB1-1F17DE5F1B65@gmail.com> References: <13CC7496-11D1-4F77-97B8-AA425B211B0E@rabbitmq.com> <527111B8.2020801@rabbitmq.com> <52713097.4090109@rabbitmq.com> <25728C02-D318-46D6-AED3-E6B4DF0C24AA@rabbitmq.com> <43C9C63A-E741-4DE5-A13B-69A2077F520C@rabbitmq.com> <53A25819-CDC9-4765-9CAB-685E1A8AD0E7@rabbitmq.com> <221E959E-4BAD-463A-AEEF-264E281C3DD6@gopivotal.com> <9C5E163A-51A8-4565-9CB1-1F17DE5F1B65@gmail.com> Message-ID: <8BC195BE-75A4-4163-836F-8906B3547E46@rabbitmq.com> On 31 Oct 2013, at 01:56, cistron wrote: > Can you recommend a better approach so that when I publish a message I want confirmation from rabbit that it was either successful or not. What I want is a flag of some sort from rabbit that one of the input parameters is invalid such as the routing key. Use publisher confirms. There are many reasons why publishing may fail. Publisher confirms cover most of them and Channel#waitForConfirms returns a boolean to indicate success or failure for the messages that were not confirmed by the time it was invoked. As it was mentioned earlier, basic.return listeners is how you detect unroutable messages. The only other ?input? that can be invalid is exchange name. It will result in a channel exception. In practice, those are very rare and indicate a misconfiguration. You can check if the exchange you need exist on application start by using exchangeDeclare with passive set to true. MK Software Engineer, Pivotal/RabbitMQ From matthias at rabbitmq.com Wed Oct 30 22:45:59 2013 From: matthias at rabbitmq.com (Matthias Radestock) Date: Wed, 30 Oct 2013 22:45:59 +0000 Subject: [rabbitmq-discuss] [ANNOUNCEMENT] Introducing Lyra: A High Availability RabbitMQ Client In-Reply-To: References: Message-ID: <52718C27.8020905@rabbitmq.com> Jonathan, On 24/10/13 04:14, Jonathan Halterman wrote: > Lyra distinguishes between recovery and retries. If an invocation > such as Channel.basicConsume fails due to an unexpected (not user > initiated) channel closure, the channel is automatically recovered, > along with any consumers, according to the configured recovery policy. one of the trickier aspects of implementing transparent recovery of AMQP channels/connections is what to do about acks for messages received on a previous incarnation of a channel. E.g. say a client has set up a consumer and the server has sent a bunch of messages to the client. Then some event - e.g. a 'publish' to an unknown exchange - occurs that causes the server to close the channel with an error. Now, say the recovery logic is transparently creating a new channel. Concurrently though, the consumer code is still happily processing the messages it received before the error, and attempting to ack them. If these acks go to the replacement channel, one of the following will happen: a) a 'precondition_failed' error is raised by the server, complaining about an unknown delivery tag, or b) the wrong message is acknowledged, i.e. a message sent on the replacement channel which happens to have the same delivery tag as the messsage sent on the original channel How does Lyra deal with this scenario? One way to handle this is to simply discard these acks. But that requires the client/app to hold extra state, so it can identify them. Regards, Matthias. From mklishin at gopivotal.com Wed Oct 30 23:02:44 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 31 Oct 2013 03:02:44 +0400 Subject: [rabbitmq-discuss] [ANNOUNCEMENT] Introducing Lyra: A High Availability RabbitMQ Client In-Reply-To: <52718C27.8020905@rabbitmq.com> References: <52718C27.8020905@rabbitmq.com> Message-ID: <7EE03A2D-7060-40A0-804D-3E4069ABC228@rabbitmq.com> On 31 Oct 2013, at 02:45, Matthias Radestock wrote: > One way to handle this is to simply discard these acks. But that requires the client/app to hold extra state, so it can identify them. To provide an example, Bunny does this: https://github.com/ruby-amqp/bunny/blob/master/lib/bunny/versioned_delivery_tag.rb MK Software Engineer, Pivotal/RabbitMQ From matthias at rabbitmq.com Wed Oct 30 23:08:01 2013 From: matthias at rabbitmq.com (Matthias Radestock) Date: Wed, 30 Oct 2013 23:08:01 +0000 Subject: [rabbitmq-discuss] Rabbitmq cluster unstable issue In-Reply-To: References: Message-ID: <52719151.5050606@rabbitmq.com> On 24/10/13 05:30, Michael Klishin wrote: > > 2013/10/24 sagu prf > > > =ERROR REPORT==== 23-Oct-2013::00:21:46 === > ** Node 'rabbit at linuxserv1' not responding ** > ** Removing (timedout) connection ** > > ? > > =INFO REPORT==== 23-Oct-2013::00:21:46 === > rabbit on node 'rabbit at linuxserv3' down > > =ERROR REPORT==== 23-Oct-2013::00:22:01 === > ** Node 'rabbit at linuxserv3' not responding ** > ** Removing (timedout) connection ** > > > rabbit at linuxserv2 cannot reach rabbit at linuxserv1 and rabbit at linuxserv3 The OP didn't state what version of rabbit they are running, but the posted stacktrace indicates it is older than 3.0.3. I am pretty sure the breakage the above node unreachability causes in the management UI has been fixed in more recent versions. OP: upgrade. Matthias. From jkuch at gopivotal.com Thu Oct 31 00:31:21 2013 From: jkuch at gopivotal.com (Jerry Kuch) Date: Wed, 30 Oct 2013 17:31:21 -0700 Subject: [rabbitmq-discuss] RabbitMQ_in_action latest pdf document In-Reply-To: References: Message-ID: One might need to be careful about a few topics... in particular mirrored queues have changed a lot, general in ways that make them easier to use, since the book was published. One will want to keep the later release notes handy when working with that material in the book. Also, there have been some changes to rabbitmqctl, IIRC, including the clustering commands (again they're somewhat simpler), which bring them out of step with the book. On Wed, Oct 30, 2013 at 1:46 AM, Michael Klishin wrote: > On 30 Oct 2013, at 12:42, Rajasekhar P wrote: > > > We have RabbitMQ2.0 series book and looking for is there any changes in > the latest version of RabbitMQ 3.0 version? > > There are new features and usability improvements. I don?t think any of > the material in the book is outdated. > > 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 jkuch at gopivotal.com Thu Oct 31 00:36:31 2013 From: jkuch at gopivotal.com (Jerry Kuch) Date: Wed, 30 Oct 2013 17:36:31 -0700 Subject: [rabbitmq-discuss] RabbitMQ is failing after installing Devstack In-Reply-To: References: Message-ID: On Thu, Oct 24, 2013 at 8:04 AM, Shrinivas Kulkarni wrote: > Hi, > > Please need help, > > I have installed devstack on fedora19 > and found that after installation completed RabbitMQ service is not > running > > > > How I solve this problem can anyone help me ? > > > > Here is the log : > -------------------------- > > [root at destiny rabbitmq]# rabbitmqctl status > Status of node rabbit at destiny ... > Error: unable to connect to node rabbit at destiny: nodedown > > DIAGNOSTICS > =========== > > nodes in question: [rabbit at destiny] > > hosts, their running nodes and ports: > - unable to connect to epmd on destiny: address (cannot connect to > host/port) > > current node details: > - node name: rabbitmqctl13047 at destiny > - home dir: /var/lib/rabbitmq > - cookie hash: s6XJ2l63F6Pz3eTZdny3UA== > > [root at destiny rabbitmq]# > > > > > > [stack at destiny ~]$ systemctl status rabbitmq-server.service > rabbitmq-server.service - RabbitMQ broker > Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; > disabled) > Active: failed (Result: exit-code) since Thu 2013-10-24 18:30:23 IST; > 10min ago > Process: 12246 ExecStopPost=/usr/bin/rm /var/run/rabbitmq/pid > (code=exited, status=0/SUCCESS) > Process: 12218 ExecStop=/usr/lib/rabbitmq/bin/rabbitmqctl stop > (code=exited, status=2) > Process: 12160 ExecStartPost=/usr/lib/rabbitmq/bin/rabbitmqctl wait > /var/run/rabbitmq/pid (code=exited, status=2) > Process: 12159 ExecStart=/usr/lib/rabbitmq/bin/rabbitmq-server > (code=exited, status=1/FAILURE) > > [stack at destiny ~]$ > [stack at destiny ~]$ > So it looks like Rabbit never got running? The 'epmd' process is the Erlang port mapper daemon with Erlang nodes (whether they be home to the Rabbit server itself, or the business ends of rabbitmqctl, or rabbitmq-plugins) find one another and establish communication. Try looking at Rabbit's own logs to see if you can figure out why it didn't start up. The console output is captured to files in the logging directory in the event that Rabbit itself doesn't get far enough to start emitting its own logging messages. Best regards, Jerry -------------- next part -------------- An HTML attachment was scrubbed... URL: From jhalterman at gmail.com Thu Oct 31 02:49:56 2013 From: jhalterman at gmail.com (Jonathan Halterman) Date: Wed, 30 Oct 2013 19:49:56 -0700 Subject: [rabbitmq-discuss] [ANNOUNCEMENT] Introducing Lyra: A High Availability RabbitMQ Client In-Reply-To: <52718C27.8020905@rabbitmq.com> References: <52718C27.8020905@rabbitmq.com> Message-ID: Hi Matthias, Michael, Interesting scenario - thanks for bringing it up. I'd like to address this, but I'm not sure that there's an easy way to do it with the current amqp-client API. Unlike Bunny's VersionedDeliveryTag which Michael pointed out, the amqp-client API doesn't have a data structure that associates a delivery tag with the channel its message was consumed through. We could cache delivery tags for channels internally, but I'm hesitant to go down that road. While Lyra certainly makes it easier for this scenario to pop up, rare as it might be, the same problem could occur without Lyra when swapping a consumer over to a new channel after the consumer is unexpectedly cancelled and/or the channel is unexpectedly closed. That said, no good solutions come to mind just yet. Do you have any ideas? Cheers, Jonathan On Wed, Oct 30, 2013 at 3:45 PM, Matthias Radestock wrote: > Jonathan, > > > On 24/10/13 04:14, Jonathan Halterman wrote: > >> Lyra distinguishes between recovery and retries. If an invocation >> such as Channel.basicConsume fails due to an unexpected (not user >> initiated) channel closure, the channel is automatically recovered, >> along with any consumers, according to the configured recovery policy. >> > > one of the trickier aspects of implementing transparent recovery of AMQP > channels/connections is what to do about acks for messages received on a > previous incarnation of a channel. E.g. say a client has set up a consumer > and the server has sent a bunch of messages to the client. Then some event > - e.g. a 'publish' to an unknown exchange - occurs that causes the server > to close the channel with an error. Now, say the recovery logic is > transparently creating a new channel. Concurrently though, the consumer > code is still happily processing the messages it received before the error, > and attempting to ack them. > > If these acks go to the replacement channel, one of the following will > happen: > a) a 'precondition_failed' error is raised by the server, complaining > about an unknown delivery tag, or > b) the wrong message is acknowledged, i.e. a message sent on the > replacement channel which happens to have the same delivery tag as the > messsage sent on the original channel > > How does Lyra deal with this scenario? > > One way to handle this is to simply discard these acks. But that requires > the client/app to hold extra state, so it can identify them. > > Regards, > > 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 matthias at rabbitmq.com Thu Oct 31 07:27:28 2013 From: matthias at rabbitmq.com (Matthias Radestock) Date: Thu, 31 Oct 2013 07:27:28 +0000 Subject: [rabbitmq-discuss] [ANNOUNCEMENT] Introducing Lyra: A High Availability RabbitMQ Client In-Reply-To: References: <52718C27.8020905@rabbitmq.com> Message-ID: <52720660.40906@rabbitmq.com> Jonathan, On 31/10/13 02:49, Jonathan Halterman wrote: > We could cache delivery tags for channels internally, but I'm > hesitant to go down that road. It wouldn't help anyway, since, as a mentioned, the same delivery_tag can appear on both the old and new incarnation of the channel. delivery_tags are just counters, starting from 1 on a fresh channel. > While Lyra certainly makes it easier for this scenario to pop up, > rare as it might be, It's not rare at all. You are guaranteed to end up in that scenario anytime a recovery takes place while a consumer is processing a message. > the same problem could occur without Lyra when swapping a consumer > over to a new channel after the consumer is unexpectedly cancelled > and/or the channel is unexpectedly closed. Absolutely. Don't do that :) > That said, no good solutions come to mind just yet. Do you have any > ideas? The scenario is impossible to address without changing the API. Bunny does that with the VersionedDeliveryTag. The Messaging Patterns libraries we wrote some years ago do it by making ack() take the entire Message data structure, and have that include the channel version. See http://hg.rabbitmq.com/rabbitmq-java-messagepatterns/file/21df7ca85b96/src/main/java/com/rabbitmq/messagepatterns/unicast/Receiver.java#l19 Regards, Matthias. From tibor.mlynarik at gmail.com Wed Oct 30 21:36:26 2013 From: tibor.mlynarik at gmail.com (Tibor Mlynarik) Date: Wed, 30 Oct 2013 14:36:26 -0700 (PDT) Subject: [rabbitmq-discuss] MQTT lwt message troubles Message-ID: <6f14c1fe-74e8-4569-8799-82b166967566@googlegroups.com> Hi all, I have configured MQTT client with last will testament message ( keepAlive=10sec ). When I close socket or kill JVM , LWT message is delivered immediatly. But when I just turn off connection at OS level, message is not delivered after heartbeat interval. Do I miss some configuration or it is known issue ? (RabbitMQ 3.1 , Paho 0.4.0 ) thanks, Tibor -------------- next part -------------- An HTML attachment was scrubbed... URL: From tomatgooglecode at arcor.de Thu Oct 31 06:43:43 2013 From: tomatgooglecode at arcor.de (tomm) Date: Wed, 30 Oct 2013 23:43:43 -0700 (PDT) Subject: [rabbitmq-discuss] AMQP 1.0 client and broker side support? (.Net) Message-ID: Hi, from https://www.rabbitmq.com/specification.html I have learned that AMQP on the broker side is in experimental state. What are the plans to fully support AMQP 1.0 in a productive manner? Is there already or will there be a .Net client for 1.0? In addition are the availabe rabbitmq .Net clients for amqp prior to 1.0 compatible to other amqp brokers? Thanks, Tom -------------- next part -------------- An HTML attachment was scrubbed... URL: From lhwong at gmail.com Thu Oct 31 07:46:07 2013 From: lhwong at gmail.com (Liong Hung Wong) Date: Thu, 31 Oct 2013 00:46:07 -0700 (PDT) Subject: [rabbitmq-discuss] When I switch my network connection from one wifi router to another, two consumers are created Message-ID: <681fe292-83ab-4b64-b91d-403c241d23b2@googlegroups.com> Hi, I am creating an Android app to receive push message from RabbitMQ server with the following queueName = "queue123"; channel.queueDeclare(queueName, true, false, false, null); //durable = true, exclusive = false, autoDelete = false consumer = new QueueingConsumer(channel); channel.basicConsume(queueName, false, consumer); I want to be able to receive message pushed when the connection to Internet is not available, hence, I set the autoDelete attribute to false. When I switch my network connection from one wifi router to another, two consumers are created for the queue as below. In that case, messages will be distributed between both consumers, hence, the app only receives alternate message until the first connection timeout due to heartbeat setting. Consumers Channel Consumer tag Ack required Exclusive 210.19.225.88:36920 (1) amq.ctag-ma8QOXnZ_UAK-R7wddQGXA ? ? 210.19.225.3:60659 (1) amq.ctag-igoa2WysTs79WAk969UFJg ? ? I am not able to cancel the first consumer with channel.basicCancel(consumerTag) when as the connection has already been closed. Is there any way to overcome this problem? Regards, --Wong Liong Hung -------------- next part -------------- An HTML attachment was scrubbed... URL: From emile at rabbitmq.com Thu Oct 31 09:24:17 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Thu, 31 Oct 2013 09:24:17 +0000 Subject: [rabbitmq-discuss] MQTT lwt message troubles In-Reply-To: <6f14c1fe-74e8-4569-8799-82b166967566@googlegroups.com> References: <6f14c1fe-74e8-4569-8799-82b166967566@googlegroups.com> Message-ID: <527221C1.5020809@rabbitmq.com> Hi, On 30/10/13 21:36, Tibor Mlynarik wrote: > I have configured MQTT client with last will testament message ( > keepAlive=10sec ). > When I close socket or kill JVM , LWT message is delivered immediatly. > But when I just turn off connection at OS level, message is not > delivered after heartbeat interval. > Do I miss some configuration or it is known issue ? (RabbitMQ 3.1 > , Paho 0.4.0 ) The Last Will message will be delivered as soon as the OS detects the connection failure and reports that to Erlang. When that happens depends on the parameters of your network stack and the nature of the failure. The MQTT adapter relies on the OS to make the determination of network failure instead of pro-actively tearing down the connection when ping responses are too slow. -Emile From emile at rabbitmq.com Thu Oct 31 09:36:40 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Thu, 31 Oct 2013 09:36:40 +0000 Subject: [rabbitmq-discuss] When I switch my network connection from one wifi router to another, two consumers are created In-Reply-To: <681fe292-83ab-4b64-b91d-403c241d23b2@googlegroups.com> References: <681fe292-83ab-4b64-b91d-403c241d23b2@googlegroups.com> Message-ID: <527224A8.8060305@rabbitmq.com> Hi, On 31/10/13 07:46, Liong Hung Wong wrote: > When I switch my network connection from one wifi router to another, two > consumers are created for the queue as below. In that case, messages > will be distributed between both consumers, hence, the app only receives > alternate message until the first connection timeout due to heartbeat > setting. If you want to ensure that only one consumer can get messages from a queue then set the exclusive flag. > I am not able to cancel the first consumer with > channel.basicCancel(consumerTag) when as the connection has already been > closed. Is there any way to overcome this problem? This should not be a problem. If the connection of one consumer has already closed by the time the second consumer opened then there will be no overlap in subscriptions. If consumers subscribe without autoAck then unacknowledged messages will be returned to the queue when a connection terminates, and any subsequent consumer will be able to process such messages. -Emile From emile at rabbitmq.com Thu Oct 31 09:47:41 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Thu, 31 Oct 2013 09:47:41 +0000 Subject: [rabbitmq-discuss] AMQP 1.0 client and broker side support? (.Net) In-Reply-To: References: Message-ID: <5272273D.8050402@rabbitmq.com> Hi, On 31/10/13 06:43, tomm wrote: > from https://www.rabbitmq.com/specification.html I have learned that > AMQP on the broker side is in experimental state. What are the plans to > fully support AMQP 1.0 in a productive manner? Is there already or will > there be a .Net client for 1.0? The AMQP 1.0 plugin will graduate on the basis of feedback that we receive about its use. Nothing prohibits productive use of the plugin right now. There are no immediate plans to develop a set of RabbitMQ client libraries for AMQP 1.0, but RabbitMQ should interoperate with any correct implementation. We encourage you to supply feedback about your interoperability experiences. > In addition are the availabe rabbitmq .Net clients for amqp prior to 1.0 > compatible to other amqp brokers? The RabbitMQ .NET client library supports AMQP 0-8, 0-9 and 0-9-1, switchable at runtime. See www.rabbitmq.com/specification.html for a version compatibility matrix. See http://www.rabbitmq.com/interoperability.html for interoperability information. -Emile From tvaghela at slscorp.com Thu Oct 31 10:01:42 2013 From: tvaghela at slscorp.com (tvaghela at slscorp.com) Date: 31 Oct 2013 06:01:42 -0400 Subject: [rabbitmq-discuss] =?utf-8?q?Festival_Shutdown_=3A_rabbitmq-discu?= =?utf-8?q?ss_Digest=2C_Vol_77=2C_Issue_32?= Message-ID: <20131031100142.1525.qmail@ns4000790.ip-198-245-63.net> Hi, Due to Diwali Festival, SLS will be closed from Oct. 31th to Nov. 6th. We will return on Nov. 7th to the office. For urgent matter please call on 001-408-852-0067. For more information about Diwali: http://en.wikipedia.org/wiki/Diwali Regards, Tejas Vaghela From jon.bergli.heier at zisson.no Thu Oct 31 10:21:13 2013 From: jon.bergli.heier at zisson.no (Jon Bergli Heier) Date: Thu, 31 Oct 2013 10:21:13 +0000 Subject: [rabbitmq-discuss] Cannot log in to management interface since 3.2.0 In-Reply-To: <52713113.40709@rabbitmq.com> References: , <52713113.40709@rabbitmq.com> Message-ID: Hi, thanks for the reply. > Does deleting cache and cookies solve the problem? Deleting cache and cookies did not help. > Which version were you upgrading from? We upgraded directly from 3.1.5. > Is there anything unusual about your setup? Not that I can think of, this happens on both cluster nodes and standalone nodes with the shovel and management plugins enabled. It seems to me however that the issue is that the login breaks on any % character in either the user or password field, this wasn't a problem with any earlier versions. Logging in seems to work if we manually escape the % by typing %25 in either field. Jon ________________________________________ From: Simon MacMullen [simon at rabbitmq.com] Sent: Wednesday, October 30, 2013 17:17 To: Discussions about RabbitMQ Cc: Jon Bergli Heier Subject: Re: [rabbitmq-discuss] Cannot log in to management interface since 3.2.0 Does deleting cache and cookies solve the problem? Which version were you upgrading from? Is there anything unusual about your setup? Cheers, Simon On 30/10/13 15:50, Jon Bergli Heier wrote: > Hi, we're having problems logging in to the management interface since version 3.2.0. Chrome spits out the following in the console: > > [Wed Oct 30 2013 16:38:41 GMT+0100 (CET)] _checkFormSubmission [form, selector: ".closest(form)", context: form, constructor: function, init: function, selector: ""?] #/login put > [Wed Oct 30 2013 16:38:41 GMT+0100 (CET)] runRoute put #/login > [Wed Oct 30 2013 16:38:41 GMT+0100 (CET)] 500 Error put #/login URI malformed URIError {} > > We've tried with IE and firefox as well, neither works. Are there any workarounds available? > > Jon > _______________________________________________ > 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 simon at rabbitmq.com Thu Oct 31 11:09:39 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 31 Oct 2013 11:09:39 +0000 Subject: [rabbitmq-discuss] Cannot log in to management interface since 3.2.0 In-Reply-To: References: , <52713113.40709@rabbitmq.com> Message-ID: <52723A73.5040804@rabbitmq.com> On 31/10/13 10:21, Jon Bergli Heier wrote: > It seems to me however that the issue is that the login breaks on any > % character in either the user or password field, this wasn't a > problem with any earlier versions. Logging in seems to work if we > manually escape the % by typing %25 in either field. Ah, thank you! Confirmed, will be fixed in the next release. Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From marcos.torres at gmail.com Thu Oct 31 12:48:10 2013 From: marcos.torres at gmail.com (Marcos Torres) Date: Thu, 31 Oct 2013 10:48:10 -0200 Subject: [rabbitmq-discuss] Subscription Performance Message-ID: Hi there. We're publising messages with a rate between 1000 msg/sec and 2000 msg/sec in our dev machine. This is OK for us in our current dev status. The problem is with the delivery/ack speed. We're getting at most 150 msg/sec with all our logic disabled : this means we are just deserializing and ack the message. This is creating a bottleneck. I was excepting similar numers to publshing, now I wonder if my assumption is correct. I would love to hear any suggestion in order to improve the delivery speed of the messages. Thanks. -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at rabbitmq.com Thu Oct 31 12:54:50 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 31 Oct 2013 12:54:50 +0000 Subject: [rabbitmq-discuss] Subscription Performance In-Reply-To: References: Message-ID: <5272531A.3070409@rabbitmq.com> On 31/10/13 12:48, Marcos Torres wrote: > We're publising messages with a rate between 1000 msg/sec and 2000 > msg/sec in our dev machine. This is OK for us in our current dev status. > > The problem is with the delivery/ack speed. We're getting at most 150 > msg/sec with all our logic disabled : this means we are just > deserializing and ack the message. > This is creating a bottleneck. > > I was excepting similar numers to publshing, now I wonder if my > assumption is correct. You should be able to get approximately similar performance at the consumer end as you get on the producer end. So with that in mind: * Are you setting prefetch count (basic.qos)? * Are you using a different client library? * How many consumers are you attaching to a queue? * What performance do you get consuming the messages with PerfTest? $ runjava.sh com.rabbitmq.examples.PerfTest -h amqp://user:pass at server -x0 -p -u Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From sekhar434145 at gmail.com Thu Oct 31 13:29:13 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Thu, 31 Oct 2013 18:59:13 +0530 Subject: [rabbitmq-discuss] load balancing in RabbitMQ, only HAProxy or can we use any other? Message-ID: Hi Team, In the Rabbit_In_Action.pdf document its mentioned about HAProxy load balancer for clustered RabbitMQ nodes, can't we achieve the same using apache load balancer or any other? Thanks in advance!!! -------------- next part -------------- An HTML attachment was scrubbed... URL: From marcos.torres at gmail.com Thu Oct 31 13:33:58 2013 From: marcos.torres at gmail.com (Marcos Torres) Date: Thu, 31 Oct 2013 11:33:58 -0200 Subject: [rabbitmq-discuss] Subscription Performance In-Reply-To: <5272531A.3070409@rabbitmq.com> References: <5272531A.3070409@rabbitmq.com> Message-ID: Simon, I'm using the .NET library, specifically the EventingConsumer. I'm not setting the prefetch count, I will look into that. Also, I will start doing some performance with PerfTest as suggested. Regarding Consumers, we have 1 per queue, that's because we handle a lot (700) of queues. If increasing the Consumer count will have direct impact in the delivery, I can explore into that but I cannot match the Producer count, that's for sure. Thank you. On Thu, Oct 31, 2013 at 9:54 AM, Simon MacMullen wrote: > On 31/10/13 12:48, Marcos Torres wrote: > >> We're publising messages with a rate between 1000 msg/sec and 2000 >> msg/sec in our dev machine. This is OK for us in our current dev status. >> >> The problem is with the delivery/ack speed. We're getting at most 150 >> msg/sec with all our logic disabled : this means we are just >> deserializing and ack the message. >> This is creating a bottleneck. >> >> I was excepting similar numers to publshing, now I wonder if my >> assumption is correct. >> > > You should be able to get approximately similar performance at the > consumer end as you get on the producer end. > > So with that in mind: > > * Are you setting prefetch count (basic.qos)? > * Are you using a different client library? > * How many consumers are you attaching to a queue? > * What performance do you get consuming the messages with PerfTest? > > $ runjava.sh com.rabbitmq.examples.PerfTest -h amqp://user:pass at server-x0 -p -u > > Cheers, Simon > > -- > Simon MacMullen > RabbitMQ, Pivotal > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Thu Oct 31 13:40:59 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 31 Oct 2013 17:40:59 +0400 Subject: [rabbitmq-discuss] load balancing in RabbitMQ, only HAProxy or can we use any other? In-Reply-To: References: Message-ID: <5857B046-9503-4421-99C2-4CAF98EF8355@rabbitmq.com> On 31 Oct 2013, at 17:29, Rajasekhar P wrote: > In the Rabbit_In_Action.pdf document its mentioned about HAProxy load balancer for clustered RabbitMQ nodes, can't we achieve the same using apache load balancer or any other? You can use any TCP proxy. Apache and Nginx were created to serve and proxy HTTP. While extensions that add TCP proxy capabilities exist for both, they are not widely used and as such not nearly as battle tested as the core modules. MK Software Engineer, Pivotal/RabbitMQ From jkuch at gopivotal.com Thu Oct 31 13:43:47 2013 From: jkuch at gopivotal.com (Jerry Kuch) Date: Thu, 31 Oct 2013 06:43:47 -0700 Subject: [rabbitmq-discuss] load balancing in RabbitMQ, only HAProxy or can we use any other? In-Reply-To: References: Message-ID: <1AB7CD6A-D334-4305-9F49-C2EC1F49DCC3@gopivotal.com> Any reasonable load balancer should be fine. For example we have many commercial users working with F5 products. Sent from my iPhone (Brevity and typos are hopefully the result of 1-fingered typing rather than rudeness or illiteracy). > On Oct 31, 2013, at 6:29 AM, Rajasekhar P wrote: > > Hi Team, > > In the Rabbit_In_Action.pdf document its mentioned about HAProxy load balancer for clustered RabbitMQ nodes, can't we achieve the same using apache load balancer or any other? Thanks in advance!!! > _______________________________________________ > rabbitmq-discuss mailing list > rabbitmq-discuss at lists.rabbitmq.com > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss From sekhar434145 at gmail.com Thu Oct 31 13:49:17 2013 From: sekhar434145 at gmail.com (Rajasekhar P) Date: Thu, 31 Oct 2013 19:19:17 +0530 Subject: [rabbitmq-discuss] load balancing in RabbitMQ, only HAProxy or can we use any other? In-Reply-To: <1AB7CD6A-D334-4305-9F49-C2EC1F49DCC3@gopivotal.com> References: <1AB7CD6A-D334-4305-9F49-C2EC1F49DCC3@gopivotal.com> Message-ID: Thanks for the response and we have experienced with apache load balancer. we can use this as load balancer right? If yes, is there any documentation with respect to the RabbitMQ server? Could you please share the same. On Thu, Oct 31, 2013 at 7:13 PM, Jerry Kuch wrote: > Any reasonable load balancer should be fine. For example we have many > commercial users working with F5 products. > > > > Sent from my iPhone (Brevity and typos are hopefully the result of > 1-fingered typing rather than rudeness or illiteracy). > > > > On Oct 31, 2013, at 6:29 AM, Rajasekhar P > wrote: > > > > Hi Team, > > > > In the Rabbit_In_Action.pdf document its mentioned about HAProxy load > balancer for clustered RabbitMQ nodes, can't we achieve the same using > apache load balancer or any other? Thanks in advance!!! > > _______________________________________________ > > 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 Thu Oct 31 13:52:52 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 31 Oct 2013 17:52:52 +0400 Subject: [rabbitmq-discuss] load balancing in RabbitMQ, only HAProxy or can we use any other? In-Reply-To: References: <1AB7CD6A-D334-4305-9F49-C2EC1F49DCC3@gopivotal.com> Message-ID: <8A55DEB8-A4B3-4EC7-8D5C-CD4FD3D10419@rabbitmq.com> On 31 Oct 2013, at 17:49, Rajasekhar P wrote: > Thanks for the response and we have experienced with apache load balancer. we can use this as load balancer right? Rajasekhar, You cannot use stock Apache HTTP reverse proxy module. You can use a TCP reverse proxy module for Apache if you are sure it is mature enough for your needs. MK Software Engineer, Pivotal/RabbitMQ From simon at rabbitmq.com Thu Oct 31 14:33:06 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 31 Oct 2013 14:33:06 +0000 Subject: [rabbitmq-discuss] Subscription Performance In-Reply-To: References: <5272531A.3070409@rabbitmq.com> Message-ID: <52726A22.5000700@rabbitmq.com> Hmm. That doesn't sounds like you're doing anything obviously wrong; that should go fast. I'd be interested to hear what you get out of PerfTest. I was asking about prefetch count since that can make consuming go slower, so I wouldn't bother with that. And one consumer per queue should be fine. And the .net client is fast enough (I asked because some clients are slow, if you were using a slow client to consume but not produce that might be it). I assume you are using recent RabbitMQ? Cheers, Simon On 31/10/13 13:33, Marcos Torres wrote: > Simon, > > I'm using the .NET library, specifically the EventingConsumer. I'm not > setting the prefetch count, I will look into that. > Also, I will start doing some performance with PerfTest as suggested. > > Regarding Consumers, we have 1 per queue, that's because we handle a lot > (700) of queues. If increasing the Consumer count will have direct > impact in the delivery, I can explore into that but I cannot match the > Producer count, that's for sure. > > Thank you. > > > On Thu, Oct 31, 2013 at 9:54 AM, Simon MacMullen > wrote: > > On 31/10/13 12:48, Marcos Torres wrote: > > We're publising messages with a rate between 1000 msg/sec and 2000 > msg/sec in our dev machine. This is OK for us in our current dev > status. > > The problem is with the delivery/ack speed. We're getting at > most 150 > msg/sec with all our logic disabled : this means we are just > deserializing and ack the message. > This is creating a bottleneck. > > I was excepting similar numers to publshing, now I wonder if my > assumption is correct. > > > You should be able to get approximately similar performance at the > consumer end as you get on the producer end. > > So with that in mind: > > * Are you setting prefetch count (basic.qos)? > * Are you using a different client library? > * How many consumers are you attaching to a queue? > * What performance do you get consuming the messages with PerfTest? > > $ runjava.sh com.rabbitmq.examples.PerfTest -h > amqp://user:pass at server -x0 -p -u > > Cheers, Simon > > -- > Simon MacMullen > RabbitMQ, Pivotal > > -- Simon MacMullen RabbitMQ, Pivotal From j-jimenez at finamex.com.mx Thu Oct 31 15:11:48 2013 From: j-jimenez at finamex.com.mx (Jose Jimenez Ortiz) Date: Thu, 31 Oct 2013 09:11:48 -0600 Subject: [rabbitmq-discuss] segfault in beam.smp Message-ID: Guys, Without any notification, Rabbitmq have been crashing on my fedora box (not too often) with around two weeks of separation between crashes, and I found only this record on /var/log/messages [377063.818531] beam.smp[1086]: segfault at 988017 ip 000000000044cfda sp 00007f0c9c7b7850 error 6 in beam.smp[400000+1e4000] Just with the service restart all went to normal again. Load conditions were as we've had on the previous 3 years, no special things we were doing with it, just happened. Also, there is absolutely nothing on rabbit logs with this regards. My config is as follows: Linux Fedora Kernel 3.9.10-100.fc17.x86_64 SMP RabbitMQ 3.1.5 Erlang R15B03 Federated (as a fact, this is the federated node) Does anyone know how to fix this? Is it related to current version? Is there a way to increase log level on rabbit to try to analyze the problem? Thanks Jose Jimenez ________________________________ AVISO IMPORTANTE Este correo electr?nico y sus anexos pueden contener informaci?n CONFIDENCIAL para uso exclusivo de su destinatario. Si ha recibido este correo por error, por favor, notif?quelo al remitente y b?rrelo de su sistema junto con los archivos que en su caso se anexen. Las opiniones expresadas en este correo son las de su autor y no son necesariamente compartidas o apoyadas por la compa??a. Cualquier opini?n, propuesta o recomendaci?n aqu? contenida est? sujeta a las condiciones regulatorias que resulten aplicables y a los acuerdos comerciales, contratos y dem?s documentos suscritos con el destinatario y/o con la empresa que representa. No se garantiza que la transmisi?n de este correo sea segura o libre de errores, podr?a haber sido viciada, perdida, destruida, haber llegado tarde, de forma incompleta o contener VIRUS. IMPORTANT NOTICE This e-mail w/attachments is intended solely for the use of the intended recipient(s) and may contain information that is privileged, confidential or proprietary. If you are not an intended recipient, please notify the sender, and then please delete and destroy all copies and attachments. The opinions expressed in this e-mail are not necessarily shared or supported by the Company. Any opinion, suggestion or recommendation written in this e-mail will be subject to regulatory conditions, commercial agreements, copyright laws, contracts and any other agreement signed with the addressee and/or the Company that the addressee represents. The transmission of this e-mail cannot be guaranteed to be secure or virus free, the transmission could be vitiated, lost, destroyed, delayed, incomplete or may contain virus. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Thu Oct 31 15:24:16 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 31 Oct 2013 19:24:16 +0400 Subject: [rabbitmq-discuss] segfault in beam.smp In-Reply-To: References: Message-ID: <491A19B6-A99B-4B7E-9AE0-544BC3F861CB@rabbitmq.com> On 31 Oct 2013, at 19:11, Jose Jimenez Ortiz wrote: > Does anyone know how to fix this? Is it related to current version? Is there a way to increase log level on rabbit to try to analyze the problem? Segfaults is ultimately an Erlang runtime problem. Give Erlang 16B02 a try. MK Software Engineer, Pivotal/RabbitMQ From francois.beausoleil at gmail.com Thu Oct 31 15:24:56 2013 From: francois.beausoleil at gmail.com (=?UTF-8?Q?Fran=C3=A7ois_Beausoleil?=) Date: Thu, 31 Oct 2013 08:24:56 -0700 (PDT) Subject: [rabbitmq-discuss] rabbitmq-server dies from out of memory In-Reply-To: <0e3cfc8f-98b8-4e78-922b-b5bc459c1617@googlegroups.com> References: <0e3cfc8f-98b8-4e78-922b-b5bc459c1617@googlegroups.com> Message-ID: <99308962-d749-49ba-bb79-29c693d3a160@googlegroups.com> I changed overcommit_memory from 2 to 0, and RabbitMQ stays up for more than 15 seconds now. That seems to have been my error. Thanks! Fran?ois On Tuesday, October 29, 2013 5:10:13 PM UTC-4, Fran?ois Beausoleil wrote: > > Hi all! > > I have a bare metal server with 32 GiB of RAM. I installed RabbitMQ 3.2.0, > Erlang R16B02. > > When load increases (publishing over 4000 msgs/s), RabbitMQ dies with > "Could not allocate memory" errors: > > Crash dump was written to: erl_crash.dump > eheap_alloc: Cannot allocate 529782288 bytes of memory (of type "heap"). > > The messages which are published are about 4 KiB of XML. The persistent > option is set to true, to ensure persistence across reboots. > > The host has configuration for overcommit: > > # cat /proc/sys/vm/overcommit_ratio > 50 > # cat /proc/sys/vm/overcommit_memory > 2 > > On start, RabbitMQ correctly identifies the total amount of memory: > > =INFO REPORT==== 29-Oct-2013::20:58:03 === > node : rabbit at skyler > home dir : /var/lib/rabbitmq > config file(s) : (none) > cookie hash : mV5+4OI0hTEXkDPMtOzVdQ== > log : /var/log/rabbitmq/rabbit at skyler.log > sasl log : /var/log/rabbitmq/rabbit at skyler-sasl.log > database dir : /var/lib/rabbitmq/mnesia/rabbit at skyler > > =INFO REPORT==== 29-Oct-2013::20:58:04 === > Limiting to approx 3996 file handles (3594 sockets) > > =INFO REPORT==== 29-Oct-2013::20:58:04 === > Memory limit set to 12826MB of 32066MB total. > > =INFO REPORT==== 29-Oct-2013::20:58:04 === > Disk free limit set to 50MB > > On the same host, I'm also running a Java application. The Java > application's max heap is set to 6 GiB, through -Xmx6g. > > Google and StackOverflow aren't very helpful: there are a few mentions, > but not many apply to RabbitMQ, and the other ones don't seem to apply or > are very old. > > What can I do to troubleshoot the problem? > > Thanks! > Fran?ois > -------------- next part -------------- An HTML attachment was scrubbed... URL: From emile at rabbitmq.com Thu Oct 31 15:41:41 2013 From: emile at rabbitmq.com (Emile Joubert) Date: Thu, 31 Oct 2013 15:41:41 +0000 Subject: [rabbitmq-discuss] segfault in beam.smp In-Reply-To: <491A19B6-A99B-4B7E-9AE0-544BC3F861CB@rabbitmq.com> References: <491A19B6-A99B-4B7E-9AE0-544BC3F861CB@rabbitmq.com> Message-ID: <52727A35.1070700@rabbitmq.com> Hi, On 31/10/13 15:24, Michael Klishin wrote: > On 31 Oct 2013, at 19:11, Jose Jimenez Ortiz >> Does anyone know how to fix this? Is it related to current version? >> Is there a way to increase log level on rabbit to try to analyze >> the problem? > > Segfaults is ultimately an Erlang runtime problem. Give Erlang 16B02 > a try. To add to what Michael says, there are a few more things you could do: Check that you don't have HiPE turned on. HiPE can occasionally lead to problems. Validate the hardware. Run a memory stress-test. Check whether the error can be repeated on different hardware. That kernel is pretty recent. The 3 years of stable running could not have been on such a new kernel. Have you ruled out the admittedly unlikely possibility of a kernel issue? -Emile From matthias at rabbitmq.com Thu Oct 31 15:44:22 2013 From: matthias at rabbitmq.com (Matthias Radestock) Date: Thu, 31 Oct 2013 15:44:22 +0000 Subject: [rabbitmq-discuss] Can't set short node name!\nPlease check your configuration\n In-Reply-To: <1383022140684-30934.post@n5.nabble.com> References: <471965FF-660F-4F6B-8EFB-01EA0A691233@rabbitmq.com> <1383022140684-30934.post@n5.nabble.com> Message-ID: <52727AD6.6040501@rabbitmq.com> On 29/10/13 04:49, saritha wrote: > I have changed to RabbitMQ 3.2.0 > erl -sname rabbit at 192.168.1.26 > I am getting the same error.. > > In /etc/rabbitmq/rabbitmq-env.conf > NODE_IP_ADDRESS=192.168.1.26 > NODENAME=rabbit at 192.168.1.26 > > If I call rabbitmqctl status > Still I getting the same error > {error_logger,{{2013,10,28},{7,43,47}},"Can't set short node name!\nPlease > check your configuration\n",[]} > Please help me out... As Alvaro said, you probably ran something with '-name' instead of '-sname' at some point, and as a result you'll need to kill the epmd process that is now sitting there expecting long names. But what you are doing above just isn't going to work. you must supply a proper hostname in -sname, and that hostname must resolve to the correct IP. Regards, Matthias. From jkuch at gopivotal.com Thu Oct 31 16:40:59 2013 From: jkuch at gopivotal.com (Jerry Kuch) Date: Thu, 31 Oct 2013 09:40:59 -0700 Subject: [rabbitmq-discuss] segfault in beam.smp In-Reply-To: References: Message-ID: Another question... multicore machine? Which processor? Any unusual OS or BIOS settings with regard to CPU core usage? On Thu, Oct 31, 2013 at 8:11 AM, Jose Jimenez Ortiz < j-jimenez at finamex.com.mx> wrote: > Guys,**** > > ** ** > > Without any notification, Rabbitmq have been crashing on my fedora box > (not too often) with around two weeks of separation between crashes, and I > found only this record on /var/log/messages**** > > ** ** > > [377063.818531] beam.smp[1086]: segfault at 988017 ip 000000000044cfda sp > 00007f0c9c7b7850 error 6 in beam.smp[400000+1e4000]**** > > ** ** > > Just with the service restart all went to normal again. Load conditions > were as we?ve had on the previous 3 years, no special things we were doing > with it, just happened. Also, there is absolutely nothing on rabbit logs > with this regards.**** > > ** ** > > My config is as follows:**** > > ** ** > > Linux Fedora Kernel 3.9.10-100.fc17.x86_64 SMP**** > > RabbitMQ 3.1.5**** > > Erlang R15B03**** > > Federated (as a fact, this is the federated node)**** > > ** ** > > Does anyone know how to fix this? Is it related to current version? Is > there a way to increase log level on rabbit to try to analyze the problem? > **** > > ** ** > > Thanks**** > > Jose Jimenez**** > > ** ** > > ------------------------------ > AVISO IMPORTANTE > Este correo electr?nico y sus anexos pueden contener informaci?n > CONFIDENCIAL para uso exclusivo de su destinatario. Si ha recibido este > correo por error, por favor, notif?quelo al remitente y b?rrelo de su > sistema junto con los archivos que en su caso se anexen. Las opiniones > expresadas en este correo son las de su autor y no son necesariamente > compartidas o apoyadas por la compa??a. Cualquier opini?n, propuesta o > recomendaci?n aqu? contenida est? sujeta a las condiciones regulatorias que > resulten aplicables y a los acuerdos comerciales, contratos y dem?s > documentos suscritos con el destinatario y/o con la empresa que representa. > No se garantiza que la transmisi?n de este correo sea segura o libre de > errores, podr?a haber sido viciada, perdida, destruida, haber llegado > tarde, de forma incompleta o contener VIRUS. > > IMPORTANT NOTICE > This e-mail w/attachments is intended solely for the use of the intended > recipient(s) and may contain information that is privileged, confidential > or proprietary. If you are not an intended recipient, please notify the > sender, and then please delete and destroy all copies and attachments. The > opinions expressed in this e-mail are not necessarily shared or supported > by the Company. Any opinion, suggestion or recommendation written in this > e-mail will be subject to regulatory conditions, commercial agreements, > copyright laws, contracts and any other agreement signed with the addressee > and/or the Company that the addressee represents. The transmission of this > e-mail cannot be guaranteed to be secure or virus free, the transmission > could be vitiated, lost, destroyed, delayed, incomplete or may contain > virus. > > _______________________________________________ > 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 mcintoshj at gmail.com Thu Oct 31 16:47:58 2013 From: mcintoshj at gmail.com (Jason McIntosh) Date: Thu, 31 Oct 2013 11:47:58 -0500 Subject: [rabbitmq-discuss] Weird error on 3.2.0 causing failures Message-ID: We have a consumer process that's just dying repeatedly throwing low level channel errors. This is using amqp-client 3.2.0. We've tried with an earlier version as well. We die as soon as we try and do a basicConsume on the channel. On the server, I found the below logs. Just wanted to see if anyone had any ideas? We deleted the messages, published them again and our consumer works fine. This has us pretty confused. The ONLY guess I have right now is some sort of funky character or a blank tag somehow got in, but I can't imagine what that would be - nothing here seems out of place. Note, the original problem message was published through the management GUI. Thanks for any advice! Jason =SUPERVISOR REPORT==== 31-Oct-2013::11:30:42 === Supervisor: {<0.1276.61>,rabbit_channel_sup} Context: child_terminated Reason: badarg Offender: [{pid,<0.1275.61>}, {name,writer}, {mfargs, {rabbit_writer,start_link, [#Port<0.347665>,2,131072,rabbit_framing_amqp_0_9_1, <0.1278.61>,true]}}, {restart_type,intrinsic}, {shutdown,4294967295}, {child_type,worker}] =SUPERVISOR REPORT==== 31-Oct-2013::11:30:42 === Supervisor: {<0.1276.61>,rabbit_channel_sup} Context: shutdown Reason: reached_max_restart_intensity Offender: [{pid,<0.1275.61>}, {name,writer}, {mfargs, {rabbit_writer,start_link, [#Port<0.347665>,2,131072,rabbit_framing_amqp_0_9_1, <0.1278.61>,true]}}, {restart_type,intrinsic}, {shutdown,4294967295}, {child_type,worker}] =CRASH REPORT==== 31-Oct-2013::11:30:43 === crasher: initial call: rabbit_writer:mainloop/2 pid: <0.1299.61> registered_name: [] exception error: bad argument in function rabbit_framing_amqp_0_9_1:encode_properties/1 in call from rabbit_binary_generator:ensure_content_encoded/2 in call from rabbit_binary_generator:build_simple_content_frames/4 in call from rabbit_writer:assemble_frames/5 in call from rabbit_writer:internal_send_command_async/3 in call from rabbit_writer:handle_message/2 in call from rabbit_writer:handle_message/3 in call from rabbit_writer:mainloop1/2 ancestors: [<0.1300.61>,<0.1303.61>,<0.1272.61>,<0.1273.61>, rabbit_tcp_client_sup,rabbit_sup,<0.165.0>] messages: [{send_command_and_notify,<0.14808.16>,<0.1293.61>, {'basic.deliver',<<"amq.ctag-y_Tr2BuZFgx7A3XAmXxzSg">>, 2,true,<<>>,<<"extractions.summarizer">>}, {content,60, {'P_basic',<<"text/plain">>,<<"UTF-8">>,[],1, <<"0">>,undefined,undefined,undefined,undefined, undefined,undefined,undefined,undefined, undefined}, none,none, [<<"{\"jobName\":\"BIGFauxTest2\",\"creationTime\":\"10-03-2013 14:36:10\"}">>]}}] links: [<0.1300.61>] dictionary: [] trap_exit: false status: running heap_size: 376 stack_size: 27 reductions: 423 neighbours: =SUPERVISOR REPORT==== 31-Oct-2013::11:30:43 === Supervisor: {<0.1300.61>,rabbit_channel_sup} Context: child_terminated Reason: badarg Offender: [{pid,<0.1299.61>}, {name,writer}, {mfargs, {rabbit_writer,start_link, [#Port<0.347666>,2,131072,rabbit_framing_amqp_0_9_1, <0.1271.61>,true]}}, {restart_type,intrinsic}, {shutdown,4294967295}, {child_type,worker}] =SUPERVISOR REPORT==== 31-Oct-2013::11:30:43 === Supervisor: {<0.1300.61>,rabbit_channel_sup} Context: shutdown Reason: reached_max_restart_intensity Offender: [{pid,<0.1299.61>}, {name,writer}, {mfargs, {rabbit_writer,start_link, [#Port<0.347666>,2,131072,rabbit_framing_amqp_0_9_1, <0.1271.61>,true]}}, {restart_type,intrinsic}, {shutdown,4294967295}, {child_type,worker}] =CRASH REPORT==== 31-Oct-2013::11:30:43 === crasher: initial call: rabbit_writer:mainloop/2 pid: <0.1325.61> registered_name: [] exception error: bad argument in function rabbit_framing_amqp_0_9_1:encode_properties/1 in call from rabbit_binary_generator:ensure_content_encoded/2 in call from rabbit_binary_generator:build_simple_content_frames/4 in call from rabbit_writer:assemble_frames/5 in call from rabbit_writer:internal_send_command_async/3 in call from rabbit_writer:handle_message/2 in call from rabbit_writer:handle_message/3 in call from rabbit_writer:mainloop1/2 ancestors: [<0.1323.61>,<0.1317.61>,<0.1296.61>,<0.1297.61>, rabbit_tcp_client_sup,rabbit_sup,<0.165.0>] messages: [{send_command_and_notify,<0.14808.16>,<0.1322.61>, {'basic.deliver',<<"amq.ctag-ACPfvFFpUNKEw1WOwN9IbQ">>, 2,true,<<>>,<<"extractions.summarizer">>}, {content,60, {'P_basic',<<"text/plain">>,<<"UTF-8">>,[],1, <<"0">>,undefined,undefined,undefined,undefined, undefined,undefined,undefined,undefined, undefined}, none,none, [<<"{\"jobName\":\"BIGFauxTest2\",\"creationTime\":\"10-03-2013 14:36:10\"}">>]}}] links: [<0.1323.61>] dictionary: [] trap_exit: false status: running heap_size: 376 stack_size: 27 reductions: 438 neighbours: =SUPERVISOR REPORT==== 31-Oct-2013::11:30:43 === Supervisor: {<0.1323.61>,rabbit_channel_sup} Context: child_terminated Reason: badarg Offender: [{pid,<0.1325.61>}, {name,writer}, {mfargs, {rabbit_writer,start_link, [#Port<0.347667>,2,131072,rabbit_framing_amqp_0_9_1, <0.1295.61>,true]}}, {restart_type,intrinsic}, {shutdown,4294967295}, {child_type,worker}] =SUPERVISOR REPORT==== 31-Oct-2013::11:30:43 === Supervisor: {<0.1323.61>,rabbit_channel_sup} Context: shutdown Reason: reached_max_restart_intensity Offender: [{pid,<0.1325.61>}, {name,writer}, {mfargs, {rabbit_writer,start_link, [#Port<0.347667>,2,131072,rabbit_framing_amqp_0_9_1, <0.1295.61>,true]}}, {restart_type,intrinsic}, {shutdown,4294967295}, {child_type,worker}] -- Jason McIntosh https://github.com/jasonmcintosh/ 573-424-7612 -------------- next part -------------- An HTML attachment was scrubbed... URL: From j-jimenez at finamex.com.mx Thu Oct 31 16:47:58 2013 From: j-jimenez at finamex.com.mx (Jose Jimenez Ortiz) Date: Thu, 31 Oct 2013 10:47:58 -0600 Subject: [rabbitmq-discuss] segfault in beam.smp In-Reply-To: <52727A35.1070700@rabbitmq.com> References: <491A19B6-A99B-4B7E-9AE0-544BC3F861CB@rabbitmq.com> <52727A35.1070700@rabbitmq.com> Message-ID: Guys, first of all, thanks for your prompt answers. I will start with Michael suggestion on upgrading Erlang relase. And on Emile comments, well, will do the tests, initially it seems ok, no alerts/errors at any level. Yes right, no point to mention the three year idea. But anyway, kernel is the same on other stable nodes with HIPE as default, who knows. But still will try to increase the log level of the kernel. Let you know if I have some other answers, Thanks -----Mensaje original----- De: Emile Joubert [mailto:emile at rabbitmq.com] Enviado el: Jueves, 31 de Octubre de 2013 09:42 Para: Jose Jimenez Ortiz CC: Discussions about RabbitMQ; Michael Klishin Asunto: Re: [rabbitmq-discuss] segfault in beam.smp Hi, On 31/10/13 15:24, Michael Klishin wrote: > On 31 Oct 2013, at 19:11, Jose Jimenez Ortiz >> Does anyone know how to fix this? Is it related to current version? >> Is there a way to increase log level on rabbit to try to analyze the >> problem? > > Segfaults is ultimately an Erlang runtime problem. Give Erlang 16B02 a > try. To add to what Michael says, there are a few more things you could do: Check that you don't have HiPE turned on. HiPE can occasionally lead to problems. Validate the hardware. Run a memory stress-test. Check whether the error can be repeated on different hardware. That kernel is pretty recent. The 3 years of stable running could not have been on such a new kernel. Have you ruled out the admittedly unlikely possibility of a kernel issue? -Emile AVISO IMPORTANTE Este correo electr?nico y sus anexos pueden contener informaci?n CONFIDENCIAL para uso exclusivo de su destinatario. Si ha recibido este correo por error, por favor, notif?quelo al remitente y b?rrelo de su sistema junto con los archivos que en su caso se anexen. Las opiniones expresadas en este correo son las de su autor y no son necesariamente compartidas o apoyadas por la compa??a. Cualquier opini?n, propuesta o recomendaci?n aqu? contenida est? sujeta a las condiciones regulatorias que resulten aplicables y a los acuerdos comerciales, contratos y dem?s documentos suscritos con el destinatario y/o con la empresa que representa. No se garantiza que la transmisi?n de este correo sea segura o libre de errores, podr?a haber sido viciada, perdida, destruida, haber llegado tarde, de forma incompleta o contener VIRUS. IMPORTANT NOTICE This e-mail w/attachments is intended solely for the use of the intended recipient(s) and may contain information that is privileged, confidential or proprietary. If you are not an intended recipient, please notify the sender, and then please delete and destroy all copies and attachments. The opinions expressed in this e-mail are not necessarily shared or supported by the Company. Any opinion, suggestion or recommendation written in this e-mail will be subject to regulatory conditions, commercial agreements, copyright laws, contracts and any other agreement signed with the addressee and/or the Company that the addressee represents. The transmission of this e-mail cannot be guaranteed to be secure or virus free, the transmission could be vitiated, lost, destroyed, delayed, incomplete or may contain virus. From simon at rabbitmq.com Thu Oct 31 16:59:50 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 31 Oct 2013 16:59:50 +0000 Subject: [rabbitmq-discuss] Weird error on 3.2.0 causing failures In-Reply-To: References: Message-ID: <52728C86.3080206@rabbitmq.com> On 31/10/13 16:47, Jason McIntosh wrote: > Just wanted to see if anyone had any ideas? We deleted the messages, > published them again and our consumer works fine. This has us pretty > confused. The ONLY guess I have right now is some sort of funky > character or a blank tag somehow got in, but I can't imagine what that > would be - nothing here seems out of place. Note, the original problem > message was published through the management GUI. Yeah, that sounds right - the writer process is crashing trying to encode the basic.properties for the message in question; presumably someone managed to publish something in the wrong format. Needless to say, you should not be able to do that. I will try to reconstruct what could have gone wrong, but there's not much to go on here, so if you can give me a hint as to how to replicate this that would be very useful. Was the broker at 3.2.0 when the message was originally published? Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Thu Oct 31 17:07:57 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 31 Oct 2013 17:07:57 +0000 Subject: [rabbitmq-discuss] rabbitmq-server dies from out of memory In-Reply-To: <99308962-d749-49ba-bb79-29c693d3a160@googlegroups.com> References: <0e3cfc8f-98b8-4e78-922b-b5bc459c1617@googlegroups.com> <99308962-d749-49ba-bb79-29c693d3a160@googlegroups.com> Message-ID: <52728E6D.3010100@rabbitmq.com> On 31/10/13 15:24, Fran?ois Beausoleil wrote: > I changed overcommit_memory from 2 to 0, and RabbitMQ stays up for > more than 15 seconds now. That seems to have been my error. Ah, thanks for getting back to us. I have to admit to being ignorant of Linux overcommit settings. Reading the man page I see that /proc/sys/vm/overcommit_memory is described thus: > In mode 2 (available since Linux 2.6), the total virtual address > space on the system is limited to (SS + RAM*(r/100)), where SS is the > size of the swap space, and RAM is the size of the physical memory, > and r is the contents of the file /proc/sys/vm/overcommit_ratio. So with your settings: # cat /proc/sys/vm/overcommit_ratio 50 # cat /proc/sys/vm/overcommit_memory 2 it sounds like the kernel would refuse to use more than (16GB + swap) of memory. What was the swap space if you don't mind me asking? Unfortunately I don't know if RabbitMQ can detect a situation like this, so it's very possible it went over the kernel's limit while still being within 32GB... Cheers, Simon -- Simon MacMullen RabbitMQ, Pivotal From simon at rabbitmq.com Thu Oct 31 17:22:31 2013 From: simon at rabbitmq.com (Simon MacMullen) Date: Thu, 31 Oct 2013 17:22:31 +0000 Subject: [rabbitmq-discuss] Weird error on 3.2.0 causing failures In-Reply-To: References: Message-ID: <527291D7.1050403@rabbitmq.com> Just to add to what I said before: you said that the message was published through management - how sure are you of that? I ask because you say you're also using the Erlang client. If you use the Erlang client in direct mode then no validation is performed of any properties you pass in and you could provoke exactly this sort of breakage when subsequently reading in network mode. Cheers, Simon On 31/10/13 16:47, Jason McIntosh wrote: > We have a consumer process that's just dying repeatedly throwing low > level channel errors. This is using amqp-client 3.2.0. We've tried > with an earlier version as well. We die as soon as we try and do a > basicConsume on the channel. On the server, I found the below logs. > > > Just wanted to see if anyone had any ideas? We deleted the messages, > published them again and our consumer works fine. This has us pretty > confused. The ONLY guess I have right now is some sort of funky > character or a blank tag somehow got in, but I can't imagine what that > would be - nothing here seems out of place. Note, the original problem > message was published through the management GUI. > > Thanks for any advice! > > Jason > > =SUPERVISOR REPORT==== 31-Oct-2013::11:30:42 === > > Supervisor: {<0.1276.61>,rabbit_channel_sup} > > Context: child_terminated > > Reason: badarg > > Offender: [{pid,<0.1275.61>}, > > {name,writer}, > > {mfargs, > > {rabbit_writer,start_link, > > [#Port<0.347665>,2,131072,rabbit_framing_amqp_0_9_1, > > <0.1278.61>,true]}}, > > {restart_type,intrinsic}, > > {shutdown,4294967295}, > > {child_type,worker}] > > =SUPERVISOR REPORT==== 31-Oct-2013::11:30:42 === > > Supervisor: {<0.1276.61>,rabbit_channel_sup} > > Context: shutdown > > Reason: reached_max_restart_intensity > > Offender: [{pid,<0.1275.61>}, > > {name,writer}, > > {mfargs, > > {rabbit_writer,start_link, > > [#Port<0.347665>,2,131072,rabbit_framing_amqp_0_9_1, > > <0.1278.61>,true]}}, > > {restart_type,intrinsic}, > > {shutdown,4294967295}, > > {child_type,worker}] > > =CRASH REPORT==== 31-Oct-2013::11:30:43 === > > crasher: > > initial call: rabbit_writer:mainloop/2 > > pid: <0.1299.61> > > registered_name: [] > > exception error: bad argument > > in function rabbit_framing_amqp_0_9_1:encode_properties/1 > > in call from rabbit_binary_generator:ensure_content_encoded/2 > > in call from rabbit_binary_generator:build_simple_content_frames/4 > > in call from rabbit_writer:assemble_frames/5 > > in call from rabbit_writer:internal_send_command_async/3 > > in call from rabbit_writer:handle_message/2 > > in call from rabbit_writer:handle_message/3 > > in call from rabbit_writer:mainloop1/2 > > ancestors: [<0.1300.61>,<0.1303.61>,<0.1272.61>,<0.1273.61>, > > rabbit_tcp_client_sup,rabbit_sup,<0.165.0>] > > messages: [{send_command_and_notify,<0.14808.16>,<0.1293.61>, > > {'basic.deliver',<<"amq.ctag-y_Tr2BuZFgx7A3XAmXxzSg">>, > > 2,true,<<>>,<<"extractions.summarizer">>}, > > {content,60, > > {'P_basic',<<"text/plain">>,<<"UTF-8">>,[],1, > > <<"0">>,undefined,undefined,undefined,undefined, > > undefined,undefined,undefined,undefined, > > undefined}, > > none,none, > > [<<"{\"jobName\":\"BIGFauxTest2\",\"creationTime\":\"10-03-2013 > 14:36:10\"}">>]}}] > > links: [<0.1300.61>] > > dictionary: [] > > trap_exit: false > > status: running > > heap_size: 376 > > stack_size: 27 > > reductions: 423 > > neighbours: > > =SUPERVISOR REPORT==== 31-Oct-2013::11:30:43 === > > Supervisor: {<0.1300.61>,rabbit_channel_sup} > > Context: child_terminated > > Reason: badarg > > Offender: [{pid,<0.1299.61>}, > > {name,writer}, > > {mfargs, > > {rabbit_writer,start_link, > > [#Port<0.347666>,2,131072,rabbit_framing_amqp_0_9_1, > > <0.1271.61>,true]}}, > > {restart_type,intrinsic}, > > {shutdown,4294967295}, > > {child_type,worker}] > > =SUPERVISOR REPORT==== 31-Oct-2013::11:30:43 === > > Supervisor: {<0.1300.61>,rabbit_channel_sup} > > Context: shutdown > > Reason: reached_max_restart_intensity > > Offender: [{pid,<0.1299.61>}, > > {name,writer}, > > {mfargs, > > {rabbit_writer,start_link, > > [#Port<0.347666>,2,131072,rabbit_framing_amqp_0_9_1, > > <0.1271.61>,true]}}, > > {restart_type,intrinsic}, > > {shutdown,4294967295}, > > {child_type,worker}] > > =CRASH REPORT==== 31-Oct-2013::11:30:43 === > > crasher: > > initial call: rabbit_writer:mainloop/2 > > pid: <0.1325.61> > > registered_name: [] > > exception error: bad argument > > in function rabbit_framing_amqp_0_9_1:encode_properties/1 > > in call from rabbit_binary_generator:ensure_content_encoded/2 > > in call from rabbit_binary_generator:build_simple_content_frames/4 > > in call from rabbit_writer:assemble_frames/5 > > in call from rabbit_writer:internal_send_command_async/3 > > in call from rabbit_writer:handle_message/2 > > in call from rabbit_writer:handle_message/3 > > in call from rabbit_writer:mainloop1/2 > > ancestors: [<0.1323.61>,<0.1317.61>,<0.1296.61>,<0.1297.61>, > > rabbit_tcp_client_sup,rabbit_sup,<0.165.0>] > > messages: [{send_command_and_notify,<0.14808.16>,<0.1322.61>, > > {'basic.deliver',<<"amq.ctag-ACPfvFFpUNKEw1WOwN9IbQ">>, > > 2,true,<<>>,<<"extractions.summarizer">>}, > > {content,60, > > {'P_basic',<<"text/plain">>,<<"UTF-8">>,[],1, > > <<"0">>,undefined,undefined,undefined,undefined, > > undefined,undefined,undefined,undefined, > > undefined}, > > none,none, > > [<<"{\"jobName\":\"BIGFauxTest2\",\"creationTime\":\"10-03-2013 > 14:36:10\"}">>]}}] > > links: [<0.1323.61>] > > dictionary: [] > > trap_exit: false > > status: running > > heap_size: 376 > > stack_size: 27 > > reductions: 438 > > neighbours: > > =SUPERVISOR REPORT==== 31-Oct-2013::11:30:43 === > > Supervisor: {<0.1323.61>,rabbit_channel_sup} > > Context: child_terminated > > Reason: badarg > > Offender: [{pid,<0.1325.61>}, > > {name,writer}, > > {mfargs, > > {rabbit_writer,start_link, > > [#Port<0.347667>,2,131072,rabbit_framing_amqp_0_9_1, > > <0.1295.61>,true]}}, > > {restart_type,intrinsic}, > > {shutdown,4294967295}, > > {child_type,worker}] > > =SUPERVISOR REPORT==== 31-Oct-2013::11:30:43 === > > Supervisor: {<0.1323.61>,rabbit_channel_sup} > > Context: shutdown > > Reason: reached_max_restart_intensity > > Offender: [{pid,<0.1325.61>}, > > {name,writer}, > > {mfargs, > > {rabbit_writer,start_link, > > [#Port<0.347667>,2,131072,rabbit_framing_amqp_0_9_1, > > <0.1295.61>,true]}}, > > {restart_type,intrinsic}, > > {shutdown,4294967295}, > > {child_type,worker}] > > > -- > 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 moberg.peter at gmail.com Thu Oct 31 17:28:33 2013 From: moberg.peter at gmail.com (Peter Moberg) Date: Thu, 31 Oct 2013 10:28:33 -0700 Subject: [rabbitmq-discuss] How do you handle recovering from a faulty connection using RabbitMQ java client library? Message-ID: Hi, I'm interested in knowing how other people handle recovering from a faulty connection using the official RabbitMQ java client library. We are using it to connect our application servers to our RabbitMQ cluster and we have implemented a few different ways to recover from a connection failure, but non of them feel quite right. Imagine this pseudo application: public class OurClassThatStartsConsumers { Connection conn; public void start() { ConnectionFactory factory = new ConnectionFactory(); factory.setUsername("someusername"); factory.setPassword("somepassword"); factory.setHost("somehost"); conn = factory.newConnection(); new Thread(new Consumer(conn.createChannel())).start(); } } class Consumer1 implements Runnable { public Consumer1(Channel channel) { this.channel = channel; } @Override public void run() { while (true) { ... consume incoming messages on the channel... // How do we handle that the connection dies? } }} In the real world we have several hundreds of consumers. So what happens if the connection dies? In the above example Consumer1 can not recover, when the connection closes, the Channel also closes, a state from which we can not recover. So lets look at some ways to solve this: Solution A) Let every consumer have their own connection and register the events that triggers when the connection dies and then handle reconnecting. Pros: It works Cons: - Since we have a lot of consumers, we probably do not want that many connections. - We might possible have a lot of duplicated code for reconnecting to rabbit and handle reconnecting Solution B) Have each consumer use the same connection and subscribe to its connection failure events. Pros: Less connections than in Solution A Cons: Since the connection is closed we need to reopen/replace it. The java client library doesn't seem to provide a way to reopen the connection, so we would have to replace it with a new connection and then somehow notify all the consumers about this new connection and they would have to recreate the channels and the consumers. Once again, a lot of logic that i don't want to see in the consumer ends up there. Solution C) Wrap Connection and Channel classes is classes that handle the re-connection logic, the consumer only needs to know about the WrappedChannel class. On a connection failure the WrappedConnection with deal with re-establishing the connection and once connected the WrappedConnection will automatically create new Channels and register consumers. Pros: It work - this is actually the solution we are using today. Cons: It feels like a hack, I think this is something that should be handled more elegantly by the underlying library. Maybe there is a much better way? The API documentation does not talk that much about recovering from a faulty connection. Any input is appreciated :) Thanks, Peter -------------- next part -------------- An HTML attachment was scrubbed... URL: From mklishin at gopivotal.com Thu Oct 31 17:34:10 2013 From: mklishin at gopivotal.com (Michael Klishin) Date: Thu, 31 Oct 2013 21:34:10 +0400 Subject: [rabbitmq-discuss] How do you handle recovering from a faulty connection using RabbitMQ java client library? In-Reply-To: References: Message-ID: <7DFB3FCC-59E2-4B3A-B552-8564465CD71D@rabbitmq.com> On 31 Oct 2013, at 21:28, Peter Moberg wrote: > Solution C) > > Wrap Connection and Channel classes is classes that handle the re-connection logic, the consumer only needs to know about the WrappedChannel class. On a connection failure the WrappedConnection with deal with re-establishing the connection and once connected the WrappedConnection will automatically create new Channels and register consumers. > > Pros: It work - this is actually the solution we are using today. > > Cons: It feels like a hack, I think this is something that should be handled more elegantly by the underlying library. This is what the two clients built on top of the Java one ? Langohr and March Hare ? do. It?s not a hack but a necessary work around because connection recovery is currently not performed by the Java client (it should be a core feature, if you ask me). So this is a viable approach. Take a look at Lyra, too: https://github.com/jhalterman/lyra. MK Software Engineer, Pivotal/RabbitMQ From francois.beausoleil at gmail.com Thu Oct 31 17:57:27 2013 From: francois.beausoleil at gmail.com (=?iso-8859-1?Q?Fran=E7ois_Beausoleil?=) Date: Thu, 31 Oct 2013 13:57:27 -0400 Subject: [rabbitmq-discuss] rabbitmq-server dies from out of memory In-Reply-To: <52728E6D.3010100@rabbitmq.com> References: <0e3cfc8f-98b8-4e78-922b-b5bc459c1617@googlegroups.com> <99308962-d749-49ba-bb79-29c693d3a160@googlegroups.com> <52728E6D.3010100@rabbitmq.com> Message-ID: Le 2013-10-31 ? 13:07, Simon MacMullen a ?crit : > On 31/10/13 15:24, Fran?ois Beausoleil wrote: >> I changed overcommit_memory from 2 to 0, and RabbitMQ stays up for >> more than 15 seconds now. That seems to have been my error. > > Ah, thanks for getting back to us. > > I have to admit to being ignorant of Linux overcommit settings. Reading > the man page I see that /proc/sys/vm/overcommit_memory is described thus: > >> In mode 2 (available since Linux 2.6), the total virtual address >> space on the system is limited to (SS + RAM*(r/100)), where SS is the >> size of the swap space, and RAM is the size of the physical memory, >> and r is the contents of the file /proc/sys/vm/overcommit_ratio. > > So with your settings: > > # cat /proc/sys/vm/overcommit_ratio > 50 > # cat /proc/sys/vm/overcommit_memory > 2 > > it sounds like the kernel would refuse to use more than (16GB + swap) of memory. What was the swap space if you don't mind me asking? My understanding is 32 GB + swap + 50% of physical memory, or 16GB. In other words, if total memory allocations exceeded 52 GB (4 GB swap), the kernel would refuse to allocate memory. > Unfortunately I don't know if RabbitMQ can detect a situation like this, so it's very possible it went over the kernel's limit while still being within 32GB... There could be a check in the startup script that only logs a message about overcommit_memory? Don't prevent sysadmins who know what they're doing from doing anything, but for other folks, tell them it might be a problem. Bye! Fran?ois From agram at blackridge.us Thu Oct 31 18:10:23 2013 From: agram at blackridge.us (Andy Gram) Date: Thu, 31 Oct 2013 18:10:23 +0000 Subject: [rabbitmq-discuss] messages stuck using shovel Message-ID: I have a configuration of 3 RabbitMQ nodes; devtop, devmid, devbot. I am implementing a star configuration with devtop as the center of the start. This is a pubsub application over a WAN. Any node can submit a new item to devtop and my publisher application will publish to all nodes, including itself. I am using shovel to instantiate a queue for each node that is bound to a fanout exchange on devtop. The published messages are stuck on devtop as below; +-------+--------------------------------+-------------+-----------+---------+------------------------+---------------------+--------+----------+----------------+-------------------------+---------------+--------+---------+ | vhost | name | auto_delete | consumers | durable | exclusive_consumer_tag | idle_since | memory | messages | messages_ready | messages_unacknowledged | node | policy | status | +-------+--------------------------------+-------------+-----------+---------+------------------------+---------------------+--------+----------+----------------+-------------------------+---------------+--------+---------+ | / | amq.gen-QXyScDVGCoTv8bhcbrMOrA | False | 1 | False | | 2013-10-31 10:32:25 | 9456 | 1 | 0 | 1 | rabbit at devtop | | running | | / | amq.gen-Ya03CVYcY-CEVKOYcSt0Xw | False | 1 | False | | 2013-10-31 10:32:25 | 9456 | 1 | 0 | 1 | rabbit at devtop | | running | | / | new_ident_queue | False | 1 | True | | 2013-10-31 10:32:28 | 14312 | 0 | 0 | 0 | rabbit at devtop | | running | | / | pub_idents | False | 0 | True | | 2013-10-31 10:15:52 | 13760 | 0 | 0 | 0 | rabbit at devtop | | running | | / | refresh_idents | False | 2 | True | | 2013-10-31 10:32:18 | 14192 | 0 | 0 | 0 | rabbit at devtop | | running | | / | refresh_queue | False | 1 | True | | 2013-10-31 10:32:18 | 13976 | 0 | 0 | 0 | rabbit at devtop | | running | +-------+--------------------------------+-------------+-----------+---------+------------------------+---------------------+--------+----------+----------------+-------------------------+---------------+--------+---------+ The status on devmid is as follows; +-------+-----------------+-------------+-----------+---------+------------------------+---------------------+--------+----------+----------------+-------------------------+---------------+--------+---------+ | vhost | name | auto_delete | consumers | durable | exclusive_consumer_tag | idle_since | memory | messages | messages_ready | messages_unacknowledged | node | policy | status | +-------+-----------------+-------------+-----------+---------+------------------------+---------------------+--------+----------+----------------+-------------------------+---------------+--------+---------+ | / | ident_updates | False | 0 | True | | 2013-10-31 17:32:03 | 21696 | 0 | 0 | 0 | rabbit at devmid | | running | | / | new_ident_queue | False | 1 | True | | 2013-10-31 17:32:03 | 21912 | 0 | 0 | 0 | rabbit at devmid | | running | | / | refresh_idents | False | 0 | True | | 2013-10-31 17:32:03 | 21696 | 0 | 0 | 0 | rabbit at devmid | | running | | / | refresh_queue | False | 1 | True | | 2013-10-31 17:32:03 | 21912 | 0 | 0 | 0 | rabbit at devmid | | running | +-------+-----------------+-------------+-----------+---------+------------------------+---------------------+--------+----------+----------------+-------------------------+---------------+--------+---------+ I am expecting shovel from devmid to move the messages from devtop queue to ident_updates queue on devmid. My shovel configuration follows: {rabbitmq_shovel, [ {shovels, [ {ident_pub, [ {sources, [ {broker, "amqp://"} , {declarations, [ {'queue.declare', [{queue, <<"new_ident_queue">> } , durable ]} ]} ]} , {destinations, [ {broker, "amqp://192.168.168.212"} , {declarations, [ {'queue.declare', [{queue, <<"new_ident_queue">> } , durable ]} ]} ]} , {queue, <<"new_ident_queue">>} , {prefetch_count, 1} , {ack_mode, on_confirm} , {publish_properties, [ {delivery_mode, 2} ]} , {reconnect_delay, 5} ]}, {ident_sub, [ {destinations, [ {broker, "amqp://"} , {declarations, [ {'queue.declare', [{queue, <<"ident_updates">> } , durable ]} ]} ]} , {sources, [ {broker, "amqp://192.168.168.212"} , {declarations, [ {'exchange.declare', [ {exchange, <<"pub_idents">>} , {type, <<"fanout">>} ]} , {'queue.declare', [{queue, <<>> } , exclusive ]} , {'queue.bind', [ {exchange, <<"pub_idents">>} , {queue, <<>>} ]} ]} ]} , {queue, <<>>} , {prefetch_count, 1} , {ack_mode, on_confirm} , {publish_properties, [ {delivery_mode, 2} ]} , {reconnect_delay, 5} ]}, ... My shovel is stuck!! Any help would be appreciated. Thanks, Andy This email message is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message. If you are the intended recipient, please be advised that the content of this message is subject to access, review and disclosure by the sender's Email System Administrator. Andy Gram BlackRidge Technology Inc. www.blackridge.us 408-892-4044 -------------- next part -------------- An HTML attachment was scrubbed... URL: From videlalvaro at gmail.com Thu Oct 31 18:37:16 2013 From: videlalvaro at gmail.com (Alvaro Videla) Date: Thu, 31 Oct 2013 19:37:16 +0100 Subject: [rabbitmq-discuss] Can't set short node name!\nPlease check your configuration\n In-Reply-To: <52727AD6.6040501@rabbitmq.com> References: <471965FF-660F-4F6B-8EFB-01EA0A691233@rabbitmq.com> <1383022140684-30934.post@n5.nabble.com> <52727AD6.6040501@rabbitmq.com> Message-ID: To kill epmd run: epmd -kill If there's another Erlang application running in your machine and that application is using epmd, then epmd will complain. More info here: http://www.erlang.org/doc/man/epmd.html Regards, Alvaro On Thu, Oct 31, 2013 at 4:44 PM, Matthias Radestock wrote: > On 29/10/13 04:49, saritha wrote: > >> I have changed to RabbitMQ 3.2.0 >> erl -sname rabbit at 192.168.1.26 >> I am getting the same error.. >> >> In /etc/rabbitmq/rabbitmq-env.**conf >> NODE_IP_ADDRESS=192.168.1.26 >> NODENAME=rabbit at 192.168.1.26 >> >> If I call rabbitmqctl status >> Still I getting the same error >> {error_logger,{{2013,10,28},{**7,43,47}},"Can't set short node >> name!\nPlease >> check your configuration\n",[]} >> Please help me out... >> > > As Alvaro said, you probably ran something with '-name' instead of > '-sname' at some point, and as a result you'll need to kill the epmd > process that is now sitting there expecting long names. > > But what you are doing above just isn't going to work. you must supply a > proper hostname in -sname, and that hostname must resolve to the correct IP. > > Regards, > > 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 agram at blackridge.us Thu Oct 31 18:51:05 2013 From: agram at blackridge.us (Andy Gram) Date: Thu, 31 Oct 2013 18:51:05 +0000 Subject: [rabbitmq-discuss] messages stuck using shovel In-Reply-To: References: Message-ID: <8c0475d57f2446ca9604949eb4bd05a7@BN1PR07MB199.namprd07.prod.outlook.com> I probably should have mentioned that I am using RabbitMQ R3.1.4 with Erlang R14B04 running on linux. From: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Andy Gram Sent: Thursday, October 31, 2013 11:10 AM To: rabbitmq-discuss at lists.rabbitmq.com Subject: [rabbitmq-discuss] messages stuck using shovel I have a configuration of 3 RabbitMQ nodes; devtop, devmid, devbot. I am implementing a star configuration with devtop as the center of the start. This is a pubsub application over a WAN. Any node can submit a new item to devtop and my publisher application will publish to all nodes, including itself. I am using shovel to instantiate a queue for each node that is bound to a fanout exchange on devtop. The published messages are stuck on devtop as below; +-------+--------------------------------+-------------+-----------+---------+------------------------+---------------------+--------+----------+----------------+-------------------------+---------------+--------+---------+ | vhost | name | auto_delete | consumers | durable | exclusive_consumer_tag | idle_since | memory | messages | messages_ready | messages_unacknowledged | node | policy | status | +-------+--------------------------------+-------------+-----------+---------+------------------------+---------------------+--------+----------+----------------+-------------------------+---------------+--------+---------+ | / | amq.gen-QXyScDVGCoTv8bhcbrMOrA | False | 1 | False | | 2013-10-31 10:32:25 | 9456 | 1 | 0 | 1 | rabbit at devtop | | running | | / | amq.gen-Ya03CVYcY-CEVKOYcSt0Xw | False | 1 | False | | 2013-10-31 10:32:25 | 9456 | 1 | 0 | 1 | rabbit at devtop | | running | | / | new_ident_queue | False | 1 | True | | 2013-10-31 10:32:28 | 14312 | 0 | 0 | 0 | rabbit at devtop | | running | | / | pub_idents | False | 0 | True | | 2013-10-31 10:15:52 | 13760 | 0 | 0 | 0 | rabbit at devtop | | running | | / | refresh_idents | False | 2 | True | | 2013-10-31 10:32:18 | 14192 | 0 | 0 | 0 | rabbit at devtop | | running | | / | refresh_queue | False | 1 | True | | 2013-10-31 10:32:18 | 13976 | 0 | 0 | 0 | rabbit at devtop | | running | +-------+--------------------------------+-------------+-----------+---------+------------------------+---------------------+--------+----------+----------------+-------------------------+---------------+--------+---------+ The status on devmid is as follows; +-------+-----------------+-------------+-----------+---------+------------------------+---------------------+--------+----------+----------------+-------------------------+---------------+--------+---------+ | vhost | name | auto_delete | consumers | durable | exclusive_consumer_tag | idle_since | memory | messages | messages_ready | messages_unacknowledged | node | policy | status | +-------+-----------------+-------------+-----------+---------+------------------------+---------------------+--------+----------+----------------+-------------------------+---------------+--------+---------+ | / | ident_updates | False | 0 | True | | 2013-10-31 17:32:03 | 21696 | 0 | 0 | 0 | rabbit at devmid | | running | | / | new_ident_queue | False | 1 | True | | 2013-10-31 17:32:03 | 21912 | 0 | 0 | 0 | rabbit at devmid | | running | | / | refresh_idents | False | 0 | True | | 2013-10-31 17:32:03 | 21696 | 0 | 0 | 0 | rabbit at devmid | | running | | / | refresh_queue | False | 1 | True | | 2013-10-31 17:32:03 | 21912 | 0 | 0 | 0 | rabbit at devmid | | running | +-------+-----------------+-------------+-----------+---------+------------------------+---------------------+--------+----------+----------------+-------------------------+---------------+--------+---------+ I am expecting shovel from devmid to move the messages from devtop queue to ident_updates queue on devmid. My shovel configuration follows: {rabbitmq_shovel, [ {shovels, [ {ident_pub, [ {sources, [ {broker, "amqp://"} , {declarations, [ {'queue.declare', [{queue, <<"new_ident_queue">> } , durable ]} ]} ]} , {destinations, [ {broker, "amqp://192.168.168.212"} , {declarations, [ {'queue.declare', [{queue, <<"new_ident_queue">> } , durable ]} ]} ]} , {queue, <<"new_ident_queue">>} , {prefetch_count, 1} , {ack_mode, on_confirm} , {publish_properties, [ {delivery_mode, 2} ]} , {reconnect_delay, 5} ]}, {ident_sub, [ {destinations, [ {broker, "amqp://"} , {declarations, [ {'queue.declare', [{queue, <<"ident_updates">> } , durable ]} ]} ]} , {sources, [ {broker, "amqp://192.168.168.212"} , {declarations, [ {'exchange.declare', [ {exchange, <<"pub_idents">>} , {type, <<"fanout">>} ]} , {'queue.declare', [{queue, <<>> } , exclusive ]} , {'queue.bind', [ {exchange, <<"pub_idents">>} , {queue, <<>>} ]} ]} ]} , {queue, <<>>} , {prefetch_count, 1} , {ack_mode, on_confirm} , {publish_properties, [ {delivery_mode, 2} ]} , {reconnect_delay, 5} ]}, ... My shovel is stuck!! Any help would be appreciated. Thanks, Andy This email message is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message. If you are the intended recipient, please be advised that the content of this message is subject to access, review and disclosure by the sender's Email System Administrator. Andy Gram BlackRidge Technology Inc. www.blackridge.us 408-892-4044 -------------- next part -------------- An HTML attachment was scrubbed... URL: From jhalterman at gmail.com Thu Oct 31 18:54:55 2013 From: jhalterman at gmail.com (Jonathan Halterman) Date: Thu, 31 Oct 2013 11:54:55 -0700 Subject: [rabbitmq-discuss] [ANNOUNCEMENT] Introducing Lyra: A High Availability RabbitMQ Client In-Reply-To: <52720660.40906@rabbitmq.com> References: <52718C27.8020905@rabbitmq.com> <52720660.40906@rabbitmq.com> Message-ID: Hi Matthias - Comments below, On Thu, Oct 31, 2013 at 12:27 AM, Matthias Radestock wrote: > Jonathan, > > > On 31/10/13 02:49, Jonathan Halterman wrote: > >> We could cache delivery tags for channels internally, but I'm >> hesitant to go down that road. >> > > It wouldn't help anyway, since, as a mentioned, the same delivery_tag > can appear on both the old and new incarnation of the channel. > delivery_tags are just counters, starting from 1 on a fresh channel. > > > While Lyra certainly makes it easier for this scenario to pop up, >> rare as it might be, >> > > It's not rare at all. You are guaranteed to end up in that scenario > anytime a recovery takes place while a consumer is processing a message. > > > the same problem could occur without Lyra when swapping a consumer >> over to a new channel after the consumer is unexpectedly cancelled >> and/or the channel is unexpectedly closed. >> > > Absolutely. Don't do that :) > > > That said, no good solutions come to mind just yet. Do you have any >> ideas? >> > > The scenario is impossible to address without changing the API. Bunny does > that with the VersionedDeliveryTag. The Messaging Patterns libraries we > wrote some years ago do it by making ack() take the entire Message data > structure, and have that include the channel version. See > http://hg.rabbitmq.com/**rabbitmq-java-messagepatterns/** > file/21df7ca85b96/src/main/**java/com/rabbitmq/**messagepatterns/unicast/* > *Receiver.java#l19 One of my goals for Lyra was to minimize the amount of new APIs and allow users to interact mostly with the amqp-client API while still gaining the benefits of transparent recovery, but it seems like that might not be possible. The ReceivedMessage approach would work as long as you don't need to store the ReceivedMessage off for later use, something that I imagine is not uncommon. In that case, something like Bunny's VersionedDeliveryTag would work well, tracking the channel version rather than an unserializable reference to the channel itself. I don't suppose you're open to enhancing the amqp-client API to include something like this? :) One possible change would be the inclusion of a VersionedDeliveryTag like object in the Envelope along with some corresponding basic ack/nack/reject(VersionedDeliveryTag) methods on the Channel interface. The channel's "version" would just be another piece of meta information that the user could specify. Short of any amqp-client API changes, I'll have to think about how to best introduce new Lyra APIs to achieve what's needed here while staying out of the way of the existing amqp-client API as much as possible. One other idea - Brett Cameron suggested tracking the last delivery tag for each channel and dropping any ack/nack/reject requests for delivery tags greater than that. If a channel is recovered, the last delivery tag for the new channel will most likely be less than any delivery tags for messages consumed on the previously closed channel. This is obviously not foolproof, but it's not a bad start. Cheers, Jonathan > > > Regards, > > 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 mcintoshj at gmail.com Thu Oct 31 20:26:13 2013 From: mcintoshj at gmail.com (Jason McIntosh) Date: Thu, 31 Oct 2013 15:26:13 -0500 Subject: [rabbitmq-discuss] Weird error on 3.2.0 causing failures In-Reply-To: <527291D7.1050403@rabbitmq.com> References: <527291D7.1050403@rabbitmq.com> Message-ID: Sorry, we're not using the erlang client other than for shovels. We have the Java client we're using for consumer/publishers. In this case though, I'm pretty sure this was done from the web GUI based on a conversation I've had with the developers who published the message. I'm trying to replicate the issue right now - at a guess, they half way typed the message in the GUI page, and somehow submitted a blank property. And it was all done from 3.2.0. It's POSSIBLE a cached gui javascript might have been in play, but I don't think so, Jason On Thu, Oct 31, 2013 at 12:22 PM, Simon MacMullen wrote: > Just to add to what I said before: you said that the message was published > through management - how sure are you of that? I ask because you say you're > also using the Erlang client. > > If you use the Erlang client in direct mode then no validation is > performed of any properties you pass in and you could provoke exactly this > sort of breakage when subsequently reading in network mode. > > Cheers, Simon > > > On 31/10/13 16:47, Jason McIntosh wrote: > >> We have a consumer process that's just dying repeatedly throwing low >> level channel errors. This is using amqp-client 3.2.0. We've tried >> with an earlier version as well. We die as soon as we try and do a >> basicConsume on the channel. On the server, I found the below logs. >> >> >> Just wanted to see if anyone had any ideas? We deleted the messages, >> published them again and our consumer works fine. This has us pretty >> confused. The ONLY guess I have right now is some sort of funky >> character or a blank tag somehow got in, but I can't imagine what that >> would be - nothing here seems out of place. Note, the original problem >> message was published through the management GUI. >> >> Thanks for any advice! >> >> Jason >> >> =SUPERVISOR REPORT==== 31-Oct-2013::11:30:42 === >> >> Supervisor: {<0.1276.61>,rabbit_channel_**sup} >> >> Context: child_terminated >> >> Reason: badarg >> >> Offender: [{pid,<0.1275.61>}, >> >> {name,writer}, >> >> {mfargs, >> >> {rabbit_writer,start_link, >> >> [#Port<0.347665>,2,131072,**rabbit_framing_amqp_0_9_1, >> >> <0.1278.61>,true]}}, >> >> {restart_type,intrinsic}, >> >> {shutdown,4294967295}, >> >> {child_type,worker}] >> >> =SUPERVISOR REPORT==== 31-Oct-2013::11:30:42 === >> >> Supervisor: {<0.1276.61>,rabbit_channel_**sup} >> >> Context: shutdown >> >> Reason: reached_max_restart_intensity >> >> Offender: [{pid,<0.1275.61>}, >> >> {name,writer}, >> >> {mfargs, >> >> {rabbit_writer,start_link, >> >> [#Port<0.347665>,2,131072,**rabbit_framing_amqp_0_9_1, >> >> <0.1278.61>,true]}}, >> >> {restart_type,intrinsic}, >> >> {shutdown,4294967295}, >> >> {child_type,worker}] >> >> =CRASH REPORT==== 31-Oct-2013::11:30:43 === >> >> crasher: >> >> initial call: rabbit_writer:mainloop/2 >> >> pid: <0.1299.61> >> >> registered_name: [] >> >> exception error: bad argument >> >> in function rabbit_framing_amqp_0_9_1:**encode_properties/1 >> >> in call from rabbit_binary_generator:**ensure_content_encoded/2 >> >> in call from rabbit_binary_generator:build_** >> simple_content_frames/4 >> >> in call from rabbit_writer:assemble_frames/**5 >> >> in call from rabbit_writer:internal_send_**command_async/3 >> >> in call from rabbit_writer:handle_message/2 >> >> in call from rabbit_writer:handle_message/3 >> >> in call from rabbit_writer:mainloop1/2 >> >> ancestors: [<0.1300.61>,<0.1303.61>,<0.**1272.61>,<0.1273.61>, >> >> rabbit_tcp_client_sup,rabbit_**sup,<0.165.0>] >> >> messages: [{send_command_and_notify,<0.**14808.16>,<0.1293.61>, >> >> {'basic.deliver',<<"amq.ctag-**y_Tr2BuZFgx7A3XAmXxzSg">>, >> >> 2,true,<<>>,<<"extractions.**summarizer">>}, >> >> {content,60, >> >> {'P_basic',<<"text/plain">>,<<**"UTF-8">>,[],1, >> >> <<"0">>,undefined,undefined,**undefined,undefined, >> >> undefined,undefined,undefined,**undefined, >> >> undefined}, >> >> none,none, >> >> [<<"{\"jobName\":\"**BIGFauxTest2\",\"creationTime\**":\"10-03-2013 >> 14:36:10\"}">>]}}] >> >> links: [<0.1300.61>] >> >> dictionary: [] >> >> trap_exit: false >> >> status: running >> >> heap_size: 376 >> >> stack_size: 27 >> >> reductions: 423 >> >> neighbours: >> >> =SUPERVISOR REPORT==== 31-Oct-2013::11:30:43 === >> >> Supervisor: {<0.1300.61>,rabbit_channel_**sup} >> >> Context: child_terminated >> >> Reason: badarg >> >> Offender: [{pid,<0.1299.61>}, >> >> {name,writer}, >> >> {mfargs, >> >> {rabbit_writer,start_link, >> >> [#Port<0.347666>,2,131072,**rabbit_framing_amqp_0_9_1, >> >> <0.1271.61>,true]}}, >> >> {restart_type,intrinsic}, >> >> {shutdown,4294967295}, >> >> {child_type,worker}] >> >> =SUPERVISOR REPORT==== 31-Oct-2013::11:30:43 === >> >> Supervisor: {<0.1300.61>,rabbit_channel_**sup} >> >> Context: shutdown >> >> Reason: reached_max_restart_intensity >> >> Offender: [{pid,<0.1299.61>}, >> >> {name,writer}, >> >> {mfargs, >> >> {rabbit_writer,start_link, >> >> [#Port<0.347666>,2,131072,**rabbit_framing_amqp_0_9_1, >> >> <0.1271.61>,true]}}, >> >> {restart_type,intrinsic}, >> >> {shutdown,4294967295}, >> >> {child_type,worker}] >> >> =CRASH REPORT==== 31-Oct-2013::11:30:43 === >> >> crasher: >> >> initial call: rabbit_writer:mainloop/2 >> >> pid: <0.1325.61> >> >> registered_name: [] >> >> exception error: bad argument >> >> in function rabbit_framing_amqp_0_9_1:**encode_properties/1 >> >> in call from rabbit_binary_generator:**ensure_content_encoded/2 >> >> in call from rabbit_binary_generator:build_** >> simple_content_frames/4 >> >> in call from rabbit_writer:assemble_frames/**5 >> >> in call from rabbit_writer:internal_send_**command_async/3 >> >> in call from rabbit_writer:handle_message/2 >> >> in call from rabbit_writer:handle_message/3 >> >> in call from rabbit_writer:mainloop1/2 >> >> ancestors: [<0.1323.61>,<0.1317.61>,<0.**1296.61>,<0.1297.61>, >> >> rabbit_tcp_client_sup,rabbit_**sup,<0.165.0>] >> >> messages: [{send_command_and_notify,<0.**14808.16>,<0.1322.61>, >> >> {'basic.deliver',<<"amq.ctag-**ACPfvFFpUNKEw1WOwN9IbQ">>, >> >> 2,true,<<>>,<<"extractions.**summarizer">>}, >> >> {content,60, >> >> {'P_basic',<<"text/plain">>,<<**"UTF-8">>,[],1, >> >> <<"0">>,undefined,undefined,**undefined,undefined, >> >> undefined,undefined,undefined,**undefined, >> >> undefined}, >> >> none,none, >> >> [<<"{\"jobName\":\"**BIGFauxTest2\",\"creationTime\**":\"10-03-2013 >> 14:36:10\"}">>]}}] >> >> links: [<0.1323.61>] >> >> dictionary: [] >> >> trap_exit: false >> >> status: running >> >> heap_size: 376 >> >> stack_size: 27 >> >> reductions: 438 >> >> neighbours: >> >> =SUPERVISOR REPORT==== 31-Oct-2013::11:30:43 === >> >> Supervisor: {<0.1323.61>,rabbit_channel_**sup} >> >> Context: child_terminated >> >> Reason: badarg >> >> Offender: [{pid,<0.1325.61>}, >> >> {name,writer}, >> >> {mfargs, >> >> {rabbit_writer,start_link, >> >> [#Port<0.347667>,2,131072,**rabbit_framing_amqp_0_9_1, >> >> <0.1295.61>,true]}}, >> >> {restart_type,intrinsic}, >> >> {shutdown,4294967295}, >> >> {child_type,worker}] >> >> =SUPERVISOR REPORT==== 31-Oct-2013::11:30:43 === >> >> Supervisor: {<0.1323.61>,rabbit_channel_**sup} >> >> Context: shutdown >> >> Reason: reached_max_restart_intensity >> >> Offender: [{pid,<0.1325.61>}, >> >> {name,writer}, >> >> {mfargs, >> >> {rabbit_writer,start_link, >> >> [#Port<0.347667>,2,131072,**rabbit_framing_amqp_0_9_1, >> >> <0.1295.61>,true]}}, >> >> {restart_type,intrinsic}, >> >> {shutdown,4294967295}, >> >> {child_type,worker}] >> >> >> -- >> 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 > -- Jason McIntosh https://github.com/jasonmcintosh/ 573-424-7612 -------------- next part -------------- An HTML attachment was scrubbed... URL: