Issue:
The following message appears when we access members in PDSE libraries:
PDSM018-5 UNABLE TO RECORD LAST REFERENCE DATE FOR MEMBER membername OF data_set_name
PDSM018-18 LIBRARY CAN NOT BE OPENED
Cause:
PDSMAN Last Reference Date Recording has been enabled for the indicated member but the recording was not completed successfully because the library could not be opened.
When the last reference date is recorded for a data (non-program object) PDSE library, the z/OS operating system requires the accessing user to have update authority for the library. If this authority is not present, the last reference date cannot be recorded.
Last Reference Date Recording has been enhanced with the implementation of published solutions RO73404 and RO77451 that address the operational issues caused by this z/OS requirement by allowing last reference dates for PDSE members to be recorded by the PDSMAN address space instead of by the accessing user. With these fixes, only the PDSMAN address space needs have update authority to the PDSE libraries.
Complete text for both enhancements is included in the published solution text and is included below for your convenience.
Resolution:
Review the enhancement details documented in the published solutions.
Additional Information:
RO73404 is also available as part of CARS1411.
RO77451 is also available as part of CARS1502.
RO73404
TITLE: ENHANCE PDSMAN LAST REFERENCE DATE RECORDING
PROBLEM DESCRIPTION:
The PDSMAN Last Reference Date Recording facility allows users
to identify inactive PDS and PDSE library members by recording
the date on which a member was last referenced.
When the last reference date is recorded for a data (non-
program object) PDSE library, the z/OS operating system
requires the accessing user to have update authority for the
library. This can cause operational issues and in some cases
require a choice between granting all users to update authority
or not using PDSMAN Last Reference Date Recording for those
PDSE libraries.
Note: Throughout this description, the term PDSE refers to
"data" PDSE libraries that do not contain executable
modules. PDSMAN records last reference dates for
executable PDSE modules (known as program objects)
using a different method.
This fix addresses the operational issues caused by this
z/OS requirement by allowing last reference dates for PDSE
members to be recorded by the PDSMAN address space instead of
by the accessing user. With this fix, only the PDSMAN address
space needs have update authority to the PDSE libraries.
This fix also introduces the ability to issue a message when
the last reference date for a PDS or PDSE member is
successfully recorded.
---------------------------------------------------------------
Processing Description
A Last Reference Date Recording request is queued to the PDSMAN
address space when all of the following are true:
* Last Reference Date Recording is enabled for the member
($ACCESS REF=Y)
* Last Reference Date Recording needs to be performed (the
first access for a member each day)
* The member resides in a PDSE library
* The accessing user does not have authority to update the
library.
A new PDSMAN subtask, the Last Reference Date Recording subtask
(PDSMLRDR), wakes up at regular intervals to process the queued
requests. The PDSMLRDR subtask runs within the PDSMAN address
space and is normally started automatically when PDSMAN is
started. Note that there may be a slight delay (generally less
than 15 seconds) in actually recording the last reference date
because the process is being performed asynchronously.
PDSMAN performs the enhanced recording process automatically.
You do not need to make any changes to your PDSMAN environment
or rules. However, you must ensure that the PDSMAN address
space has authority to update the PDSE libraries into which it
is recording the last reference dates. See the section
"Security System Considerations" for additional information.
If you have previously chosen to disable (or not enable) Last
Reference Date Recording for PDSE libraries due to these
authorization considerations you should now reevaluate that
decision and enable recording as desired.
---------------------------------------------------------------
Security System Considerations
The PDSMAN address space must have update authority to all PDSE
libraries for which last reference date recording is being
performed. You can grant this authority to the PDSMAN address
space or you can further limit update authority to only the
PDSMLRDT program (when running in the PDSMAN address space)
that is used to record the last reference dates.
The operating system requires you to completely stop and
restart PDSMAN to activate the new security rules granting the
necessary access. To minimize the number of times you must stop
and restart PDSMAN, we suggest that you grant update authority
to all libraries at one time instead of making multiple changes
to the security rules.
----------------------------------------------------------------
Controlling the Last Reference Date Recording (PDSMLRDR) Subtask
The PDSMLRDR subtask is controlled using commands issued to the
PDSMAN address space. You issue these commands by entering:
F PDSMAN,<command>
To an operator console where PDSMAN is the name of the PDSMAN
address space started task and <command> is one of the
following:
* STARTLRDR Start an inactive PDSMLRDR subtask
* STOPLRDR Stop an active PDSMLRDR subtask
* NEWLRDR Stop (if necessary) and then restart the
PDSMLRDR subtask
* LRDRSTATUS Show the status of the PDSMLRDR subtask
* LRDRDETAIL Show detailed information about the PDSMLRDR
subtask
* LRDRPERF Show performance information for the PDSMLRDR
subtask
Refer to the chapter "Address Space Commands" in the PDSMAN
Administrator Guide for a description of how similar commands
are used with other PDSMAN subtasks.
By default, the PDSMLRDR subtask is automatically started when
PDSMAN is initialized. You can suppress the automatic startup
of the subtask by starting PDSMAN with a execution parameter of
NOLRDR. For example:
S PDSMAN,PRM='NOLRDR'
This parameter is not intended for normal use. Generally, you
should allow the subtask to start automatically with the rest
of PDSMAN.
Note: PDSMLRDR is not automatically started if you are not
licensed for PDSMAN feature "D" (LMP code F3).
----------------------------------------------------------------
Queuing Considerations
Once the PDSMLRDR subtask is activated, Last Reference Date
Recording requests will continue to be queued even if the
subtask subsequently becomes inactive. The request queues have
a maximum size of 40,000 entries and PDSMAN issues PDSMLRDR-03
messages when request queue usage reaches 50, 80, 90, 95 and
100 percent. If the PDSMLRDR-03 message is issued with a status
other than "Notify", check the status of the PDSMLRDR subtask
by issuing the LRDRSTATUS command and start the subtask using
STARTLRDR if it is not active.
----------------------------------------------------------------
Recording Considerations
The PDSMLRDR subtask must be able to allocate the library into
which a last reference date is to be recorded. This allocation
is performed using DISP=SHR. If the library is allocated to
another task using DISP=OLD, the recording is not performed.
PDSMLRDR issues PDSMLRDR-05 and PDSMLRDR-06 messages indicating
the library could not be allocated.
----------------------------------------------------------------
Issuing Messages for Successful Updates
This fix adds the ability to have PDSMAN issue a PDSMLRDR-02
message when the last reference date is successfully recorded
for members of PDS or PDSE libraries. You control the PDSMLRDR-
02 message by specifying the new LRDRMSG parameter on a
matching $ACCESS control statement.
The following settings are valid for the LRDRMSG parameter:
LRDRMSG=N Do not issue the message (default).
LRDRMSG=W Issue the message to the operator console using
WTO.
LRDRMSG=L Issue the message to the system log.
The messages are displayed by the accessing user task or by the
PDSMAN address space, depending on which performs the last
reference date recording.
Important Note: The PDSMLRDR-02 message is issued once per day
for each member that is accessed and has its last reference
date recorded. Be cautious when setting LRDRMSG=W that you do
not overload your console with messages due to high access
activity.
---------------------------------------------------------------
Messages issued by PDSMLRDR Last Reference Date Recording
The following new messages can be produced during Last
Reference Date Recording:
PDSMLRDR-01 PDSMAN Last Reference Date Recording <status>
This message reports the status of the PDSMAN Last Reference
Date Recording environment.
<status> The Last Reference Date Recording environment:
* Active
* Not Active
* Already Active
* Ended
PDSMLRDR-02 Last Reference Date set to <date> for <resource>
This message reports successful recording of a PDSMAN last
reference date.
<date> The last reference date that was recorded.
<resource> The name of the resource in the format
libraryname(member)/volser.
The output destination for this message is controlled by the
setting of the $ACCESS LRDRMSG parameter.
PDSMLRDR-03 LRDR Queue <status> - <queuename> is <percent> full
- <action>
This message reports the usage status of a PDSMAN Last
Reference Date Recording request queue.
<status> The status of the request queue:
* Exhausted
* Critical
* Warning
* Notify
<queuename> The name of the request queue.
<percent> The percentage of the maximum number of queue
entries currently in use.
<action> The suggested action to be taken:
* Start the PDSMLRDR Subtask
* Check the PDSMLRDR Subtask Response
Note: No notification is provided when the queue usage returns
below the threshold value.
PDSMLRDR-04 Last Reference Date Recording <function> <status> -
<reason>
This message reports status information related to the PDSMAN
Last Reference Date Recording environment.
<function> = The Last Reference Date Recording service
function being processed.
<status> = The status being reported.
<reason> = The reason for the reported status:
* Queue func RC=nn RSN=xxxx Data=xxxxxxxx
* Invalid LRDR Request - <information>
* <count> Requests Purged - <name> Queue
PDSMLRDR-05 Last Reference Date Recording <result> for
<resource>
This message indicates that a last reference date recording
operation has completed with a result other than successful.
<result> The result of the Last Reference Date Recording
operation:
Error Recording failed for the resource
Failed Recording failed for the resource
Warning Recording completed but an abnormal
condition was detected
Bypassed Recording was bypassed because the
library was migrated or due to a
previous error when recording to
the library.
<resource> The name of the resource in the format:
libraryname(member)/volser.
For all results except "Bypassed", this message is followed by
a PDSMLRDR-06 message that provides the reason for the result.
PDSMLRDR-06 <reason> (- <data>)
This message is issued following a PDSMLRDR-05 message to
provide the reason for the error or warning and additional
information about the result, if available.
<reason> The reason for the error or warning:
* Data Set Not Found
* Unable to Obtain DCB Information
* Data Set is Not Partitioned
* Library is Migrated
* Update Authorization Required for UserId <userid>
* Unable to Allocate Library
* Unable to Open Library for <mode>
* Unable to Deallocate Library
* PDSMAN Database Recording is Not Supported
* BLDL I/O or Storage Error
* Member Not Found in Library
* Unrecognizable User Data is Present
* Unable to Update Directory
* The Member Has Moved since Last Access
* Unable to Queue LRDR Request
* Unable to Retrieve LRDR Request
<data> Specific information about the condition when
such data is available.
SYMPTOMS:
There are no symptoms associated with this fix.
IMPACT:
This change modifies PDSMAN Last Reference Date Recording
to add the new support. Users may notice new PDSMLRDR-xx
messages issued with recording or other differences as
described in the section "Description".
CIRCUMVENTION:
There is no circumvention.
PRODUCTS AFFECTED:
CA PDSMAN PDS Library Management r7.7
RO77451
TITLE: ADD LAST REFERENCE DATE RECORDING REF=E OPTION
PROBLEM DESCRIPTION:
The PDSMAN Last Reference Date Recording facility allows users
to identify inactive PDS and PDSE library members by recording
the date on which a member was last referenced.
This fix continues the enhancement of LRDR for PDSE libraries
originally introduced by RO73404 by providing a new LRDR
setting, REF=E, on the $ACCESS control statement.
Note: Throughout this description, the term PDSE refers to
"data" PDSE libraries that do not contain executable
modules. PDSMAN records last reference dates for
executable PDSE modules (known as program objects)
using a different method.
Current processing (REF=Y) queues LRDR requests for PDSE members
to the PDSMAN address space only when the accessing user does
not have authority to update the library. The new REF=E option
instructs PDSMAN to queue all PDSE member LRDR requests. To use
this new option, specify REF=E on the matching $ACCESS control
statement.
One benefit of using REF=E is that the PDSE library updates
associated with LRDR are logged by your security system as
being performed by PDSMAN. This reduces question about why
users who are simply accessing PDSE members may be logged
as having updated the PDSE library due to LRDR.
SYMPTOMS:
There are no symptoms associated with this fix.
IMPACT:
This change modifies PDSMAN Last Reference Date Recording
to add the new support. With REF=E, users may notice that
PSDMLRDR-02 messages previously issued by the updating user
are now issued by the PDSMAN address space.
CIRCUMVENTION:
There is no circumvention.
PRODUCTS AFFECTED:
CA PDSMAN PDS Library Management r7.7