Storing CSD data in Db2

If you want to store data in a Db2® database, you must format the data, create tables in Db2, and populate those tables with the data that has been formatted.

About this task

If you want to store the CSD data output by DFHCSDUP in Db2, complete the following steps:

Procedure

  1. Create tables in Db2.
    Use the sample Db2 table definitions provided in SDFHSAMP(DFH$DB2T) to create tables in Db2.
    1. Update the DFH$DB2T sample.
      Update the DFH$DB2T sample code to replace occurrences of <data base name>.<table space> with a database and table space name relevant to your environment, for example TESTDB.TESTDBTSP.
  2. Run DFHCSDUP with the Db2 formatting program.
    Use the supplied sample Db2 formatting program to organize the CSD data from DFHCSDUP into a format suitable for the Db2 table load utility. There are three versions of the sample formatting program; DFH$FORA for assembler, DFH0FORC for COBOL, and DFH$FORP for PL/I.
    The FOROUT DD statement must point to a data set with a record size of 1536.
  3. Populate the Db2 tables with the formatted data.
    Use the sample Db2 load logic provided in SDFHSAMP(DFH$SQLT) to populate the tables in Db2. A DD card called SYSREC is required, which must point to the data set that the Db2 formatting program has written its output to. This is the same data set that the FOROUT DD pointed to in the previous step.
    1. Update the DFH$SQLT sample.
      Update the DFH$SQLT sample code to replace occurrences of <owner> with an authorized user ID for the database.

Results

The data is stored in the tables you created in Db2.

Example

Here is an example of the JCL code that you could use to format your data and move it to Db2:

//DB2EXT  JOB MSGCLASS=H,CLASS=A,NOTIFY=&SYSUID                         
//*-----------------------------------------------
//*CSD EXTRACT                         
//*-----------------------------------------------
//EXTRACT  EXEC PGM=DFHCSDUP,REGION=2000K                         
//SYSPRINT DD SYSOUT=A                                            
//*                                                               
//STEPLIB  DD DSN=<cicshlq>.SDFHLOAD,DISP=SHR                 
//DFHCSD   DD DSN=TEST.RTSREG.CTS410.CICS660.CSD,DISP=SHR        
//SYSOUT   DD *                                                   
//FOROUT   DD DSN=USER1.TEST.DB2.INPUT,DISP=SHR                   
//SYSIN    DD *                                                   
  EXTRACT GROUP(TESTGRP) USERPROGRAM(DFH0FORC) OBJECTS             
