IBM Support

SQL0805N Package NULLID.SYSLN303 was not found.

Technote (troubleshooting)


Problem(Abstract)

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.
By default 3 large packages are created. Each large package allows a maximum of 384 statements per connection, giving a total of 1,344 statement handles. The number of statement handles available to an application depends not only on the theoretical limit but also physical resource limitations, like memory, which can restrict the statement handles an application can allocate.

    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:

  1. 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.
  2. 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".

Document information

More support for: DB2 for Linux, UNIX and Windows
Programming Interface - Bind

Software version: 9.1, 9.5, 9.7

Operating system(s): AIX, HP-UX, Linux, Solaris, Windows

Reference #: 1504334

Modified date: 18 November 2015