News and tips on Db2 v12 migration : Episode 5

06 September 2019

Activation of LEVEL500+ and Client/Driver compatibility

Just migrated to v12 and are excited to use one of the new built-in function (like LISTAGG from level 501).

After having activated the new function level (via command ACTIVATE FUNCTION LEVEL) , do not rush to rebind all your Db CLI packages (from the NULLID collection) using APPLCOMPAT(V12R1M501). Otherwise, you could face the situation where some (lots of) your remote clients could no more connect to your Db2 server...

There are a lot of literature on that subject so we will try to point here on some interesting points :
 
  • Ensure to have applied PTF for APAR PH08482 : this makes setting of the client Applcompat property optional
    • Otherwise SQLCODE -30025 –with DSNL076I  / DSNLXRSS DDF CONNECTION REJECTED DUE TO INCOMPATIBLE APPLCOMPAT VALUES DSNL076I  / DSNLXRSS DDF CONNECTION REJECTED DUE TO INCOMPATIBLE APPLCOMPAT VALUES…CLIENTAPPLCOMPAT=* (means unknown) PACKAGEAPPLCOMPAT=V12R1M502  …
  • Do not set the ZPARM APPLCOMPAT too early to the latest level :
    • As many other ZPARMs, it serves as a default for BIND/REBIND not specifying any values
    • Take into account your migration path (from dev to prod)  in order to avoid down-level incompatibilities 
  • Keeping existing packages in the NULLID collection bound with APPLCOMPAT(V12R1M500) is a good practice.  Though before you are completely sure all potential clients are compatible
  • Monitor the versions of drivers used on your sites : drivers for JDBC and SQLJ should be at the minimum level of 3.72 or 4.22 to exploit features from level 501
    • Either use your local monitor to generate a follow up report
    • Or analyze useful output of the command ‘-DISPLAY LOCATION’ that gives the different drivers for which a connection has been established (JCCvvrrl, SQLvvrrl …)

  • Ensure the latest maintenance has been applied on your driver version :
 
In the next episod, we will talk about RID (row identifier) changes ...