VMGROUP(join_user{=0},(8,vmname)==>c;VMCOMM) Join VM Group
The maximum number of IUCV paths allowed for the virtual machine is initially four. See order code 2 to change this.
Initially the virtual machine is not authorized to send priority messages. See order codes 6 and 7 to change this.
Initially the maximum number of outstanding messages allowed on any IUCV path to the virtual machine is unspecified. See order code 8 to change this.
Return codes:
1 - vmname already logged on. VMCOMM is DK0.
Return codes:
1 - vmname not a member of the group.
{ni}VMGROUP(no_priority_iucv{=7},(8,vmname)==>c) Forbid IUCV Priority communications
VMGROUP(kt==>X'1234567A')
Internal Logic
One of these records contains the count of active IUCV paths, and whether an IUCV buffer is declared.
When a new vm user is joined to the group, the group manager first checks if there is a CP Simulator Group Communication key registered under that name. If there is and it is not DK0, then return code 1 is returned. Otherwise, if there is already a VMCOMM key for that name, it is returned. Otherwise a VMCOMM object is built, the VMCOMM and queue keys are registered in the record collection, and the VMCOMM key is returned with rc=0.
When a user is quit his records are deleted from the record collection, and his VMCOMM object is destroyed.