summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@lshift.net>2010-02-02 20:13:45 +0000
committerMatthias Radestock <matthias@lshift.net>2010-02-02 20:13:45 +0000
commite24b48e78858efe104321c2dcf1c3fd12cd45cba (patch)
treefdf561daefe5fa86c68e0104188958b734c5461f
parente3f4f8aa92c8aaea15ffc94068f902b49ff74424 (diff)
downloadrabbitmq-server-bug22301.tar.gz
extend 'rabbitmqctl list_queues' command with info on exclusivitybug22301
-rw-r--r--docs/rabbitmqctl.1.pod16
-rw-r--r--src/rabbit_amqqueue_process.erl15
-rw-r--r--src/rabbit_control.erl3
3 files changed, 33 insertions, 1 deletions
diff --git a/docs/rabbitmqctl.1.pod b/docs/rabbitmqctl.1.pod
index 47c4d168..c0740114 100644
--- a/docs/rabbitmqctl.1.pod
+++ b/docs/rabbitmqctl.1.pod
@@ -202,6 +202,22 @@ queue arguments
id of the Erlang process associated with the queue
+=item owner_pid
+
+id of the Erlang process representing the connection which is the
+exclusive owner of the queue, or empty if the queue is non-exclusive
+
+=item exclusive_consumer_pid
+
+id of the Erlang process representing the channel of the exclusive
+consumer subscribed to this queue, or empty if there is no exclusive
+consumer
+
+=item exclusive_consumer_tag
+
+consumer tag of the exclusive consumer subscribed to this queue, or
+empty if there is no exclusive consumer
+
=item messages_ready
number of messages ready to be delivered to clients
diff --git a/src/rabbit_amqqueue_process.erl b/src/rabbit_amqqueue_process.erl
index a3b0814c..e02734a9 100644
--- a/src/rabbit_amqqueue_process.erl
+++ b/src/rabbit_amqqueue_process.erl
@@ -77,6 +77,9 @@
auto_delete,
arguments,
pid,
+ owner_pid,
+ exclusive_consumer_pid,
+ exclusive_consumer_tag,
messages_ready,
messages_unacknowledged,
messages_uncommitted,
@@ -510,6 +513,18 @@ i(auto_delete, #q{q = #amqqueue{auto_delete = AutoDelete}}) -> AutoDelete;
i(arguments, #q{q = #amqqueue{arguments = Arguments}}) -> Arguments;
i(pid, _) ->
self();
+i(owner_pid, #q{owner = none}) ->
+ '';
+i(owner_pid, #q{owner = {ReaderPid, _MonitorRef}}) ->
+ ReaderPid;
+i(exclusive_consumer_pid, #q{exclusive_consumer = none}) ->
+ '';
+i(exclusive_consumer_pid, #q{exclusive_consumer = {ChPid, _ConsumerTag}}) ->
+ ChPid;
+i(exclusive_consumer_tag, #q{exclusive_consumer = none}) ->
+ '';
+i(exclusive_consumer_tag, #q{exclusive_consumer = {_ChPid, ConsumerTag}}) ->
+ ConsumerTag;
i(messages_ready, #q{message_buffer = MessageBuffer}) ->
queue:len(MessageBuffer);
i(messages_unacknowledged, _) ->
diff --git a/src/rabbit_control.erl b/src/rabbit_control.erl
index 2fe3f33e..52c9076c 100644
--- a/src/rabbit_control.erl
+++ b/src/rabbit_control.erl
@@ -174,7 +174,8 @@ optional virtual host parameter for which to display results. The
default value is \"/\".
<QueueInfoItem> must be a member of the list [name, durable,
-auto_delete, arguments, pid, messages_ready, messages_unacknowledged,
+auto_delete, arguments, pid, owner_pid, exclusive_consumer_pid,
+exclusive_consumer_tag, messages_ready, messages_unacknowledged,
messages_uncommitted, messages, acks_uncommitted, consumers,
transactions, memory]. The default is to display name and (number of)
messages.