<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>Yogesh,</div><div><br></div><div>rabbitmqadmin can delete the queue but without the checks that it might not be</div><div>empty and might be being used. &nbsp;If you can be sure that the queue is dead, then</div><div>a rabbitmqadmin check followed by a delete would be quite adequate.</div><div><br></div><div>However, if it is possible that the queue might not be dead (just usage being</div><div>slow) or it might be reused, then it is imperative that the delete be</div><div>conditional. &nbsp;The java client interface (or some other client interface) should</div><div>be used to make the delete conditional.</div><div><br></div><div>We notice here that the rabbitmqadmin interface doesn't allow you to</div><div>conditionally delete. We have raised a bug to do this -- but in the meantime, I</div><div>would code a script that issues the rabbitmqadmin calls to determine which</div><div>queues to conditionally delete, and then invoke simple stand-alone client app to</div><div>do the conditional deletes. &nbsp; It's a bit klunky, but reasonably safe.</div><div><br></div><div>Hope this helps.</div><div>
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div style="font-weight: normal; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div style="font-style: normal; "><div><font class="Apple-style-span" size="3"><span class="Apple-style-span" style="font-size: 12px; ">Steve Powell &nbsp;</span><span class="Apple-style-span" style="font-size: 11px; ">(<i>a happy bunny</i>)</span></font></div></div><div><font class="Apple-style-span" size="3"><span class="Apple-style-span" style="font-size: 11px; "><div style="font-style: normal; font-family: Helvetica; font-size: 12px; "><i><font class="Apple-style-span" face="Georgia" size="2"><span class="Apple-style-span" style="font-size: 10px; ">----------some more definitions from the SPD----------</span></font></i></div><div style="font-family: Helvetica; font-size: 12px; "><font class="Apple-style-span" face="Georgia" size="2"><span class="Apple-style-span" style="font-style: normal; font-size: 10px; "><b>vermin</b>&nbsp;(</span><font class="Apple-style-span" size="2"><span class="Apple-style-span" style="font-size: 10px; "><i>v.</i>)</span></font><span class="Apple-style-span" style="font-style: normal; font-size: 10px; ">&nbsp;Treating the dachshund for roundworm.</span></font></div></span></font></div></div></div><span class="Apple-style-span" style="font-weight: normal; font-family: Helvetica; font-size: 12px; "><font class="Apple-style-span" face="Georgia" size="2" style="font-style: normal; "><span class="Apple-style-span" style="font-size: 10px; "><b>chinchilla</b>&nbsp;(</span></font><font class="Apple-style-span" face="Georgia" size="2"><span class="Apple-style-span" style="font-size: 10px; "><i>n.</i>) Cooling device for the lower jaw.</span></font></span><div><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Georgia; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "></span><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span class="Apple-style-span" style="font-family: Georgia; font-weight: normal; font-style: normal; font-size: 10px; "><b>socialcast</b></span><span class="Apple-style-span" style="font-family: Georgia; font-weight: normal; font-style: normal; font-size: 10px; ">&nbsp;(</span><span class="Apple-style-span" style="font-family: Georgia; font-weight: normal; font-size: 10px; "><i>n.</i>)</span><span class="Apple-style-span" style="font-family: Georgia; font-weight: normal; font-style: normal; font-size: 10px; ">&nbsp;Someone to whom everyone is speaking but nobody likes.</span></span></div></div>
</div>
<br><div><div>On 22 Jan 2012, at 07:40, Yogesh Ketkar wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>Thanks Steve and Simon.<br><br>I checked that rabbitmqadmin.py uses http calls (RESTful APIs)<br>provided by RabbitMQ to perform the operations.<br>Can you provide me a sample<br>- (either using rabbitmqadmin or using RESTful client) to delete a<br>queue say "Yogesh" with isEmpty and isUnused flags set to True?<br> &nbsp;I could delete the queue using DELETE http request on<br><a href="http://localhost:55672/api/queues/%2f/Yogesh">http://localhost:55672/api/queues/%2f/Yogesh</a><br> &nbsp;But couldn't figure out a way to specify isEmpty and isUnused flags.<br>- I was able to do this in a Java client using interface<br>com.rabbitmq.client.Channel { queueDelete("Yogesh", true, true) }.<br> &nbsp;But then, how do I get list of queues using com.rabbitmq.client?<br><br>regards, Yogesh<br><br><br><br>On Jan 20, 7:25&nbsp;pm, Steve Powell &lt;st...@rabbitmq.com&gt; wrote:<br><blockquote type="cite">Just a thought,<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">If you go the way Simon says and have something from outside poking the mgmt API<br></blockquote><blockquote type="cite">every few minutes, make sure you issue queueDelete with the if-empty bit set.<br></blockquote><blockquote type="cite">There is a window between the poking and the deleting in which messages may<br></blockquote><blockquote type="cite">arrive on the queue (i.e. it's not idle anymore), and it may even not be in-use<br></blockquote><blockquote type="cite">(have consumers) by the time you get to it.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Steve Powell<br></blockquote><blockquote type="cite">st...@rabbitmq.com<br></blockquote><blockquote type="cite">[wrk:+44-2380-111-528begin_of_the_skype_highlighting&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+44-2380-111-528&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;] [mob:+44-7815-838-558begin_of_the_skype_highlighting&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+44-7815-838-558&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">On 20 Jan 2012, at 12:47, Simon MacMullen wrote:<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite">On 16/01/12 15:56, Yogesh Ketkar wrote:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">I would like to delete the queue with no messages in it and so asked<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">the question.<br></blockquote></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite">I see.<br></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Can you suggest an alternative to achieve<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">1. Delete the queue when last event processed from the queue has<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&lt;Action&gt;Delete&lt;/Action&gt; &nbsp;as this implies that<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">&nbsp; &nbsp;no more events with same&lt;AppId&gt; &nbsp;would ever get created.<br></blockquote></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite">Well, you could have your client do that.<br></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">2. Delete the queue when it is IDLE for certain period, meaning it is<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">empty and no more event was added to it for certain time period.<br></blockquote></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite">Hmm. Well there's nothing built in to do this, but you could have something from outside poking the mgmt API every few minutes - look at the output of (e.g.)<br></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite">rabbitmqadmin list queues name messages consumers idle_since<br></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite">Cheers, Simon<br></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite">--<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Simon MacMullen<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">RabbitMQ, VMware<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">_______________________________________________<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">rabbitmq-discuss mailing list<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">rabbitmq-disc...@lists.rabbitmq.com<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><a href="https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss">https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss</a><br></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">_______________________________________________<br></blockquote><blockquote type="cite">rabbitmq-discuss mailing list<br></blockquote><blockquote type="cite">rabbitmq-disc...@lists.rabbitmq.comhttps://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss<br></blockquote>_______________________________________________<br>rabbitmq-discuss mailing list<br><a href="mailto:rabbitmq-discuss@lists.rabbitmq.com">rabbitmq-discuss@lists.rabbitmq.com</a><br>https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss<br></div></blockquote></div><br></div></body></html>