Environmental restrictions

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.