Issue
- We had two production outages today and observed the following error:
ERROR [liferay/search_writer/SYSTEM_ENGINE-7][ElasticsearchIndexWriter:143]
java.lang.IllegalStateException: Future got interrupted
Caused by: javax.resource.ResourceException: IJ000470:
You are trying to use a connection factory that has been shut down:
java:jboss/datasources/LiferayPool at
org.jboss.jca.core.connectionmanager.AbstractConnectionManager.allocateConnection
(AbstractConnectionManager.java:777)
at org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:138)
... 94 more
Environment
- DXP 7.2
Resolution
- This error is a known issue identified by Redhat: https://access.redhat.com/solutions/25307
Additional Information
- Generally speaking datasource connection types typically have capabilities to test and discard connections that have failed. Based on this stacktrace snippet it looks to be using a JNDI defined connection using a JBoss connection pool so in this situation you may want to configure there to test a connection before handing it to an application for use. However, given JBoss is a third party software we are again just diagnosing broadly here for this is dependent on specific implementation as well. It is hard to say then concretely as we suspect this also isn’t testing that someone would manually do, so it’s again likely a configuration on the pool to have it test and verify connections before handing them out.