Abnormal Termination
 ABEND Example for Micro Focus Environment
When technology complements business    Copyright © 1987-2012  SimoTime Enterprises  All Rights Reserved
  Table of Contents Version 10.11.01 
  Introduction
  Programming Objectives
  Programming Input and Output
  Programming Requirements
  Programming Overview
  A CMD Member for the Windows Environment
  A JCL Member for the Mainframe Environment
  The COBOL Demonstration Programs
  Display Call Stack, Mainline Program or ABTESTC1
  Display Call Stack, First Call or ABSUBRC1
  Display Call Stack, Second Call or ABSUBRC2
  The COBOL ABEND Routines
  ILBOABN0 Mainframe Utility, a Callable ABEND Routine
  ILBOABN0 Replacements, Callable ABEND Routines for Micro Focus Environments
  Examples of Actual Program Failures
  Divide by Zero, RTS0048
  Numeric with Non-Numeric value, RTS0163 or S0C7
  Called Program not Found, RTS0173
  Compile the Programs, the Micro Focus Directives
  Summary
  Software Agreement and Disclaimer
  Downloads and Links to Similar Pages
  Glossary of Terms
  Comments, Suggestions or Feedback
  Company Overview
The SimoTime Home Page

Introduction
(Next) (Previous) (Table-of-Contents)

An application program may encounter an unexpected condition and a programmer may want to post a message about the condition and terminate the program execution. This suite of sample programs describes how to call an ABEND (ABnormal ENDing) routine in a Micro Focus environment. Also, This routine will make an attempt to call a second routine to display the call stack starting with the program that called the ABEND (or abnormal termination) routine.

This example provides replacement modules (SIMOABN0 and MFEVENTS) for ILBOABN0 or User Written ABEND routines that are used by applications currently running on a mainframe and are being migrated, moved or ported to run in a Linux, UNIX or Windows (LUW) environment with Micro Focus. A sample program (ABTESTC1.CBL) is provided and describes the details of calling and reviewing the output of the ABEND routine.

This suite of programs includes three (3) sample programs that will cause an abnormal termination at execution time. Refer to the Examples of Actual Program Failures section of this document for additional information.

Programming Objectives
(Next) (Previous) (Table-of-Contents)

The primary objective is to provide a programmer with a callable routine that will terminate program execution. The secondary objective is to access the Micro Focus call stack and display the information to a SYSOUT device.

Programming Input and Output
(Next) (Previous) (Table-of-Contents)

The purpose of the sample programs is to test the ABEND routines. The ABEND routines (SIMOABN0 and MFEVENTS) are called without parameters. If parameters are supplied they are ignored. The following is an example of a COBOL statement that will call the ABEND routine.

CALL 'SIMOABN0'
.

The output of the ABEND routine is a display of information to SYSOUT. If JCL is used with the Enterprise Server Mainframe Sub System (ES/MSS) then the information will be written to the device specified by the SYSOUT DD statement. If a Windows Command file is used the information will be written to the device specified by the SYSOUT environment variable.

The following information is posted to the SYSOUT device.

* ABTESTC1 Example of a driver program for ABEND example    V10.06.08, ABTESTC1
* ABTESTC1 program is STARTING                                         ABTESTC1
* ABSUBRC1 Example of a called program for ABEND example    V10.06.08, ABSUBRC1
* ABSUBRC1 program is STARTING                                         ABSUBRC1
* ABSUBRC2 Example of a called program calling ABEND member V10.06.08, ABSUBRC2
* ABSUBRC2 program is STARTING                                         ABSUBRC2
* SIMOABN0 ABENDING, display the call stack.  v08.01.24 http://www.simotime.com
* SIMOABN0 Copyright 1987-2010   SimoTime Enterprises, LLC  All Rights Reserved
* MFEVENTS ABENDING, display the call stack.  v10.06.08 http://www.simotime.com
* MFEVENTS Copyright 1987-2010   SimoTime Enterprises, LLC  All Rights Reserved
* MFEVENTS SIMOABN0
* MFEVENTS ABSUBRC2
* MFEVENTS ABSUBRC1
* MFEVENTS ABTESTC1
* SIMOABN0 Processing is being Terminated...

