Distributed Systems Network Management (DSNM) Subsystem Interface Development Guide

I Process Development Process
Distributed Systems Network Management (DSNM) Subsystem Interface Development
Guide109759 3-51
Reporting Errors
.
.
.
IF _ON (_LAST^EVENTS, _EV^TIMEOUT)
THEN
BEGIN
@time^info := cx._LAST^TIMEOUT^TAG;
<process time^info data >
CALL _DELETE^LM (cx.worklist, @time^info);
END;
_LAST^TIMEOUT^TAG is a type INT(32) expression.
Canceling a Timeout Request: _CANCEL^TIMEOUT
Cancel an outstanding timeout with _CANCEL^TIMEOUT:
tag is a type INT(32) expression.
Command Thread Termination
When the command thread terminates, the frame performs the following:
Issues _CLOSE^CI for all open CIs.
Issues _CANCEL^TIMEOUT for any outstanding _SET^TIMEOUT operation.
Issues _CANCEL^SEND^CI for any outstanding _SEND^CI operation.
Releases all output list members.
Deallocates any remaining input object list members.
The thread must deallocate all lists containing current members other than input and
output lists (_COMMAND^TERMINATION^PROC is a convenient place to do this).
Reporting Errors
When a subsystem or DSNM error occurs, the command thread should:
Attend to outstanding CI operations. This may involve sending a sequence of
commands to the CI to return it to a clean state. The frame cancels outstanding I/O
operations when a thread terminates. This is sufficient for context-free server CIs.
error := _CANCEL^TIMEOUT ( [ tag ] );
Note. Since the error may involve running out of memory, sufficient memory should be
reserved for this purpose, either in the command context space or in a working list
member, before the first CI communication is initiated.