GUI FTP Clients Not Properly Handling PDS/E Data Sets
When using a workstation FTP client that provides a graphical user interface (GUI), it normally recognizes z/OS FTP servers and expands displays of partitioned data sets (PDS, DSORG PO) to show the individual members. However, if the data set uses the extended format (PDS/E, DSORG PO-E), the client does not provide the same functions.
These results will vary depending on the client being used. Typically it will not expand a PDS/E data set to list the members. Also any attempts to perform transfers involving this data set will end with an error.
APAR PM19545 added the capability for a directory listing to distinguish between a PDS and a PDS/E in the DSORG column of the output. If that option is enabled (with a
LISTLEVEL 1 statement in the server's FTP.DATA configuration input), the client program might not recognize the new response (PO-E instead of PO).
Diagnosing the problem
You can use one of the following methods to verify whether the LISTLEVEL option has been enabled:
- If the client supports sending an arbitrary command, issue a
STAT (LISTLEVELcommand. The following response indicates that the LISTLEVEL option has been enabled; any other response indicates that the old behavior (listing PO for both PDS and PDS/E) is used.
211-Server site variable LISTLEVEL is set to 1
211 *** end of status ***
- Use a line-mode FTP command to access the server. Issuing a DIR command for a data set name qualifier that includes a PDS/E data set will show PO-E in the DSORG column (just before the unqualified name).
You can also issue the
STAT (LISTLEVELcommand as shown above. Note that some clients (such as the one that comes with Microsoft ® Windows systems) will require prefixing this command with the
Resolving the problem
Contact the client software vendor to request a change to recognize PO-E and treat it the same as it would a PO data set. Pending that update, there are two options available:
- If the client software supports sending an arbitrary command to the server, issue a
SITE LISTLEVEL=0command to reset the option for this session (might require prefixing with the
QUOTEcommand). Then refresh the data set list.
- Contact the server's administrator to change the configuration to set
LISTLEVEL 0or remove the statement to let it default. Those users who want the distinction for their processes can issue a
SITE LISTLEVEL=1command for their sessions.
An alternative is to have two FTP servers running on the system, one with
LISTLEVEL 0configured and the other with
LISTLEVEL 1. The servers can be distinguished by their listening port or by having one associated with a specific IP address (using the BIND keyword on the PORT statement for that started task). Users can then select which server to specify, depending on the behavior they want.