The following is written to the spool file when using Micro Focus Enterprise Server (ES/MTO).

     *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
     *-*-*  Micro Focus ESJCL Version 6.0.001 ASCII  JES2 SEE60_GA_20090618        *-*-*
     *-*-*  Copyright (C) 1997-2009 Micro Focus (IP) Limited. All rights reserved. *-*-*
     *-*-*  Job: 03300 Name: ABTESTJ1 User: mfuser   Date: 06/08/10 Time: 14:21:00 *-*-*
     *-*-*  File: $TXRFDIR/T000000008.T                                            *-*-*
     *-*-*  DSN:                                                                   *-*-*
     *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

   1 //ABTESTJ1 JOB SIMOTIME,ACCOUNT,CLASS=1,MSGCLASS=0,NOTIFY=CSIP1
   2 //* *******************************************************************
   3 //*                   This program is provided by:                    *
   4 //*                    SimoTime Enterprises, LLC                      *
   5 //*           (C) Copyright 1987-2011 All Rights Reserved             *
   6 //*             Web Site URL:   http://www.simotime.com               *
   7 //*                   e-mail:   helpdesk@simotime.com                 *
   8 //* *******************************************************************
   9 //*
  10 //* Text    - ABEND Routine for the Micro Focus Environment.
  11 //* Author  - SimoTime Enterprises
  12 //* Date    - September 23, 2006
  13 //* Version - 07.01.22
  14 //*
  15 //* This set of programs illustrate the use a callable COBOL program
  16 //* that displays the call stack and issues a STOP RUN to terminate
  17 //* the process.
  18 //*
  19 //* This ABEND routine is for use in a Micro Focus environment.
  20 //*
  21 //* *******************************************************************
  22 //* Step 1 of 1, Test the ABEND Routine.
  23 //*
  24 //STEP0010 EXEC PGM=ABTESTC1
  25 //SYSOUT   DD  SYSOUT=*
  26 //*
**** JCLCM0180I Job ready for execution.
**** EXECUTION SUMMARY -----------------------------------------------------

     14:21:00 JCLCM0188I JOB  STARTED

     14:21:00 JCLCM0190I STEP STARTED   STEP0010
     14:21:00 JCLCM0199I Program ABTESTC1 is COBOL VSC2  ASCII  Big-Endian    NOAMODE.
     MFE2010.S0608.S142100.J03300.D00001.SYSOUT                        SYSOUT
      C:\SIMOSAM1\DATALIBA\SPOOL\MFE20*142100.J03300.D00001.SYSOUT.DAT  SPOOLED
---> 14:21:00 JCLCM0191I STEP ENDED     STEP0010 - COND CODE 0016

---> 14:21:00 JCLCM0182I JOB  ENDED   - COND CODE 0016

Programming Requirements
(Next) (Previous) (Table-of-Contents)

This suite of samples programs were tested and will run on the following platforms. Additional SimoTime modules are used and will be required prior to executing the sampe test program.

1 The ABEND routine was executed and tested on Windows/XP. The samples were executed using Micro Focus Net Express with a Windows CMD file and Micro Focus Enterprise Server with the Mainframe Sub-System option using JCL. Both environments were configued to run in an ASCII encoded environment.
2 The SimoMODS package should be installed prior to using this suite of sample programs. This example uses the SIMOABN0.CBL and MFEVENTS.CBL programs that are provided in the SimoMODS package. Refer to the SimoTime web site for more infomation.
3 This suite of programs may be ported to run on a LINUX or UNIX platforms supported by Micro Focus COBOL.
  Requirements and Prerequisites

Programming Overview
(Next) (Previous) (Table-of-Contents)

The following is a flowchart of the job for executing the program to test the ABEND routine.

             
ABTESTJ1
jcl
ABTESTE1
cmd
Start the ABEND Test
   
   
   
   
   
   
ABTESTC1
cbl
   
   
Main Program for Testing ABEND
   
   
   
ABSUBRC1
cbl
   
   
1st nested call
   
   
   
ABSUBRC2
cbl
   
   
2nd nested call
   
   
   
SIMOABN0
cbl
ABEND routine
   
   
   
MFEVENTS
cbl
Display Call Stack
EOJ
End of Job
 
An Example for Executing a User ABEND Routine

