diff options
author | Matthias Radestock <matthias@lshift.net> | 2010-02-02 20:13:45 +0000 |
---|---|---|
committer | Matthias Radestock <matthias@lshift.net> | 2010-02-02 20:13:45 +0000 |
commit | e24b48e78858efe104321c2dcf1c3fd12cd45cba (patch) | |
tree | fdf561daefe5fa86c68e0104188958b734c5461f | |
parent | e3f4f8aa92c8aaea15ffc94068f902b49ff74424 (diff) | |
download | rabbitmq-server-bug22301.tar.gz |
extend 'rabbitmqctl list_queues' command with info on exclusivitybug22301
-rw-r--r-- | docs/rabbitmqctl.1.pod | 16 | ||||
-rw-r--r-- | src/rabbit_amqqueue_process.erl | 15 | ||||
-rw-r--r-- | src/rabbit_control.erl | 3 |
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. |