Effect of ILE
Effect of ILE
The following deals with the effects of ILE on the way your program handles:
Program call : The system automatically creates the activation group if it does not already exist, when the application starts.
The application can contain
dynamic program calls or static procedure calls. Procedures within bound programs
call each other by using static calls. Procedures call ILE and OPM programs
by using dynamic calls.
Data : The lifetime of a program’s storage is the same as the lifetime of the activation group. Storage remains active until the activation group is deleted.
The ILE RPG run time manages data so that the semantics of ending programs
and reinitializing the data are the same as for OPM RPG, although the actual
storage is not deleted as it was when an OPM RPG program ended. Data is reinitialized
if the previous call to the procedure ended with LR on, or ended abnormally.
Program data that is identified as exported or imported (using the
keywords EXPORT and IMPORT respectively) is external to the individual modules.
It is known among the modules that are bound into a program.
Files : By default, file processing (including opening, sharing, overriding, and commitment control) by the system is scoped to the activation group level. You cannot share files at the data management level with programs in different activation groups. If you want to share a file across activation groups, you must open it at the job level by specifying SHARE(*YES) on an override command or create the file with SHARE(*YES).
Errors : When you call an ILE RPG program or procedure in the same activation group, if it gets an exception that would previously have caused it to display an inquiry message, now your calling program will see that exception first.
If your calling program has an error indicator or \*PSSR, the program or procedure
that got the exception will end abnormally without the inquiry message being
displayed. Your calling program will behave the same (the error indicator
will be set on or the \*PSSR will be invoked).
When you call an OPM program
or a program or main procedure in a different activation group, the exception
handling will be the same as in OPM RPG, with each program handling its own
exceptions. The messages you see may have new message IDs, so if you monitor
for a specific message ID, you may have to change that ID.
Each language processes its own errors and can process the errors that occur in modules written in another ILE language. For example, RPG will handle any C errors if an error indicator has been coded. C can handle any RPG errors.