The main program (ABTESTC1) will call the first subroutine (ABSUBRC1) which will call the second subroutine (ABSUBRC2) which will call the ABEND routine (SIMOABN0) which will display the call stack to a SYSOUT device (by calling MFEVENTS.CBL). Since SIMOABN0 issues a STOP RUN the processing will be terminated along with all the programs involved in the calling process. The source code for the CMD file, the JCL member and the COBOL programs is provided and may be modified to fit your environment.

A CMD Member for the Windows Environment
(Next) (Previous) (Table-of-Contents)

The following is the Windows Command file (ABTESTE1.CMD) that is required to run as a job on a PC using Micro Focus Net Express.

@echo OFF
rem  * *******************************************************************
rem  *               ABTESTE1.CMD - a Windows Command File               *
rem  *         This program is provided by SimoTime Enterprises          *
rem  *           (C) Copyright 1987-2012 All Rights Reserved             *
rem  *             Web Site URL:   http://www.simotime.com               *
rem  *                   e-mail:   helpdesk@simotime.com                 *
rem  * *******************************************************************
rem  *
rem  * Text    - User ABEND for Micro Focus environment
rem  * Author  - SimoTime Enterprises
rem  * Date    - November 11, 2003
rem  * Version - 06.07.16
rem  *
rem  * This set of programs illustrate the use a COBOL program for
rem  * abnormally terminating a program and displaying the call stack.
rem  *
rem  * This procedure uses the SimoNOTE.CMD to display information to the
rem  * screen and write to a log file.
rem  * the parameters to be passed as if they were from JCL.
rem  * The SimoNOTE programs is available from the Simotime web site
rem  * and is part of the SimoMODS package.
rem  *
rem  * The call to Env1BASE will set the environment variables. This
rem  * technique is used to define a single place where commonly use
rem  * environemnt variable may be set and then used by multiple users.
rem  *
rem  * This set of programs will run on a Personal Computer with Windows
rem  * and Micro Focus Net Express or Mainframe Express.
rem  *
rem  * ********************************************************************
rem  * Step   1 of 2  Set the global environment variables...
rem  *
     set CmdName=AbTestE1
     call ..\Env1BASE %CmdName%
     if "%SYSLOG%" == "" set syslog=c:\SimoLIBR\LOGS\SimoTime.LOG
rem  *
     call SimoNOTE "*******************************************************%CmdName%"
     call SimoNOTE "Starting CmdName %CmdName%, V08.06.05, User is %USERNAME%"
rem  * ********************************************************************
rem  * Step   2 of 2  Execute the sample program...
rem  *
     run ABTESTC1
     if not "%ERRORLEVEL%" == "0" set JobStatus=0010
     if not "%JobStatus%" == "0000" goto :EojNOK
:EojAOK
     call SimoNOTE "Finished CmdName %CmdName%, Job Status is %JobStatus% "
     goto :End
:EojNOK
     call SimoNOTE "ABENDING CmdName %CmdName%, Job Status is %JobStatus% "
     set SYSNOTE=%BASEAPP%\LOGS\SYSNOTE_%CmdName%.TXT
     echo %DATE% - %TIME% Starting User ABEND Processing for %CmdName%>>%SYSNOTE%
     set >>%SYSNOTE%
     echo %DATE% - %TIME% Complete User ABEND Processing for %CmdName%>>%SYSNOTE%
     goto :End
:End
     call SimoNOTE "Conclude SysOut is %SYSOUT%"
     if not "%SIMOMODE%" == "BATCH" pause
     exit /B %JobStatus%

A JCL Member for the Mainframe Environment
(Next) (Previous) (Table-of-Contents)

The following (ABTESTJ1.JCL) is a sample of the JCL needed to run this job with Micro Focus Enterprise Server or Micro Focus Mainframe Express.

//ABTESTJ1 JOB SIMOTIME,ACCOUNT,CLASS=1,MSGCLASS=0,NOTIFY=CSIP1
//* *******************************************************************
//*       ABTESTJ1.JCL - a JCL Member for Batch Job Processing        *
//*       This JCL Member is provided by: SimoTime Enterprises        *
//*           (C) Copyright 1987-2012 All Rights Reserved             *
//*             Web Site URL:   http://www.simotime.com               *
//*                   e-mail:   helpdesk@simotime.com                 *
//* *******************************************************************
//*
//* Text    - ABEND Routine for the Micro Focus Environment.
//* Author  - SimoTime Enterprises
//* Date    - September 23, 2006
//* Version - 07.01.22
//*
//* This set of programs illustrate the use a callable COBOL program
//* that displays the call stack and issues a STOP RUN to terminate
//* the process.
//*
//* This ABEND routine is for use in a Micro Focus environment.
//*
//* *******************************************************************
//* Step 1 of 1, Test the ABEND Routine.
//*
//STEP0010 EXEC PGM=ABTESTC1
//SYSOUT   DD  SYSOUT=*
//*

