In previous versions of BSA, you could concatenate up to sixteen physical VSAM datasets to be used as one logical database. This was defined in the database definition file via ADD EXTEND. Concatenated datasets were used, for example, to overcome the 4 GB size limit of BSA V3 databases.
Using concatenated VSAM datasets is deprecated and current versions of BSA provide only limited support for them. It is possible to continue to work with existing concatenated VSAM datasets, but current versions of BSA don't provide support for further enlargement.
We strongly recommend that all users who are still working with concatenated VSAM datasets merge these datasets. Use extended VSAM datasets if the total size is greater than 4 GB. This is defined via the SMS data class (DSNTYPE = EXT). For BQL databases, the maximum size of an extended VSAM dataset is 28 GB. Define secondary space and additional volumes for your merged VSAM dataset to enable the dynamic extension of this database (see "Dynamic database extension").
Use the database panels under option D.1 and D.2.4 to find out whether you are affected. The table displays a Y in column X if concatenated VSAM datasets are present. Otherwise this column is blank.
The following steps are needed to merge concatenated VSAM datasets into one. The sample JCL is for a database with one extend (EXT01). All database access (STC(s) and batch jobs) must be stopped during this procedure.
Before you begin:
Following are the steps you need to carry out:
+-------------------------------------------------------------+
|//DBREPRO EXEC PGM=IDCAMS |
|//IN1 DD DISP=OLD, |
|// DSN=VSAM.BETA.DB |
|//IN2 DD DISP=SHR, |
|// DSN=VSAM.BETA.DB.EXT01 |
|//OUT1 DD DISP=(,CATLG),SPACE=(CYL,(600,50),RLSE), |
|// DSN=TEMP.BETA.DB, |
|// DCB=(RECFM=FB,LRECL=4088,BLKSIZE=0) |
|//OUT2 DD DISP=(,CATLG),SPACE=(CYL,(100,30),RLSE), |
|// DSN=TEMP.BETA.DB.EXT01, |
|// DCB=(RECFM=FB,LRECL=4088,BLKSIZE=0) |
|//SYSPRINT DD SYSOUT=* |
|//SYSIN DD * |
|REPRO IFILE(IN1) OFILE(OUT1) |
|REPRO IFILE(IN2) OFILE(OUT2) |
|/* |
+-------------------------------------------------------------+
+-------------------------------------------------------------+
|//DBREN EXEC PGM=IDCAMS |
|//* |
|//SYSPRINT DD SYSOUT=* |
|//SYSIN DD * |
| ALTER VSAM.BETA.DB - |
| NEWNAME(VSAM.BETA.DB.OLD) |
| ALTER VSAM.BETA.DB.DATA - |
| NEWNAME(VSAM.BETA.DB.OLD.DATA) |
| ALTER VSAM.BETA.DB.EXT01 - |
| NEWNAME(VSAM.BETA.DB.EXT01.OLD) |
| ALTER VSAM.BETA.DB.EXT01.DATA - |
| NEWNAME(VSAM.BETA.DB.EXT01.OLD.DATA) |
|/* |
+-------------------------------------------------------------+
You must carry out this step once for each extend. If you have more than one extend, you must carry out this step as often as the number of extends present.
+-------------------------------------------------------------+
|//DBFORM EXEC PGM=BST01RFF,REGION=0M,COND=(0,NE), |
|// PARM=('S=nn,B01LST=nn,BnnLST=nn', |
|// 'PGM=BST05CMD,SIGNON=NO') |
|//* |
|//STEPLIB DD DISP=SHR, |
|// DSN=BETA.BSAV7.LOAD |
|//SFFPARM DD DISP=SHR, |
|// DSN=BETA.PARMLIB |
|//BnnDEF DD DISP=SHR, |
|// DSN=VSAM.BETA.DEF |
|//* |
|//BQLIN DD * |
| DEFINE UPDATE FILE sname DEL EXTEND |
|/* |
|//SFFFDUMP DD SYSOUT=* |
|//SYSUDUMP DD SYSOUT=* |
|//* |
|//BQLPRINT DD SYSOUT=* |
|//SYSPRINT DD SYSOUT |
+-------------------------------------------------------------+
+-------------------------------------------------------------+
|//DBDEF EXEC PGM=IDCAMS |
|//SYSPRINT DD SYSOUT=* |
|//SYSIN DD * |
| DEFINE CLUSTER( - |
| NAME(VSAM.BETA.DB) - |
| CYLINDERS(cyl,cyl) - |
| SHAREOPTIONS(3 3) - |
| VOL(vol1 vol2 vol3 vol4) - |
| OWNER(Bnn) - |
| UNIQUE - |
| SPEED - |
| NONINDEXED - |
| ) - |
| DATA( - |
| NAME(VSAM.BETA.DB.DATA) - |
| CONTROLINTERVALSIZE(4096) - |
| RECORDSIZE(4088 4088) - |
| ) |
|/* |
+-------------------------------------------------------------+
+-------------------------------------------------------------+
|//DBREPRO EXEC PGM=IDCAMS |
|//IN1 DD DISP=OLD, |
|// DSN=TEMP.BETA.DB |
|// DD DISP=SHR, |
|// DSN=TEMP.BETA.DB.EXT01 |
|//OUT1 DD DISP=OLD,AMP=('AMORG,BUFND=181'), |
|// DSN=VSAM.BETA.DB |
|//SYSPRINT DD SYSOUT=* |
|//SYSIN DD * |
| REPRO IFILE(IN1) OFILE(OUT1) |
|/* |
+-------------------------------------------------------------+