Bell, Paul M. | 1 Aug 05:10 2012

Two questions: max bindings and handling no consumer present

Hi All,

Is there a limit on the number of distinct bindings a consumer can establish when binding a queue to a topic
exchange with a binding key?

It's my understanding, based on what I've learned here, that if a publisher publishes a message to an
exchange and outbound from that exchange there is no binding, then the broker will simply discard the
message. If there's no one listening (as it were) at the time of publication, then no one gets the message.

Around this phenomenon arises the question of somehow determining that there's an active consumer before
publishing a message. The use case here is that these messages represent tasks that need to be run by the
consumer. Perhaps these messages will be written by some kind of task scheduler. The point is that I don't
want to publish the messages unless I know that a consumer is present and can act upon them.

I suppose this is where the "mandatory" flag comes in. But I'm wondering if there's a way to query  the broker
about its infrastructure, e.g., the existence of a queue/binding that would indicate the presence of the consumer.

Thank you.

-Paul

ATTENTION: -----

The information contained in this message (including any files transmitted with this message) may
contain proprietary, trade secret or other  confidential and/or legally privileged information. Any
pricing information contained in this message or in any files transmitted with this message is always
confidential and cannot be shared with any third parties without prior written approval from Syncsort.
This message is intended to be read only by the individual or entity to whom it is addressed or by their
designee. If the reader of this message is not the intended recipient, you are on notice that any use,
disclosure, copying or distribution of this message, in any form, is strictly prohibited. If you have
(Continue reading)

luo roger | 1 Aug 05:52 2012
Picon

after enable management, rabbitMQ cant work

debian 5.0
erlang version : 5.6.3
rabbitmq 2.8.4

whitout management, everything is ok,
after enable management, rabbitMQ cant start
in the console, after echo" broker running,"
echo "{"Kernel pid terminated............

in the startup_log:

=INFO REPORT==== 1-Aug-2012::10:49:28 ===
Limiting to approx 924 file handles (829 sockets)

=INFO REPORT==== 1-Aug-2012::10:49:28 ===
Memory limit set to 3198MB of 7996MB total.

=INFO REPORT==== 1-Aug-2012::10:49:28 ===
Disk free limit set to 953MB

=INFO REPORT==== 1-Aug-2012::10:49:28 ===
Management plugin upgraded statistics to fine.

=INFO REPORT==== 1-Aug-2012::10:49:28 ===
msg_store_transient: using rabbit_msg_store_ets_index to provide index

=INFO REPORT==== 1-Aug-2012::10:49:28 ===
msg_store_persistent: using rabbit_msg_store_ets_index to provide index

=INFO REPORT==== 1-Aug-2012::10:49:28 ===
(Continue reading)

Alexis Richardson | 1 Aug 08:56 2012

Re: RabbitMQ in a WCF webservice, model usage and performance

Noel

I see that folks have answered on SO..
http://stackoverflow.com/questions/11414019/rabbitmq-in-a-wcf-webservice-model-usage-and-performance

Does that suffice for now?

alexis

On Tue, Jul 31, 2012 at 12:55 PM, Bigtoe <noel.lysaght@...> wrote:
> Hi Folks, I have a query about performance and IModel usage in a .NET WCF
> service. I posted this question on Stackoverflow  and received no answers. I
> was hoping that maybe you had some suggestions. I can repost the full
> question here the link is not appropriate.
>
> Kind Regards
> Noel
>
> _______________________________________________
> rabbitmq-discuss mailing list
> rabbitmq-discuss@...
> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
>
Tim Watson | 1 Aug 09:23 2012
Picon

Re: Two questions: max bindings and handling no consumer present


On 1 Aug 2012, at 04:10, "Bell, Paul M." <pbell@...> .
> 
> I suppose this is where the "mandatory" flag comes in. But I'm wondering if there's a way to query  the broker
about its infrastructure, e.g., the existence of a queue/binding that would indicate the presence of the consumer.
> 