The COBOL Demonstration Programs
(Next) (Previous) (Table-of-Contents)

This section will describe the three programs that are used to test the ABEND routines

Display Call Stack, Mainline Program or ABTESTC1
(Next) (Previous) (Table-of-Contents)

The following (ABTESTC1.CBL) is the main program that is executed from JCL or a Windows Command file.

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    ABTESTC1.
       AUTHOR.        SIMOTIME ENTERPRISES.
      *****************************************************************
      * SOURCE MODULE ABTESTC1.CBL
      *****************************************************************
      * ABTESTC1 - Displays a message and calls ABSUBRC1.
      *
      * DESCRIPTION
      * -----------
      * This program will display a message and call the first nested
      * program.
      *
      *****************************************************************
      * MAINTENANCE
      * -----------
      * 1999/03/89 SimoTime, Created program.
      * 1999/03/89 SimoTime, No changes to date.
      *
      *****************************************************************
       ENVIRONMENT DIVISION.
      *****************************************************************
       DATA DIVISION.
       WORKING-STORAGE SECTION.
      *****************************************************************
      *    Data-structure for Title and Copyright...
      *    ------------------------------------------------------------
       01  SIM-TITLE.
           05  T1 pic X(11) value '* ABTESTC1 '.
           05  T2 pic X(34) value 'ABEND driver program, CALL Stack  '.
           05  T3 pic X(10) value ' v08.06.05'.
           05  T4 pic X(24) value ' http://www.simotime.com'.
       01  SIM-COPYRIGHT.
           05  C1 pic X(11) value '* ABTESTC1 '.
           05  C2 pic X(20) value 'Copyright 1987-2012 '.
           05  C3 pic X(28) value '--- SimoTime Enterprises ---'.
           05  C4 pic X(20) value ' All Rights Reserved'.

      *****************************************************************
       PROCEDURE DIVISION.
           perform POST-STARTUP-INFO

           call 'ABSUBRC1'

      *    If the SIMOABN0 routine has a STOP RUN then it will
      *    force the runtime to ABEND and will not return to this
      *    point. This program will be cancelled along with the ABEND
      *    routine.

           display '* ABTESTC1 RC=' RETURN-CODE

           GOBACK.

      *****************************************************************
       POST-STARTUP-INFO.
           display SIM-TITLE
           display SIM-COPYRIGHT
           exit.

Display Call Stack, First Call or ABSUBRC1
(Next) (Previous) (Table-of-Contents)

The following (ABSUBRC1.CBL) is called from the mainline program.

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    ABSUBRC1.
       AUTHOR.        SIMOTIME ENTERPRISES.
      *****************************************************************
      * SOURCE MODULE ABSUBRC1.CBL
      *****************************************************************
      * ABSUBRC1 - Displays a message and calls ABSUBRC2.
      *
      * DESCRIPTION
      * -----------
      * This program will display a message and call ABSUBRC2. The
      * expected result is that ABSUBRC2 will ABEND and never return.
      *
      *****************************************************************
      * MAINTENANCE
      * -----------
      * 1999/03/89 SimoTime, Created program.
      * 1999/03/89 SimoTime, No changes to date.
      *
      *****************************************************************
       ENVIRONMENT DIVISION.
      *****************************************************************
       DATA DIVISION.
       WORKING-STORAGE SECTION.
      *****************************************************************
      *    Data-structure for Title and Copyright...
      *    ------------------------------------------------------------
       01  SIM-TITLE.
           05  T1 pic X(11) value '* ABSUBRC1 '.
           05  T2 pic X(34) value 'ABEND example, program CALL Stack '.
           05  T3 pic X(10) value ' v08.06.05'.
           05  T4 pic X(24) value ' http://www.simotime.com'.
       01  SIM-COPYRIGHT.
           05  C1 pic X(11) value '* ABSUBRC1 '.
           05  C2 pic X(20) value 'Copyright 1987-2012 '.
           05  C3 pic X(28) value '--- SimoTime Enterprises ---'.
           05  C4 pic X(20) value ' All Rights Reserved'.

      *****************************************************************
       PROCEDURE DIVISION.
           perform POST-STARTUP-INFO

           call 'ABSUBRC2'

      *    If the SIMOABN0 routine has a STOP RUN then it will
      *    force the runtime to ABEND and will not return to this
      *    point. This program will be cancelled along with the ABEND
      *    routine.

           display '* ABSUBRC1 RC=' RETURN-CODE

           GOBACK.

      *****************************************************************
       POST-STARTUP-INFO.
           display SIM-TITLE
           display SIM-COPYRIGHT
           exit.

