qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jakub Scholz <ja...@scholz.cz>
Subject connection.close() in C++ client never returns after resource-limit-exceeded exception
Date Sat, 09 Nov 2013 00:46:51 GMT
Hi,

I have C++ client using the qpid.messaging API to send messages to a queue
on the C++ broker. The code block where I'm sending the messages is
surrounded with try-catch and when I catch an exception I simply try to
close the connection and exit the program:

try {
    ...
    sender.send(msg, false);
    ...
}
catch (...) {
    connection.close();
}

When using AMQP 0.10 and sending a message into a queue which is already
full, the connaction.close() call returns and I can exit the program. But
with AMQP 1.0 when I receive the same exception, the connection.close()
call seems to hang "forever" and never return.

With other exceptions - for example with unauthorized access - the
connection.close() returns fine. I believe the resource-limit-exceeded
error does close the connection from the broker side. That might be the
reason for the different behaviour. But I would still expect that the
close() call should not hang.

Is the error handling as I implemented it not correct - i.e. do I have to
specifically catch the exceptions which close the connection? Or is this a
bug in the AMQP 1.0 implementation?

Thanks & Regards
Jakub

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