Troubleshooting
Problem
ISPF BROWSE of a data set shows that it contains only readable text. After it is transferred using FTP in ASCII mode, the file on the remote system becomes corrupted with various unprintable characters scattered throughout, incorrect line breaks and (probably) extra data at the end.
Cause
Check to see if the original data set was created, copied, or edited with ISPF packing enabled. To do this, use ISPF EDIT or VIEW to open the data set or member, then enter the PROFILE command. PACK ON displays on the fourth line of command output to show that the data set has ISPF packing.

When using ISPF BROWSE, VIEW and EDIT functions, packed data sets appear as readable text with no unprintable characters; however, the actual records in the data set contain various unprintable hexadecimal values substituted for blank space. FTP and many other z/OS processes and utilities do not recognize ISPF-packed format. When such a data set is transferred in ASCII mode, it attempts to translate those hexadecimal values from EBCDIC to ASCII, resulting in unusable characters at the destination, even if the destination is another z/OS system. Additionally, if the original data set is RECFM=FB, ISPF leaves extraneous data in the last record to fill it out to the record length (LRECL).
Resolving The Problem
To ensure that the data set retains the ISPF packing structure during transfer from one z/OS system to another, use EBCDIC type and BLOCK (or COMPRESS) mode for the transfer instead of ASCII type. For data sets that are Fixed Block format, you can also use BINARY type and STREAM mode.
If the target system is not z/OS, you must convert the data set from ISPF packing to unpacked format before using FTP. To convert the data set:
- ISPF EDIT, then issue the PACK OFF command and save the data set.
or
- ISPF option 3.3 to copy it to another data set, then set the Pack Option (bottom of the second screen, in the center) to NO.

or
- If writing a CLIST, REXX exec, or program to perform the transfer, use the LMCOPY service without the PACK keyword.
- For z/OS 2.2 or above, the ISPF Configuration Table can be changed to disable ISPF packing globally (GLOBAL_DISABLE_PACK in the EDIT related settings). If specified, any currently packed data set or members will be unpacked the next time they are processed by EDIT, COPY, or MOVE services within ISPF.
Was this topic helpful?
Document Information
Modified date:
15 June 2018
UID
swg21111883