There are ways to query the infrastructure, but these rare generally not exposed to client APIs. What
client are you using? 

> Thank you.
> 
> -Paul
> 
> 
> 
> ATTENTION: -----
> 
> The information contained in this message (including any files transmitted with this message) may
contain proprietary, trade secret or other  confidential and/or legally privileged information. Any
pricing information contained in this message or in any files transmitted with this message is always
confidential and cannot be shared with any third parties without prior written approval from Syncsort.
This message is intended to be read only by the individual or entity to whom it is addressed or by their
designee. If the reader of this message is not the intended recipient, you are on notice that any use,
disclosure, copying or distribution of this message, in any form, is strictly prohibited. If you have
received this message in error, please immediately notify the sender and/or Syncsort 
 and destroy all copies of this message in your possession, custody or control.
> _______________________________________________
> rabbitmq-discuss mailing list
> rabbitmq-discuss@...
(Continue reading)

Tim Watson | 1 Aug 09:28 2012
Picon

Re: after enable management, rabbitMQ cant work


On 1 Aug 2012, at 04:52, luo roger <roger.maillist@...> wrote:

> debian 5.0
> erlang version : 5.6.3

lists:keyfind/3 was added in OTP stdlib 1.6 iirc so it's probable that you need a later version of erlang. I
also seem to remember this is documented for the plugin on the compatibility page of the website, though
I'll check that once I get into the office.

> rabbitmq 2.8.4
> 
> whitout management, everything is ok,
> after enable management, rabbitMQ cant start
> in the console, after echo" broker running,"
> echo "{"Kernel pid terminated............
> 
> in the startup_log:
> 
> =INFO REPORT==== 1-Aug-2012::10:49:28 ===
> Limiting to approx 924 file handles (829 sockets)
> 
> =INFO REPORT==== 1-Aug-2012::10:49:28 ===
> Memory limit set to 3198MB of 7996MB total.
> 
> =INFO REPORT==== 1-Aug-2012::10:49:28 ===
> Disk free limit set to 953MB
> 
> =INFO REPORT==== 1-Aug-2012::10:49:28 ===
> Management plugin upgraded statistics to fine.
(Continue reading)

Francesco Mazzoli | 1 Aug 09:31 2012

Re: after enable management, rabbitMQ cant work

At Wed, 1 Aug 2012 11:52:40 +0800,
luo roger wrote:
> 
> debian 5.0
> erlang version : 5.6.3
> rabbitmq 2.8.4
> 
> whitout management, everything is ok,
> after enable management, rabbitMQ cant start
> in the console, after echo" broker running,"
> echo "{"Kernel pid terminated............
> 
> in the startup_log:
> [...]

