Tuesday, July 1, 2008

DSNUPROC - Invocation of DB2 utility by using the supplied JCL procedure

First of all,
What is a utility versus other popular terms such as “tool” and “solution.”
A utility is a single purpose batch program for moving and/or verifying database pages; examples include LOAD, UNLOAD, REORG, CHECK, COPY, and RECOVER.
A database tool is a multi-functioned program designed to simplify database monitoring, management, and/or administration tasks.
A solution is a synergistic group of tools and utilities designed to work together to address a customer’s business issue.

DSNUPROC is a JCL Supplied procedure to invoke DB2 Online Utilities.
This procedure uses the parameters that you supply to build an appropriate EXEC statement that executes an online utility.To execute the DSNUPROC procedure, write and submit a JCL data set .In your JCL, the EXEC statement executes the DSNUPROC procedure

At a minimum you will need utilities:
to backup your data
to recover and restore your backups
to reorganize inefficient database objects
to collect database object statistics
to manipulate statistics in the DB2 Catalog
to load and unload data
to check for data integrity problems

Currently IBM only offers one choice to its customers: buy all of the DB2 utilities or none of them. So, DB2 shops have to decide whether they will buy and run IBM’s utilities, or use a competing set of utilities. The ISVs offer more flexibility, though. For example, you could buy your REORG and UNLOAD from BMC, your CHECK and COPY from Computer Associates, your LOAD from CDB, etc. It is not an all-or-nothing proposition. But you will need to make sure you have the entire suite of utility functionality covered.

Sample DSNUPROC :

//STEP1 EXEC DSNUPROC,UID='SMPLUNLD',UTPROC='',SYSTEM='DB8A'
//STEPLIB DD DSN=DB8A.DSN810.SDSNLOAD,DISP=SHR
//SYSREC DD DSN=TSOBZMA.#TS#.UNLOAD,
// DISP=(NEW,CATLG,DELETE),
// UNIT=SYSDA,SPACE=(TRK,(2,1))
//SYSPUNCH DD DSN=TSOBZMA.LDCARD(#TS#),DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
UNLOAD TABLESPACE #SCHEMA#.#TS#
DELIMITED CHARDEL '#' COLDEL ';' DECPT '!'
FROM TABLE TSOTZMA.FRAUDACCTSUM
/*


Sample listing of supplied JCL procedure DSNUPROC
//DSNUPROC PROC LIB='DSN!!0.SDSNLOAD',
// SYSTEM=DSN,
// SIZE=0K,UID='',UTPROC=''
//********************************************************************
//* PROCEDURE-NAME DSNUPROC
//* *
//* DESCRIPTIVE-NAME: UTILITY PROCEDURE *
//* *
//* FUNCTION: THIS PROCEDURE INVOKES THE ADMF UTILITIES IN THE *
//* BATCH ENVIRONMENT *
//* *
//* PROCEDURE-OWNER: UTILITY COMPONENT *
//* *
//* COMPONENT-INVOKED: ADMF UTILITIES (ENTRY POINT DSNUTILB). *
//* *
//* ENVIRONMENT: BATCH *
//* *
//* INPUT: *
//* PARAMETERS: *
//* LIB = THE DATA SET NAME OF THE DB2 PROGRAM LIBRARY. *
//* THE DEFAULT LIBRARY NAME IS PREFIX.SDSNLOAD, *
//* WITH PREFIX SET DURING INSTALLATION. *
//* SIZE = THE REGION SIZE OF THE UTILITIES EXECUTION AREA.*
//* THE DEFAULT REGION SIZE IS 2048K. *
//* SYSTEM = THE SUBSYSTEM NAME USED TO IDENTIFY THIS JOB *
//* TO DB2. THE DEFAULT IS "DSN". *
//* UID = THE IDENTIFIER WHICH WILL DEFINE THIS UTILITY *
//* JOB TO DB2. IF THE PARAMETER IS DEFAULTED OR *
//* SET TO A NULL STRING, THE UTILITY FUNCTION WILL *
//* USE ITS DEFAULT, USERID.JOBNAME. EACH UTILITY *
//* WHICH HAS STARTED AND IS NOT YET TERMINATED *
//* (MAY NOT BE RUNNING) MUST HAVE A UNIQUE UID. *
//* UTPROC = AN OPTIONAL INDICATOR USED TO DETERMINE WHETHER *
//* THE USER WISHES TO INITIALLY START THE REQUESTED*
//* UTILITY OR TO RESTART A PREVIOUS EXECUTION OF *
//* THE UTILITY. IF OMITTED, THE UTILITY WILL *
//* BE INITIALLY STARTED. OTHERWISE, THE UTILITY *
//* WILL BE RESTARTED BY ENTERING THE FOLLOWING *
//* VALUES: *
//* RESTART(PHASE) = RESTART THE UTILITY AT THE *
//* BEGINNING OF THE PHASE EXECUTED *
//* LAST. *
//* RESTART = RESTART THE UTILITY AT THE LAST *
//* OR CURRENT COMMIT POINT. *
//* *
//* OUTPUT: NONE. *
//* *
//* EXTERNAL-REFERENCES: NONE. *
//* *
//* CHANGE-ACTIVITY: *
//* *
//**********************************************************************
//DSNUPROC EXEC PGM=DSNUTILB,REGION=&SIZE,
// PARM='&SYSTEM,&UID,&UTPROC' //STEPLIB DD DSN=&LIB,DISP=SHR
//**********************************************************************
//* *
//* THE FOLLOWING DEFINE THE UTILITIES' PRINT DATA SETS *
//* *
//**********************************************************************
//* //SYSPRINT DD SYSOUT=*
//UTPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//*DSNUPROC PEND REMOVE * FOR USE AS INSTREAM PROCEDURE

No comments: