Blog
DB2utor

Categories

January 21, 2008

Finding System Parameter Changes

The core of how DB2 is configured on z/OS is through system parameter macros. Commonly called zparms, these macros are stored in an assembled parameter module with a default name of DSNZPARM. The installation clist DSNTINST displays a series of ISPF panels that prompt you with questions. Once you step through all the questions, the clist builds a JCL member, hlq.NEW.SDSNSAMP(DSNTIJUZ). This is used to assemble the system parameters into a load module that's read by DB2 during startup.

While most people just accept the defaults when installing the system, the DB2 defaults aren't always the best way to go. It's much better to take the time to read the install guide and get an understanding of each of the parameters and how they impact your installation. From my own reading of different parameter descriptions, I've learned about DB2 features and functions that I didn't know existed. You'll also learn that some system parameters aren't externalized and prompted for in the install clist. The only ways to change the parameter is to edit the JCL found in DSNTIJUZ and manually change the parameter value.

If you're migrating to DB2 Version 8 and want to understand what's changed in the system parameters, you should review this blog entry by Willie Favero. I was personally interested in the differences between DB2 Version 8 and DB2 Version 9. So I printed out all of the system parameters as documented in the version 8 and 9 install guides and compared the names.

Then, while researching some of the new names, I found the IBM Redbook DB2 9 for z/OS Performance. Here I noticed some zparms listed that I didn't find in the installation guide, so I decided to verify these parms in the DSNTIJUZ member that's used to assemble the macros. When I didn't find HONOR_KEEPDICTIONARY in the JCL member, I ealized that if a parameter isn't mentioned at all, it defaults to the installation default. I haven't worked in the systems area in a while, so I couldn't recall where these parameters are kept. But then I remembered that they're in the DSN910.SDSNMACS library.

At this point I realized I was doing it the hard way. The fastest way to find what's changed is to ompare the current SDSNMACS library to the previous version library. So I compared DSN910.SDSNMACS to DSN810.SDSNMACS for each of the macros assembled by job DSNTIJUZ. The DSNTIJUZ assembles these macros:

System Execution Macros:

  • DSN6ENV - Describes the DB2 environment (MVS)
  • DSN6ARVP - Archive Log Parameters
  • DSN6LOGP - Active Log Parameters
  • DSN6FAC – Distributed Data Facility Parameters
  • DSN6SPRM – Database Services Address Space Parameters (DBM1)
  • DSN6SYSP – General System Parameters
  • DSN6GRP – Data Sharing Parameters

Application Programming Defaults:

  • DSNHDECP (source is DSNHDECM)
  • DB2 Message Manager
  • DSNHMCID (for EBCDIC CCSIDs, text conversion in offline messages)

Using ISPF option 3.13 Compare data sets extended, I found these changes:

  • "I" – New Parameter
  • "D" – Removed Parameter
  • "I", "D" pair then changed defaults

Changes in DSN910.SDSNMACS(DSN6LOGP)

  • I - &MAXARCH=10000,
  • D - &MAXARCH=1000,

Changes in DSN910.SDSNMACS(DSN6FAC)

  • I - &PRGSTRIN=ENABLE,
  • D - &SQLINTRP=ENABLE,

Changes in DSN910.SDSNMACS(DSN6SPRM)

  • I - &ADMTPROC=DSNADMT,
  • I - &CACHEDYN_FREELOCAL=1,
  • D - &CACHEDYN_FREELOCAL=0,
  • D - &COMCRIT=NO,
  • D - &OPTIXIO=ON,
  • I - &EDMPOOL_ABOVE_2GB=,
  • I - &EDM_SKELETON_POOL=102400,
  • I - &HONOR_KEEPDICTIONARY=NO,
  • I - &MAX_CONCURRENT_PKG_OPS=10,
  • I - &MAX_OPT_ELAP=,
  • D - &MAX_OPT_ELAP=100,
  • I - &MAX_OPT_STOR=40,
  • D - &MAX_OPT_STOR=20,
  • I - &MAXTEMPS=0,
  • I - &MINSTOR=YES,
  • D - &MINSTOR=NO,
  • I - &MXQBCE=1023,
  • D - &MXQBCE=32767,
  • I - &MXDTCACH=20,
  • I - &OPTIXIO=ON,
  • D - &OPTCCOS4=OFF,
  • I - &OPTXQB=ON,
  • D - &OPTXOIRC=OFF,
  • D - &PARAPAR1=NO,
  • I - &PLANMGMT=OFF,
  • I - &RELCURHL=,
  • I - &REOPTEXT=,
  • I - &RESTORE_RECOVER_FROMDUMP=NO,
  • I - &RESTORE_TAPEUNITS=NOLIMIT,
  • D - &RELCURHL=YES,
  • I - &RPITWC=YES,
  • I - &SJMXPOOL=,
  • D - &SJMXPOOL=20,
  • D - &SUPPRESS_TS_CONV_WARNING=NO,
  • I - &STATCLUS=ENHANCED,
  • I - &SYSTEM_LEVEL_BACKUPS=NO,
  • I - &TABLES_JOINED_THRESHOLD=,
  • D - &TABLES_JOINED_THRESHOLD=16,
  • I - &UTILS_DUMP_CLASS_NAME=,

Changes in DSN910.SDSNMACS(DSN6SYSP)

In this macro, rather than remove the keyword, it's simply noted that  the option is no longer upported.

  • I - &STORPROC=, NO LONGER SUPPORTED
  • D - &STORPROC=, STORED PROCEDURE MVS PROC NAME
  • I - &DBPROTCL=, NO LONGER SUPPORTED
  • D - &DBPROTCL=DRDA, DATABASE PROTOCOL FOR 3-PART
  • I - &MGEXTSZ=YES, SLIDING 2NDY QTYS FOR DB2-MGD
  • D - &MGEXTSZ=NO, SLIDING 2NDY QTYS FOR DB2-MGD
  • I - &MAXOFILR=100, MAX OPEN DS'S FOR LOB FILE
  • I - &TBSBP8K=BP8K0, Default 8K BP for implicit
  • I - &TBSBP16K=BP16K0, Default 16K BP for implicit
  • I - &TBSBP32K=BP32K, Default 32K BP for implicit
  • I - &IMPDSDEF=YES, Def DS when creating impl TS
  • I - &IMPTSCMP=NO, Use data compression for impl
  • I - &XMLVALA=204800, KB for XML values - per agent
  • I - &XMLVALS=10240, MB for XML values - per
  • I - &TBSBPLOB=BP0, Default BP for implicit LOB
  • I - &TBSBPXML=BP16K0, Dflt BP for implicit XML TSs
  • D - &XMLVALA=2097152, KB for XML values - per
  • D - &XMLVALS=2048 MB for XML values - per

Changes in DSN910.SDSNMACS(DSNHDECM) - DSNHDECP

  • I - &DEF_DECFLOAT_ROUND_MODE=ROUND_HALF_EVEN,

As you can see, there are numerous system parameter changes between DB2 8 and DB2 9. These changes include new parameters, removed obsolete parameters and default value changes to existing parameters. Next week I'll review these changes in detail.