srd | 22 May 2013 20:54
Favicon

effectively using -setcookie

Hi,
I'm using rabbit 3.0.4 on a centos system.

Suppose I have a cluster I want to stand up and want to make it easy without having to copy the cookie file to all
the nodes.

If I run as rabbitmq the command: rabbitmq-server -setcookie pigcat &
It appears to start fine however I have noticed a couple of things.
the .erlang_cookie doesn't update.

If I later run rabbitmqctl cluster_status  I can't to communicate with the node because I cannot set the
cookie to my desired cookie.

So the question is, how does one effectively maintain a cluster using the -setcookie option?

I tried looking at the rabbitmqctl and rabbitmq-server script files but none of them hit the erl
application directly.  In the docs it briefly mentions one could modify the scripts so that erl is started
with a specific cookie.
I'd like to be able to do this but do not see where it would be that I need to augment so I can ensure the cookie is
always set to a known value when accessing the node.

Does anyone have an example of how / what scripts need to be modified?

Thanks in advance.

Eric Cozzi | 22 May 2013 17:22
Favicon

Error trying to configure rabbit_auth_backend_ldap

I am trying to configure rabbit_auth_backend_ldap as a backing auth for 
passwordless login using rabbitmq_auth_mechanism_ssl, but I am getting 
the following error. I've also included my rabbitmq.config file for 
reference.

Any help would be appreciated.
Thanks,
Eric

Logfile:

