When completed, a function usually links to another function whose name is in @LFUNCT.  There are other SYSFILE elements that may be linked to for special occurrences:

@DFUNCT -  'default' function

@RFUNCT -  'rollback' function (not available on the S/390 product)

@EFUNCT -  'error' function

@TFUNCT -  'timeout' function

@SFUNCT -  'security' function (not available on the S/390 product)

Note: It is important to note that @SFUNCT is not a System Variable and cannot be referenced in logic as such.

The definition of functions in the Task List interacts with these SYSFILE elements. These special error recovery functions are only executed in component mode if they belong to the Task. That is, either the Task List is an exclusive one that does not mention the function names, or the Task List is an inclusive one that mentions the names.  If the error recovery functions execute, the Task error function is not executed. If the functions do not belong to the Task, the Task error function is executed.

The rollback function @RFUNCT is the one exception. The function does not have to be a Task member function: it is automatically included by PROIV without user intervention.  In the case of a rollback, this function is executed before the Task error function is executed. See PROIV Bus and Task Error Messages for the runtime errors that cause @RFUNCT to be executed. The flow of function execution is shown below:

Task Execution and SYSFILE Elements

Note that the Task error function is defined when the Task is defined.  It is usually distinct from @EFUNCT, which is the function’s error function, and cannot be changed at execution by assignment to a SYSFILE element.  If the error recovery service links to a function not in the Task, the Task is terminated.

Comment on this topic

Topic ID: 540047