On 16-Jul-2014 09:04 -0500, John R. Smith, Jr. wrote:
I am writing a program to retrieve the object text of a group of
dataareas for display on a screen. I am having an issue where I get
blanks for the text for a dataarea when another job has it locked
*EXCL. I have tried DSPOBJD and RTVOBJD from CL. I have tried the
APIs QUSLOBJ and QUSROBJ. Is there another API that I am missing or
some other way of getting this information. We are currently at V6R1.

Although the Object Information Record (OIR) that includes the TEXT() details of an external object [a Data Area (*DTAARA) in this example] is located in an area retrievable without any access required to the object itself, the OS has traditionally only presented symbolic indications such as "*IN USE" in place of the actual Text attribute of the object whenever the object is exclusively allocated to another thread\job. In some other interfaces, an indicator may suggest separately or ambiguously "locked" and\or "damaged", provided as reference, as an indication that other attributes may not have been retrieved and thus may not reflect the actual values, whereas other interfaces may not provide such an indicator and instead fail with an allocation error. A list request typically must use an indicator; e.g. DSPOBJD uses the distinct indicators ODOBLK and ODOBDM. Because the Exclusive lock often is an indication of the object being deleted, any interface that would choose to retrieve\present the text [again, from a separate location than the object itself] when the object is locked so, then the potential exists for misinformation due to ephemeral objects of the same name\type; i.e. the OIR attributes of a new object could be returned for a since-deleted object. Thus for the utmost in accuracy\integrity of the retrieved information, the exclusive lock serves as a semaphore for access to the OIR entry representing that object name+type combination.

This thread ...

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