[
https://issues.apache.org/jira/browse/AMQ-4366?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15880678#comment-15880678
]
Raphiki commented on AMQ-4366:
------------------------------
An expired connection is now not closed if used by an other thread but there is
nothing preventing the loan of an expiryConnection isn't it ?
The
[connectionPool.borrow()|http://grepcode.com/file/repo1.maven.org/maven2/org.apache.activemq/activemq-jms-pool/5.11.0/org/apache/activemq/jms/pool/PooledConnectionFactory.java#236]
just call the expiryCheck() throught the
[validateObject()|http://grepcode.com/file/repo1.maven.org/maven2/org.apache.activemq/activemq-jms-pool/5.11.0/org/apache/activemq/jms/pool/PooledConnectionFactory.java#135]
method but it considers the connection valid (and so reusable) if it has
expired but has still some remaining reference...
On my environment my expiryTimeout of 60 seconds is rarely reached (unless I
assign a connection for each consumer but I can't do that in production
environment).
> PooledConnectionFactory closes connections that are in use
> ----------------------------------------------------------
>
> Key: AMQ-4366
> URL: https://issues.apache.org/jira/browse/AMQ-4366
> Project: ActiveMQ
> Issue Type: Bug
> Components: activemq-pool
> Affects Versions: 5.7.0, 5.8.0
> Reporter: Petr Janata
> Assignee: Timothy Bish
> Fix For: 5.9.0
>
> Attachments: poolConClose.diff
>
>
> {{PooledConnectionFactory}} closes connections that are still referenced and
> should not be closed. Happens only when connection idle or expire time
> passes. Calling {{createConnection}} after that time will invalidate the
> connection and all previously obtained {{Sessions}} will behave as closed.
> Due to default 30 second idle timeout, it is likely not to cause problems
> when:
> * connection is continually in use
> * all {{PooledConnection}} s are borrowed at startup
> Client with session whose connection was prematurely closed will see similar
> stacktrace:
> {noformat}
> javax.jms.IllegalStateException: The Session is closed
> at
> org.apache.activemq.ActiveMQSession.checkClosed(ActiveMQSession.java:731)
> at
> org.apache.activemq.ActiveMQSession.configureMessage(ActiveMQSession.java:719)
> at
> org.apache.activemq.ActiveMQSession.createBytesMessage(ActiveMQSession.java:316)
> at
> org.apache.activemq.pool.PooledSession.createBytesMessage(PooledSession.java:168)
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)