How to see that an object is damaged - IBM AS400

This is a discussion on How to see that an object is damaged - IBM AS400 ; A developer reported that a file is damaged. He obviously saw something in a job that indicated the object is damaged, but I can't see any indication of damage using any of the object manipulation commands that I know, e.g. ...

+ Reply to Thread
Results 1 to 8 of 8

Thread: How to see that an object is damaged

  1. How to see that an object is damaged

    A developer reported that a file is damaged. He
    obviously saw something in a job that indicated the
    object is damaged, but I can't see any indication of
    damage using any of the object manipulation commands
    that I know, e.g. DSPOBJD.

  2. Re: How to see that an object is damaged

    il 04/04/2007 2.09, Scrive Jonathan Ball 40596480:
    > A developer reported that a file is damaged. He obviously saw something
    > in a job that indicated the object is damaged, but I can't see any
    > indication of damage using any of the object manipulation commands that
    > I know, e.g. DSPOBJD.

    The safest way to see if an object is dabaged is saving it. In
    particular, speeking of a *FILE object, the damage could be inside a
    member or in the access path, thus with dspobjd you don't see the damage.

    --
    Dr.Ugo Gagliardelli,Modena,ItalyCertifiedUindoscrasherAñe joAlcoolInside
    Spaccamaroni andate a cagare/Spammers not welcome/Spammers vão à merda
    Spamers iros a la mierda/Spamers allez vous faire foutre/Spammers loop
    schijten/Spammers macht Euch vom Acker/Spamerzy wypierdalac'

  3. Re: How to see that an object is damaged

    To be able to see if any objects are damaged, run this:
    SBMJOB CMD(DSPOBJD OBJ(*ALL/*ALL) OBJTYPE(*ALL) OUTPUT(*OUTFILE)
    OUTFILE(QGPL/DSPOBJD)) JOB(DSPOBJD) JOBQ(QTXTSRCH)

    Then in SQL (STRSQL or WRKDBF or iSeries Navigator, Databases,
    right-click Run SQL Scripts) after the above job has finished, do this:
    SELECT * FROM QGPL/DSPOBJD WHERE ODOBDM <> '0'

    This will list all damaged objects.


    Off topic, but useful, to be able to see all objects by size in
    descending order, do this:
    SELECT ODLBNM,ODOBNM,ODOBTP,ODOBSZ,ODOBTX FROM QGPL/DSPOBJD ORDER BY 4 DESC

    Regards


    Jonathan Ball wrote:
    > A developer reported that a file is damaged. He obviously saw something
    > in a job that indicated the object is damaged, but I can't see any
    > indication of damage using any of the object manipulation commands that
    > I know, e.g. DSPOBJD.


  4. Re: How to see that an object is damaged

    On Apr 4, 12:09 pm, Jonathan Ball wrote:
    > A developer reported that a file is damaged. He
    > obviously saw something in a job that indicated the
    > object is damaged, but I can't see any indication of
    > damage using any of the object manipulation commands
    > that I know, e.g. DSPOBJD.


    As you have found, the DSPOBJD command will not show all types of
    damage to a file. There are other methods to locate damage files.
    1. Perform a RCLSTG. Although this touches all objects on the
    system, it will not find all types of damage.
    2. You could save the object to a SAVF. This is a bit more robust
    than the RCLSTG however, will not show damamge to file records. If
    you have TAATOOLS, it provides a command (CHKOBJDMG) which does this.
    3. The link http://www-1.ibm.com/support/docview...2565c2007cefaa
    shows a program you can create to locate damage to the records in a
    file.


  5. Re: How to see that an object is damaged

    Karl wrote:
    > To be able to see if any objects are damaged, run this:
    > SBMJOB CMD(DSPOBJD OBJ(*ALL/*ALL) OBJTYPE(*ALL) OUTPUT(*OUTFILE)
    > OUTFILE(QGPL/DSPOBJD)) JOB(DSPOBJD) JOBQ(QTXTSRCH)
    >
    > Then in SQL (STRSQL or WRKDBF or iSeries Navigator, Databases,
    > right-click Run SQL Scripts) after the above job has finished, do this:
    > SELECT * FROM QGPL/DSPOBJD WHERE ODOBDM <> '0'
    >
    > This will list all damaged objects.


    This is what I don't understand. Why won't the display
    screens for DSPOBJD have something in them that
    indicate an object is damaged? I did both TYPE(*FULL)
    and TYPE(*SERVICE), and there was no indication of it.
    I already knew which object it was, because an IT
    liaison with the users reported it.


    >
    >
    > Off topic, but useful, to be able to see all objects by size in
    > descending order, do this:
    > SELECT ODLBNM,ODOBNM,ODOBTP,ODOBSZ,ODOBTX FROM QGPL/DSPOBJD ORDER BY 4 DESC
    >
    > Regards
    >
    >
    > Jonathan Ball wrote:
    >> A developer reported that a file is damaged. He obviously saw
    >> something in a job that indicated the object is damaged, but I can't
    >> see any indication of damage using any of the object manipulation
    >> commands that I know, e.g. DSPOBJD.


  6. Re: How to see that an object is damaged -- re: object size

    The field ODOBSZ is deprecated. The description of ODOBSZ, as seen
    in the request to DSPFFD QSYS/QADSPOBJ suggests to use instead, the
    following expression to calculate object size: ODSIZU*ODBPUN

    Karl wrote:
    <>
    > Off topic, but useful, to be able to see all objects by size in
    > descending order, do this:
    > SELECT ODLBNM,ODOBNM,ODOBTP,ODOBSZ,ODOBTX FROM QGPL/DSPOBJD ORDER BY 4 DESC


  7. Re: How to see that an object is damaged

    ..
    My first rule for following up on all "damage" is to insist on the
    error message and full symptom details with that message and those
    preceding it. That is, as obtained from a spooled joblog, all message
    details for the failure message and those preceding, including the
    request message that initiates the failure; so the failing command
    appears as requested explicitly, not from a menu option from where the
    requested function must be inferred what was requested/run.

    Regards, Chuck
    -- All comments provided "as is" with no warranties of any kind whatsoever.

    Jonathan Ball wrote:
    > A developer reported that a file is damaged. He obviously saw something
    > in a job that indicated the object is damaged, but I can't see any
    > indication of damage using any of the object manipulation commands that
    > I know, e.g. DSPOBJD.


  8. Re: How to see that an object is damaged

    ..
    The ODOBDM and is represented on the DSPOBJD if indeed the conditions
    for which that indicator is truly exhibited. IIRC, if not separately in
    its own line of text on the display, the text **DAMAGED** appears in the
    object "Text" description to denote the condition.
    Unfortunately there are some messages issued by the database that may
    imply or allude to 'damage', but the actual condition encountered will
    not be represented by that indicator in the field ODOBNM. Because the
    object is a composite of many different other objects, primarily from
    the user perspective that would be the members, attributes manifest at
    the object level of the database *FILE {*complex* object type] may have
    some idiosyncrasies as compared to *simple* object types. For example,
    a simple object that was saved storage free would be manifest as freed,
    but a file with both one member freed and one member not freed is a
    conundrum for manifesting the overall object 'freed' status.

    Regards, Chuck
    -- All comments provided "as is" with no warranties of any kind whatsoever.

    Jonathan Ball wrote:
    > Karl wrote:
    >> To be able to see if any objects are damaged, run this:
    >> SBMJOB CMD(DSPOBJD OBJ(*ALL/*ALL) OBJTYPE(*ALL) OUTPUT(*OUTFILE)
    >> OUTFILE(QGPL/DSPOBJD)) JOB(DSPOBJD) JOBQ(QTXTSRCH)
    >>
    >> Then in SQL (STRSQL or WRKDBF or iSeries Navigator, Databases,
    >> right-click Run SQL Scripts) after the above job has finished, do this:
    >> SELECT * FROM QGPL/DSPOBJD WHERE ODOBDM <> '0'
    >>
    >> This will list all damaged objects.

    >
    > This is what I don't understand. Why won't the display screens for
    > DSPOBJD have something in them that indicate an object is damaged? I
    > did both TYPE(*FULL) and TYPE(*SERVICE), and there was no indication of
    > it. I already knew which object it was, because an IT liaison with the
    > users reported it. <>


+ Reply to Thread