What version of Erlang do you have?  `lists:keyfind/3' was introduced in R13A.
The minimum version required to run the management plugin is R13B01, see
http://www.rabbitmq.com/which-erlang.html .

--
Francesco * Often in error, never in doubt
Brendan Hay | 1 Aug 09:47 2012

Management API Send/Receive Event Measurements

Hola bandidas/bandidos,


In the /api/connections/<name> endpoint, I'd (previously/naively) presumed that recv_oct_details.last_event and send_oct_details.last_event 
would correlate to some sort of activity on the connection in general .. including underlying channels - although this appears to not be the case, example:
In the above example, the connection shows *.last_event timestamps as when the connection was established / handshake occurred, 
and the channel shows current and consistent throughput + updated events.

Q's:
- Intended behaviour?
- Is there any way to determine if a connection is idle from just the data available in the /api/connections endpoint?


Cheers,
Brendan
<div>
<p>Hola bandidas/bandidos,</p>
<div><br></div>
<div>In the /api/connections/&lt;name&gt; endpoint, I'd (previously/naively) presumed that recv_oct_details.last_event and send_oct_details.last_event&nbsp;</div>
<div>would correlate to some sort of activity on the connection in general .. including underlying channels - although this appears to not be the case, example:</div>
<div><ul>
<li>Connection:&nbsp;<a href="https://gist.github.com/23455d60bea127bca57c#file_connection.json">https://gist.github.com/23455d60bea127bca57c#file_connection.json</a>
</li>
<li>Channel:&nbsp;<a href="https://gist.github.com/23455d60bea127bca57c#file_channel.json">https://gist.github.com/23455d60bea127bca57c#file_channel.json</a>
</li>
</ul></div>
<div>In the above example, the connection shows *.last_event timestamps as when the connection was established / handshake&nbsp;occurred,&nbsp;</div>
<div>and the channel shows current and consistent throughput + updated events.</div>
<div><br></div>
<div>Q's:</div>
<div>- Intended behaviour?</div>
<div>- Is there any way to determine if a connection is idle from just the data available in the /api/connections endpoint?</div>
<div><br></div>
<div><br></div>
<div>Cheers,</div>
<div>Brendan</div>
</div>
Francesco Mazzoli | 1 Aug 10:07 2012

Re: Disallow clients without heartbeat

At Tue, 31 Jul 2012 17:23:45 -0400,
Dave Curylo wrote:
> I would like all my clients to specify a heartbeat so the server will
> disconnect them automatically if they become unresponsive. Is there any way on
> the message broker to require that clients set a heartbeat, and disallow
> connections from clients that don't?

No, you can't.  You might be able to hack something up with a plugin.  The code
that accepts the `tune_ok' frames and sets up the heartbeats is in
`rabbit_reader.erl'.

--
Francesco * Often in error, never in doubt
_______________________________________________
rabbitmq-discuss mailing list
rabbitmq-discuss <at> lists.rabbitmq.com
https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
Matthias Radestock | 1 Aug 10:08 2012

Re: Two questions: max bindings and handling no consumer present

On 01/08/12 08:23, Tim Watson wrote:
>
> On 1 Aug 2012, at 04:10, "Bell, Paul M." <pbell@...> .
>>
>> I suppose this is where the "mandatory" flag comes in. But I'm
>> wondering if there's a way to query  the broker about its
>> infrastructure, e.g., the existence of a queue/binding that would
>> indicate the presence of the consumer.
>>
>
> There are ways to query the infrastructure, but these rare generally
> not exposed to client APIs. What client are you using?

Moreover, performing such a "does a consumer exists?" query before 
publishing is racy, since the consumer might well vanish between the 
query and the publishing event.

What are you actually trying to accomplish? Is the idea that in the 
absence of consumers the producer would hang on to the message and retry 
later? In that case you may want to consider alternative routing 
topologies. E.g. perhaps the consumer queues could be declared ahead of 
time. Or you could use an alternate exchange to route messages to 
holding queue where they are then picked up from consumers when they 
join. Or you could do something even more sophisticated and configure 
said holding queue with a message-ttl and set the original exchange as 
the dead-letter exchange of the queue - that way messages will be 
retried periodically automatically.

Matthias.
Matthias Radestock | 1 Aug 10:18 2012

Re: Disallow clients without heartbeat

Dave,

On 01/08/12 09:07, Francesco Mazzoli wrote:
> At Tue, 31 Jul 2012 17:23:45 -0400,
> Dave Curylo wrote:
>> I would like all my clients to specify a heartbeat so the server
>> will disconnect them automatically if they become unresponsive. Is
>> there  any way on
>> the message broker to require that clients set a heartbeat, and
>> disallow connections from clients that don't?
 >
> No, you can't.  You might be able to hack something up with a plugin.
> The code that accepts the `tune_ok' frames and sets up the heartbeats
> is in `rabbit_reader.erl'.

As an aside, we are planning to let a server admin set a default 
heartbeat interval in the config. Most clients will just accept that 
but, as per the AMQP spec, they are under no obligation to do so.

Matthias.

Gmane