openUTM makes a range of information available to program units. You can evaluate and use this for communication control:
after the INIT call
after using MGET to read the dialog message
After the INIT call, you can ascertain the following from the communication area:
the user ID or session name under which the program unit was started (KCBENID/kcuserid field)
the communication protocol used by the partner (1 is entered in KCVGST/kcpcv if LU6.1 is used)
whether it is a service restart (KCKNZVG/kccv_status is then set to "R").
After the MGET call, openUTM returns the status of the partner service in the KCVGST/kcpcv_state field and the status of the partner transaction in the KCTAST/kcpta_state field.
For COBOL, a higher-ranking status field KCRST is defined which contains the KCVGST and KCTAST fields.
Using these stati you can, for example, ascertain whether the partner service has already requested end of transaction and is waiting for the termination of distributed processing. This feature can be used to control the program run and ensure that the programming rules are observed, even in situations where the exact security processes used by the partner are not known. On the other hand, it also allows the job-submitting service to react to errors in the job-receiving services.
Service status of the partner
KCVGST/kcpcv_state | Meaning |
---|---|
I | (inactive): |
O | (open): |
C | (closed): |
R | (rolled back): |
E | (error): |
Z | The service has been terminated by openUTM because of an error. |
T | (timeout): |
Transaction status of the partners
KCTAST/kcpta_state | Meaning |
---|---|
I | (inactive): |
O | (open): |
P | (prepare to commit): |
C | (closed): |
R | (rolled back): |
M | (mismatch): |