Hi Charles,
I think the "trick" here is to make the Elib Page Size match the VSAM Control Interval size - i.e. just know that VSAM will reserve eight bytes in the record, so you (Endevor in this case) doesn't have to... Weird, but I used an example like this and it works for me.
//*-------------------------------------------------------------------
//* STEP 1 -- ALLOCATE A VSAM ELIB
//*-------------------------------------------------------------------
//ALLOCATE EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DELETE 'NDVR.EOIN.DELTA' SCRATCH
DEFINE CLUSTER (NAME('NDVR.EOIN.DELTA') -
RECORDSIZE(16376 16376) -
CONTROLINTERVALSIZE(
16384) -
SHAREOPTIONS(3,3) -
CYLINDERS(5,1) -
NONINDEXED -
) -
DATA (NAME('NDVR.EOIN.DELTA.DATA'))
//*
//*-------------------------------------------------------------------
//* STEP 2 -- INITIALIZE THE ELIB USING THE BC1PNLIB UTILITY
//*-------------------------------------------------------------------
//STEP1 EXEC PGM=NDVRC1,PARM=(BC1PNLIB)
//SYSPRINT DD SYSOUT=*
//BSTERR DD SYSOUT=*
//INITDELT DD DSN=NDVR.EOIN.DELTA,DISP=OLD
//SYSIN DD *
INIT DDNAME = INITDELT
PAGE SIZE =
16384ALLOCATE = (899,180)
RESERVE PAGES = 500
DIRECTORY PAGES = 100
.
INQUIRE DDNAME = INITDELT.
Hope that helps.
Regards,
Eoin
Original Message:
Sent: Sep 21, 2022 09:03 AM
From: Charles Gaskell
Subject: VSAM Elibs with large page sizes
Has anyone successfully allocated VSAM Elibs with page sizes bigger than 4088? I'm finding the manual slightly confusing
Setting Up ELIB Data Sets (broadcom.com)
PAGE SIZE(Optional) If you are using VSAM clusters, page size is system-defined by the IDCAMS utility as eight bytes less than the control interval size.
If you are using BDAM data sets, page size equals block size. Block size is specified in the JCL. If you also code a PAGE SIZE statement, the system validates it against the block size you have specified in the JCL.
Valid page sizes are 512 to 8192 bytes in increments of 512 bytes, and from 8KB (or 8192 bytes) to 32KB (or 32768 bytes) in increments of 2KB (or 2048 bytes).
If you code a PAGE SIZE statement, the entry can have up to six numeric characters.
I'm not sure this is accurate. The standard page size for our VSAM Elibs, and the one in the examples later on in the manual, is 4088, but this isn't a multiple of 512 bytes! We are also able to process BDAM Elib files with block size / Page size of 4088 too.
I allocated a VSAM file with
RECORDSIZE(16384 16384) - CONTROLINTERVALSIZE(16392) -and then tried to format it as an Elib with
PAGE SIZE = 16384but got the error message
ENDEVOR-LIB INIT/EXPAND/REORG/INQUIRE UTILITYC1LB002S LIBRARY IS NOT ENDEVOR LIB DATASET.
Any help gratefully received!
Charles Gaskell