summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Sackman <matthew@lshift.net>2010-02-05 12:52:42 +0000
committerMatthew Sackman <matthew@lshift.net>2010-02-05 12:52:42 +0000
commitab5f89cc1a7f19cab21034cbed5dac1aac1817fa (patch)
tree83ae946fb38db5f2b5c0f6c33988e98d84ae41c8
parentc6ffb8b1db9011e0406c9fdd0876688b368673ed (diff)
parente24b48e78858efe104321c2dcf1c3fd12cd45cba (diff)
downloadrabbitmq-server-ab5f89cc1a7f19cab21034cbed5dac1aac1817fa.tar.gz
merging bug 22301 into default
-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 a2521406..24efbded 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 06e68a1b..e9e1bcee 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,
@@ -511,6 +514,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 c28fd54f..a3f0341a 100644
--- a/src/rabbit_control.erl
+++ b/src/rabbit_control.erl
@@ -175,7 +175,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.