Saturday, January 20, 2007

JDBC on DB2 UDB 8 stopped working

All of a sudden my netbeans would no longer connect to my DB2 UDB 8.1 database.
Got me a missing package error. So I tried all the usual db2rbind all and bind db2ubind.lst and db2cli.lst and whatnot (whatever I could remember from my DB2 days at IBM).

Still no help.

So I googled for the error message, and indeed IBM changed the package with a fixpak, the details can be found here at the IBM site.

Problem

After upgrading your server to DB2 UDB Version 8.1 FixPak 10 (also known as Version 8.2 FixPak 3), you will encounter an SQL0443N error if invoking a DB2 Call Level Interface (CLI) catalog function (such as SQLTables(), SQLColumns(), or SQLStatistics()). For example: SQL0443N Routine "SYSIBM.SQLTABLES" (specific name "TABLES") has returned an error SQLSTATE with diagnostic text SYSIBM:CLI:-805. SQLSTATE=38553

Cause
The CLI catalog functions execute routines on the DB2 UDB server. These routines use packages that are created by the db2schema.bnd bind file. The package name for db2schema.bnd has a different name in DB2 UDB Version 8.1 FixPak 10 than it did in previous fixpaks. If this bind file does not get bound to all of your existing databases on your server, you will get the SQL0443N error message.

Solution
As documented in the FixPak Readme file for DB2® Universal Database™ (DB2 UDB) Version 8.1 FixPak 10, you will need to bind the db2schema.bnd file locally against each database, as follows:


At a command prompt:
db2 terminate
db2 connect to
db2 bind /db2schema.bnd blocking all grant public sqlerror continue
db2 terminate

...where represents the name of a database to which the utilities should be bound, and where is the full path name of the directory where the bind files are located (usually sqllib/bnd).

The bind operation needs to be done within a local connection to the database.

No comments: