TCP/IP Commands and WAKEUP Utility Considerations

Several TCP/IP for z/VM functions are Pascal-based, and use VMCF communications to communicate with the TCPIP server. Therefore, these functions cannot be reliably used in conjunction with other applications that also use VMCF communications (such as the CMS Utility, WAKEUP) — doing so may produce intermittent hangs during processing or other unpredictable results.

The TCP/IP Pascal-base functions for which such problems may arise are:

 NETSTAT    OBEYFILE     HOMETEST    TESTSITE    TELNET
 FTP        REXEC        LPQ         LPR         LPRM
 TFTP
Refer to CMS Utilities APAR VM58540 for more information about problems when using FTP in conjunction with WAKEUP.

Refer to TCP/IP for z/VM APAR PQ87840 for more information about problems when using REXEC in conjunction with WAKEUP.

However, in many instances, problems that arise with combined use of WAKEUP and a TCP/IP command (such as FTP) can be resolved by making use of the WAKEUP RESET command option.

Consider the case of an application in which WAKEUP is used to detect arrival of a file in the virtual reader, and after receipt of the file, transfers it (via FTP) to a different TCP/IP host system.

The (simplified) Rexx logic below illustrates the point at which issuing a WAKEUP RESET command can avoid introducing VMCF interrupt handling problems for the TCP/IP FTP client command:

...
Do Forever
   'WAKEUP +00:10 ( RDR'
   /* Capture return code associated with arrival of virtual reader file  */
   rc_wakerdr = rc
   'WAKEUP RESET' /* Terminate VMCF communications associated with WAKEUP */
   /* Obtain file from virtual reader; utilize 'rc_wakerdr' as needed...  */
   ...
   /* Invoke FTP command to transfer the received file... */
   'FTP' ...
End
...