Configuring the Japanese Db2® subsystem for use with HCL Z Asset Optimizer

About this task

HCL Z Asset Optimizer is implemented with a Japanese Db2® subsystem that is configured with the MCCSID=939 code page (Japanese extended English).

If your Db2® for z/OS® system is configured with MCCSID=930, MCCSID=1390, or MCCSID=5026 code page (Japanese extended Katakana), additional customization is required to set up HCL Z Asset Optimizer.

For Katakana codepage, data for lower case characters (a,b,c,d,...,z) are stored differently in the databases. For example:

  • c = x’83’ for Latin-based codepage
  • c = x’64’ for Katakana codepage

In Katakana, the hex definitions for lower case characters are different from Latin-based codepages.

In HCL Z Asset Optimizer, some columns have data stored in lower case. As a result, there are extra considerations in managing the conversion of data for lower case characters. In addition, module names in the GKB Knowledge Base for z/OS (not GKB Knowledge Base for z/OS UNIX System Services), are in encoded format – meaning some of the encoded characters are in lower case characters.

For consistency in HCL Z Asset Optimizer, if the Db2® subsystem is defined in the Katakana code page, then all lower case characters must be stored in the Katakana format (value of ‘c’ must be stored as x’64’).

When setting up a Db2® subsystem to support EBCDIC double byte CCSID (coded character set identifiers), in the Db2® for z/OS installation job (DSNTIJUZ), parameter MIXED is set to ‘YES’ and parameter MCCSID defined with different values (default value is a 65534). Here is an example from DSNTIJUZ:

DSNHDECM CHARSET=KATAKANA
  • ASCCSID=1041
  • AMCCSID=942
  • SCCSID=290
  • MCCSID=930 (1390 or 5026)
  • GCCSID=300
  • USCCSID=367
  • UMCCSID=1208
  • UGCCSID=1200
  • ENSCHEME=EBCDIC
  • APPENSCH=EBCDIC
  • ENSCHEME=EBCDIC
  • APPENSCH=EBCDIC
  • DATE=ISO
  • DATELEN=0
  • DECARTH=DEC15
  • DECIMAL=PERIOD
  • DEF_DECFLOAT_ROUND_MODE=ROUND_HALF_EVEN
  • DEFLANG=IBMCOB
  • DELIM=DEFAULT
  • IMPLICIT_TIMEZONE=CURRENT
  • MIXED=YES

You must perform additional customization in HCL Z Asset Optimizer.

Customization are as follows:

