00C90096   

Explanation

The page or row lock on the page or subpage identified by the NAME resource-name value in message DSNT500I or DSNT501I caused the total number of page or row locks concurrently held to reach the installation maximum number of page or row locks (NUMLKUS) allowed for a single agent in the system.

System action

The operation that encountered this condition is not executed. If a utility job encountered this condition, the utility is stopped. Otherwise, any database updates for the statement that was executing are backed out. Any database reads for the statement that was executing are not executed. The position of the cursor is unpredictable.

Operator response

If a utility job encountered this resource unavailable condition, terminate the utility and restart it after the cause of the resource unavailable condition has been corrected.

System programmer response

Start of changeIf the application should be able to run with the current page or row or locking protocol and SQL statements, increase the NUMLKUS value for the installation to allow a higher limit of page or row to be concurrently held by a single application. If a utility job encountered this resource unavailable condition, the NUMLKUS value must be increased to accommodate the utility, because utilities are programmed to use the minimum number of page or row locks possible.End of change

User response

Rerun the application after correcting the cause of this resource unavailable condition.

Programmer response

Reduce the total number of page or row locks that the application concurrently holds by changing the locking protocol on one or more of the table spaces to table space level locking. To do this, use the ALTER ... LOCKSIZE TABLESPACE or LOCK TABLE statements.

Review the application to see if a different choice of SQL statements can be used to perform the same operation with less concurrent access to multiple tables with page or row locking.

If application logic permits, reduce the number of page or row locks concurrently held for SELECT statements by rebinding the application plan with isolation level of cursor stability instead of repeatable read or read stability, or add more frequent commits.

Problem determination

An SQLCODE -904 and message DSNT500I or DSNT501I are issued.

SYS1.LOGREC contains information in the variable recording area (VRA) of the system diagnostic work area (SDWA). Significant fields for this code are: VRARRK13, VRARRK14, and VRARRK15.

If you suspect an error in DB2®, you might need to report the problem. For information about identifying and reporting the problem, see Collecting diagnostic data.

Collect the following diagnostic items:
  • Console output from the system on which the job was run, and a listing of the SYSLOG data set for the period of time that spans the failure.
  • SVC dump (or system dump), taken to SYS1.DUMPxx data set, as result of an operator-initiated dump command or SLIP trap exit.
  • Listing of SYS1.LOGREC data set, obtained by executing IFCEREP1.
  • SYSPRINT output, including JCL, for the application program or batch job, and system messages that were issued. Make sure that MSGLEVEL=(1,1) on the JOB statement so that all diagnostic information is sent to SYSPRINT.