You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@qpid.apache.org by David Frank <da...@aitengineering.com> on 2014/06/24 15:07:01 UTC

Inactivity Timeout with Java Broker

Java Broker 0.26
Java Client 0.14 (although we've tried it with 0.26 also)
Java 1.7.0_51 x64

We recently switched from the C++ Broker to the Java Broker to support one of our customer's requests.  Unfortunately, we've had lots of problems since then.  I believe most are related to the Java Broker closing connections due to Inactivity.  As we start our application, there can be quite a bit of CPU and IO access, which tends to slow everything down.  This slow down can often cause the clients to miss their heartbeats to the broker.  The broker then closes the connection and our application fails to start successfully.

We've tried the "qpid.broker_heartbeat_timeout_factor" property, but it doesn't seem to have any effect.  In fact, I don't see it actually being used by the broker code. A constant is set with the value in BrokerProperties, but the constant is never used.

Any suggestions?

Thanks,

David Frank
AIT Engineering
321-235-7583


RE: Inactivity Timeout with Java Broker

Posted by David Frank <da...@aitengineering.com>.
Just a quick follow up. The issue we had on startup seemed to be resolved by using

	-Dqpid.handshake_timeout=60

It's a little risky when we update next since it's not a documented property, but it seems to work.

Thanks!

David Frank
AIT Engineering

-----Original Message-----
From: Keith W [mailto:keith.wall@gmail.com] 
Sent: Tuesday, June 24, 2014 2:06 PM
To: users@qpid.apache.org
Subject: Re: Inactivity Timeout with Java Broker

Hello David

In the Java Broker, you can't currently disable heart beating from the broker side.

If the client requests heart beating, the Broker will respect this request.
To turn off heat beating, configure the Java client (*) by using the "heartbeat" broker list property [1] in the connection url, or via the qpid.heartbeat system property [2] and set the value to zero.

You may have noticed a broker attribute "connection.heartBeatDelay"
(settable through the Web Management Console) but this can't be used to turn off heat beating if requested by the client.  (For AMQP 0-10 connections, this value sets the heartbeat maximum used during the connection.tune negotiation, for AMQP 0-8..0-9-1 connections this value will enable heartbeating if the client does not request it).

Kind regards, Keith Wall.

[1]
http://qpid.apache.org/releases/qpid-0.26/programming/book/QpidJNDI.html#section-jms-connection-url
[2]
http://qpid.apache.org/releases/qpid-0.26/programming/book/ch03s06.html#client-jvm-properties

(*) = Qpid AMQP 0-x JMS Client





On 24 June 2014 14:07, David Frank <da...@aitengineering.com> wrote:

> Java Broker 0.26
> Java Client 0.14 (although we've tried it with 0.26 also) Java 
> 1.7.0_51 x64
>
> We recently switched from the C++ Broker to the Java Broker to support 
> one of our customer's requests.  Unfortunately, we've had lots of 
> problems since then.  I believe most are related to the Java Broker 
> closing connections due to Inactivity.  As we start our application, 
> there can be quite a bit of CPU and IO access, which tends to slow everything down.
>  This slow down can often cause the clients to miss their heartbeats 
> to the broker.  The broker then closes the connection and our 
> application fails to start successfully.
>
> We've tried the "qpid.broker_heartbeat_timeout_factor" property, but 
> it doesn't seem to have any effect.  In fact, I don't see it actually 
> being used by the broker code. A constant is set with the value in 
> BrokerProperties, but the constant is never used.
>
> Any suggestions?
>
> Thanks,
>
> David Frank
> AIT Engineering
> 321-235-7583
>
>

Re: Inactivity Timeout with Java Broker

Posted by Keith W <ke...@gmail.com>.
Hello David

In the Java Broker, you can't currently disable heart beating from the
broker side.

If the client requests heart beating, the Broker will respect this request.
To turn off heat beating, configure the Java client (*) by using the
"heartbeat" broker list property [1] in the connection url, or via
the qpid.heartbeat system property [2] and set the value to zero.

You may have noticed a broker attribute "connection.heartBeatDelay"
(settable through the Web Management Console) but this can't be used to
turn off heat beating if requested by the client.  (For AMQP 0-10
connections, this value sets the heartbeat maximum used during the
connection.tune negotiation, for AMQP 0-8..0-9-1 connections this value
will enable heartbeating if the client does not request it).

Kind regards, Keith Wall.

[1]
http://qpid.apache.org/releases/qpid-0.26/programming/book/QpidJNDI.html#section-jms-connection-url
[2]
http://qpid.apache.org/releases/qpid-0.26/programming/book/ch03s06.html#client-jvm-properties

(*) = Qpid AMQP 0-x JMS Client





On 24 June 2014 14:07, David Frank <da...@aitengineering.com> wrote:

> Java Broker 0.26
> Java Client 0.14 (although we've tried it with 0.26 also)
> Java 1.7.0_51 x64
>
> We recently switched from the C++ Broker to the Java Broker to support one
> of our customer's requests.  Unfortunately, we've had lots of problems
> since then.  I believe most are related to the Java Broker closing
> connections due to Inactivity.  As we start our application, there can be
> quite a bit of CPU and IO access, which tends to slow everything down.
>  This slow down can often cause the clients to miss their heartbeats to the
> broker.  The broker then closes the connection and our application fails to
> start successfully.
>
> We've tried the "qpid.broker_heartbeat_timeout_factor" property, but it
> doesn't seem to have any effect.  In fact, I don't see it actually being
> used by the broker code. A constant is set with the value in
> BrokerProperties, but the constant is never used.
>
> Any suggestions?
>
> Thanks,
>
> David Frank
> AIT Engineering
> 321-235-7583
>
>