SAMPLIB member CBRILOB, as shown here, creates the LOB storage
structure for LOB support. You must modify and run the job successfully
before you use OAM.
//CBRILOB JOB MSGLEVEL=(1,1),CLASS=A,MSGCLASS=A
//********************************************************************
//*
//* $SEG(CBRILOB) COMP(DBM) PROD(OAM):
//*
//* OAM DB2 Data Set Allocation and Database Definition job for
//* LOB Storage Structures (LOB tablespaces, Base tables, Base
//* table views, Auxiliary tables and Auxiliary index.
//* ---------------------------------------------------------------
//* ---------------------------------------------------------------
//*
//* CBRILOB
//*
//* This job will
//* 1. DEFINE VSAM ESDS THAT WILL BE USED BY DB2 to create
//* the LOB Storage Structure.
//* 2. Create the LOB base table, base table view, auxiliary table,
//* and index that comprise the LOB Storage Structure within the
//* Object Storage Table Hierarchy.
//*
//* Prior to executing this job you need to make the
//* following modifications:
//*
//* 1. Change "vol_ser" to the volume serials that your
//* target database should reside on.
//* 2. Change "pri_alloc" and "sec_alloc" to the desired
//* number of cylinders for each particular VSAM ESDS
//* being defined. For example, CYLINDER(pri_alloc
//* sec_alloc) may be CYLINDER(200 10).
//* 3. Change "cat_name" to the name of the catalog you
//* will be using under DB2.
//* 4. If you intend on using the DSN1COPY utility to copy
//* these data bases, then you must include the REUSE keyword
//* in the DEFINE CLUSTER command for each data base.
//* 5. Change "osg_hlq" to the high level qualifier to be used
//* for the object storage group definition and tables.
//* This is the qualifier used on the object storage group
//* define through ISMF and used by OAM and OSR for all access
//* to the object storage group's directories and data tables.
//* 6. Change "ds_size" to the maximum size allowed for each data
//* set. Please refer to the DB2 for z/OS SQL reference
//* manual for limitations.
//* 7. Change "auth_id" to the identifier(s)
//* authorized for the respective group.
//* 8. Change the name in the DSN SYSTEM(DB2) statement to
//* the name of the DB2 Subsystem in your installation.
//* 9. Change the data set name in the RUN statement
//* LIB('DB2.RUNLIB.LOAD') phrase to the data set name used
//* in your installation for the DB2 RUNLIB.LOAD data set.
//* 10. Change the PLAN name (DSNTIA71) in the RUN statement to
//* match your current DB2 version and release level.
//* 11. Add additional job steps, repeating all statements in the
//* STEP00 - STEP02, for each object storage group defined in
//* your configuration. In each repeated step, change the
//* qualifier to match the qualifier for each object storage
//* group.
//*
//*
//* If you have run this job and want to start over
//* again, just issue a DROP for each LOB base table and for each
//* base tablespace and auxiliary tablespace that was previously
//* defined in DB2 by this job.
//*
//*******************************************************************
//*
//* CHANGE ACTIVITY:
//* $L0=HDZ1180 R18 050531 TUCGPW: INITIAL RELEASE
//* $P0=K180710 R18 051214 TUCGPW: Change ROW_ID to OTROWID
//* $00=OA16562 R18 060519 TUCBLC: Change OTOBJ to 2G
//* $L1=OAMR1B R1B 080807 TUCBLC: OAMR1B Bug Sug #82
//*
//*********************************************************************
//STEP00 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN DD *
DELETE -
cat_name.DSNDBC.osg_hlq.OSMLBTS.I0001.A001 -
CLUSTER -
PURGE
DELETE -
cat_name.DSNDBC.osg_hlq.OTLOBX1.I0001.A001 -
CLUSTER -
PURGE
DELETE -
cat_name.DSNDBC.osg_hlq.OSMLATS.I0001.A001 -
CLUSTER -
PURGE
DELETE -
cat_name.DSNDBC.osg_hlq.OTLOBAX1.I0001.A001 -
CLUSTER -
PURGE
SET LASTCC=0
SET MAXCC=0
/*
//STEP01 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN DD *
DEFINE CLUSTER -
(NAME(cat_name.DSNDBC.osg_hlq.OSMLBTS.I0001.A001) -
LINEAR -
SHAREOPTIONS(3 4) -
VOLUMES(vol_ser) -
CYLINDERS(pri_alloc sec_alloc) -
UNIQUE ) -
DATA -
(NAME(cat_name.DSNDBD.osg_hlq.OSMLBTS.I0001.A001))
DEFINE CLUSTER -
(NAME(cat_name.DSNDBC.osg_hlq.OTLOBX1.I0001.A001) -
LINEAR -
SHAREOPTIONS(3 4) -
VOLUMES(vol_ser) -
CYLINDERS(pri_alloc sec_alloc) -
UNIQUE ) -
DATA -
(NAME(cat_name.DSNDBD.osg_hlq.OTLOBX1.I0001.A001))
DEFINE CLUSTER -
(NAME(cat_name.DSNDBC.osg_hlq.OSMLATS.I0001.A001) -
LINEAR -
SHAREOPTIONS(3 4) -
VOLUMES(vol_ser) -
CYLINDERS(pri_alloc sec_alloc) -
UNIQUE ) -
DATA -
(NAME(cat_name.DSNDBD.osg_hlq.OSMLATS.I0001.A001))
DEFINE CLUSTER -
(NAME(cat_name.DSNDBC.osg_hlq.OTLOBAX1.I0001.A001) -
LINEAR -
SHAREOPTIONS(3 4) -
VOLUMES(vol_ser) -
CYLINDERS(pri_alloc sec_alloc) -
UNIQUE ) -
DATA -
(NAME(cat_name.DSNDBD.osg_hlq.OTLOBAX1.I0001.A001))
/*
//STEP02 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT)
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
DSN SYSTEM(DB2)
RUN PROGRAM(DSNTIAD) PLAN(DSNTIA71) -
LIB('DB2.RUNLIB.LOAD')
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN DD *
CREATE TABLESPACE OSMLBTS
IN osg_hlq
USING VCAT cat_name
LOCKSIZE ANY
CLOSE NO
SEGSIZE 64
BUFFERPOOL BP32K;
CREATE TABLE osg_hlq.OSM_LOB_BASE_TBL
(
OTVER CHAR(1) NOT NULL,
OTSEG SMALLINT NOT NULL,
OTCLID INTEGER NOT NULL,
OTNAME VARCHAR(44) NOT NULL,
OTROWID ROWID NOT NULL GENERATED ALWAYS,
OTOBJ BLOB(2G) NOT NULL
)
IN osg_hlq.OSMLBTS;
CREATE UNIQUE INDEX osg_hlq.OTLOBX1
ON osg_hlq.OSM_LOB_BASE_TBL
(
OTCLID ASC,
OTNAME ASC
)
CLUSTER
USING VCAT cat_name
CLOSE NO
BUFFERPOOL BP1
PCTFREE 10;
COMMIT;
CREATE VIEW
osg_hlq.V_OSM_LOB_BASE_TBL
AS SELECT ALL * FROM
osg_hlq.OSM_LOB_BASE_TBL;
GRANT ALL ON
osg_hlq.V_OSM_LOB_BASE_TBL
TO auth_id;
COMMIT;
CREATE LOB TABLESPACE OSMLATS
IN osg_hlq
USING VCAT cat_name
LOG NO
LOCKSIZE LOB
BUFFERPOOL BP32K
DSSIZE ds_size
GBPCACHE SYSTEM;
CREATE AUXILIARY TABLE osg_hlq.OSM_LOB_AUX_TBL
IN osg_hlq.OSMLATS
STORES osg_hlq.OSM_LOB_BASE_TBL
COLUMN OTOBJ;
CREATE UNIQUE INDEX osg_hlq.OTLOBAX1
ON osg_hlq.OSM_LOB_AUX_TBL
USING VCAT cat_name;
COMMIT;
/*
//