Hercules virtual tape – large datasets

These are timings for a large one million customer records, dataset. It follows the same process below. It just goes to show my reasoning why I like this method to move large datasets to the virtual mainframe.

Use maketape to create the virtual tape file!

bill@bill-MS-7B79:~/Mystuff/Mainframe/MVS/JCL/TAPEDASD$ time ./maketape INPUT: customer-million.txt VOLSER: VOL001 DATASET: CUSTOMER.FILE OUTPUT: TAPE01.AWS LRECL: 165 BLOCK: 100
MAKETAPE v1.1 (C) copyright Jay Moseley, CCP 2000
Processing input from: customer-million.txt
Wrote 10000 blocks to AWSTAPE file: TAPE01.AWS (Seq #0001 Dataset:CUSTOMER.FILE )

real 0m0.430s
user 0m0.343s
sys 0m0.088s
bill@bill-MS-7B79:~/Mystuff/Mainframe/MVS/JCL/TAPEDASD$

Converted one million records in under a second to AWS tape

Load the virtual tape file into a MVS dataset!

HHC01603I devinit 00c /home/bill/Mystuff/Mainframe/MVS/JCL/TAPEDASD/TAPEDASD.JCL
HHC01046I 0:000C COMM: device unbound from socket 3505
HHC00101I Thread id 7F7AF1F1B700, prio 0, name Socket device listener ended
HHC02245I 0:000C device initialized
21.13.01 JOB 771 $HASP100 TAPEDASD ON READER1 BILL
21.13.01 JOB 771 $HASP373 TAPEDASD STARTED – INIT 1 – CLASS A – SYS TK4-
21.13.01 JOB 771 IEF403I TAPEDASD – STARTED – TIME=21.13.01
21.13.01 JOB 771 IEF233A M 480,VOL001,,TAPEDASD,STEP01
HHC01603I devinit 480 /home/bill/Mystuff/Mainframe/MVS/JCL/TAPEDASD/TAPE01.AWS
HHC00221I 0:0480 Tape file /home/bill/Mystuff/Mainframe/MVS/JCL/TAPEDASD/TAPE01.AWS, type aws: format type AW
HHC02245I 0:0480 device initialized
HHC00201I 0:0480 Tape file /home/bill/Mystuff/Mainframe/MVS/JCL/TAPEDASD/TAPE01.AWS, type aws: tape closed
21.13.11 JOB 771 IEF234E K 480,VOL001,PVT,TAPEDASD,STEP01
21.13.11 JOB 771 IEF404I TAPEDASD – ENDED – TIME=21.13.11
21.13.11 JOB 771 $HASP395 TAPEDASD ENDED
21.13.11 $HASP309 INIT 1 INACTIVE * C=A
21.13.11 JOB 771 $HASP150 TAPEDASD ON PRINTER1 90 LINES
21.13.11 $HASP160 PRINTER1 INACTIVE – CLASS=A
21.13.11 JOB 771 $HASP250 TAPEDASD IS PURGED

One million records loaded to a MVS dataset in about 10 seconds (21:13:01 – 21:13:11)

Of course a custom program such as a Cobol program could have just processed the Virtual tape directly! That would actually probably be best, no need to load to MVS dataset…it’s already on disk, even though MVS thinks it’s a tape!