When starting the application an error occurs after "Startup Step 4 : Attempting to start EnvironmentService" start up step, and takes approximately 20 minutes before it logs the error "java.sql.SQLRecoverableException: Closed Connection". After being logged, the server attempts to shut down but fails with a "java.lang.NullPointerException" error.
We are asking for assistance in determining what the cause of this issue could be, as well as any resolutions we could attempt to work on resolving this issue. Below is a log of the errors we are seeing in our JBoss server.log file.
2021-11-22 14:01:32,504 ERROR [ims.jdbc.JDBCManagedObjectProvider] (ServerService Thread Pool -- 108) java.sql.SQLRecoverableException: Closed Connection2021-11-22 14:01:32,506 ERROR [ims.Main] (ServerService Thread Pool -- 108) The IAM FW Startup was not successful2021-11-22 14:01:32,506 ERROR [ims.Main] (ServerService Thread Pool -- 108) java.sql.SQLRecoverableException: Closed Connection at oracle.jdbc.driver.PhysicalConnection.getMetaData(PhysicalConnection.java:2408)
2021-11-22 14:01:32,513 ERROR [stderr] (ServerService Thread Pool -- 108) java.sql.SQLRecoverableException: Closed Connection
Release : 14.4
Component :
The client configured their standalone.xml to have the below configuration for an Oracle Database:
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"/>
<check-valid-connection-sql>select 1 from dual</check-valid-connection-sql>
<validate-on-match>false</validate-on-match>
<background-validation>true</background-validation>
<background-validation-millis>1000</background-validation-millis>
<stale-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker"/>
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter"/>
</validation>
<timeout>
<set-tx-query-timeout>true</set-tx-query-timeout>
<idle-timeout-minutes>8</idle-timeout-minutes>
<query-timeout>300</query-timeout>
<allocation-retry>3</allocation-retry>
<allocation-retry-wait-millis>1000</allocation-retry-wait-millis>
</timeout>
If errors still persist also modify:
<validate-on-match>false</validate-on-match>
to
<validate-on-match>true</validate-on-match>
this will force the application to challenge SQL connections upon request.
Closed Connection: java.sql.SQLRecoverableException: Closed Connection is usually caused by either the SQL server closing connections on the IDM product or a firewall.
The first changes for the class modifications are for Oracle only while the Validate-On-Match can be performed against all supported SQL databases.