Check your oracle database for blocking locks existing longer then MAXAGE. This is useful for some cases (time critical batch jobs etc....)
locks will be identified by:
select count(*) from v$lock and blocking=1 and
ctime >= MAXAGEYou can define your maxage (paticulars in seconds)
ORALCK is the enclosing tag for all databases to check.
0 or 1. If you don't define ORALCK, no oralck check will run.
<ORALCK>
<DATABASE>
<ORACLE_HOME>/usr/local/oracle/product/9.2.0</ORACLE_HOME>
<ORACLE_SID>osmart</ORACLE_SID>
<MAXAGE>400</MAXAGE>
<ERRORLEVEL>WARNING</ERRORLEVEL>
</DATABASE>
<DATABASE>
<ORACLE_HOME>/usr/local/oracle/product/9.2.0</ORACLE_HOME>
<ORACLE_SID>osmart2</ORACLE_SID>
<MAXAGE>150</MAXAGE>
<ERRORLEVEL>FATAL</ERRORLEVEL>
<DESCRIPTION>immediate kill the blocking session</DESCRIPTION>
</DATABASE>
</ORALCK>
for every database you want to check you you define the DATABASE-pair
The common XML tags as described in Section 9.8, “Tags Common to All Checks and/or Checkpoints”
As many as you like.
Look at ORALCK
This entity describes the maximum of seconds a blocking lock may exists before it is recognized by an error.
number (in seconds)
1
<ORALCK>
<DATABASE>
<ORACLE_HOME>/usr/local/oracle/product/9.2.0</ORACLE_HOME>
<ORACLE_SID>osmart</ORACLE_SID>
<MAXAGE>400</MAXAGE>
<ERRORLEVEL>WARNING</ERRORLEVEL>
</DATABASE>
<DATABASE>
<ORACLE_HOME>/usr/local/oracle/product/9.2.0</ORACLE_HOME>
<ORACLE_SID>osmart2</ORACLE_SID>
<MAXAGE>150</MAXAGE>
<ERRORLEVEL>FATAL</ERRORLEVEL>
<DESCRIPTION>immediate kill the blocking session</DESCRIPTION>
</DATABASE>
</ORALCK>