Display Call Stack, Second Call or ABSUBRC2
(Next) (Previous) (Table-of-Contents)

The following (ABSUBRC2.CBL) is the third level application program in the call stack.

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    ABSUBRC2.
       AUTHOR.        SIMOTIME ENTERPRISES.
      *****************************************************************
      * SOURCE MODULE ABSUBRC2.CBL
      *****************************************************************
      * ABSUBRC2 - Displays a message and calls SIMOAB01.
      *
      * DESCRIPTION
      * -----------
      * This program will display a message and call SIMOABN0. The
      * expected result is SIMOABN0 will post a message, call MFEVENTS
      * to display the call stack and issue a STOP RUN to terminate
      * processing.
      *
      *****************************************************************
      * MAINTENANCE
      * -----------
      * 1999/03/89 SimoTime, Created program.
      * 1999/03/89 SimoTime, No changes to date.
      *
      *****************************************************************
       ENVIRONMENT DIVISION.
      *****************************************************************
       DATA DIVISION.
       WORKING-STORAGE SECTION.
      *****************************************************************
      *    Data-structure for Title and Copyright...
      *    ------------------------------------------------------------
       01  SIM-TITLE.
           05  T1 pic X(11) value '* ABSUBRC2 '.
           05  T2 pic X(34) value 'ABEND example, program CALL Stack '.
           05  T3 pic X(10) value ' v08.06.05'.
           05  T4 pic X(24) value ' http://www.simotime.com'.
       01  SIM-COPYRIGHT.
           05  C1 pic X(11) value '* ABSUBRC2 '.
           05  C2 pic X(20) value 'Copyright 1987-2012 '.
           05  C3 pic X(28) value '--- SimoTime Enterprises ---'.
           05  C4 pic X(20) value ' All Rights Reserved'.

      *****************************************************************
       PROCEDURE DIVISION.
           perform POST-STARTUP-INFO

      *    Call the ABEND routine.
      *
           call 'SIMOABN0'

      *    If the SIMOABN0 routine has a STOP RUN that will force
      *    the runtime to terminate processing. It will not return to
      *    this point. This program will be cancelled along with the
      *    ABEND routine.

           display '* ABSUBRC2 RC=' RETURN-CODE

           GOBACK.

      *****************************************************************
       POST-STARTUP-INFO.
           display SIM-TITLE
           display SIM-COPYRIGHT
           exit.

The COBOL ABEND Routines
(Next) (Previous) (Table-of-Contents)

This program (MFEVENTS.CBL) was originally written to be used as a diagnostic aid for SimoTime consultants and programmers. Today, this program is used by a number of our customers as a diagnostic aid for programming debugging or for tracking the results of program behavior in both a development and production environment. The program has been tested on Windows/XP system with Net Express from Micro Focus.

ILBOABN0 Mainframe Utility, a Callable ABEND Routine
(Next) (Previous) (Table-of-Contents)

This is an IBM Mainframe utility program that may be explicitly called from an application program (usually COBOL) when an abnormal termination or unexpected condition is encountered in the program. This program provides mainframe dump information for the general purposes registers and memory area used by the program. With the release of Enterprise COBOL the replacement of ILBOABN0 is recommended. Micro Focus provides a version of ILBOABN0 with Mainframe Express and Enterprise Server.

The SimoABN0 program provided in this example may be renamed to ILBOABN0 (the COBOL source code is included). This replacement program must be compiled using a Micro Focus dialect with the CHARSET(ASCII) directive.

ILBOABN0 Replacements, Callable ABEND Routines for Micro Focus Environments
(Next) (Previous) (Table-of-Contents)

