openUTM limits the effect of errors in program units or formatting errors. Other transactions and the application as a whole are not affected.
openUTM provides the following functions:
In the case of minor errors or faults, openUTM outputs return codes which describe the error. This gives the relevant program unit the opportunity to react accordingly to the error or fault.
Since UTM applications work with several processes in parallel, a serious error in an application program results at worst in termination of the relevant process. UTM applications therefore do not have a single point of failure. A terminated process is automatically restarted. Since the operation for rolling back all open transactions - including those of external resource managers - is fully coordinated, data consistency is maintained across all applications.
A local storage area is automatically assigned to each process of a UTM application and contains current system data for a job or program run. The data area can only be accessed by the local process, and access is controlled by means of a UTM system code, i.e. the processes of a UTM application are isolated from each other.
If dialog services are aborted due to a serious error, openUTM informs the client of the error. The client can then start further services. If an asynchronous service is aborted, the job is removed from the queue so that subsequent jobs can be started. Using acknowledgment jobs, it is also possible to inform the job submitter of errors.
If errors occur when formatting messages, openUTM detects these and reacts accordingly:
Dialog services are aborted. The relevant client is informed by means of a message and can then start other services.
After aborting an asynchronous service, openUTM removes the job from the queue. Subsequent jobs can then be started unhindered.
Each UTM program unit must end with a special UTM call. If you are working with the KDCS program interface, this is the PEND call. This ensures, amongst other things, that local storage areas are released. If an error has not been intercepted in the program unit (with PEND ER in KDCS), openUTM issues a PEND ER call internally: in any case, the process is shut down gracefully and a dump is automatically created.
The KDCS storage areas KBPROG and SPAB can be defined at the end of a dialog step using any character defined during generation. openUTM also checks whether a program unit requires a larger storage area (KBPROG / SPAB) than requested during generation.