[
https://issues.apache.org/activemq/browse/AMQ-1578?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Rob Davies resolved AMQ-1578.
-----------------------------
Fix Version/s: 5.1.0
Resolution: Fixed
Fixed by SVN revision 646258
> No exposure to the 'idleTimeout' property for ConnectionPool class, which
> makes it difficult to implement keepAlive semantics on PooledConnections
> --------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: AMQ-1578
> URL: https://issues.apache.org/activemq/browse/AMQ-1578
> Project: ActiveMQ
> Issue Type: Bug
> Components: JMS client
> Affects Versions: 5.0.0
> Environment: 5.1-SNAPSHOT
> Reporter: Jason Rosenberg
> Assignee: Rob Davies
> Fix For: 5.1.0
>
>
> The ConnectionPool class has a 'idleTimeout' property, but this is not
> accessible easily, via the PooledConnectionFactory class.
> This essentially means that there's no easy way to implement a keepAlive
> setup for underlying tcp connections. By default, the idleTimeout is set to
> 30 seconds, and when this expires, it shuts down the connection's transport.
> Furthermore, it ignores and knows nothing about the InactiviyMonitor's
> efforts to keep the tcp connection refreshed.
> A simple fix would be to have the PooledConnectionFactory have a setter for
> the idleTimeout property, and then pass this one when it creates new
> connections. As a work-around, I've created a sub-class of the
> PooledConnectionFactory class, that looks like this (this sub-classes
> actually the jencks amqpool class, which is very similar to the activemq
> version of the class, which has the same issue):
> public class PooledConnectionFactoryWithIdleTimeout extends
> PooledConnectionFactory {
>
> private int idleTimeout = 0;
>
> public int getIdleTimeout() {
> return idleTimeout;
> }
> public void setIdleTimeout(int idleTimeout) {
> this.idleTimeout = idleTimeout;
> }
>
> @Override
> protected ConnectionPool createConnectionPool(ActiveMQConnection
> connection) {
> ConnectionPool connPool = new ConnectionPool(connection,
> getPoolFactory());
> connPool.setIdleTimeout(idleTimeout);
>
> return connPool;
> }
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.