Callers must be aware of the following restrictions for all
z/OS UNIX callable
services:
- Functional recovery routines (FRR)
- Except for callable services that are supported in service
request block (SRB) mode, do not invoke a callable service with
an FRR set because doing so bypasses callable services recovery and
can severely damage the system. (If a callable service can run in
SRB mode, that is stated in its description.)
- Linkage stack
- The use of the system linkage stack with PC or BAKR instructions
prevents signals from being delivered.
- Locks
- Do not call z/OS UNIX with system locks held. Testing is not done
for locks held, and your call might fail.
- Nested callable services
- You cannot issue "nested" callable services. That is, if a program
running on a request block (RB) issues a z/OS UNIX callable service and
is then interrupted by a program running on an interrupt request
block (IRB), any additional z/OS UNIX callable services that the IRB attempts
to issue are not supported. Additionally, if a z/OS UNIX callable service invokes
an exit during the processing of the callable service, invoking z/OS UNIX callable
services from the exit program is not supported. In most cases, the
nested callable service invocation is detected and flagged as an error.
In some cases, however, the nested invocation is not detected and
can lead to failure of the original callable service invocation.
- Task structure
- When you invoke callable services in task control block (TCB)
mode, the calling TCB must be either the initial job step task or
a subtask of the initial JST. The initial JST is the JST that is directly
attached by the operating system initiator task to run a user requested
program. z/OS UNIX does not support the direct attachment of multiple JSTs
from the initiator task. The behavior of z/OS UNIX callable services in
an environment where multiple job step tasks are attached directly
from the initiator task is unpredictable.