Inside QSAM
Q : Well someone asked me the other day can I use Host Integration Server's VSAM provider to access QSAM.
A : I would rephrase it as does DDM support QSAM ? if yes them you can definitley.
Host Integration Server has implemented this cool technology called IBM's DDM( distributed Data Management) Protocol. It makes applications running under HIS understand and use DDM calls directly indirectly to access mainframe file systems.
In this article I wished to provide a link to manual / red book of DDM, I am running short of time to find it right at this monent . Will keep you posted. but by that time you can always visit HIS product documentation
https://www.microsoft.com/technet/archive/sna/evaluate/recordlv.mspx?mfr=true
so QSAM is nothing but a sequential file which is told to do I/O operations through a buffer. its a Queued sequential access method where Queuse means a catche of memory where data would be stored first untill its full and then it would be actually written or exposed to the source call.
here is my simple JCL to define a QSAM file :
//BVT1QSAM JOB (),'RUN QSAMSTS',
// CLASS=A,
// MSGCLASS=K,
// MSGLEVEL=(1,1),
// NOTIFY=&SYSUID
//*-------------------------------------------------------------------*
//* TEXT - CREATE A SEQUENTIAL DATA SET ON DISK USING IEBGENER.
//* THE FIRST JOB STEP (STEP005) WILL DELETE ANY PREVIOUSLY CREATED//*
//* SECOND JOB STEP (QSAMCRT1) WILL CREATE A NEW FILE.
//*-------------------------------------------------------------------*
//STEP005 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN DD *
DELETE ASMITAW.HOSTFL.QSAM.BVTTEST -
NONVSAM
//*
//*-------------------------------------------------------------------*
//* SORT, THEN REPRO BVTTESTS INTO THE QSAM FILES *
//*-------------------------------------------------------------------*
//QSAMCRT1 EXEC PGM=IDCAMS,
// COND=(8,LT,STEP005)
//DDIN DD DSN=ASMITAW.HOSTFL.FLAT.BVTTESTS,DISP=SHR
//DDOUT DD DSN=ASMITAW.HOSTFL.QSAM.BVTTESTS,
// DISP=(NEW,CATLG,DELETE),
// UNIT=3390,
// SPACE=(TRK,(5,2)),
// STORCLAS=DBCLASS,
// DCB=(RECFM=FB,LRECL=46,BLKSIZE=460,DSORG=PS)
//*
//SYSIN DD *
REPRO -
INFILE(DDIN) -
OUTFILE(DDOUT)
//SYSPRINT DD SYSOUT=*
//