P6Outage

P6Outage is an open source application included in the P6Spy distribution that detects long-running statements that may be indicative of a database outage problem. The product will log any statement that surpasses the configurable time boundary during its execution. P6Outage was designed to minimize any logging performance overhead by logging only long running statements.

The P6Outage module is disabled by default. To enable it, uncomment the module in spy.properties, see the example below:

#################################################################
# MODULES #
# #
# Modules provide the P6Spy functionality. If a module, such #
# as module_log is commented out, that functionality will not #
# be available. If it is not commented out (if it is active), #
# the functionality will be active. #
# #
# Values set in Modules cannot be reloaded using the #
# reloadproperties variable. Once they are loaded, they remain #
# in memory until the application is restarted. #
# #
#################################################################

#module_log=com.p6spy.engine.logging.P6LogSpyDriver
module_outage=com.p6spy.engine.outage.P6OutageSpyDriver

The following are the module specific properties:

outagedetection

This feature detects long-running statements that may be indicative of a database outage problem. If this feature is turned on, it will log any statement that surpasses the configurable time boundary during its execution. When this feature is enabled, no other statements are logged except the long running statements.

outagedetectioninterval

The interval property is the boundary time set in seconds. For example, if this is set to 2, then any statement requiring at least 2 seconds will be logged. Note that the same statement will continue to be logged for as long as it executes. So if the interval is set to 2, and the query takes 11 seconds, it will be logged 5 times (at the 2, 4, 6, 8, 10 second intervals).

Other Properties

P6Outage also shares some common property file settings that let you specify which tables you want to log, the file and location of the log file, if you want to show the stacktrace (where the JDBC statement is being executed), and more. See the common property file settings for details.