PlsqlConnectionValidation
Specifies the mechanism mod_plsql should use to detect dead connections in its connection pool.
For performance reasons, mod_plsql pools database connections. If a database instance goes down, and mod_plsql was maintaining a pool of connections to
the instance, then each pooled database connection results in an error when it is next used to service a request. This can be a concern in HA
configurations like RAC where even if one node goes down, other nodes servicing the database might have been able to service the request
successfully. mod_plsql provides for a mechanism whereby it can self-correct after it detects a failure that could be caused by a database node going down.
This mechanism to self-correct is controlled by the parameter PlsqlConnectionvalidation
.
- When set to
Automatic
, mod_plsql will test all pooled database connections which were created prior to the detection of a failure that could mean a instance failure - When set to
ThrowAwayOnFailure
, mod_plsql will throw away all pooled database connections which were created prior to the detection of a failure that could mean a instance failure - When set to
AlwaysValidate
, mod_plsql will always test all pooled database connections prior to issuing a request. Since this option has an associated performance overhead for each request, this should be used with caution - When set to
NeverValidate
, mod_plsql will never ping any pooled database connection. This option allows for older behaviour in mod_plsql
- Syntax:
- PlsqlConnectionValidation Automatic
- PlsqlConnectionValidation ThrowAwayOnFailure
- PlsqlConnectionValidation NeverValidate
- PlsqlConnectionValidation AlwaysValidate
- Default:
- Automatic
- Example:
- PlsqlConnectionValidation ThrowAwayOnFailure
Notes: When mod_plsql encounters one of the following errors, it assumes that the database might have gone down:
- ORA-00443: background process did not start
- ORA-00444: background process failed while starting
- ORA-00445: background process did not start after x seconds
- ORA-00447: fatal error in background process
- ORA-00448: normal completion of background process
- ORA-00449: background process unexpectedly terminated with error
- ORA-00470: LGWR process terminated with error
- ORA-00471: DBWR process terminated with error
- ORA-00472: PMON process terminated with error
- ORA-00473: ARCH process terminated with error
- ORA-00474: SMON process terminated with error
- ORA-00475: TRWR process terminated with error
- ORA-00476: RECO process terminated with error
- ORA-00480: LCK* process terminated with error
- ORA-00481: LMON process terminated with error
- ORA-00482: LMD* process terminated with error
- ORA-00484: LMS* process terminated with error
- ORA-00485: DIAG process termianted with error
- ORA-01014: ORACLE shutdown in progress
- ORA-01033: ORACLE initialization or shutdown in progress
- ORA-01034: ORACLE not available
- ORA-01041: internal error. hostdef extension doesn't exist
- ORA-01077: background process initialization failure
- ORA-01089: immediate shutdown in progress - no operations permitted
- ORA-01090: shutdown in progress - connection is not permitted
- ORA-01091: failure during startup force
- ORA-01092: ORACLE instance terminated. Disconnection forced
- ORA-03106: fatal two-task communication protocol error
- ORA-03113: end-of-file on communication channel
- ORA-03114: not connected to ORACLE
- ORA-12570: TNS: packet writer failure
- ORA-12571: TNS: packet writer failure