000039169 - How to configure the Application to detect lost Database Connections in RSA Identity Governance & Lifecycle

Document created by RSA Customer Support Employee on Jul 24, 2020Last modified by RSA Customer Support Employee on Jul 24, 2020
Version 2Show Document
  • View in full screen mode

Article Content

Article Number000039169
Applies ToRSA Product Set: RSA Identity Governance & Lifecycle
RSA Version/Condition: 7.0.x, 7.1.0
Platform/Application Server: WildFly
Platform (DB): Remote Oracle database
IssueIn a Remote Oracle database setup, there is a chance that the remote Oracle connections could get dropped for some reason. It could be done by a firewall or some other networking infrastructure that might think a connection is idle while a stored procedure (e.g. a Collection) is taking some time to finish and drop the connection. When the network connection for an Oracle session gets dropped, the client (the RSA Identity Governance & Lifecycle application in this case) does not get notified of the event, so it keeps waiting indefinitely for the response to arrive from the server. In order to prevent such cases and be able to detect connection interruptions, ConnectionPools (in various Application Servers) have configuration options for validating existing database connections.
ResolutionIn every Application Server's Connection Pool configuration there is an option to periodically test the connection and close it when it goes down. Starting in RSA Identity Governance & Lifecycle 7.1.1 these settings are enabled by default. Prior to 7.1.1 to modify the default WildFly settings to properly detect database connectivity issues, the $AVEKSA_HOME/wildfly/standalone/configuration/aveksa-standalone-full.xml (or $AVEKSA_HOME/wildfly/domain/configuration/domain.xml file in a cluster) file can be modified as shown below. Make these modifications for every <datasource> and <xa-datasource> section in the configuration file. These modifications enable a check on the database connections every 30 seconds.

    <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"/>
    <stale-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker"/>
    <exception-sorter class-name="com.aveksa.jdbc.OracleExceptionSorter"/>