In general, all use of CLIv2 facilities by an operating system dispatchable unit, such as an z/OS task, is related. That is, any CLIv2 resource, such as sessions or requests, can be used from any caller in that dispatchable unit.
Conversely, all callers of CLIv2 within a dispatchable unit must coordinate with each other. However, there are instances in which such knowledge is not possible, such as use of CLIv2 in an exit provided by an application that itself uses CLIv2. To prevent a session established by the exit from interfering with the application (for example, by the application calling DBCHWAT and being returned completion of a request issued by the exit), crude support is provided. The exit may specify the Wait-exclusion DBCAREA option when it Connects a session. Such sessions will be excluded from any DBCHWAT processing by the application.
If needed, the exit would then use DBCHWL to wait for only its session (Wait-exclusion has no impact on DBCHWL processing). Since there is no explicit Connect for the Command function, it also honors Wait-exclusion. No other CLIv2 resources support Wait-exclusion: in particular, 1) user events and master events will affect all types of wait processing, so cannot be used either by the application or the exit; 2) a DBCHCLN call by either the application or exit will free all CLIv2 resources for that dispatchable unit.