[
https://issues.apache.org/jira/browse/QPID-2800?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12907472#action_12907472
]
Rajith Attapattu commented on QPID-2800:
----------------------------------------
The above patch is wrong as it,
a) Does not set the actual the idle_timeout (as it gets overwritten later on).
b) It's not the way it should be configured
c) There is already a way to configure this value.
The problem here is poor documentation and the terrible state our code is in.
I am actually planning to add documentation to list all the configurable
properties in the client.
Also I have tried to stick to a proper naming convention for the properties and
I we decided to use qpid.propertyname instead of 'amqj.propertyname'.
I have done some partial work in handling the config props in a consistent way
and also to move all properties to the new naming convention with support for
backwards compatibility.
QPID-2350
Here is how the idle timeout is handled in the 0-10 code path.
How it is used
=============
(*) The idle_timeout field in Connection.java is calculated as twice the value
of the negotiated heartbeat value with the broker.
(*) So the right thing to configure is the heartbeat not the idle_timeout.
(*) The idle_timeout is computed (using the heartbeat value) during
ConnectionTune. Once set it will be used to set the so-timeout in the
underlying socket to get a read timeout if we don't see anything on the pipe
for two consecutive heartbeat intervals.
(*) Please see the ConnectionTune method in ClientDelegate.java to see how the
heartbeat value is chosen.
Heartbeat Configuration
====================
(*) You could set a default timeout using -Didle_timeout (deprecated) or
-Dqpid.heartbeat
(*) You could also set a connection specific timeout using 'idle_timeout'
(deprecated) or 'heartbeat'.
(*) The idle_timeout is in mili seconds and the heartbeat is in seconds.
(*) The idle_timeout created a lot of confusion. First of all it was the wrong
name and then it was using miliseconds instead of secs which was the unit the
connection tune amqp method was using.
Therefore this is deprecated and a message is printed each time this is
used.
(*) Please see getHeartbeatInterval method in AMQConnectionDelegate_0_10 to see
how the heartbeat value is read from configuration.
> Add configurable timeout on Connection object for 0-10 codepath
> ---------------------------------------------------------------
>
> Key: QPID-2800
> URL: https://issues.apache.org/jira/browse/QPID-2800
> Project: Qpid
> Issue Type: Improvement
> Components: Java Broker, Java Client
> Affects Versions: 0.7
> Reporter: Sorin Suciu
> Assignee: Robbie Gemmell
> Fix For: 0.7
>
> Attachments: qpid-2800.patch
>
>
> Currently the o.a.q.transport.Connection class has a hardcoded timeout long
> set to 60 seconds. This is used both on connection open/close operations, we
> could probably use a system property to configure this value should we need
> to change it.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]