/*
//
//DB2STG JOB 1,USER=TEST,CLASS=A,MSGCLASS=A,           
//          MSGLEVEL=(1,1),REGION=7M,NOTIFY=&SYSUID                 
//*                                                         
//JOBLIB   DD DSN=SYS2.DB2.V910.SDSNLOAD,DISP=SHR           
//*-----------------------------------------------          
//*   CREATE STORAGE GROUP/DATABASES/TABLESPACES            
//*-----------------------------------------------          
//CREATDB  EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT)        
//SYSTSPRT DD SYSOUT=*                                      
//SYSTSIN  DD *                                              
  DSN SYSTEM(DHP2)                                            
  RUN PROGRAM(DSNTIAD) PLAN(DSNTIA91) -                           
      LIB('DSN910P2.RUNLIB.LOAD')                         
//SYSPRINT DD SYSOUT=*                                      
//SYSUDUMP DD SYSOUT=*                                      
//SYSIN    DD *                                               
  DROP     DATABASE TESTDB;                                          
  DROP     STOGROUP TESTDBST;                                       
  CREATE   STOGROUP TESTDBST VOLUMES (SYSDA) VCAT DSN910P2;         
  CREATE   DATABASE TESTDB STOGROUP TESTDBST;                         
  COMMIT;                                                          
  CREATE   TABLESPACE TESTDBTS IN TESTDB                                       
  LOCKSIZE ROW;                                           
  COMMIT;                                                                  
/* 
//                                                               
//*-----------------------------------------------               
//*  CREATE TABLES AND INDEXES                                   
//*-----------------------------------------------               
//CREATTAB EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT)             
//DBRMLIB  DD DSN=DSN910P2.DBRMLIB.DATA,DISP=SHR                 
//SYSTSPRT DD SYSOUT=*                                           
//SYSTSIN  DD *                                                   
  DSN SYSTEM(DHP2)                                                 
  RUN PROGRAM(DSNTIAD) PLAN(DSNTIA91) -                                
  LIB('DSN910P2.RUNLIB.LOAD')                                 
//SYSPRINT DD SYSOUT=*                                           
//SYSUDUMP DD SYSOUT=*                                           
//SYSIN    DD *    
//* INCLUDE CONTENTS OF SDFHSAMP(DFH$DB2T) HERE
//*e.g.
//*CREATE TABLE ATOMSERVICE   
//*   (ATOMSERVICE   CHAR(8), 
//*    RDOGROUP      CHAR(8), 
//*    DESCRIPTION   CHAR(58),
//*    ATOMTYPE      CHAR(10),
//*    STATUS        CHAR(8), 
//*    CONFIGFILE    CHAR(255)
//*    RESOURCENAME  CHAR(16),
//*    RESOURCETYPE  CHAR(7), 
//*    BINDFILE      CHAR(255)
//*    DEFINETIME    CHAR(17),
//*    CHANGETIME    CHAR(17),
//*    CHANGEUSRID   CHAR(8), 
//*    CHANGEAGENT   CHAR(8), 
//*    CHANGEAGREL   CHAR(4)) 
//*   IN TESTDB.TESTDBTSP;        
//*
//*CREATE INDEX ATOMI ON ATOMSERVICE    
//*   (ATOMSERVICE ASC);       
//*
//* COMMIT;    
//* etc ... 
//
//GRANTACC EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT)      
//SYSTSPRT DD SYSOUT=*                                    
//SYSTSIN  DD *                                           
  DSN SYSTEM(DHP2)                                         
  RUN PROGRAM(DSNTIAD) PLAN(DSNTIA91) -                    
     LIB('DSN910P2.RUNLIB.LOAD')                          
//SYSPRINT DD SYSOUT=*                                    
//SYSUDUMP DD SYSOUT=*                                    
//SYSIN    DD *                                           
  GRANT DBADM ON DATABASE TESTDB TO PUBLIC;                  
  GRANT USE OF TABLESPACE TESTDB.TESTDBTS TO PUBLIC;          
  GRANT ALL PRIVILEGES ON TABLE TESTDBTB TO PUBLIC;          
/*                                                        
//  
//*-----------------------------------------------
//*LOAD DATA INTO TABLES
//*-----------------------------------------------
//DB2TBL JOB  CLASS=A,MSGCLASS=H,NOTIFY=&SYSUID,REGION=4096K,      
//          USER=TEST                                              
//*                                                                  
//JOBLIB DD DSN=SYS2.DB2.V910.SDSNLOAD,DISP=SHR                      
//*                                                                  
//*                                                                  
//****************  LOAD ITMNUMBR - TRANS WKLD  ******************** 
//*                                                                  
//STEPITM     EXEC  PGM=DSNUTILB,PARM='DHP2'                         
//UTPRINT  DD SYSOUT=*                                               
//SYSPRINT DD SYSOUT=*                                               
//SYSUDUMP DD SYSOUT=*                                               
//SYSUT1   DD DSN=ST.ITM02.SYSUT1,DISP=(MOD,DELETE,CATLG),           
// UNIT=SYSDA,SPACE=(CYL,(10,5))                                     
//SYSREC   DD DSN=USER1.TEST.DB2.INPUT,DISP=SHR                  
//SORTOUT  DD UNIT=SYSDA,SPACE=(CYL,(40,10),,,ROUND)                 
//SORTWK01 DD UNIT=SYSDA,SPACE=(CYL,(10,10))                         
//SORTWK02 DD UNIT=SYSDA,SPACE=(CYL,(10,10))                         
//SORTWK03 DD UNIT=SYSDA,SPACE=(CYL,(10,10))                         
//SORTWK04 DD UNIT=SYSDA,SPACE=(CYL,(10,10))                         
//SYSIN DD *    << INCLUDE CONTENTS OF SDFHSAMP(DFH$SQLT) HERE >>         
//* e.g.                                               
//*LOAD DATA                                                            
//*RESUME NO REPLACE                                                    
//*INTO TABLE ATOMSERVICE                                               
//*WHEN (1:4) = 'ATOM'                                                     
//*(ATOMSERVICE    POSITION (5:12)           CHAR,          
//* RDOGROUP       POSITION (13:20)          CHAR,          
//* DESCRIPTION    POSITION (21:78)          CHAR,          
//* ATOMTYPE       POSITION (79:88)          CHAR,          
//* STATUS         POSITION (89:96)          CHAR,          
//* CONFIGFILE     POSITION (97:351)         CHAR,          
//* RESOURCENAME   POSITION (352:367)        CHAR,          
//* RESOURCETYPE   POSITION (368:374)        CHAR,          
//* BINDFILE       POSITION (375:629)        CHAR,          
//* DEFINETIME     POSITION (630:646)        CHAR,          
//* CHANGETIME     POSITION (647:663)        CHAR,          
//* CHANGEUSRID    POSITION (664:671)        CHAR,          
//* CHANGEAGENT    POSITION (672:679)        CHAR,          
//* CHANGEAGREL    POSITION (680:683)        CHAR)      
//*INTO TABLE BUNDLE    
//*
//* etc...                          
/*   
//