MVS allows for the use of PO datasets. This type of datasets are like Windows or UNIX libraries where sub libraries are not allowed. A PO dataset therefore only contains a number of flat files. The special thing about PO datasets is that their structure are not supported by other operating systems. Unfortunately this fact has a high impact on the standard tools that are able to transfer data between MVS and other operating systems like UNIX, LINUX or Windows. These tools only allows transfer of members one by one in a PO dataset. This is true for PC file transfer using SEND and RECEIVE and it also applies to FTP transfers using PUT and GET.
Now think of other operating systems as a temporary data storage for transfers between separate MVS operating systems. In such a case you have no intentions of reading members in your PO dataset on these operating systems. You are able to transfer a complete PO dataset by preparing it for transfer by using the TSO command TRANSMIT also known as XMIT. Use the following command:
The TRANSMIT command insists on having a receiver of whatever you send. Therefore you have to type in a valid destination, in the example MYJES.MYUSER. I use the name of the JES node on the MVS where I execute the command instead of MYJES and I use my own userid as MYUSER. The DA parameter accepts the name of the PO dataset that I want to prepare and the OUTDATASET parameter accepts the name of a flat dataset where the PO dataset is copied to. The TRANSMIT command creates the flat dataset if it does not already exists. It is by the way created with LRECL=80, RECFM=FB and BLKSIZE=3120 no matter how hard you try to give the flat dataset other DCB informations. This also applies even when the dataset already exists.
After executing the above command you can transfer MY.PC.DATASET to your PC or an FTP server or something else. There is an important detail when you make the transfer, you must use a binary transfer. Now you are able to use your PO dataset at any other MVS installation. First of all you must transfer the PC file to the destination MVS using yet another binary transfer. Then you must execute the following TSO command:
This command will prompt you in the usual fashion. The RECEIVE command will now read data from MY.PC.DATASET instead of the JES spool. When the RECEIVE command prompts you, you may type in DATASET(MY.PO.DATASET) in order to keep its original name. The RECEIVE command will create a PO dataset with exactly the same storage attributes and DCB informations as the original PO dataset.
In the examples I have not used any quotation marks around dataset names. This means that normal TSO prefixing will take place. The contens of the PO dataset does not matter. Ordinary text members or load modules are treated in exactly the same way. The only problem may be different code pages influencing the looks of some characters.