[ 
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.

Reply via email to