Installation and Configuration
The support assumes that REST service versioning is active on the target Db2 subsystem. This is the default for a certain level of service on Db2 version 12. If not, the following IBM sample is used to activate it:
DSN1210.SDSNSAMP(DSNTIJR2)
The following members of the CMNZMF.CNTL distribution library have changed:
- DB2OPTN
- DB2OPTNR
These jobs are described in more detail below.
DB2OPTN
The following columns in the CMNADMIN_NAMED table were added in ZMF 8.2 Patch 4 to support the bind service function:
-
SERVICE_COLLECTION_SRC IS 'Source template for COLLID - Bind service' ,
-
SERVICE_COLLECTION_TGT IS 'Target template for COLLID - Bind service' ,
-
SERVICE_OWNER_SRC IS 'Source template for OWNER - Bind service' ,
-
SERVICE_OWNER_TGT IS 'Target template for OWNER - Bind service' ,
-
SERVICE_QUALIFIER_SRC IS 'Src template for QUALIFIER - Bind service' ,
-
SERVICE_QUALIFIER_TGT IS 'Tgt template for QUALIFIER - Bind service');
And the PROCESS_IND column in the CMNADMIN_GENERAL table can take a value of ‘V’ for Bind Service.
DB2OPTNR
The CMNDB2VB package must now be bound at remote site Db2 subsystems – this program now performs access to Db2 catalog tables on behalf of the Bind Service process. This bind has been added:
BIND PACKAGE(CMNx) MEMBER(CMNDB2VB) ACT(REP) ISO(CS) -
EXPLAIN(NO) VALIDATE(RUN) RELEASE(COMMIT) -
ENCODING(EBCDIC) DBPROTOCOL(DRDA)
And the package added to the CMNPLAN pklist:
BIND PLAN(CMNPLAN) -
PKLIST(CMNx.CMNDB2SQ -
CMNx.CMNDB2VB -
CMNZMF.CMNDB2AT -
*.CMNDB2SQ) -
ACT(REP) ISO(CS) RETAIN -
EXPLAIN(NO) VALIDATE(BIND) ACQUIRE(USE) RELEASE(COMMIT)
END
Customers who are installing ZMF 8.2 Patch 4 and later releases from scratch can use sample JCL with these changes already in place.
Existing customers will have to make sure that they include CMNDB2VB in their remote site binds and include it in the CMNPLAN pklist (if they wish to make use of the new support).
There is a Package Master conversion involved in adding this support; but this processing is included in the standard Package Master conversion task for converting to ZMF 8.2 Patch 4 and later releases.
Skeleton Changes
There are several skeletons addressing bind service support:
-
CMN$$PSV local promote/demote of bind service components
-
CMN$$RSV remote promote/demote of bind service components
-
CMN$$BSV install/backout of bind service components.
Existing skeletons have been changed to imbed these new skeletons, for example:
-
CMN$$PRM, CMNIMPRM imbed CMN$$PSV
-
CMNRPMCR, CMNRPICR imbed CMN$$RSV
-
CMN21, CMN49 imbed CMN$$BSV
ZMF Global Administration Changes
Create the Library Type Definitions
If the libtype is PDS/E based, use an LRECL of 80. In the entries that follow the libtypes used mostly for testing are BSZ for bind service and BSG for grants.
All library types must be given the D (Db2) selectable option Panel CMNCGLT0.
CMNCGLT0 Global Library Types Part 1 of 2 Row 211 to 213 of 213
Command ===> _________________________________________________ Scroll ===> CSR
Lib Order Lke Seq Defer Target Sel
type Description + type Opt
_____ BSP Bind Service PDSE based components 0 P ___ Y ___ D
_____ BSZ Bind Service zFS based components 0 P ___ Y ___ D
_____ BSG Bind Service Grant components 0 P ___ Y ___ D
******************************* Bottom of data *********************************
In the ZMF Db2 option administration, each of these library types needs a Db2 subtype of ‘V’ panel CMNDB2UP:
CMNDB2UP Db2 Library Types Row 15 to 17 of 17
Command ===> _________________________________________________ Scroll ===> CSR
Db2
Lib sub End SQL
type Description type sentence
BSP Bind Service PDSE based components V __
BSZ Bind Service zFS based components V __
BSG Bind Service Grant components V __
******************************** Bottom of data ********************************
You need to define all the logical subsystems that your applications may use (this is normal). Panel CMNGD2LN - No change here apart from a new set of templates specifically for Bind Service:
CMNGD2LN Db2 Logical Subsystems
Command ===> _________________________________________________ Scroll ===> CSR
Line commands:
P Specify miscellaneous parameters
T B Bind plan/pkg process named(T) and general(B) templates
Q G SQL process named(Q) and general(G) templates
V H Bind service process named(V) and general(H) templates
Logical Db2
name subsys Site Description
_____ BASELINE D10L U900DP U900DP BASELINE
_____ PRODLCL1 D10L U900DP U820DP PRODUCTION \#1
_____ PRODLCL2 D10L U900DP U820DP PRODUCTION \#2
_____ PRODRMT1 D10L U900P U820P PRODUCTION \#1
_____ PRODRMT2 D10L U900P U820P PRODUCTION \#2
_____ SYSTEST1 D10L STEVEPRM REMOTE PROMOTION FOR STEV
_____ UNIT1 D10L STEVEPRM REMOTE PROMOTION FOR STEV
******************************* Bottom of data *********************************
If you use line action P against a logical subsystem, you can set the library type that will be used to process bind service grants – this is a new field on panel CMNGD2PM:
CMNGD2PM Db2 Logical Subsystem PRODRMT1 Settings
Command ===> __________________________________________________________________
Preferred Libtypes:
DBRM . . . . . . . . . . . . . . DBR
Plan bind parameters . . . . . . DBB
Package bind parameters . . . . PKG
Service grants . . . . . . . . . BSG
General Parameters:
Enter "/" to select option
/ Bind Failure is significant
/ Recycle Stored Procedures where WLM Environment is . . ____________________
/ Maintain Trigger Sequence
/ Use Db2 versioning for Native SQL Stored Procedures
Use Db2 Versioning for Native SQL Stored Procedures
Using V allows you to specify model templates (specific values are left to the application definitions). For example panel CMNGD2L6:
CMNGD2L6 Db2 Logical Subsystem PRODRMT1 Bind Service Named Templates
Command ===> __________________________________________________________________
Templates Target Source
Collection . . _________________ + _________________ +
Qualifier . . _________________ + _________________ +
Owner . . . . _________________ + _________________ +
And H the general token templates panel CMNGD2L7:
CMNGD2L7 Db2 Logical Subsystem PRODRMT1 Bind Service General Row 1 to 13 of 13
Command ===> _________________________________________________ Scroll ===> CSR
Token name + Target template + Source template +
___
___
as stated earlier, values are usually left to the application level administration.
ZMF Application Administration Changes
Again, using a sample application named STEV, we have the library types panel CMNCLLT0:
CMNCGLT0 STEV - Library Types Part 1 of 2 Row 211 to 213 of 213
Command ===> _________________________________________________ Scroll ===> CSR
Lib Order Lke Seq Defer Target Sel
type Description + type Opt
_____ BSG Bind Service Grant components 0 P ___ Y ___ D
_____ BSG Bind Service PDSE based components 0 P ___ Y ___ D
_____ BSZ Bind Service zFS based components 0 P ___ Y ___ D
******************************* Bottom of data *********************************
This time we need to define their baseline repositories panel CMNCBAS1:
CMNCBAS1 STEV - Baseline Configuration Part 1 of 2 Row 5 to 24 of 51
Command ===> __________________________________________________ Scroll ===> CSR
Baseline
Install storage
Type Levels in prod means
_____ BSG 2 Y H
_____ BSP 10 Y SD
_____ BSZ 2 Y H
This should be followed either by an I/A extract and reload or just use XML, for example:
<?xml version="1.0"?>
<service name="IMPACT">
<scope name="BUN">
<message name="CREATE">
<header>
<subsys>M</subsys>
<product>CMN</product>
</header>
<request>
<appl>STEV</appl>
<libType>BSZ</libType>
<libLike>P</libLike>
<baseline>/cmndev/STEV/Base00/BSZ</baseline>
</request>
</message>
</scope>
</service>
And so on.
You need to provide some promotion definitions, for example panel CMNLRPM3:
CMNLRPM3 STEV/STEVEPRM - Promotion Libraries Row 2 to 6 of 23
Command ===> _________________________________________________ Scroll ===> CSR
Promotion name: UNIT1 Level: 10
Syslib Cleanup
Lib exclude Level Target libraries
_____ BSG Y Y /cmndev/STEV/promo10/BSG + Shadow
/cmndev/STEV/promo10/BSG + Library 1
+ Library 2
+ Library 3
_____ BSP Y Y WSER58.PROMO10.BSP + Shadow
WSER58.PROMO10.BSP + Library 1
+ Library 2
+ Library 3
_____ BSZ Y Y /cmndev/STEV/promo10/BSZ + Shadow
/cmndev/STEV/promo10/BSZ + Library 1
+ Library 2
+ Library 3
And some production libraries/directories panel CMNCPRDL:
CMNCPRDL STEV - U900P Production Libraries Row 1 to 6 of 6
Command ===> _________________________________________________ Scroll ===> CSR
Type Production dataset name +
Temporary dataset name +
Backup dataset name +
_____ BSG /cmndev/STEV/U900P/Prod00/BSG
/cmndev/STEV/Temp/BSG
/cmndev/STEV/U900P/Prod01/BSG
_____ BSP WSER58.PROD.BSP
WSER58.TEMP.BSP
WSER58.PROD.BSP.BKUP
_____ BSZ /cmndev/STEV/U900P/Prod00/BSZ
/cmndev/STEV/Temp/BSZ
/cmndev/STEV/U900P/Prod01/BSZ
Then, in the Db2 option definitions, you need to identify the new libtypes with subtype V panel CMNDB2UP:
CMNDB2UP STEV - Db2 Library Types Row 8 to 10 of 10
Command ===> _________________________________________________ Scroll ===> CSR
Lib Sub End SQL
type Description type sentence
BSP Bind Service PDSE based components V __
BSZ Bind Service zFS based components V __
BSG Bind Service Grant components V __
In the Db2 active library definitions you associate a target library/directory with a Db2 logical subsystem. For example panel CMNLD2AL:
CMNLD2AL Db2 Active Library/Directory List Row 6 to 26 of 35
Command ===> _________________________________________________ Scroll ===> CSR
Logical
name Type Db2 active library or directory name
PRODLCL1 V /cmndev/STEV/U900DP/Prod00/BSG +
PRODLCL1 V /cmndev/STEV/U900DP/Prod00/BSZ +
PRODRMT1 V /cmndev/STEV/U900P/Prod00/BSZ +
PRODRMT1 V /cmndev/STEV/U900P/Prod00/BSG +
UNIT1 V /cmndev/STEV/promo10/BSZ +
UNIT1 V /cmndev/STEV/promo10/BSG +
Now we consider the zFS libtypes BSZ and BSG. You have to set up the logical subsystems to do what you want them to do. For example panel CMNGD2LN:
CMNGD2LN Db2 Logical Subsystems Row 1 to 6 of 6
Command ===> _________________________________________________ Scroll ===> CSR
Line commands:
P Specify miscellaneous parameters
T B Bind plan/pkg process named(T) and general(B) templates
Q G SQL process named(Q) and general(G) templates
V H Bind service process named(V) and general(H) templates
Logical Db2
name subsys Site Description
_____ PRODLCL1 D10L U900DP U900DP PRODUCTION \#1
_____ PRODLCL2 D10L U900DP U900DP PRODUCTION \#2
_____ PRODRMT1 D10L U900P U900P PRODUCTION \#1
_____ PRODRMT2 D10L U900P U900P PRODUCTION \#2
_____ SYSTEST1 D10L STEVEPRM REMOTE PROMOTION FOR STEV
_____ UNIT1 D10L STEVEPRM REMOTE PROMOTION FOR STEV
******************************* Bottom of data ********************************
Using UNIT1 as an example:
- Use P to set the grant libtype panel CMNGD2PM:
CMNGD2PM Db2 Logical Subsystem UNIT1 Settings
Command ===> __________________________________________________________________
Preferred Libtypes:
DBRM . . . . . . . . . . . . . . DBR
Plan bind parameters . . . . . . DBB
Package bind parameters . . . . PKG
Service grants . . . . . . . . . BSG
General Parameters:
Enter "/" to select option
/ Bind Failure is significant
_ Recycle Stored Procedures where WLM Environment is . . ____________________
_ Maintain Trigger Sequence
_ Use Db2 versioning for Native SQL Stored Procedures
- Use V to set the named templates panel CMNGD2L6:
CMNGD2L6 Db2 Logical Subsystem UNIT1 Bind Service Named Templates
Command ===> __________________________________________________________________
Templates Target Source
Collection . . . . . DEVU + PRD +
Qualifier . . . . . WSER58¬¬¬¬¬¬¬¬¬¬ + _________________ +
Owner . . . . . . . SERD¬¬¬¬¬¬¬¬¬¬¬¬ + _________________ +
- And, use H to set the general token templates panel CMNGD2L5:
CMNGD2L5 Db2 Logical Subsystem UNIT1 BIND General Template Row 1 to 3 of 3
Command ===> _________________________________________________ Scroll ===> CSR
Token name + Target template + Source template +
_____ >GRANTEE< DBCORP4 'DBCORPR'
_____ >GRANTEE< TGENID1 'GENID1'
_____ >GRANTEE< TGENID3 'GENID2'
******************************* Bottom of data ********************************
Here we see the special general token template that will only be used for authorization ids in a bind service grant list. From the ISPF help panel CMN94033:
There is a special form of general token templates implemented for this
function. This is only applied to any grant SQL components associated
with the bind service process.
If the token name is >GRANTEE< then the template will be applied to
the list of grantee userids/groups on the grant SQL supplied to the
process.
An extension to the search and replace algorithm is available (for this
function only). If you put the source template in single quotes then
the target template will only be used if the value to be replaced
exactly matches the source template value.
As an example of standard search and replace templating, against this list of grantees:
PRD, PRD1, ISOL8, APRD:
General Token name: >GRANTEE< source template: PRD target template: DEV results in: DEV, DEV1, ISOL8, ADEV.
As an example of 1-to-1 search and replace templating:
General Token name: >GRANTEE< source template: ‘PRD’ target template: DEV results in: DEV, PRD1, ISOL8, APRD.