@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