Multiple concurrent user sessions are supported. A user session can concurrently execute any number of REXX processes. Any number of these REXX processes may request external programs be called.
To provide isolation between REXX processes, users, and so on, each REXX process that requests external programs, will have a private task attached. This task will be used to call all external programs, and so on, including CA product interfaces.
The task is persistent. Once started, it will stay running until the REXX process is terminated, or an ABEND occurs in an external program.
The external program can use REXX services (such as IRXUID) to obtain the user ID of the owning user, if this is important (for example, to issue RACROUTE requests).
Note: The task has not had an ACEE representing the user anchored.
By using a separate task, any waits, delays, loops, and so on, in the external program will not impact other users.
Note: If the REXX process terminates, the subtask will be detached. Any resources allocated by the external program will be cleaned up, for example GETMAIN'd storage (as long as it is not in a shared subpool). For example, if the external program has attached further tasks, these will be force-terminated (A03 ABENDs). Resources not associated with tasks (for example, dynamically allocated data sets) will stay allocated.