Skip to content

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.