qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rob Godfrey <rob.j.godf...@gmail.com>
Subject Re: AMQP-JMS client: heartbeat / TTL
Date Fri, 11 Oct 2013 22:06:08 GMT
Hi Branden,


On 11 October 2013 23:29, Branden Smith <BSmith@liaison.com> wrote:

> One additional (unrelated) question: my broker continually disconnects my
> Qpid client with this message:
>
> [org.hornetq.core.server] HQ222067: Connection failure has been detected:
> HQ119014: Did not receive data from (IP address):52922. It is likely the
> client has exited or crashed without closing its connection, or the network
> between the server and client has failed. You also might have configured
> connection-ttl and client-failure-check-period incorrectly. Please check
> user manual for more information. The connection will now be closed.
> [code=CONNECTION_TIMEDOUT]
> [org.hornetq.core.server] HQ222061: Client connection failed, clearing up
> resources for session 030ba507-32b9-11e3-88ff-99e2056ce319
>
> I'm still not sure whether this is a problem with HornetQ's TTL
> configuration (which theoretically should be waiting for 5 minutes before
> timing out a client connection), or whether Qpid is not sending the
> heartbeat ping correctly.
>
> When establishing the client-side connection, per the documentation, I'm
> using this URL syntax to configure the heartbeat:
>
> amqp://localhost:10005/?qpid.heartbeat=10
>
> Is that syntax still correct?  If so, is there any way (via wire capture,
> more verbose logging configuration, etc.) that I can verify that Qpid is
> sending pings (or replying with pongs) correctly?
>
> No - that syntax doesn't work with the AMQP 1.0 client.  Currently the
AMQP 1.0 JMS client simply accepts the heartbeat frequency requirement that
is communicated to it by the server it connects to.  Since this works with
other servers, my suspicion would first be that HornetQ is not properly
communicating its requirements to the client (this should be sent in the
idle-timeout field of the open frame).

The AMQP 1.0 JMS Client uses java.util.Logging for log output.  If you
configure it such that the FRM Logger outputs fine level output then the
following lines in ConnectionEndpoint.java should print out the frames
received from the Server.

private final Logger _logger = Logger.getLogger("FRM");

    public synchronized void receive(final short channel, final Object
frame)
    {
        if (_logger.isLoggable(Level.FINE))
        {
            _logger.fine("RECV[" + _remoteAddress + "|" + channel + "] : "
+ frame);
        }

If you look for instances of the Open fram being received then you should
be able to see what value (if any) the server is setting idleTimeout to.

Hope this helps,
Rob

Thanks,
>
> Branden Smith
> bsmith@liaison.com
>

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