You may  click here to view the source code  for a callable ABEND routine (SIMOABN0.CBL) that will simply terminate the job with a return-code equal to 16. It is the user's or programmer's responsibility to display any pertinent information prior to calling this ABEND routine.

You may  click here to view the source code  for the callable ABEND routine (MFEVENTS.CBL) that identifies and displays the call stack for the Micro Focus environment.

Examples of Actual Program Failures
(Next) (Previous) (Table-of-Contents)

This section contains sample programs that will actually ABEND with a system error message (or Micro Focus Run Time error). The following chart shows a summary of the sample programs.

Program Name Description
AB0048C1 This program will cause a Micro Focus run time error (RTS048) when attempting to do an arithmetic calculation and a divide by zero.
AB0163C1 This program will cause a Micro Focus run time error (RTS163) when when attempting to do an arithmetic calculation using non-numeric values in numeric fields. This would cause a S0C7 error on an IBM Mainframe.
AB0173C1 This program will cause a Micro Focus run time error (RTS173) when attempting to call a program that does not exists.
  Examples of Actual Program Failures

Divide by Zero, RTS0048
(Next) (Previous) (Table-of-Contents)

The following program (AB0048C1.CBL) will cause a program ABEND (or ABnormal ENDing) when attempting to do an arithmetic calculation and a divide by zero. A JCL member (AB0048J1.JCL) is provided for the Mainframe environment and a Windows Command file (AB0048E1.CMD) is provided for the Windows, non-mainframe environment.

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    AB0048C1.
       AUTHOR.        SIMOTIME ENTERPRISES.
      *****************************************************************
      * SOURCE MODULE AB0048C1.CBL
      *****************************************************************
      * AB0048C1 - Create an RTS0048 or Divide-by-Zero Error Condition.
      *
      * DESCRIPTION
      * -----------
      * This program will attempt an arithmetic calculation that does
      * a divide by zero.
      *
      *****************************************************************
      * MAINTENANCE
      * -----------
      * 1999/03/89 SimoTime, Created program.
      * 1999/03/89 SimoTime, No changes to date.
      *
      *****************************************************************
       ENVIRONMENT DIVISION.
      *****************************************************************
       DATA DIVISION.
       WORKING-STORAGE SECTION.
      *****************************************************************
      *    Data-structure for Title and Copyright...
      *    ------------------------------------------------------------
       01  SIM-TITLE.
           05  T1 pic X(11) value '* AB0048C1 '.
           05  T2 pic X(34) value 'Attempt divide by zero calculation'.
           05  T3 pic X(10) value ' v08.06.05'.
           05  T4 pic X(24) value ' http://www.simotime.com'.
       01  SIM-COPYRIGHT.
           05  C1 pic X(11) value '* AB0048C1 '.
           05  C2 pic X(20) value 'Copyright 1987-2012 '.
           05  C3 pic X(28) value '--- SimoTime Enterprises ---'.
           05  C4 pic X(20) value ' All Rights Reserved'.

       01  TEST-GROUP.
           05  TEST-NUMBER     pic 9(5) comp-3.
       01  TEST-RESULT         pic 999.

      *****************************************************************
       PROCEDURE DIVISION.
           perform POST-STARTUP-INFO

           add 123 to ZERO giving TEST-NUMBER
           move ZERO to TEST-RESULT
           divide TEST-NUMBER by TEST-RESULT giving TEST-RESULT

      *    Should never get here...
           display '* AB0048C1 Should never get here...'
           GOBACK.

      *****************************************************************
       POST-STARTUP-INFO.
           display SIM-TITLE
           display SIM-COPYRIGHT
           exit.

Numeric with Non-Numeric value, RTS0163 or S0C7
(Next) (Previous) (Table-of-Contents)