Procedure

  1. Update the ODBC Initialization file.

    The ODBC initialization file can be found in members:

    PARMLIB (HZASCLI) and PARMLIB (HZASCLIT).

    Do the following in members HZASCLI and HZASCLIT:

    1. Uncomment parameter CURRENTAPPENSCH in the "COMMON” section.
      Here is an example on updating the two values:
      ; COMMON section
      CURRENTAPPENSCH=939
      ;
  2. Update the following PARMLIB members to include the "CCSID (1027,939,300)" entry for all "LOAD DATA" statements:

    HZASSQ06

    HZASSQ12

    HZASSQ29

    For example in PARMLIB (HZASSQ29):
    LOAD DATA INDDN TPARAM   LOG YES REPLACE
                CCSID (1027,939,300)
                INTO TABLE TFGKBZ9_IQF7.TPARAM (        
                FKEY               POSITION(  1: 64) CHAR(64),   
                FVALUE             POSITION( 65:318) CHAR(254))  
                
                LOAD DATA INDDN TCOMPILE  LOG YES REPLACE 
                CCSID (1027,939,300)
                INTO TABLE TFGKBZ9_IQF7.TCOMPILERS (    
                FCOMPID            POSITION(  3: 17) CHAR(15),   
                FCOMPNAME          POSITION( 18: 47) CHAR(30))   
                
                LOAD DATA INDDN TIQFILTR  LOG YES REPLACE
                CCSID (1027,939,300)
                INTO TABLE TFGKBZ9_IQF7.TIQFILTERS (    
                FOWNER             POSITION(  3:  3) CHAR(1),    
                FIQFILTER          POSITION(  4: 58) CHAR(55),   
                FLPARNAME          POSITION( 59: 62) CHAR(4)) 
                
                LOAD DATA INDDN TXPCMODU  LOG YES REPLACE
                CCSID (1027,939,300)
                INTO TABLE TFGKBZ9_IQF7.TXPCMODULES (   
                FOWNER             POSITION(  2:  2) CHAR(1),    
                FMODNAME           POSITION(  3:256) CHAR(254))  
                
                LOAD DATA INDDN TXPCSPEC  LOG YES REPLACE 
                CCSID (1027,939,300)                  
                INTO TABLE TFGKBZ9_IQF7.TXPCSPEC (      
                ID                 POSITION(  2:  5) INTEGER,    
                FLIST              POSITION(  6: 55) CHAR(50))   
                
                LOAD DATA INDDN TXVENDOR  LOG YES REPLACE
                CCSID (1027,939,300)
                INTO TABLE TFGKBZ9_IQF7.TXVENDORS (     
                FOLDVENDORNAME     POSITION(  2: 65) CHAR(64),   
                FNEWVENDORNAME     POSITION( 66: 95) CHAR(30))
  3. Run HZASGKBL to load GKB data with these new LOAD defenitions.
  4. Bind the Db2® DSNREXX plan.

    Following are the implementation steps:

    1. Create a copy of db2.SDSNSAMP(DSNTIJTM). This copy should just contain the DSNREXX job step.
    2. Update the job by replacing parameter ENCODING (EBCDIC) with ENCODING (939). See example below:
    3. Run the modified DSNTIJTM job. DSNREXX plan should now have ENCODING (939).
    Example:
    DSN SYSTEM(DSN)
                BIND PACKAGE(DSNREXX) MEMBER(DSNREXX)  ACTION(REPLACE)
                ISOLATION(CS)-
                LIBRARY('DB2V12.SDSNDBRM')-
                VALIDATE(BIND) CURRENTDATA(NO)-
                ENCODING(939)
                BIND PACKAGE(DSNREXUR) MEMBER(DSNREXX) ACTION(REPLACE)
                ISOLATION(UR)-
                LIBRARY('DB2V12.SDSNDBRM')-
                VALIDATE(BIND)-
                ENCODING(939)
                BIND PACKAGE(DSNREXCS) MEMBER(DSNREXX) ACTION(REPLACE)
                ISOLATION(CS)-
                LIBRARY('DB2V12.SDSNDBRM')-
                VALIDATE(BIND) CURRENTDATA(NO)-
                ENCODING(939)
                BIND PACKAGE(DSNREXRS) MEMBER(DSNREXX) ACTION(REPLACE)
                ISOLATION(RS)-
                LIBRARY('DB2V12.SDSNDBRM')-
                VALIDATE(BIND)-
                ENCODING(939)
                BIND PACKAGE(DSNREXRR) MEMBER(DSNREXX) ACTION(REPLACE)
                ISOLATION(RR)-
                LIBRARY('DB2V12.SDSNDBRM')-
                VALIDATE(BIND)-
                ENCODING(939)
                BIND PLAN(DSNREXX) -
                PKLIST(*.DSNREXX.DSNREXX, -
                *.DSNREXUR.DSNREXX, -
                *.DSNREXCS.DSNREXX, -
                *.DSNREXRS.DSNREXX, -
                *.DSNREXRR.DSNREXX) -
                ACT(REP) ISO(CS) CURRENTDATA(YES) SQLRULES(DB2) -
                ENCODING(939)
                RUN PROGRAM(DSNTIAD)  PLAN(DSNTIA12) -
                LIB('DB2V12.RUNLIB.LOAD')