@ECHO OFF REM ####################################################################### REM # REM # Licensed Material - Property Of IBM and/or HCL REM # REM # "Restricted Materials of IBM" REM # REM # IBM Informix Dynamic Server REM # REM # Copyright IBM Corporation 1996, 2011 REM # (c) Copyright HCL Technologies Ltd. 2017. All Rights Reserved. REM # # REM # Created: April 25, 1997 # REM # Description: Default System Alarm Program Script # REM # # REM # # REM # When the server encounters an Assertion Failure, it calls this script # REM # with the following 12 arguments: # REM # # REM # $1 Assertion event class (ALRM_AFWARN==1, ALRM_AFFAIL==2, # REM # ALRM_AFCRASH==3) # REM # $2 ID of assertion instance (Currently unused) # REM # $3 Assertion failure file name # REM # $4 Session ID # REM # $5 rstcb address # REM # $6 Thread ID # REM # $7 tcb address # REM # $8 Data 1 (bitmask) # REM # $9 Data 2 (Currently unused) # REM # $10 Data 3 (Currently unused) # REM # $11 Data 4 (Currently unused) # REM # $12 Data 5 (Currently unused) # REM # # REM ########################################################################## REM # # REM # GLOBALS # REM # OnLine Administrators are encouraged to configure the behavior of this # REM # script by making use of the following globals: # REM # OUTPUT # REM # Setting OUTPUT to "off" will prevent any diagnostics and skip all # REM # output. This feature may be useful during testing. The default # REM # value is "on". # SET OUTPUT=on REM # BLOCK_SYSTEM # REM # Set this variable to "on" if you would like the system frozen # REM # while evidence is gathered. The script will automatically release# REM # the system when finished. The default value is "off" # REM # # REM # WARNING!!! if BLOCK_SYSTEM is set to "on" on the primary node of # REM # a cluster (HDR/RSS/SDS), then the primary server will be shutdown # REM # when the unblock occurs. This is done to prevent the problem of # REM # two primary nodes (i.e. 'split-brain') should failover occur # REM # while the primary is blocked. # SET BLOCK_SYSTEM=off REM # WRITE_TO_CONSOLE # REM # Set this variable to "off" to prevent a summary description of the# REM # failure from being written to the console (as defined by CONSOLE # REM # in your OnLine configuration file). This is always off for NT. # SET WRITE_TO_CONSOLE=off REM # Email notification # REM # The script can be configured to email, notification of the failure# REM # to a local DBA as well as to a special "RAS" alias within Informix# REM # Software. ("RAS" stands for "Reliability, Availability and # REM # Supportability"--the project which spawned SYSALARMPROG.) # REM # This feature is not supported on Windows NT. # REM # SEND_DBA_MAIL # REM # Set this global to "on" if you would like the script to send email# REM # to a local DBA. The default is "off". # REM # DBA # REM # Set DBA to the email address of the local DBA. By default, DBA is# REM # set to "informix". # REM # SEND_RAS_MAIL # REM # Set this global to "on" if you would like the script to send email# REM # to the "RAS" alias at Informix Software. The default is "on". # REM # RAS # REM # Set RAS to the email address of the "RAS" alias at Informix # REM # Software. RAS is set to "rasnotice@informix.com" by default. # SET SEND_DBA_MAIL=off SET DBA=informix SET DOMAIN= SET SEND_RAS_MAIL=off SET RAS=rasnotice@informix.com REM # COMPRESS # REM # Depending on the type of assertion failure and the current value of# REM # the relavent AF* configuration parameter, this script may produce # REM # a shared memory dump. By default, the shared memory data is piped # REM # directly into the command stored in the COMPRESS global, whose # REM # output is then redirected into a file. The idea is to set COMPRESS# REM # equal to a compression command, thus avoiding the creation of a # REM # full-size REM # shared memory dump file which could overwhelm the file system # REM # containing DUMPDIR. By default COMPRESS is set to the "compress" # REM # command, but any compression program will do, as long as it accepts# REM # input from standard in and sends it to standard out. Note that the# REM # command must be fully enclosed in double quotes (") if it involves # REM # any arguments. # REM # If you would prefer that the shared memory data *not* be compressed# REM # set the COMPRESS global to "None". # REM # This command must be quoted if it involves arguments. REM # Set to "None" for no compression SET COMPRESS="None" REM # COMPRESS_SUFFIX # REM # When producing a compressed shared memory dump it's best to give # REM # the file an appropriate suffix. Since COMPRESS is set to the # REM # "compress" command by default, the default suffix is "Z". Note # REM # that a "." will automatically separate the suffix from the rest of# REM # the file name. # SET COMPRESS_SUFFIX= IF NOT %COMPRESS% == "None" SET COMPRESS_SUFFIX=".ZIP" REM # DIAG_AFWARN # REM # By default, diagnostics are not performed for assertion warnings, # REM # but only for assertion *failures*. To perform diagnostics for # REM # warnings as well, set this variable to "on". # SET DIAG_AFWARN=off REM # DEBUG # REM # If the script is behaving strangely, setting this global to "on" # REM # can help with troubleshooting, providing a window into variable # REM # settings, for example. The default value is "off". # SET DEBUG=on REM # REM ########################################################################## REM # IF "%OUTPUT%" == "off" exit 0 REM # We have nothing to live for... REM ########################################################################## REM # Script Arguments # REM ########################################################################## REM # Assertion Failure Class SET AF_CLASS=%1 REM # Assertion Failure directory for NT. SET AF_DIR=%2 REM # Assertion Failure file name SET AF_FILE_NAME=%3 REM # Session ID SET SES_ID=%4 REM # RSAM Task Control Block address SET RSTCB=%5 REM # Thread ID SET THREAD_ID=%6 REM # Thread Control Block address SET TCB=%7 REM # Value of AFWARN, AFFAIL, or AFCRASH config param SET BITMASK=%8 REM ########################################################################## REM # Windows NT Variables # REM ########################################################################## REM # MYECHO # REM # Set the alias for NT echo command. $ SET MYECHO=echo IF "x%AF_DIR%" == "x" SET AF_DIR=C:\TMP SET AF_FILE=%AF_DIR%\%AF_FILE_NAME% SET DUMPDIR=%AF_DIR% SET TMPDIR=%TMP% IF "x%TMPDIR%" == "x" SET TMPDIR=C:\TMP SET WINROOT=%SystemRoot% IF "x%WINROOT%" == "x" SET WINROOT=C:\WINNT REM ########################################################################## REM # Tech Support Globals for NT # REM ########################################################################## REM # These variables should only be modified by Informix Tech Support. # REM # These are specific to Windows NT evidence.sh. # REM ########################################################################## REM # Tech Support Globals # REM ########################################################################## REM # The following variables should be modified by Informix Tech Support # REM # only REM # "on" or "off" (Default is "off") SET DO_ONSTAT_G_ALL=off REM # "on" or "off" (Default is "off") SET DO_ONSTAT_A=off REM # "on" or "off" (Default is "off") SET PRINT_POOL=off REM # Ten minutes ought to be enough for onstats SET SHORT_BLOCK_TIME=600 REM # This is for the shared memory dump SET LONG_BLOCK_TIME=3600 SET CONSOLE= SET IBIN=%INFORMIXDIR%\bin SET ONSTAT=%IBIN%\onstat SET ONCHECK=%IBIN%\oncheck SET ONMODE=%IBIN%\onmode REM REM #Attempting to ensure that we get the right echo command REM SET PATH=%PATH% REM REM # This may be of use eventually, when we're passed an assertion REM # instance ID. REM SET POOL=0 REM REM ########################################################################## REM # Other Initializations # REM ########################################################################## REM # These variables aren't meant to be configured at all. # REM # Please don't touch. # REM SET ALRM_AFWARN=1 SET ALRM_AFFAIL=2 SET ALRM_AFCRASH=3 SET RETURN_VAL=NULL SET display_message=0 SET dump_core_file=0 SET dump_gcore_file=0 SET dump_shared_memory=0 SET hang_server=0 SET required_thread_hang=0 SET checkhang=0 SET checkcrash=0 SET checkrelease=0 SET crash_server=0 REM ########################################################################## REM # # REM # MAIN BODY OF SCRIPT # REM # # REM ########################################################################## echo. >> %AF_FILE% echo --------------------------------- >> %AF_FILE% echo Begin System Alarm Program Output >> %AF_FILE% echo --------------------------------- >> %AF_FILE% echo. >> %AF_FILE% REM REM # First let's make sure shared memory is up. If not, there's no point REM # in going further. REM %ONSTAT% - | %WINROOT%\System32\find /I "shared memory not initialized" IF ERRORLEVEL 1 goto SHARED_MEMORY_UP echo Shared memory is not initialized. >> %AF_FILE% echo SYSALARMPROG quitting. >> %AF_FILE% echo. >> %AF_FILE% echo ------------------------------- >> %AF_FILE% echo End System Alarm Program Output >> %AF_FILE% echo ------------------------------- >> %AF_FILE% echo. >> %AF_FILE% exit 1 : SHARED_MEMORY_UP if not "%DEBUG%" == "on" goto DEBUG_NOT_ON_1 echo. >> %AF_FILE% echo +-+-+-+-+-+-+-+-+-+-+-+-+-+ >> %AF_FILE% echo SYSALARMPROG Debug Info ON >> %AF_FILE% echo +-+-+-+-+-+-+-+-+-+-+-+-+-+ >> %AF_FILE% echo. >> %AF_FILE% echo Arguments: >> %AF_FILE% echo AF_CLASS = %AF_CLASS% >> %AF_FILE% echo AF_ID = %AF_ID% >> %AF_FILE% echo AF_FILE = %AF_FILE% >> %AF_FILE% echo SES_ID = %SES_ID% >> %AF_FILE% echo RSTCB = %RSTCB% >> %AF_FILE% echo THREAD_ID = %THREAD_ID% >> %AF_FILE% echo TCB = %TCB% >> %AF_FILE% echo BITMASK = %BITMASK% >> %AF_FILE% echo AF_DIR = %AF_DIR% >> %AF_FILE% echo. >> %AF_FILE% REM # The bitmask, passed as parameter number 8, is the value of the REM # assertion failure configuration parameter (AFCRASH, AFFAIL, or AFWARN) REM # associated with this event. These bits help us understand how the REM # engine will react to the event, and we can base some decisions on REM # that (future) reaction. REM # REM # The bitmask is a combination of bit values with the following meanings: REM # REM # Bitmask value Desired result REM # ------------- -------------- REM # 0x1 Display message to message file REM # 0x2 Dump a core file REM # 0x4 Dump a gcore file REM # 0x8 Dump shared memory REM # 0x10 Hang server REM # 0x20 Hang thread REM # 0x40 Hang thread if possible, otherwise hang server REM # 0x80 Hang thread if possible, otherwise crash server REM # 0x100 Hang thread if possible, otherwise allow it to REM # continue REM # 0x200 Crash server REM # REM # In the case of bit value 0x8, this script is responsible for dumping REM # shared memory. In all other cases the server is responsible for taking REM # the desired action. echo Bits on: >> %AF_FILE% : DEBUG_NOT_ON_1 SET BITSET=0 SET /A BITSET="%BITMASK% & 1" IF NOT %BITSET% == 1 goto BIT_MASK_NOT_1 SET display_message=1 IF NOT "%DEBUG%" == "on" goto BIT_MASK_NOT_1 echo display_message (Server will display message to message file) >> %AF_FILE% : BIT_MASK_NOT_1 SET BITSET=0 SET /A BITSET="%BITMASK% & 2" IF NOT %BITSET% == 2 goto BIT_MASK_NOT_2 SET dump_core_file=1 IF NOT "%DEBUG%" == "on" goto BIT_MASK_NOT_2 echo dump_core_file (Server will produce a core file) >> %AF_FILE% : BIT_MASK_NOT_2 SET BITSET=0 SET /A BITSET="%BITMASK% & 4" IF NOT %BITSET% == 4 goto BIT_MASK_NOT_4 SET dump_gcore_file=1 IF NOT "%DEBUG%" == "on" goto BIT_MASK_NOT_4 echo dump_gcore_file (Server will produce a gcore file) >> %AF_FILE% : BIT_MASK_NOT_4 SET BITSET=0 SET /A BITSET="%BITMASK% & 8" IF NOT %BITSET% == 8 goto BIT_MASK_NOT_8 SET dump_shared_memory=1 IF NOT "%DEBUG%" == "on" goto BIT_MASK_NOT_8 echo dump_shared_memory (SYSALARMPROG will dump shared memory) >> %AF_FILE% : BIT_MASK_NOT_8 SET BITSET=0 SET /A BITSET="%BITMASK% & 16" IF NOT %BITSET% == 16 goto BIT_MASK_NOT_16 SET hang_server=1 IF NOT "%DEBUG%" == "on" goto BIT_MASK_NOT_16 echo hang_server (Server will hang) >> %AF_FILE% : BIT_MASK_NOT_16 SET BITSET=0 SET /A BITSET="%BITMASK% & 32" IF NOT %BITSET% == 32 goto BIT_MASK_NOT_32 SET required_thread_hang=1 IF NOT "%DEBUG%" == "on" goto BIT_MASK_NOT_32 echo required_thread_hang (Thread will hang) >> %AF_FILE% : BIT_MASK_NOT_32 SET BITSET=0 SET /A BITSET="%BITMASK% & 64" IF NOT %BITSET% == 64 goto BIT_MASK_NOT_64 SET checkhang=1 IF NOT "%DEBUG%" == "on" goto BIT_MASK_NOT_64 echo checkhang (Either thread will hang or server will hang) >> %AF_FILE% : BIT_MASK_NOT_64 SET BITSET=0 SET /A BITSET="%BITMASK% & 128" IF NOT %BITSET% == 128 goto BIT_MASK_NOT_128 SET checkcrash=1 IF NOT "%DEBUG%" == "on" goto BIT_MASK_NOT_128 echo checkcrash (Either thread will hang or server will crash) >> %AF_FILE% : BIT_MASK_NOT_128 SET BITSET=0 SET /A BITSET="%BITMASK% & 256" IF NOT %BITSET% == 256 goto BIT_MASK_NOT_256 SET checkrelease=1 IF NOT "%DEBUG%" == "on" goto BIT_MASK_NOT_256 echo checkrelease (Either thread will hang or thread will) >> %AF_FILE% : BIT_MASK_NOT_256 SET BITSET=0 SET /A BITSET="%BITMASK% & 512" IF NOT %BITSET% == 512 goto BIT_MASK_NOT_512 SET crash_server=1 IF NOT "%DEBUG%" == "on" goto BIT_MASK_NOT_512 echo crash_server (Server will crash) >> %AF_FILE% : BIT_MASK_NOT_512 : DEBUG_NOT_ON_DISPLAY if not "%DEBUG%" == "on" goto DEBUG_NOT_ON_2 echo. >> %AF_FILE% echo Global settings: >> %AF_FILE% echo BLOCK_SYSTEM = %BLOCK_SYSTEM% >> %AF_FILE% echo DIAG_AFWARN = %DIAG_AFWARN% >> %AF_FILE% echo WRITE_TO_CONSOLE = %WRITE_TO_CONSOLE% >> %AF_FILE% echo DBA = %DBA% >> %AF_FILE% echo SEND_DBA_MAIL = %SEND_DBA_MAIL% >> %AF_FILE% echo RAS = %RAS% >> %AF_FILE% echo SEND_RAS_MAIL = %SEND_RAS_MAIL% >> %AF_FILE% echo COMPRESS = %COMPRESS% >> %AF_FILE% echo COMPRESS_SUFFIX = %COMPRESS_SUFFIX% >> %AF_FILE% echo DO_ONSTAT_G_ALL = %DO_ONSTAT_G_ALL% >> %AF_FILE% echo DO_ONSTAT_A = %DO_ONSTAT_A% >> %AF_FILE% echo PRINT_POOL = %PRINT_POOL% >> %AF_FILE% echo SHORT_BLOCK_TIME = %SHORT_BLOCK_TIME% >> %AF_FILE% echo LONG_BLOCK_TIME = %LONG_BLOCK_TIME% >> %AF_FILE% echo CONSOLE = %CONSOLE% >> %AF_FILE% echo DUMPDIR = %DUMPDIR% >> %AF_FILE% echo IBIN = %IBIN% >> %AF_FILE% echo ONSTAT = %ONSTAT% >> %AF_FILE% echo ONCHECK = %ONCHECK% >> %AF_FILE% echo ONMODE = %ONMODE% >> %AF_FILE% echo. >> %AF_FILE% : DEBUG_NOT_ON_2 REM # Send a summary of the problem to the AF file and (possibly) to the # REM # console. # REM # In NT, We will not send this to the console. # if "%1" == "Warning" echo Assertion Failure Type: Warning >> %AF_FILE% if "%1" == "FAILURE" echo Assertion Failure Type: Warning >> %AF_FILE% if "%1" == "CRASH" echo Assertion Failure Type: Warning >> %AF_FILE% rem rem Get this from the environment variable. rem SET HOSTNAME=%COMPUTERNAME% echo Host Name: %HOSTNAME% >> %AF_FILE% SET DBSERVERNAME=%INFORMIXSERVER% echo Database Server Name: %DBSERVERNAME% >> %AF_FILE% REM REM Get the time. Making sure that find is called from winnt directory REM and not conflict with mks find. REM echo. >>%AF_FILE% echo Date and Time of failure: >> %AF_FILE% date < NUL | %WINROOT%\System32\find "current" >> %AF_FILE% time < NUL | %WINROOT%\System32\find "current" >> %AF_FILE% IF NOT "%dump_shared_memory%" == "1" goto NO_DUMP_SHM : DMP0 IF EXIST %DUMPDIR%\shmem.%AF_FILE_NAME%.1%COMPRESS_SUFFIX% goto DMP1 SET DUMPFILE=%DUMPDIR%\shmem.%AF_FILE_NAME%.1 goto END_DMP_SHM_1_LABEL : DMP1 IF EXIST %DUMPDIR%\shmem.%AF_FILE_NAME%.2%COMPRESS_SUFFIX% goto DMP2 SET DUMPFILE=%DUMPDIR%\shmem.%AF_FILE_NAME%.2 goto END_DMP_SHM_1_LABEL : DMP2 IF EXIST %DUMPDIR%\shmem.%AF_FILE_NAME%.3%COMPRESS_SUFFIX% goto DMP3 SET DUMPFILE=%DUMPDIR%\shmem.%AF_FILE_NAME%.3 goto END_DMP_SHM_1_LABEL : DMP3 IF EXIST %DUMPDIR%\shmem.%AF_FILE_NAME%.4%COMPRESS_SUFFIX% goto DMP4 SET DUMPFILE=%DUMPDIR%\shmem.%AF_FILE_NAME%.4 goto END_DMP_SHM_1_LABEL : DMP4 IF EXIST %DUMPDIR%\shmem.%AF_FILE_NAME%.5%COMPRESS_SUFFIX% goto DMP5 SET DUMPFILE=%DUMPDIR%\shmem.%AF_FILE_NAME%.5 goto END_DMP_SHM_1_LABEL : DMP5 IF EXIST %DUMPDIR%\shmem.%AF_FILE_NAME%.6%COMPRESS_SUFFIX% goto DMP6 SET DUMPFILE=%DUMPDIR%\shmem.%AF_FILE_NAME%.6 goto END_DMP_SHM_1_LABEL : DMP6 IF EXIST %DUMPDIR%\shmem.%AF_FILE_NAME%.7%COMPRESS_SUFFIX% goto DMP7 SET DUMPFILE=%DUMPDIR%\shmem.%AF_FILE_NAME%.7 goto END_DMP_SHM_1_LABEL : DMP7 IF EXIST %DUMPDIR%\shmem.%AF_FILE_NAME%.8%COMPRESS_SUFFIX% goto DMP8 SET DUMPFILE=%DUMPDIR%\shmem.%AF_FILE_NAME%.8 goto END_DMP_SHM_1_LABEL : DMP8 IF EXIST %DUMPDIR%\shmem.%AF_FILE_NAME%.9%COMPRESS_SUFFIX% goto DMP9 SET DUMPFILE=%DUMPDIR%\shmem.%AF_FILE_NAME%.9 goto END_DMP_SHM_1_LABEL : DMP9 IF EXIST %DUMPDIR%\shmem.%AF_FILE_NAME%.10%COMPRESS_SUFFIX% goto NO_DUMP_SHM SET DUMPFILE=%DUMPDIR%\shmem.%AF_FILE_NAME%.10 goto END_DMP_SHM_1_LABEL : NO_DUMP_SHM SET DUMPFILE="None" : END_DMP_SHM_1_LABEL echo. >>%AF_FILE% echo Shared memory file: %DUMPFILE% >> %AF_FILE% if not "%BLOCK_SYSTEM%" == "on" goto BLOCK_SYSTEM_NOT_ON_END_1 echo. >>%AF_FILE% echo System Blocking: ON >> %AF_FILE% %ONMODE% -iy block %SHORT_BLOCK_TIME% goto BLOCK_SYSTEM_NOT_ON_END_1 : BLOCK_SYSTEM_NOT_ON_END_1 echo. >> %AF_FILE% echo. >> %AF_FILE% REM # End summary # if not "%AF_CLASS%" == "%ALRM_AFWARN%" goto AF_CLASS_NOT_GOOD if "%DIAG_AFWARN%" == "on" goto AF_CLASS_NOT_GOOD if not "%BLOCK_SYSTEM%" == "on" goto BLOCK_SYSTEM_NOT_ON_2 %ONMODE% -i unblock : BLOCK_SYSTEM_NOT_ON_2 echo ------------------------------- >> %AF_FILE% echo End System Alarm Program Output >> %AF_FILE% echo ------------------------------- >> %AF_FILE% echo. >> %AF_FILE% exit 0 : BLOCK_SYSTEM_NOT_ON_END_2 : AF_CLASS_NOT_GOOD REM REM UNIX folks get the MSGPATH from ONCONFIG file and do 'tail -100' REM For NT, we will do an onstat -m only. REM echo ===========------------- - - - - - - >> %AF_FILE% echo onstat -m: >> %AF_FILE% onstat -m >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% rem rem NT does not have concept of checking Greater than, Therefore rem We will assume that the server passes a valid THREAD_ID (> 1) rem echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g ath: %THREAD_ID% >> %AF_FILE% %ONSTAT% -g ath >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% if not "%THREAD_ID%" == "0" goto THREAD_ID_NOT_ZERO_1 echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g stk all %THREAD_ID%: >> %AF_FILE% %ONSTAT% -g stk all >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% SET GOT_ALL_STACKS=yes goto THREAD_ID_NOT_ZERO_END_1 : THREAD_ID_NOT_ZERO_1 if not "%BLOCK_SYSTEM%" == "on" goto BLOCK_SYSTEM_NOT_ON_3 echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g stk %THREAD_ID%: >> %AF_FILE% %ONSTAT% -g stk %THREAD_ID% >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% goto BLOCK_SYSTEM_NOT_ON_END_3 : BLOCK_SYSTEM_NOT_ON_3 echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g stk %THREAD_ID% light: >> %AF_FILE% %ONSTAT% -g stk %THREAD_ID% light >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% : BLOCK_SYSTEM_NOT_ON_END_3 SET GOT_ALL_STACKS=no : THREAD_ID_NOT_ZERO_END_1 if "%SES_ID%" == "0" goto SES_ID_0_1 echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -u: %SES_ID% >> %AF_FILE% rem # The following command parses an onstat -u and adds a "*" to the rem # line for the session that failed. %ONSTAT% -u >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g ses %SES_ID%: >> %AF_FILE% %ONSTAT% -g ses %SES_ID% >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g env %SES_ID%: >> %AF_FILE% %ONSTAT% -g env %SES_ID% >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g sql %SES_ID%: >> %AF_FILE% %ONSTAT% -g sql %SES_ID% >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% : SES_ID_0_1 if not "%DO_ONSTAT_A%" == "on" goto DO_ONSTAT_A_ON_1 echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -a: >> %AF_FILE% %ONSTAT% -a >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% goto DO_ONSTAT_A_ON_END_1 : DO_ONSTAT_A_ON_1 echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -c: >> %AF_FILE% %ONSTAT% -c >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% if not "%SES_ID%" == "0" goto SES_ID_0_2 echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -u: >> %AF_FILE% %ONSTAT% -u >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% : SES_ID_0_2 echo ===========------------- - - - - - - >> %AF_FILE% echo *: >> %AF_FILE% echo %ONSTAT% -s: >> %AF_FILE% %ONSTAT% -s >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -k: >> %AF_FILE% %ONSTAT% -k >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -b: >> %AF_FILE% %ONSTAT% -b >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -t: >> %AF_FILE% %ONSTAT% -t >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -d: >> %AF_FILE% %ONSTAT% -d >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -l: >> %AF_FILE% %ONSTAT% -l >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -p: >> %AF_FILE% %ONSTAT% -p >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -x: >> %AF_FILE% %ONSTAT% -x >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -f: >> %AF_FILE% %ONSTAT% -f >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -h: >> %AF_FILE% %ONSTAT% -h >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -C all: >> %AF_FILE% %ONSTAT% -C all >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -F: >> %AF_FILE% %ONSTAT% -F >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -R: >> %AF_FILE% %ONSTAT% -R >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% if not "%DO_ONSTAT_G_ALL%" == "on" goto DO_ONSTAT_G_ALL_ON_1 echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g all: >> %AF_FILE% %ONSTAT% -g all >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% goto DO_ONSTAT_G_ALL_ON_END_1 : DO_ONSTAT_G_ALL_ON_1 echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g glo: >> %AF_FILE% %ONSTAT% -g glo >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g qst: >> %AF_FILE% %ONSTAT% -g qst >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g wst: >> %AF_FILE% %ONSTAT% -g wst >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g spi: >> %AF_FILE% %ONSTAT% -g spi >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g lmx: >> %AF_FILE% %ONSTAT% -g lmx >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g wmx: >> %AF_FILE% %ONSTAT% -g wmx >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g con: >> %AF_FILE% %ONSTAT% -g con >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% if not "%GOT_ALL_STACKS%" == "no" goto GOT_ALL_STACK_NO echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g stk all: >> %AF_FILE% %ONSTAT% -g stk all >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% : GOT_ALL_STACK_NO echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g mem: >> %AF_FILE% %ONSTAT% -g mem >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g seg: >> %AF_FILE% %ONSTAT% -g seg >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g rbm: >> %AF_FILE% %ONSTAT% -g rbm >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g nbm: >> %AF_FILE% %ONSTAT% -g nbm >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g dic: >> %AF_FILE% %ONSTAT% -g dic >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g dsc: >> %AF_FILE% %ONSTAT% -g dsc >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g prc: >> %AF_FILE% %ONSTAT% -g prc >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g cac: >> %AF_FILE% %ONSTAT% -g cac >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g sch: >> %AF_FILE% %ONSTAT% -g sch >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g pos: >> %AF_FILE% %ONSTAT% -g pos >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% if not "%PRINT_POOL%" == "on" goto PRINT_POOL_ON if "%POOL%" == "0" goto POOL_IS_0 echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g afr %POOL%: >> %AF_FILE% %ONSTAT% -g afr %POOL% >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g ffr %POOL%: >> %AF_FILE% %ONSTAT% -g ffr %POOL% >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g ufr %POOL%: >> %AF_FILE% %ONSTAT% -g ufr %POOL% >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% : POOL_IS_0 : PRINT_POOL_ON echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g ioa: >> %AF_FILE% %ONSTAT% -g ioa >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g nta: >> %AF_FILE% %ONSTAT% -g nta >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g nsd: >> %AF_FILE% %ONSTAT% -g nsd >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g nsc: >> %AF_FILE% %ONSTAT% -g nsc >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% rem rem #ev_pretty %ONSTAT% -g ntb # NT only rem echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g nss: >> %AF_FILE% %ONSTAT% -g nss >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g sts: >> %AF_FILE% %ONSTAT% -g sts >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g ses 0: >> %AF_FILE% %ONSTAT% -g ses 0 >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g sql: >> %AF_FILE% %ONSTAT% -g sql >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g stq: >> %AF_FILE% %ONSTAT% -g stq >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g opn: >> %AF_FILE% %ONSTAT% -g opn >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g dri: >> %AF_FILE% %ONSTAT% -g dri >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g rss: >> %AF_FILE% %ONSTAT% -g rss >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g rss verbose: >> %AF_FILE% %ONSTAT% -g rss verbose >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g sds: >> %AF_FILE% %ONSTAT% -g sds >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g sds verbose: >> %AF_FILE% %ONSTAT% -g sds verbose >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g ipl: >> %AF_FILE% %ONSTAT% -g ipl >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g smx: >> %AF_FILE% %ONSTAT% -g smx >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g ppf: >> %AF_FILE% %ONSTAT% -g ppf >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g tpf: >> %AF_FILE% %ONSTAT% -g tpf >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g tgp: >> %AF_FILE% %ONSTAT% -g tgp >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g pgp: >> %AF_FILE% %ONSTAT% -g pgp >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g mgm: >> %AF_FILE% %ONSTAT% -g mgm >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g smb s: >> %AF_FILE% %ONSTAT% -g smb s >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g smb c: >> %AF_FILE% %ONSTAT% -g smb c >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g lsc: >> %AF_FILE% %ONSTAT% -g lsc >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g lap: >> %AF_FILE% %ONSTAT% -g lap >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g ddr: >> %AF_FILE% %ONSTAT% -g ddr >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - ->> %AF_FILE% echo %ONSTAT% -g dis: >> %AF_FILE% %ONSTAT% -g dis >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g arc: >> %AF_FILE% %ONSTAT% -g arc >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g dll: >> %AF_FILE% %ONSTAT% -g dll >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g sym: >> %AF_FILE% %ONSTAT% -g sym >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g cdr: >> %AF_FILE% %ONSTAT% -g cdr >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g ras: >> %AF_FILE% %ONSTAT% -g ras >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g cmsm: >> %AF_FILE% %ONSTAT% -g cmsm >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -g env: >> %AF_FILE% %ONSTAT% -g env >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% : DO_ONSTAT_G_ALL_ON_END_1 : DO_ONSTAT_A_ON_END_1 echo ===========------------- - - - - - - >> %AF_FILE% echo Environment Variables: >> %AF_FILE% echo. >> %AF_FILE% set >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %IBIN%/oninit -V: >> %AF_FILE% %IBIN%/oninit -V >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONSTAT% -V: >> %AF_FILE% %ONSTAT% -V >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONCHECK% -V: >> %AF_FILE% %ONCHECK% -V >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% echo ===========------------- - - - - - - >> %AF_FILE% echo %ONMODE% -V: >> %AF_FILE% %ONMODE% -V >> %AF_FILE% echo. >> %AF_FILE% echo. >> %AF_FILE% IF NOT "%SEND_DBA_MAIL%" == "on" goto SEND_RAS_MAIL NET SEND %DBA% /DOMAIN:%DOMAIN% "Assertion Failure on " %COMPUTERNAME% " SERVER (" %DBSERVERNAME% "). Assertion Failure file :" %AF_FILE% : SEND_RAS_MAIL IF NOT "%SEND_RAS_MAIL%" == "on" goto SEND_RAS_MAIL_OFF NET SEND %DBA% /DOMAIN:%DOMAIN% "Please notify the Assertion Failure information :" %AF_FILE% " to Informix Technical Support :" %RAS% : SEND_RAS_MAIL_OFF REM # This block time extension is done so that if this script fails or exits REM # above this point for any reason, the system won't be blocked for long (a REM # max of SHORT_BLOCK_TIME). However, we do want the system to be blocked REM # during the entire shared memory dump (when blocking is on). if not "%BLOCK_SYSTEM%" == "on" goto BLOCK_SYSTEM_NOT_ON_4 %ONMODE% -i extend %LONG_BLOCK_TIME% : BLOCK_SYSTEM_NOT_ON_4 IF NOT "%dump_shared_memory%" == "1" goto DUMP_SHARED_MEMORY_NOT_1 echo %ONSTAT% -g out ">" %DUMPFILE% >> %AF_FILE% %ONSTAT% -g out > %DUMPFILE% IF %COMPRESS% == "None" goto DUMP_SHARED_MEMORY_NOT_1 echo %COMPRESS% %DUMPFILE%%COMPRESS_SUFFIX% %DUMPFILE% >> %AF_FILE% %COMPRESS% %DUMPFILE%%COMPRESS_SUFFIX% %DUMPFILE% DEL %DUMPFILE% : DUMP_SHARED_MEMORY_NOT_1 if not "%BLOCK_SYSTEM%" == "on" goto BLOCK_SYSTEM_NOT_ON_5 %ONMODE% -i unblock : BLOCK_SYSTEM_NOT_ON_5 echo ------------------------------- >> %AF_FILE% echo End System Alarm Program Output >> %AF_FILE% echo ------------------------------- >> %AF_FILE% echo. >> %AF_FILE% rem exit 0