I've been wrong before, but in my experience transport files which are
created on an MVS system with a block size other than 8000 are only
readable on the creating system. This caused me some embarassment--I
verified the files before I sent them and I told my agency the contract
was complete, but the files were unreadable on a CMS system. Eventually
I added a DCB parameter to the NDM job which moved the data. That
reblocked the data and the new copies were PROC CIMPORT-able.
My point is, check your DCB. Maybe the files are really blocked
80/8000. Transport files ARE NOT variable blocked files, so the stuff
which shows alternating record lengths of 79 and 81 is not a transport
----------------------[Reply - Original Message]----------------------
Sent by:"A. Natarajan" <email@example.com>
I am trying to read 3 XPORT format files off a 9-track tape, and I am
having problems - this is more in the nature of a UNIX query than a
SAS query, though.
The tape is a 9-track 6250 bpi tape, with an IBM Standard Label. The
3 files are supposed to SAS XPORT format files, created on an MVS
machine, about 3 years ago.
I don't have access to an MVS mainframe, or indeed any IBM type O.S.
machine. I am trying to read the tape on a Convex, running its
version of UNIX. This means that I am using a 'dd' command to read
stuff off the tape.
On the Convex there is a tape utility which I had to use to get the
label, so that I could then by-pass the label. This utility tells me
that the files are FB, 32640 BlockSize, and the Record Length is 80.
This sort of assures me that the files are really in XPORT format,
otherwise this whole exercise is pointless.
I use this dd command (or a variant thereof)
dd if=/dev/rmt/0n ibs=32640 obs=80 conv=block,ascii of=file1.xport
[I have also tried with conv=sync, cbs=80, etc....]
The problem is that I end up with Variable Record files, with the
first line 79 characters long, the second 81 characters, the third
back to 79, after which it sort of alternates between 79, 81 and a
third value. Obviously SAS (either on a PC or on a Sun) cannot read
this as a transport file. The person who gave us the tape does not
have an MVS machine at his site, or access to the data on another
machine, so we are stuck with this tape.
When I look at the file created on the Convex (using more or vi), I
see the SAS headers that say that file was created under SAS 6.09 on
MVS, and the names of the variables, and the labels. The data is in
hex, and using 'od', I have not been able to decipher the contents.
My question is if someone has used dd to retrieve files successfully
off a tape created on a mainframe running MVS. If so what command did
you use? and are there any special tricks?
Failing which, can someone recommend a data bureau in the Orange
County area that can read MVS tapes and convert them into 8 mm or 4
mm? Or at some other location? I am tired of schlepping the tape
over and forcing an operator to mount it on this Convex, and then
waiting for the tape mount, and trying other combinations of dd, mt