On 16-Dec-2011 13:36 , Dan Kimmel wrote:
SQL0007 Reason code 9 - Index is currently held or is not valid
Following
CPF5090 The unique keyed access path of member WORKP00004 file
... cannot be maintained.

What does that mean?


SQL7008 rc9 or sqlcode -7008 I presume? Anyhow...

The CPF5090 indicates that a unique access path [keyed UNIQUE logical file <¿or primary or unique key?>] was previously invalidated; then that the rebuild activity was either placed on hold [held via iNav or the cmdline version of EDTRBDAP "Edit Rebuild of Access Paths"] or that the AccPth still has not been rebuilt. I do not recall if there might also be an EDTRBDCST or some such if the unique key were a constraint instead.?

There is a [presumably still, and possibly problematic] feature which, for each incident, resignals the "rebuild event" to the QDBSRV01 job to have that job forward the index rebuild work to one of the runpty-52 QDBSRV## jobs. That should ensure the entry [re]appears on the EdtRbdAP screen.

In newer releases there is more tracking [beyond what was previously only available in the VLIC logs; those can be saved to be sure details about the origin remain] which diagnose the origin of the invalidate request. The typical case is restore of the dataspace, without the owning logical file being restored on the same RSTxxx request. I do not recall what the OS manifests visibly in that regard, but the iNav interface and the underlying support [some database file in library QRECOVERY] has some more details recorded. There may also be information in the history log. I do not recall the message range to search. There may also be information in the QDBSRV01 joblog and\or any QDBSRV## joblog which attempted to rebuild; the messages sent to the QSYSOPR and\or QHST would come from those jobs.

Reviewing the logging for the file activity and reviewing any errors in the joblog [or errors sent to the history by\]of a job that "did something" to that file might give insight as to the origin of the invalidation. The review of the history for "access path" related messaging and information in the joblogs of the jobs that rebuild the access paths might also give insight.

The most direct resolution to the CPF5090 is to OPNDBF ACCPTH(*FILE) of the file member which owns the unique access path; the open performed in a job of the desire Work Management parameters, which may be more appropriate that the default runpty-52 if the OS DB2 takes on the work; i.e. lower priority than batch.

FWiW: The problem can persist in the unfortunate [and AFaIK should never transpire, excepting cases of defects] situation whereby duplicate key values correctly cause the rebuild of the unique key to fail. In that case the file might best be "moved" to allow for further investigation, and a new copy made without the duplicates, and the application restarted on the new version of the file; of course enabling investigation is a "would be nice for the thought of investigating the origin and possible matches to existing defects to allow finding preventives or to assist finding a new defect, but not reasonable" so just deleting the bad rows that are causing duplicates would be deleted and life goes on... but still reporting the errors.

Regards, Chuck

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.