The following program (AB0163C1.CBL) will cause a program ABEND (or ABnormal ENDing) when attempting to do an arithmetic calculation using non-numeric values in numeric fields. A JCL member (AB0163J1.JCL) is provided for the Mainframe environment and a Windows Command file (AB0163E1.CMD) is provided for the Windows, non-mainframe environment.

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    AB0163C1.
       AUTHOR.        SIMOTIME ENTERPRISES.
      *
      *****************************************************************
      * SOURCE MODULE AB0163C1.CBL
      *****************************************************************
      * AB0163C1 - Create a S0C7 or RTS0163 Error Condition.
      *
      * DESCRIPTION
      * -----------
      * This program will attempts an arithmetic calculation using
      * a field that contains a non-numeric value.
      *
      *****************************************************************
      * MAINTENANCE
      * -----------
      * 1999/03/89 SimoTime, Created program.
      * 1999/03/89 SimoTime, No changes to date.
      *
      *****************************************************************
       ENVIRONMENT DIVISION.
      *
      *****************************************************************
       DATA DIVISION.
       WORKING-STORAGE SECTION.
      *****************************************************************
      *    Data-structure for Title and Copyright...
      *    ------------------------------------------------------------
       01  SIM-TITLE.
           05  T1 pic X(11) value '* AB0163C1 '.
           05  T2 pic X(34) value 'Attempt non-numeric calculation   '.
           05  T3 pic X(10) value ' v08.06.05'.
           05  T4 pic X(24) value ' http://www.simotime.com'.
       01  SIM-COPYRIGHT.
           05  C1 pic X(11) value '* AB0163C1 '.
           05  C2 pic X(20) value 'Copyright 1987-2012 '.
           05  C3 pic X(28) value '--- SimoTime Enterprises ---'.
           05  C4 pic X(20) value ' All Rights Reserved'.

       01  TEST-GROUP.
           05  TEST-NUMBER     pic 9(5) comp-3.
       01  TEST-RESULT         pic 999.

      *****************************************************************
       PROCEDURE DIVISION.
           perform POST-STARTUP-INFO

           move 'IJK' to TEST-GROUP
           add TEST-NUMBER to TEST-NUMBER giving TEST-RESULT

      *    Should never get here...
           display '* AB0163C1 Should never get here...'
           GOBACK.

      *****************************************************************
       POST-STARTUP-INFO.
           display SIM-TITLE
           display SIM-COPYRIGHT
           exit.

Called Program not Found, RTS0173
(Next) (Previous) (Table-of-Contents)

The following program (AB0173C1.CBL) will cause a program ABEND (or ABnormal ENDing) when attempting to call a program that does not exists. A JCL member (AB0173J1.JCL) is provided for the Mainframe environment and a Windows Command file (AB0173E1.CMD) is provided for the Windows, non-mainframe environment.

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    AB0173C1.
       AUTHOR.        SIMOTIME ENTERPRISES.
      *****************************************************************
      * SOURCE MODULE AB0173C1.CBL
      *****************************************************************
      * AB0173C1 - Create an RTS0173 Error Condition.
      *
      * DESCRIPTION
      * -----------
      * This program will attempta call to a program that does not
      * exist.
      *
      *****************************************************************
      * MAINTENANCE
      * -----------
      * 1999/03/89 SimoTime, Created program.
      * 1999/03/89 SimoTime, No changes to date.
      *
      *****************************************************************
       ENVIRONMENT DIVISION.
      *****************************************************************
       DATA DIVISION.
       WORKING-STORAGE SECTION.
      *****************************************************************
      *    Data-structure for Title and Copyright...
      *    ------------------------------------------------------------
       01  SIM-TITLE.
           05  T1 pic X(11) value '* AB0173C1 '.
           05  T2 pic X(34) value 'Attempt call, non-existing program'.
           05  T3 pic X(10) value ' v08.06.05'.
           05  T4 pic X(24) value ' http://www.simotime.com'.
       01  SIM-COPYRIGHT.
           05  C1 pic X(11) value '* AB0173C1 '.
           05  C2 pic X(20) value 'Copyright 1987-2012 '.
           05  C3 pic X(28) value '--- SimoTime Enterprises ---'.
           05  C4 pic X(20) value ' All Rights Reserved'.

       01  PROGRAM-NAME        pic X(8) value is SPACES.

      *****************************************************************
       PROCEDURE DIVISION.
           perform POST-STARTUP-INFO

           move 'NOTTHERE' to PROGRAM-NAME
           call PROGRAM-NAME

      *    Should never get here...
           display '* AB0173C1 Should never get here...'
           GOBACK.

      *****************************************************************
       POST-STARTUP-INFO.
           display SIM-TITLE
           display SIM-COPYRIGHT
           exit.

Compile the Programs, the Micro Focus Directives
(Next) (Previous) (Table-of-Contents)

