Db2 – Check Java Driver Version in Clients from Server

db2javajdbc

I have a Db2 database that is being used by many applications in different servers. I want to check from the Db2 server if the Java driver used in the different client applications is up-to-date.

Is the any way to check the version of the java driver client from the Db2 server?
I have tried the following without success:

db2 list application show detail
db2 "SELECT *  FROM TABLE(MON_GET_CONNECTION(cast(NULL as bigint), -2)) AS t"

In the last command, the CLIENT_PRDID column could have some of this information, but it only shows: JCC04110 and I do not know what does it mean.

Best Answer

This page https://www.ibm.com/support/knowledgecenter/en/SSEPGG_11.1.0/com.ibm.db2.luw.admin.mon.doc/doc/r0001170.html describes the client_product_id monitor element thus

Use this element to identify the product and code version of the data server client. It is in the form PPPVVRRM, where:

PPP identifies the product. This is "SQL" for IBM® relational database products. VV identifies a 2-digit version number. RR identifies a 2-digit release number. M identifies a 1-character modification level (0-9 or A-Z).

comparing what CLIENT_PRDID shows

SELECT distinct CLIENT_PRDID FROM TABLE(MON_GET_CONNECTION(NULL, -2))

JCC04220

vs the jdbc type 4 driver version

java -cp $DB2_HOME/java/db2jcc4.jar com.ibm.db2.jcc.DB2Jcc -version

IBM Data Server Driver for JDBC and SQLJ 4.22.29

gets a close match for me. I can't say I know why the mod level is not set.

on a different system, looking at the type 2 driver, I get JCC03690 from CLIENT_PRDID but IBM DB2 JDBC Universal Driver Architecture 3.72.44 from java com.ibm.db2.jcc.DB2Jcc -version.. so it's maybe nearly of right...