The Database member open exit was enhanced with IBM i 7.1 <via PTFs
in v5r4+> to enable the capability to be invoked only when a file in the
list of files being opened is audited [according to the object,
irrespective the system-level object auditing being in effect].
_i Open Database File Exit Program i_
Normally any exit program data is ignored if it is specified when an
exit program is added for the Open Database File Exit Program exit.
However, if the exit program data length=7 and the exit program
data='*OBJAUD' is specified, the object audit attribute of each file
will be interrogated prior to calling the exit program. In this case, if
any of the files referenced in the open have an object audit value of:
* *USRPRF and user's object auditing value for job is *CHANGE or
*ALL (See the OBJAUD keyword on the CHGUSRAUD command)
the open exit will be called for all the files referenced in the open.
Otherwise, the exit program will not be called. Note that auditing does
not actually have to be active for this to apply.
From a draft Redbooks document [from a recent post here in another
thread], an example invocation to establish the Program Data:
"... the exit was invoked for every full open. Depending on the amount
of resources available and the number of full opens per second in a
system, performance could be a concern. IBM i 7.1 added the capability
to have the exit program QIBM_DB_OPEN called only when a full open
occurs where at least one of the tables referenced by the query has
object auditing enabled. This capability was also extended to previous
versions V6.1 and V5R4.
Example 3-1 QIBM_DB_OPEN exit enhancement
ADDEXITPGM EXITPNT(QIBM_QDB_OPEN) FORMAT(DBOP0100) ... PGMDTA(*JOB *CALC
The word "query" in the above text should probably say "open". The
section of doc is geared toward the use of the exit by 3rd party
suppliers, specifically to intercept SQL query activity; i.e. narrow focus.
amazon.com ads help fund midrange.com operations