On 13-Dec-2011 08:41 , Jonathan Ball wrote:
> On 12/9/2011 10:41 AM, CRPence wrote:
>> <<SNIP>>
>>
>> If there is a problem for which a PTF is required [one possible
>> indication is that no work is registered for that symptom
>> msgCPF325E], then that PTF would only be preventive; i.e. the
>> recovery actions will still be necessary.
>>
>> Regarding origin, collect and review spooled data from:
>
> I opened a PMR with IBM, and in the end, we did these:
>
>>
>> dspobjd thelib/thefile *file /* for both *service and *full */
>> dmpobj thelib/thefile *file
>> dmpsysobj 'thefile *' thelib 0D 50
>
> This one: dmpsysobj 'QDBDBDROBJ*' thelib 19 D4
>
>> <<SNIP other doc collection recommendations>>
>>
>> Recovery choices:
>>
>> PwrDwn\IPL. Review the spooled SCPF joblog and history for recovery or
>> "not recovered"; verify file can be saved.
>>
>> rclstg select(*all) omit( _whatever_ )
>>
>
> This one (more detail below)
>
>> patch [IBM support\service; various tooling may enable vs
>> patching], get dspfd if not available before, optionally make
>> backup copy of data, DLTF, recover file object by create or restore
>> from a known good copy, recover data from a backup and optionally
>> apply journaled changes.
>>
>
> The IBM technician had me run:
>
> call qsys/qdbchkro parm(<thelib>)
>
> This produced a list of the files that had recovery objects. The
> DMPSYSOBJ run above also identified the same files. After sending
> the spool output from DMPSYSOBJ to IBM, they came back with a
> recommendation to call qsys/qdbchkro again, passing an additional
> parameter. We did that, and it recovered the objects.
>
> I wanted to be sure the recovery really was achieved, so I called
> the program one more time without the additional parameter, and I was
> a little alarmed when it ran for several minutes. When I ran it the
> first time (also with only the library name as parameter), it had
> run virtually instantaneously, and when it ran for several minutes, I
> was afraid something was amiss. But then I ran it one more time (one
> parameter), and it ran quickly again.
That is [a variant of] the tooling to which I was alluding. I
believe I may have made that tool available with the name QDBLSTRO
[perhaps also QDBPRCRO] as well [as the QDBCHKRO]. I am unsure why the
call being made when no recovery objects existed would have taken so
long, as compared to when some did exist. I do not recall the
invocation for just the library name [list-only invocation] being
anything other than very fast. Since its purpose was only tooling, I
could have easily made an error in the assumptions for the coding of the
MATCTX, though apparently in a way that still always produced the
necessary results in my experience; the request would be legitimately
slowed when in conflict with another MATCTX, such as for a concurrent
save or DSPFD *MBRLIST. Hmmm... I suppose if the variant used was of
the "process" variety [QDBPRCRO], then maybe a conflict-resolution CALL
to the QDBFIXIT program experienced its 120-second delay. Oh so long
ago... though perhaps if a snippet of the output had been included and
what the parameter specification was, might help me recall.
I want to emphasize though, that the optional parameter invocation of
the tooling is *not* recovery for the database *FILE; not implicitly,
except perhaps the "process" variety... though I am unsure, or simply do
not recall, how the CPF325E could be resolved. Maybe the tooling
pretends to be IPL database recovery.? If the tooling destroys the
recovery objects as effect, that is merely ignoring the origin for the
problem; i.e. having dismissed the pending recovery. IIRC, in general,
the affected files have been left pending some recovery which has since
been dismissed. Whatever processing was still pending was left undone,
and those other operations may still need to be done. The effect of
only the destruction of those x/19D4 objects is "recovery" only when the
IBM developer has properly reviewed the file objects, both attributes
and relations, and the system database cross reference for valid states;
i.e. to verify and know that no other actions were required. A full
reclaim would effect that as well.
Regardless, if no additional actions were required, then the origin
of the problem would presumably be known to the developer\reviewer, and
thus the known preventive PTF recommended to be applied or verified to
already have been applied after the incident.
Regards, Chuck