Browse Prior Art Database

Time Stamping Control Blocks

IP.com Disclosure Number: IPCOM000111303D
Original Publication Date: 1994-Feb-01
Included in the Prior Art Database: 2005-Mar-26
Document File: 2 page(s) / 80K

Publishing Venue

IBM

Related People

Baker, SA: AUTHOR [+2]

Abstract

Disclosed is simple effective use of a time stamp key to ensure a correct order of browsing of some control blocks while allowing concurrent updating of the control block chains being browsed without the need for locking. Maintained is a consistent order in which control blocks, despite deletions and additions between separate accesses, are browsed since the order of chaining may not necessarily match the required browsing order. Although specifically described for User Exit Control Blocks within CICS, it could be used for any control block chain in need of a keyable order.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Time Stamping Control Blocks

      Disclosed is simple effective use of a time stamp key to ensure
a correct order of browsing of some control blocks while allowing
concurrent updating of the control block chains being browsed without
the need for locking.   Maintained is a consistent order in which
control blocks, despite deletions and additions between separate
accesses, are browsed since the order of chaining may not necessarily
match the required browsing order.   Although specifically described
for User Exit Control Blocks within CICS, it could be used for any
control block chain in need of a keyable order.

      The CICS System Programming Interface (SPI) consists of mainly
EXEC CICS (EC) INQUIREs and EC SETs.   A series of INQUIREs on any
one sequence of items is known as a browse, and is managed by a EC
INQUIRE START, then EC INQ NEXT for each following item, and then EC
INQ END upon completion.   In general, browses within CICS are
performed on data that has an inherent order associated with the data
items.   The browse can then progress along the ordered list, from
the start, each EXEC CICS INQUIRE NEXT going to the next item where
the key is GREATER than the key of the one just browsed.   So if an
item is deleted in between one browse and another, the browse will
return data from the following item, because the pointer to the keys
is only concerned with others that follow, still exist, and are
greater than the last.   The inherent order of UE (User Exit) control
blocks is in time order of the EC ENABLE command that causes the exit
points to be active.   As the time of enable is not included in the
control block itself, there is no key on which to compare.   In the
case of Global User Exits (GLUEs) the browse is based on the Exit
Program Link (EPL) chain for the exit point being considered.  For
Task Related User Exits (TRUEs) the browse is along the chain of
EPBs, only some of which may be flagged as TRUE EPBs, since this
chain is shared with GLUEs.   During a browse, there may be deletions
from the chain as GLUEs and TRUEs are Disabled, or additions as more
are Enabled, by other tasks.   The problem is how to ensure that the
browse order reflects the true state of the exit control block chains
at any given point in time.

      So that an order can be assigned to the User Exit Control
Blocks and they can then be easily keyed with additions and deletions
going on at the same time, the solution is to timestamp the EPLs and
EPBs at their time of creation.

      This simply involves an additional field in each of the
necessary control blocks.

For the Exit Program L...