=ERROR REPORT==== 22-May-2013::09:32:37 ===
** Generic server rabbit_auth_backend_ldap terminating
** Last message in was {login,<<"O=client,CN=ecozzi-01">>}
** When Server state == {state,
                          ["192.168.252.5"],

"cn=${username},ou=msgbus,dc=cray,dc=com",none,none,
                          as_user,
                          {in_group,
                           "ou=${vhost}-users,ou=vhosts,dc=cray,dc=com"},
                          {for,
                           [{permission,configure,
                             {in_group,"cn=admin,dc=cray,dc=com"}},
                            {permission,write,
                             {for,
                              [{resource,queue,
                                {in_group,"cn=admin,dc=cray,dc=com"}},
                               {resource,exchange,{constant,true}}]}},
                            {permission,read,
(Continue reading)

Adhiraj Sarpeshkar | 22 May 2013 16:08
Favicon

FW: Rabbit Persistence Store Documentation

I take it the actual message stores are under msg_store_transient and
msg_store_persistent?   Is that documented somewhere as well (as well as
when each store is used)?  If not, is it worthwhile to add a note
somewhere explaining this?

On 05/22/2013 02:45 AM, Matthias Radestock wrote:
> On 21/05/13 19:21, Adhiraj Sarpeshkar wrote:
>> It took me some digging to find out that Rabbit uses a Mnesia database
>> for storage and that the store for a node is located under
>> /var/lib/rabbitmq/mnesia/rabbit/≤node_name>.   Not that this is terribly
>> important information for most people, but maybe it could be featured
>> more prominently in the docs?  Or I might be blind and it's already
>> there--in which case a link would be much appreciated in case I need to
>> revisit this in the future.
>
> See the setting for RABBITMQ_MNESIA_DIR in
> http://www.rabbitmq.com/relocate.html#unix, and the explanation above
> it...
>
> <quote>
> The directory where this RabbitMQ node's Mnesia database files are
> placed. (In addition to Mnesia files this location also contains
> message storage and index files as well as schema and cluster details.)
> </quote>
>
> So note that RabbitMQ isn't actually storing *messages* in mnesia.
> They are written to files under $RABBITMQ_MNESIA_DIR but they are not
> part of the mnesia database.
>
> Matthias.
(Continue reading)

Chris Nicel | 22 May 2013 15:41

Mirrored queue policies not applying.

Hi All,

 

I am having trouble with some mirrored queue policies.

 

The set-up is a simple two node cluster. I am attempting to mirror the queues which currently exist on both nodes. I’d like to use the ha-mode exactly so I can add further nodes as performance requires later down the line.

 

This is the policy as shown in the admin web interface.

 

Virtual Host

Name

Pattern

Definition

Priority

zp

zp HA

"*"

ha-mode:

exactly

ha-params:

2

ha-sync-mode:

automatic

0

 

But the queues are not showing as using the policy on the queues screen.

 

Overview

Messages

Message rates

Virtual host

Name

Node

Exclusive

Parameters

Policy

Status

Ready

Unacked

Total

incoming

deliver / get

ack

zp

control.mediator:control.commands/f907b124

rabbit <at> rabbitmq2

Owner

AD

Idle

0.00/s

0.00/s

zp

control.mediator:control.requests/f907b124

rabbit <at> rabbitmq2

Owner

AD

Idle

0.00/s

0.00/s

 

As I understand it, the ha policies can be changed and queues will update themselves accordingly. So in principle what I am attempting feels right…

 

Does anyone have any ideas where I may be going wrong?

 

Cheers

 

Chris Nicel

Senior Systems Engineer

15below ltd : 15below Australia pty. ltd.

 

t:        +44 1273 764230

e:       chris.nicel <at> 15below.com
w:      15below.com

        <at> 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 50, 120 Collins Street, Melbourne, Victoria 3000, 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.
<div>
<div class="WordSection1">
<p class="MsoNormal">Hi All, <p></p></p>
<p class="MsoNormal"><p>&nbsp;</p></p>
<p class="MsoNormal">I am having trouble with some mirrored queue policies.<p></p></p>
<p class="MsoNormal"><p>&nbsp;</p></p>
<p class="MsoNormal">The set-up is a simple two node cluster. I am attempting to mirror the queues which currently exist on both nodes. I&rsquo;d like to use the ha-mode exactly so I can add further nodes as performance requires later down the line.
<p></p></p>
<p class="MsoNormal"><p>&nbsp;</p></p>
<p class="MsoNormal">This is the policy as shown in the admin web interface.<p></p></p>
<p class="MsoNormal"><p>&nbsp;</p></p>
<table class="MsoNormalTable" border="0" cellpadding="0">
<tr>
<td>
<p class="MsoNormal" align="center">Virtual Host<span><p></p></span></p>
</td>
<td>
<p class="MsoNormal" align="center">Name<span><p></p></span></p>
</td>
<td>
<p class="MsoNormal" align="center">Pattern<span><p></p></span></p>
</td>
<td>
<p class="MsoNormal" align="center">Definition<span><p></p></span></p>
</td>
<td>
<p class="MsoNormal" align="center">Priority<span><p></p></span></p>
</td>
</tr>
<tr>
<td>
<p class="MsoNormal">zp<span><p></p></span></p>
</td>
<td>
<p class="MsoNormal"><a href="http://rabbitmq.zorrillo.aws:15672/#/policies/zorrillo.platform/Zorrillo%20HA">zp HA</a><span><p></p></span></p>
</td>
<td>
<p class="MsoNormal">"*"<span><p></p></span></p>
</td>
<td>
<table class="MsoNormalTable" border="0" cellpadding="0">
<tr>
<td>
<p class="MsoNormal" align="center">ha-mode:<span><p></p></span></p>
</td>
<td>
<p class="MsoNormal"><span>exactly</span><span><p></p></span></p>
</td>
</tr>
<tr>
<td>
<p class="MsoNormal" align="center">ha-params:<span><p></p></span></p>
</td>
<td>
<p class="MsoNormal"><span>2</span><span><p></p></span></p>
</td>
</tr>
<tr>
<td>
<p class="MsoNormal" align="center">ha-sync-mode:<span><p></p></span></p>
</td>
<td>
<p class="MsoNormal"><span>automatic</span><span><p></p></span></p>
</td>
</tr>
</table>
</td>
<td>
<p class="MsoNormal">0<span><p></p></span></p>
</td>
</tr>
</table>
<p class="MsoNormal"><p>&nbsp;</p></p>
<p class="MsoNormal">But the queues are not showing as using the policy on the queues screen.<p></p></p>
<p class="MsoNormal"><p>&nbsp;</p></p>
<table class="MsoNormalTable" border="0" cellpadding="0">
<tr>
<td colspan="7">
<p class="MsoNormal" align="center">Overview<span><p></p></span></p>
</td>
<td colspan="3">
<p class="MsoNormal" align="center">Messages<span><p></p></span></p>
</td>
<td colspan="3">
<p class="MsoNormal" align="center">Message rates<span><p></p></span></p>
</td>
</tr>
<tr>
<td>
<p class="MsoNormal" align="center">Virtual host<span><p></p></span></p>
</td>
<td>
<p class="MsoNormal" align="center">Name<span><p></p></span></p>
</td>
<td>
<p class="MsoNormal" align="center">Node<span><p></p></span></p>
</td>
<td>
<p class="MsoNormal" align="center">Exclusive<span><p></p></span></p>
</td>
<td>
<p class="MsoNormal" align="center">Parameters<span><p></p></span></p>
</td>
<td>
<p class="MsoNormal" align="center">Policy<span><p></p></span></p>
</td>
<td>
<p class="MsoNormal" align="center">Status<span><p></p></span></p>
</td>
<td>
<p class="MsoNormal" align="center">Ready<span><p></p></span></p>
</td>
<td>
<p class="MsoNormal" align="center">Unacked<span><p></p></span></p>
</td>
<td>
<p class="MsoNormal" align="center">Total<span><p></p></span></p>
</td>
<td>
<p class="MsoNormal" align="center">incoming<span><p></p></span></p>
</td>
<td>
<p class="MsoNormal" align="center">deliver / get 
<span><p></p></span></p>
</td>
<td>
<p class="MsoNormal" align="center">ack<span><p></p></span></p>
</td>
</tr>
<tr>
<td>
<p class="MsoNormal">zp<span><p></p></span></p>
</td>
<td>
<p class="MsoNormal"><a href="http://rabbitmq.zorrillo.aws:15672/#/queues/zorrillo.platform/control.mediator%3Acontrol.commands%2Ff907b124">control.mediator:control.commands/f907b124</a><span><p></p></span></p>
</td>
<td>
<p class="MsoNormal"><span>rabbit <at> </span>rabbitmq2 <span>
<p></p></span></p>
</td>
<td>
<p class="MsoNormal"><a href="http://rabbitmq.zorrillo.aws:15672/#/connections/10.0.1.15%3A59042%20-%3E%2010.0.1.11%3A5672">Owner</a>
<span><p></p></span></p>
</td>
<td>
<p class="MsoNormal"><span>AD</span>
<span><p></p></span></p>
</td>
<td></td>
<td>
<p class="MsoNormal"><span>Idle</span><span><p></p></span></p>
</td>
<td></td>
<td></td>
<td></td>
<td>
<p class="MsoNormal">0.00/s<span><p></p></span></p>
</td>
<td>
<p class="MsoNormal">0.00/s<span><p></p></span></p>
</td>
<td></td>
</tr>
<tr>
<td>
<p class="MsoNormal">zp<span><p></p></span></p>
</td>
<td>
<p class="MsoNormal"><a href="http://rabbitmq.zorrillo.aws:15672/#/queues/zorrillo.platform/control.mediator%3Acontrol.requests%2Ff907b124">control.mediator:control.requests/f907b124</a><span><p></p></span></p>
</td>
<td>
<p class="MsoNormal"><span>rabbit <at> </span>rabbitmq2 <span>
<p></p></span></p>
</td>
<td>
<p class="MsoNormal"><a href="http://rabbitmq.zorrillo.aws:15672/#/connections/10.0.1.15%3A59042%20-%3E%2010.0.1.11%3A5672">Owner</a>
<span><p></p></span></p>
</td>
<td>
<p class="MsoNormal"><span>AD</span>
<span><p></p></span></p>
</td>
<td></td>
<td>
<p class="MsoNormal"><span>Idle</span><span><p></p></span></p>
</td>
<td></td>
<td></td>
<td></td>
<td>
<p class="MsoNormal">0.00/s<span><p></p></span></p>
</td>
<td>
<p class="MsoNormal">0.00/s<span><p></p></span></p>
</td>
<td></td>
</tr>
</table>
<p class="MsoNormal"><p>&nbsp;</p></p>
<p class="MsoNormal">As I understand it, the ha policies can be changed and queues will update themselves accordingly. So in principle what I am attempting feels right&hellip;<p></p></p>
<p class="MsoNormal"><p>&nbsp;</p></p>
<p class="MsoNormal">Does anyone have any ideas where I may be going wrong?<p></p></p>
<p class="MsoNormal"><p>&nbsp;</p></p>
<p class="MsoNormal">Cheers<p></p></p>
<p class="MsoNormal"><p>&nbsp;</p></p>
<p class="MsoNormal"><span>Chris Nicel<p></p></span></p>
<p class="MsoNormal"><span>Senior Systems Engineer<p></p></span></p>
<p class="MsoNormal"><span>15below ltd : 15below Australia pty. ltd.<p></p></span></p>
<p class="MsoNormal"><span><p>&nbsp;</p></span></p>
<p class="MsoNormal"><span>t:</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><span>+44 1273 764230<p></p></span></p>
<p class="MsoNormal"><span>e</span><span>:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><span><a href="mailto:chris.nicel@..."><span>chris.nicel <at> 15below.com</span></a><br></span><span>w:</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href="http://www.15below.com/"><span>15below.com</span></a><p></p></span></p>
<p class="MsoNormal">
<span lang="EN-US"><span><span>&nbsp;&nbsp;&nbsp;
</span></span></span><span lang="EN-US">&nbsp;&nbsp;&nbsp;<a href="https://twitter.com/#!/15below_travel"><span> <at> 15below_travel</span></a><p></p></span></p>
<p class="MsoNormal"><p>&nbsp;</p></p>
</div>
<br>15below Limited: Company registered in England and Wales No 3945289<br>
Registered Office: Lyndean House, 43-46 Queens Road, Brighton BN1 3XB, United Kingdom<br><br>
15below Australia Pty Limited: ABN 25 132 716 379<br>
Level 50, 120 Collins Street, Melbourne, Victoria 3000, Australia<br><br>
Please think about the environment before printing this email.<br><br>
************************************************************************<br>
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.<br>
</div>
Kristian Lind | 22 May 2013 01:02
Picon

channel.basicCancel hangs

<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>3.0.4</version>
</dependency>

RabbitMQ 3.0.2, Erlang R16A

I have a webpage that has a start button and a stop button. 
These to buttons should start and stop the consuming messages.

When the user presses start button the consuming starts... when the user presses the stop button the consuming stops
BUT.. the user cannot start the consuming again. 
While debugging the code, I see the method call channel.basicCancel hangs... and the debugger stops... 
When I stop the JBoss server where the application is deployd I see this exception coming in the catch when doing channel.basicCancel.
com.rabbitmq.client.ShutdownSignalException: clean channel shutdown; reason: #method<channel.close>(reply-code=200, reply-text=OK, class-id=0, method-id=0)

And in the method handleDelivery I see ShutdownSignalException...
com.rabbitmq.client.AlreadyClosedException: clean connection shutdown; reason: Attempt to use closed channel

The call to basicCancel only hangs when consuming is going on.. if I start the consuming, but no messages are on the queue, I can stop it.. and start it again. 

<at> Override
protected final synchronized void service(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException {
String task = req.getParameter("task");
        ...
if (StringUtils.isNotBlank(task) && task.equals("stop")) {
consuming = false;
try {
channel.basicCancel("MonitorConsumer");
} catch (Exception e) {
e.printStackTrace();
}
}
} else {
if (connection == null || channel == null) {
createRabbitConnection();
}
if (!consuming) {
channel.basicConsume(Configuration.QUEUE_JSI_TO_DASHBOARD, false, "MonitorConsumer", this);
consuming = true;
}
}
}

public synchronized void handleDelivery(String consumerTag, Envelope envelope, BasicProperties properties, byte[] body) throws IOException {
...
        try {
channel.basicAck(deliveryTag, false);
} catch (ShutdownSignalException e) {
e.printStackTrace();
}
}






<div>
<div>&lt;dependency&gt;</div>
<div>
<span class="Apple-tab-span">	</span>&lt;groupId&gt;com.rabbitmq&lt;/groupId&gt;</div>
<div>
<span class="Apple-tab-span">	</span>&lt;artifactId&gt;amqp-client&lt;/artifactId&gt;</div>
<div>
<span class="Apple-tab-span">	</span>&lt;version&gt;3.0.4&lt;/version&gt;</div>
<div>&lt;/dependency&gt;</div>
<div><br></div>
<div>
<span>RabbitMQ 3.0.2, Erlang R16A</span><br>
</div>
<div><span><br></span></div>
<div><span>I have a webpage that has a start button and a stop button.&nbsp;</span></div>
<div><span>These to buttons should start and stop the consuming messages.</span></div>
<div><span><br></span></div>
<div><span>When the user presses start button the consuming starts... when the user presses the stop button the consuming stops</span></div>
<div><span>BUT.. the user cannot start the consuming again.&nbsp;</span></div>
<div>
<span>While debugging the code, I see the method call&nbsp;</span><span>channel.basicCancel hangs... and the debugger stops...&nbsp;</span>
</div>
<div><span>When I stop the JBoss server where the application is deployd I see this exception coming in the catch when doing&nbsp;channel.basicCancel.</span></div>
<div>
<span>com.rabbitmq.client.ShutdownSignalException: clean channel shutdown; reason: #method&lt;channel.close&gt;(reply-code=200, reply-text=OK, class-id=0, method-id=0)</span><br>
</div>
<div><span><span><br></span></span></div>
<div>
<span><span>And in the method&nbsp;</span></span><span>handleDelivery I see&nbsp;ShutdownSignalException...</span>
</div>
<div>
<span>com.rabbitmq.client.AlreadyClosedException: clean connection shutdown; reason: Attempt to use closed channe</span><span>l</span>
</div>
<div><span><br></span></div>
<div>
<span>The call to&nbsp;</span>basicCancel only hangs when consuming is going on.. if I start the consuming, but no messages are on the queue, I can stop it.. and start it again.&nbsp;</div>
<div><br></div>
<div>
<div> <at> Override</div>
<div>protected final synchronized void service(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException {</div>
<div>
<span class="Apple-tab-span">	</span>String task = req.getParameter("task");</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; ...</div>
<div>
<span class="Apple-tab-span">	</span>if (StringUtils.isNotBlank(task) &amp;&amp; task.equals("stop")) {</div>
<div>
<span class="Apple-tab-span">			</span>consuming = false;</div>
<div>
<span class="Apple-tab-span">			</span>try {</div>
<div>
<span class="Apple-tab-span">				</span>channel.basicCancel("MonitorConsumer");</div>
<div>
<span class="Apple-tab-span">			</span>} catch (Exception e) {</div>
<div>
<span class="Apple-tab-span">				</span>e.printStackTrace();</div>
<div>
<span class="Apple-tab-span">			</span>}</div>
<div>
<span class="Apple-tab-span">		</span>}</div>
<div>
<span class="Apple-tab-span">	</span>} else {</div>
<div>
<span class="Apple-tab-span">		</span>if (connection == null || channel == null) {</div>
<div>
<span class="Apple-tab-span">			</span>createRabbitConnection();</div>
<div>
<span class="Apple-tab-span">		</span>}</div>
<div>
<span class="Apple-tab-span">		</span>if (!consuming) {</div>
<div>
<span class="Apple-tab-span">			</span>channel.basicConsume(Configuration.QUEUE_JSI_TO_DASHBOARD, false, "MonitorConsumer", this);</div>
<div>
<span class="Apple-tab-span">			</span>consuming = true;</div>
<div>
<span class="Apple-tab-span">		</span>}</div>
<div>
<span class="Apple-tab-span">	</span>}</div>
<div>}</div>
<div><br></div>
<div>
<div>public synchronized void handleDelivery(String consumerTag, Envelope envelope, BasicProperties properties, byte[] body) throws IOException {</div>
<div>
<span class="Apple-tab-span">	</span>...</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; try {</div>
<div>
<span class="Apple-tab-span">		</span>channel.basicAck(deliveryTag, false);</div>
<div>
<span class="Apple-tab-span">	</span>} catch (ShutdownSignalException e) {</div>
<div>
<span class="Apple-tab-span">		</span>e.printStackTrace();<br>
</div>
<div>
<span class="Apple-tab-span">	</span>}</div>
<div>}<br>
</div>
</div>
</div>
<div><br></div>
<div><br></div>
<div><br></div>
<div><span><br></span></div>
<div><span><br></span></div>
<div><span><br></span></div>
</div>
Paul Bowsher | 21 May 2013 21:12
Picon
Gravatar

Mirrored queue performance factors

Hi,


We operate two dual-node brokers, each broker having quite different queues and workloads. Each box has 24 cores (H/T) worth of Xeon E5645 <at> 2.4GHz with 48GB RAM, connected by Gigabit LAN with ~150μs latency, running RHEL 5.6, RabbitMQ 3.1, Erlang R16B with HiPE off. We've tried with HiPE on but it made no noticeable performance impact, and was very crashy.

We appear to have hit a ceiling for our message rates of between 1,000/s and 1,400/s both in and out. This is broker-wide, not per-queue. Adding more consumers doesn't improve throughput overall, just gives that particular queue a bigger slice of this apparent "pool" of resource.

Every queue is mirrored across the two nodes that make up the broker. Our publishers and consumers connect equally to both nodes in a persistant way. We notice an ADSL-like asymmetry in the rates too; if we manage to publish a high rate of messages the deliver rate drops to high double digits. Testing with an un-mirrored queue has much higher throughput, as expected. Queues and Exchanges are durable, messages are not persistent.

We'd like to know what we can do to improve the situation. The CPU on the box is fine, beam takes a core and a half for 1 process, then another 80% each of two cores for another couple of processes. The rest of the box is essentially idle. We are using ~20GB of RAM in userland with system cache filling the rest. IO rates are fine. Network is fine.

Is there any Erlang/OTP tuning we can do? delegate_count is the default 16, could someone explain what this does in a bit more detail please?

Any thoughts anyone has on this would be much appreciated.

Many thanks,

Paul Bowsher
Senior Software Engineer
Globaldev
<div>
<p>Hi,</p>
<div><br></div>
<div>We operate two dual-node brokers, each broker having quite different queues and workloads. Each box has 24 cores (H/T) worth of Xeon E5645  <at>  2.4GHz with 48GB RAM, connected by Gigabit LAN with ~150&mu;s latency, running RHEL 5.6, RabbitMQ 3.1, Erlang R16B with HiPE off. We've tried with HiPE on but it made no noticeable performance impact, and was very crashy.</div>
<div><br></div>
<div>We appear to have hit a ceiling for our message rates of between 1,000/s and 1,400/s both in and out. This is broker-wide, not per-queue. Adding more consumers doesn't improve throughput overall, just gives that particular queue a bigger slice of this apparent "pool" of resource.</div>
<div><br></div>
<div>Every queue is mirrored across the two nodes that make up the broker. Our publishers and consumers connect equally to both nodes in a persistant way. We notice an ADSL-like asymmetry in the rates too; if we manage to publish a high rate of messages the deliver rate drops to high double digits. Testing with an un-mirrored queue has much higher throughput, as expected. Queues and Exchanges are durable, messages are not persistent.</div>
<div><br></div>
<div>We'd like to know what we can do to improve the situation. The CPU on the box is fine, beam takes a core and a half for 1 process, then another 80% each of two cores for another couple of processes. The rest of the box is essentially idle. We are using ~20GB of RAM in userland with system cache filling the rest. IO rates are fine. Network is fine.</div>
<div><br></div>
<div>Is there any Erlang/OTP tuning we can do? delegate_count is the default 16, could someone explain what this does in a bit more detail please?</div>
<div><br></div>
<div>Any thoughts anyone has on this would be much appreciated.</div>
<div><br></div>
<div>Many thanks,</div>
<div><br></div>
<div>Paul Bowsher</div>
<div>Senior Software Engineer</div>
<div>Globaldev</div>
</div>
Adhiraj Sarpeshkar | 21 May 2013 20:21

Rabbit Persistence Store Documentation

It took me some digging to find out that Rabbit uses a Mnesia database 
for storage and that the store for a node is located under 
/var/lib/rabbitmq/mnesia/rabbit/≤node_name>.   Not that this is terribly 
important information for most people, but maybe it could be featured 
more prominently in the docs?  Or I might be blind and it's already 
there--in which case a link would be much appreciated in case I need to 
revisit this in the future.

Regards,
Adhiraj Sarpeshkar
François Beausoleil | 21 May 2013 19:25

Recovering a busted instance

I have an instance which I tried upgrading from 3.0.2 to 3.1.0. Something broke during the upgrade and I
booted a fresh new instance and connected my clients to it.

Now, I have valuable data in the 3.0.2 instance which I'd like to retrieve. If I could boot the instance, I'd
shovel the data to the 3.1.0 instance.

I have attached the log files from the crashing instance.

Is there anything I can do to recuperate those messages?

Thanks,
François Beausoleil

Attachment (startup_err): application/octet-stream, 77 bytes
Attachment (startup_log): application/octet-stream, 21 KiB


Kevin Goess | 22 May 2013 02:41
Favicon

STOMP incompatibility upgrading 2.7 to 3.1: escaping colons in header values

STOMP 1.0 allowed colons in header values, e.g.

bp_timestamp:2013-05-21T16:00:21-07:00

But this commit a couple months ago disallowed them in any stomp frame: https://github.com/rabbitmq/rabbitmq-stomp/commit/4c20ec31d3de9129faeb97a5d95a9e74438bdc00

That seems like a mistake to me, but either way I'm calling it out here in case anybody else is travelling down the same road.  They now have to be escaped to "\c".

<div><div dir="ltr">STOMP 1.0 allowed colons in header values, e.g.<div><br></div>
<div>
<div>bp_timestamp:2013-05-21T16:00:21-07:00</div>
<div><br></div>
<div>But this commit a couple months ago disallowed them in any stomp frame: <a href="https://github.com/rabbitmq/rabbitmq-stomp/commit/4c20ec31d3de9129faeb97a5d95a9e74438bdc00">https://github.com/rabbitmq/rabbitmq-stomp/commit/4c20ec31d3de9129faeb97a5d95a9e74438bdc00</a>
</div>
<div><br></div>
<div>That seems like a mistake to me, but either way I'm calling it out here in case anybody else is travelling down the same road. &nbsp;They now have to be escaped to "\c".</div>
<br>
</div>
</div></div>
michi.oshima | 22 May 2013 00:19
Picon
Favicon
Gravatar

RDQ files filling the disk.

Hi,

We deploy a couple of RabbitMQ servers.  Say Rabbit1 and Rabbit2.  They are
linked with each other via the Shovel plug-in.  A client publishes messages
to Rabbit1 and another client consumes them from Rabbit2.  Each of these
clients connects to a durable queue.

We recently had an issue where Rabbit1 started taking up a lot of disk
space.  A directory called 'msg_store_transient' got up to some 20 GB,
filled with files with *.rdq extension.  They are about 16MB each in size. 
It almost filled up the disk (it's a small disk) and caused our application
(client to Rabbit1) to fail.

Meanwhile, Rabbit2 reportedly have been receiving the messages from Rabbit1. 
I also saw no shovel connection related errors in rabbit.log, etc.

Q1. Does this sound plausible?  If so, how could this happen?
Q2. I'm thinking the rdq files are meant to get deleted at some point.  What
would cause the files to *not* get deleted?

Thanks,

Michi Oshima

--
View this message in context: http://rabbitmq.1065348.n5.nabble.com/RDQ-files-filling-the-disk-tp26903.html
Sent from the RabbitMQ mailing list archive at Nabble.com.
Chris | 21 May 2013 22:04

RabbitMQ 3.1.1 Management Console Issue

Hello,

I've just upgraded from RabbitMQ 3.0.2 to RabbitMQ 3.1.1.  When I went to the web-based management console the first time, I saw the Overview page.  Clicking through the tabs, however, I noticed that sometimes the UI didn't update.

Now, whenever I try to go to the Overview page, the UI does not update, and I see one or multiples of this error at the bottom of the page: "ReferenceError: queue_length is not defined".  Even after a server restart I cannot see the overview page.

I am on RedHat 6.2 using Erlang R14B04 from EPEL.  There are no notable errors in the logs.

Any thoughts?  Bug?

Thanks,
Chris
<div><div dir="ltr">Hello,<div><br></div>
<div>I've just upgraded from RabbitMQ 3.0.2 to RabbitMQ 3.1.1. &nbsp;When I went to the web-based management console the first time, I saw the Overview page. &nbsp;Clicking through the tabs, however, I noticed that sometimes the UI didn't update.</div>
<div><br></div>
<div>Now, whenever I try to go to the Overview page, the UI does not update, and I see one or multiples of this error at the bottom of the page: "<span>ReferenceError: queue_length is not defined</span>". &nbsp;Even after a server restart I cannot see the overview page.</div>
<div><br></div>
<div>I am on RedHat 6.2 using Erlang R14B04 from EPEL. &nbsp;There are no notable errors in the logs.</div>
<div><br></div>
<div>Any thoughts? &nbsp;Bug?</div>
<div><br></div>
<div>Thanks,</div>
<div>Chris</div>
</div></div>

Gmane