On 27-Jan-2014 15:47 -0800, Mark S Waterbury wrote:

One of my customers ran into this, and I am at a loss to explain it
(so far).

On their production LPAR, they ran a DSPOBJD of all objects in one
production library to an *OUTFILE some time on Friday.

Now, looking at the data in that outfile today, they notice that many
of those objects had the "last used" date containing blanks -- e.g.
not used since it was last "reset".

Yet today, they also noticed that if they now issue DSPOBJD against
any of those same objects that had a blank "last used" date, on the
same production LPAR, and specify DETAIL(*FULL), they tell me they
now see a "last used" date on many (but not all?) of those objects
and the last used date shown is "20140124" (last Friday)...

What can cause this?

Knowing patterns or examples of what was expected not to have been "used" might be helpful. Nonetheless...

Other than an actual "use" of the object [according to the specific external object type, and what was defined as a "use" by the OS component that /owns/ that object type], there is an API that could be used to perform what would be the effect of what might be a USEOBJ command.

A table of usages\actions corresponding to the specific object type that is used exists. Unfortunately the object types are described in words rather than symbolic names, thus making the table difficult to locate in InfoCenter; as well the term "usage" rather than "last used" being the functional search:

IBM i 7.1 Information Center -> Programming -> Control language -> Objects and libraries
_Detecting unused objects on the system_
• Date of last use

• The date of last use is only updated once per day (the first time an object is used in a day). The system date is used.
Table 1. Updating usage information
Type of object Commands and operations
... ...

_Change Object Description (QLICOBJD) API_
" ...
The Change Object Description (QLICOBJD) API lets you change object information for a specific object similar to the Change Object Description (CHGOBJD) command. Unlike the CHGOBJD command, this can be used on all library-based external object types. This API supports changing more parts of the object descriptive information than are supported using the CHGOBJD command.

The following table lists the valid keys for the key field of the variable length record.
Key Type Field
... ... ...
15 CHAR(1) Update last used date and days used count
Update last used date and days used count. This key is used to:

Update the last used date to the current system date.
Increase the days used count.

It must have a value of '0' or '1'.
'0' The last used date is not updated. The days used count is not increased.
'1' The last used date is updated to the current system date. If this is the first use of the object today (since midnight), the days used count is increased.

Note: For a database file, the last used date and days used count are updated for all members in the file.

I know, for example, that restoring objects from a previous save,
(from tape or save file), resets the "last used" date to blanks.

But, what other commands or actions will set the "last used" date?

The subject seems incongruous to the above statement and question. It seems the real question is about when the "last used" date is set, not when the value is reset.?

I know that CALLing a *PGM will set its "last used" date to the
current date, as will OPENing a *FILE ...

Are there any other commands that could have "touched" many objects
in this one library, causing many of them to have their "last used"
date set?

Thanks in advance for any ideas ...

Aside from the expected\normal "use" of an object and the API to imply the "use" of an object [both noted above], one must also consider the possibility that some features might be implemented using a function against an object that is considered a usage of that object. For example, I had pointed out in the past that the Start Object Conversion (STROBJCVN) to effect conversion of database file members was originally [and quite probably still] implemented using the database OPEN feature; i.e. a side effect of some other feature might be, that the usage information of a referenced object, since appears as having been used.

Subject: Re: How long does STROBJCVN take?

Return to Archive home page | Return to MIDRANGE.COM home page