Configuring the Japanese Db2® subsystem for use with HCL Z Asset Optimizer
About this task
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:
- 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
-
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:
-
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)) - Run HZASGKBL to load GKB data with these new LOAD defenitions.
-
Bind the Db2® DSNREXX plan.
Following are the implementation steps:
- Create a copy of db2.SDSNSAMP(DSNTIJTM). This copy should just contain the DSNREXX job step.
- Update the job by replacing parameter ENCODING (EBCDIC) with ENCODING (939). See example below:
- 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')