IBM recently released DB2 FixPack 10 (also known as DB2 Version 8.2.3, which is also known as DB2 Version 8.2 with FixPack 3 of the V8.2 maintenance stream -- depending on how you acquired the product). In many client environments that I've been engaged with lately, they've run across a SQL0443N error after installing this FixPack. There are actually steps in the DB2 README file that warn you of this, and require you to perform certain post-installation tasks to avoid the issue, but the truth of the matter is that few people really read the README. (I suppose if it were called the DONOTREADME file, users might be more interested in its contents.)
I decided to write this article for two reasons:
- To perhaps reach out through a different medium and communicate a simple step that you should really be performing after applying any DB2 FixPack or Update to your DB2 servers. This step can ultimately save you valuable time and frustration.
- Even I missed this documented step (the shame of it all, working for IBM) and ruined a presentation I was giving that involved a live demo.
In this article, I'll give a quick overview of DB2 FixPack 10 (this is what I'll refer to this code delivery vehicle as, but you can feel free to use any synonym you want), and describe the problem (it only affects DB2 servers, not DB2 clients), how it happened, and how to avoid it. Taking ten minutes to read this article could save you a hundred.
DB2 FixPack 10, as its name implies, is more of a maintenance than feature based code delivery vehicle. In fact, DB2 FixPack 10 doesn't really deliver much new functionality to the DB2 code base at all. It does however have a number of platform extensions for existing products -- especially in the area of Linux.
Specifically, DB2 FixPack 10 includes:
- An updated and simplified driver for PHP application development with the free Zend Core for IBM tooling that makes PHP and DB2 application development easier than ever.
- An expansion of the platform support for DB2 Query Patroller to include 64-bit support on Linux for iSeries and pSeries IBM eServers on the Power5 architecture.
- Support for the newly released HP-UX Version 11.23 release on PA-RISC.
- CLI target column support for the LOAD utility.
- A new specially priced DB2 Connect Unlimited Edition for iSeries product.
- The availability of a 31-bit DB2 Run-Time Client for 64-bit Linux on z/OS.
The following figure shows a number of methods by which you determine the level of your DB2 server:
Figure 1. Finding the code level of your DB2 server.
You installed DB2 FixPack 10 in your environment and sometime later, the support phone starts ringing off the hook. Your business analysts run into problems when performing their budgetary forecasts using Microsoft Excel and report the following error:
Figure 2. The error end users will experience in Microsoft Excel if you didn't read the README file.
In addition to this, your application development teams start to call because when they try to populate one of their IBM Rational Application Developer database projects with the schema from a DB2 database connection, they get the same error:
Figure 3. The error end users will experience in IBM's Rational Application Developer if you didn't read the README file.
Obviously it's the same error, and as a good DBA, you first look to see the error description, which doesn't get you very far:
Figure 4. The SQL0443N error description.
Frustrated you make a service call and figure out that this could have been prevented all along if you read the README file (see the next section).
The problem you are in all likelihood experiencing with this error comes from the fact that for this particular FixPack, a new version of a bind file needs to be rebound to the database: the culprit is @db2schema.bnd. In DB2 FixPack 9a (and other previous FixPacks and Updates), the corresponding package bound to the database was NULLID.SQLL9E0L. In DB2 FixPack 10, the package name changed to NULLID.SQLL9E00. Because the package name is different, the search for the new package at runtime results in an error since it isn't bound to the database (as in the previous examples).
Most clients are used to binding the @db2ubind.lst and @db2cli.lst files (ever since DB2 Version 5.x), but @db2schema.bnd isn't required all the time and is tripping a lot of clients up with DB2 FixPack 10.
The solution -- The 10 minutes that save you 100 part
I'm not going to tell you to read the README file, and that you would not have run into this problem if you did. Well, it is true, you should read the README file - but I missed this one too. I guess this is a learning lesson for all of us to actually read the README file for any of our products, but I've passed along this irritant to our development teams for DB2 and there are some processes in place to minimize this kind of stuff.
With all that said, here's the solution (from the README file of course) to fix the issues caused by applying the DB2 FixPack 10 maintenance vehicle on your DB2 server:
1.3.5.5 Bind db2schema.bnd to existing databases
After installation on the server, an additional bind file needs to be
bound to existing databases. This requirement does not apply to clients.
Procedure
To bind db2schema.bnd on the server, execute one of these command
sequences:
At a command prompt:
db2 terminate
db2 CONNECT TO <dbname>
db2 BIND <path>/db2schema.bnd BLOCKING ALL GRANT PUBLIC sqlerror continue
db2 terminate
or,
At the DB2 command line:
TERMINATE
CONNECT TO <dbname>
BIND <path>/db2schema.bnd BLOCKING ALL GRANT PUBLIC sqlerror continue
TERMINATE
where <dbname> represents the name of a database to which the utilities
should be bound, and where <path> is the full path name of the directory
where the bind files are located.
|
The good news is that you only have to perform these commands on your DB2 server, not on any DB2 client machines.
From looking at the README file, the solution is quite easy. In fact, after every DB2 FixPack or Update, you'll note that you're asked to perform rebind steps as a post-installation step.
So, to solve this problem (and prevent it in the future), you simply enter the commands from the README file as shown below and that phone stops ringing:
Figure 5. Rebinding the @db2schema.bnd file to solve the problem.
So now that you know how to quickly fix (and in the future prevent) this problem, you may be wondering why you haven't seen this kind of problem in some of the previous DB2 FixPacks or Updates that you've applied to your DB2 server environment.
The truth is that you should be rebinding some files, as indicated by the README file, every time you apply a FixPack or Update to your DB2 server. With that said, you may have not run into this problem with previous DB2 FixPacks or Updates because the only time the package name in question for this problem changes is if there is a bug-fix in the package's embedded SQL code. So, previous FixPacks and Updates didn't have a fix to this package, but DB2 FixPack 10 did. Again, we'll look for better ways to handle this nuisance in the future -- but please start reading that README file (I know I will).
Learn
-
Zend Core for IBM: Learn more about the PHP tooling supported in FixPack 10.
-
The DB2 UDB FixPack 10 README file: For your reference.
-
developerWorks DB2 zone: Find more resources
for DB2 developers.
Get products and technologies
-
DB2 UDB FixPack page: Download the FixPack for your platform here.
Discuss
-
DB2 UDB for Linux, UNIX, and Windows forum: Exchange ideas and discuss DB2 UDB issues.

Paul C. Zikopoulos, BA, MBA, is an award-winning writer and speaker with the IBM Database Competitive Technology team. He has more than ten years of experience with DB2 UDB and has written over sixty magazine articles and several books about it. Paul has co-authored the books: DB2 Version 8: The Official Guide, DB2: The Complete Reference, DB2 Fundamentals Certification for Dummies, DB2 for Dummies, and A DBA's Guide to Databases Under Linux. Paul is a DB2 Certified Advanced Technical Expert (DRDA and Cluster/EEE) and a DB2 Certified Solutions Expert (Business Intelligence and Database Administration). In his spare time, he enjoys all sorts of sporting activities, running with his dog Chachi, and trying to figure out the world according to Chloe, his new daughter. You can reach him at paulz_ibm@msn.com
Comments (Undergoing maintenance)





