- System manager
- Halts a Host Language Interface facility IFAM2 thread
IFAMDRAIN [CRAM | IUCV]
If the channel type is not specified, CRAM is assumed. However, if no CRAM threads are defined, IUCV is assumed.
The IFAMDRAIN command terminates HLI IFAM2 processing. Termination is performed in an orderly fashion from the Model 204 end, without regard for any IFAM2 application programs being submitted for processing. All threads that are idle when this command is specified are halted immediately. Any threads in use are started, if they were halted, and are allowed to process until they receive an IFDTHRD or IFFNSH call. At this time they too are halted. The function of IFAMDRAIN is like that of a HASP DRAIN command.
If the IFAMDRAIN command is issued and no threads are active, or if IFAM2 was already drained, a message that IFAM2 is drained is returned.
If one or more threads are active, IFAMDRAIN returns an indication that a drain is in progress, along with the number of still-active threads.
The effect of an IFAMDRAIN command can be reversed by an IFAMSTART command, on a per-thread basis.
IFAMDRAIN does not stop HLI IFAM2 application programs from obtaining new threads via IFSTRT(N) calls, but such calls do not return. Thus, an IFAM2 application program that attempts an IFSTRT(N) call after an IFAMDRAIN command is issued waits until either an IFAMSTART command affecting the appropriate thread is specified, or until an IFAMCLOSE command is processed. In the latter case, the application program receives a return code of 1000 from its IFSTRT(N) call. IFAM2 application programs can time out (ABEND 522) while an IFAMDRAIN is being processed.
In z/VM, only IUCV communications are supported.