The following shows the compiler directives used in the Micro Focus environment.

DIALECT"OS390"
CHARSET"ASCII"
ASSIGN"EXTERNAL"
IDXFORMAT"8"
IBMCOMP
NOTRUNC
HOSTNUMMOVE
HOSTNUMCOMPARE
NOSIGNFIXUP
HOSTARITHMETIC
CHECKNUM
NOOPTIONAL-FILE
NOQUERY
COBIDY
ANIM
outdd"SYSOUT 121 L"
SHARE-OUTDD
DATAMAP
settings
list()
noformWIP

Summary
(Next) (Previous) (Table-of-Contents)

The purpose of this program is to provide a callable ABEND (or abnormal termination) routine that will display the call stack in a Micro Focus environment. The document may be used to assist as a tutorial for new programmers or as a quick reference for experienced programmers. In the world of programming there are many ways to solve a problem. This documents and the links to other documents are intended to provide a choice of alternatives.

Software Agreement and Disclaimer
(Next) (Previous) (Table-of-Contents)

Permission to use, copy, modify and distribute this software, documentation or training material for any purpose requires a fee to be paid to SimoTime Enterprises. Once the fee is received by SimoTime the latest version of the software, documentation or training material will be delivered and a license will be granted for use within an enterprise, provided the SimoTime copyright notice appear on all copies of the software. The SimoTime name or Logo may not be used in any advertising or publicity pertaining to the use of the software without the written permission of SimoTime Enterprises.

SimoTime Enterprises makes no warranty or representations about the suitability of the software, documentation or learning material for any purpose. It is provided "AS IS" without any expressed or implied warranty, including the implied warranties of merchantability, fitness for a particular purpose and non-infringement. SimoTime Enterprises shall not be liable for any direct, indirect, special or consequential damages resulting from the loss of use, data or projects, whether in an action of contract or tort, arising out of or in connection with the use or performance of this software, documentation or training material.

Downloads and Links to Similar Pages
(Next) (Previous) (Table-of-Contents)

This section includes links to documents with additional information that is beyond the scope and purpose of this document.

You may download this example at http://www.simotime.com/sim4dzip.htm#abtest01dzip

A good place to start is The SimoTime Home Page for access to white papers, program examples and product information.

Note: You must be attached to the Internet to download a Z-Pack or view the list.

The  Snap Dump  routine may be useful when analyzing abnormal or unexpected processing events.

The  hexadecimal dump  of the parameter-buffer uses the same technique as describe in another SimoTime example that describes the dumping of a data string using COBOL. The name of the member that does the actual hexadecimal dump is called SimoDUMP. A copy file (PASSDUMP.CPY) is provided for defining the pass area.

This conversion table is provided as a reference for ASCII and EBCDIC translation.

Explore The File Status Return Codes to interpret the results of accessing VSAM data sets and QSAM files.

Glossary of Terms
(Next) (Previous) (Table-of-Contents)

Check out  The SimoTime Glossary  for a list of terms and definitions used in the documents provided by SimoTime.

Comments, Suggestions or Feedback
(Next) (Previous) (Table-of-Contents)

This document was created and is maintained by SimoTime Enterprises.

If you have any questions, suggestions, comments or feedback please call or send an e-mail to: helpdesk@simotime.com

We appreciate hearing from you.

Company Overview
(Next) (Previous) (Table-of-Contents)

Founded in 1987, SimoTime Enterprises is a privately owned company. We specialize in the creation and deployment of business applications using new or existing technologies and services. We have a team of individuals that understand the broad range of technologies being used in today's environments. This includes the smallest thin client using the Internet and the very large mainframe systems. There is more to making the Internet work for your company's business than just having a nice looking WEB site. It is about combining the latest technologies and existing technologies with practical business experience. It's about the business of doing business and looking good in the process. Quite often, to reach larger markets or provide a higher level of service to existing customers it requires the newer Internet technologies to work in a complementary manner with existing corporate mainframe systems.

Whether you want to use the Internet to expand into new market segments or as a delivery vehicle for existing business functions simply give us a call or check the web site at http://www.simotime.com


Return-to-Top
Abnormal Termination (or ABEND) Example for the Micro Focus Environment
Copyright © 1987-2012 SimoTime Enterprises  All Rights Reserved
When technology complements business
http://www.simotime.com