qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul Colby <p...@colby.id.au>
Subject can the C++ broker expire really idle connections?
Date Mon, 22 Aug 2011 02:08:52 GMT

I have a C++ broker (0.10) running, which has messages stuck in a handful of
queues.  It seems that these messages are "stuck" because the broker has
given them to one of my consumer processes, which has not yet
ack'd/rejected/released the messages.  The problem is, the consumer in
question died almost 5 days ago!

Actually the situation is quite a bit more complex than that...  to explain,
my consumer is a C++ client with an embedded PHP engine.  At the time the
process died, one of its threads was in the process of writing to a
BASH-based sendmail script.  So, although the client itself is gone, the
BASH interpreter is still running (sleeping, waiting for more input) and
seems to have inherited the Qpid socket fd (perhaps due to the fork / exec
process used by PHP's mail function internally).

Of course there's plenty I can (and will) do to prevent this situation from
occurring on my side.  But it leads me to also wonder, is there a way I can
configure the C++ broker to reclaim messages that have not yet been ackd /
rejected / released by a consumer that has been idle for a very long time
(qpid-tool -c reports these connections as being idle for 4+ days).

I see there's a client-side heartbeat connection option... is there
something equivalent for the server side?

I have a lot of data I can include (such as outputs from qpid-tool showing
the connections / sessions etc in question)... perfectly happy to post them
if you like :)



  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message