Troubleshooting
Problem
Application reporting SQL0805N error, "Package.Nullid.SYSLN303 was not found".
Symptom
The following are examples of the symptom that could be observed.
SQL0805N Package "SYSLN303" not found.
com.ibm.db2.jcc.c.SqlException: DB2 SQL error: SQLCODE: -805, SQLSTATE: 51002, SQLERRMC: NULLID.SYSLN303
DB2 SQL error: SQLCODE: -805, SQLSTATE: 51002, SQLERRMC: NULLID.SYSLN303
Cause
The SQL0805 error for package NULLID.SYSL[HN]xyy can be reported when the CLI packages have not been bound to the database or the application has exhausted the available statement handles for the packages that have been bound to the database.
- Definitions for the package name SYSL[HN]xyy:
[HN] - 'H' represents WITH HOLD, and 'N' represents NOT WITH HOLD.
'x' - is the isolation level: 0=NC, 1=UR, 2=CS, 3=RS, 4=RR
'yy' - is the package iteration 00 through FF
If the package name referenced matches SYSL[HN]x03 then this indicates the application had exhausted all available statement handles for the default packages bound to the database. Additional packages may be required.
Resolving The Problem
Review the application logic and ensure statement objects are efficiently being closed and that the application is not excessively opening more statement handles than what the imposed database limits allow.
If additional statement handles are required then from the application client take one of the following actions to bind additional packages.
For Data Server Client installations choose on of either option:
- From DB2 CLP set the CLIPKG CLI/ODBC keyword and execute the bind directly to the database.
db2 update cli cfg for section COMMON using
db2 connect to <dbalias>
db2 "bind @db2cli.lst blocking all sqlerror continue grant public"
Where 'X' is the number of packages, up to 30 max, to be bound. - Use the CLIPKG option on the bind command
db2 connect to <dbalias>
db2 "bind @db2cli.lst blocking all sqlerror continue grant public CLIPKG X"
Where 'X' is the number of packages, up to 30 max, to be bound.
For Data Server Runtime Client installations the bind files are not provide. They can be retrieved from the following location and pulled down to the local database server and execute one of the same options listed for Data Server Client installations to bind the CLI packages.
For applications where only the Data Server Driver for JDBC and SQLJ has been deployed, increase the number of packages using the DB2Binder utility.
- Example:
- java com.ibm.db2.jcc.DB2Binder -url jdbc:db2://<host>:<port>/<dbname> -user <user> -password <pwd> -size <number of packages>
For more information visit the developerWorks article, "DB2 packages: Concepts, examples, and common problems".
Was this topic helpful?
Document Information
Modified date:
16 June 2018
UID
swg21504334