On 21-Oct-2015 18:00 -0500, Vinay Gavankar wrote:
What does the 'Physical File Open accesses' displayed in the DSPFD
command indicate?
Does it really show the number of times this file was opened?
  Shown as part of Data Space Activity Statistics, presumably the "open 
accesses" count is literally the number of Activate Cursor (¿ACTCR?) MI 
instructions issued against the LIC Cursor defined with any reference to 
that data[space], and the "close accesses" count is literally the number 
of Deactivate Cursor (¿DEACTCR?) MI instructions against a LIC Cursor 
defined with a reference to that data[space].  A LIC cursor is the 
implementation object for an Open Data Path (ODP) that is defined over 
the run-time member that is defined over one or more dataspace(s).
  OK, perhaps not very informative for the layperson.  But effectively, 
any time an ODP is created [and perhaps also when one is reused], the 
/open/ count would increment.  Any time an ODP is closed, then the LIC 
cursor gets destroyed when the deactivate-cursor method is called, and 
thus the /close/ count would increment for each referenced dataspace.
I am seeing pretty high numbers in one file (40000/min) but no one
has complained of degradation in performance of that file, and I
can't really believe that file is opened that frequently.
  Can be shocking sometimes, how much /work/ gets done sometimes, 
without anyone noticing just how much is actually being done to get 
/something done/ :-)  Very possibly, the counts are an accurate 
representation of the total work being done, but may not reflect the 
complexity nor cost of that work; i.e. some opens may be significantly 
less costly than others, thus having little impact compared to other 
[more expensive] opens.
The code is supposed to be extremely fine tuned with no program in
the call stack opening/closing files.
  The statistic would be agnostic for job; i.e. every /open/ would be 
counted, irrespective the job.  And any job retrieving the statistics 
would see the count reflecting activity from across the system, not just 
of any one job or application.  A popular file may be accessed by more 
than the primary application that one associates with that file; e.g. 
the primary application may maintain the data in the file, but there may 
be many different applications and jobs reading or otherwise querying 
the file.
  And FWiW, much code that is described as /fine tuned/ with regard to 
file-open, are coded to avoid full-open for efficiency.  Thus while the 
application may be known for not doing full-open, that application may 
specifically be designed to use shared opens or SQL 
pseudo-closed-cursors; thus huge savings in many ways [CPU, 
temp-storage, temp-addresses, memory\disk, faulting].
The ODP in batch jobs I have checked is constant.
  Not sure what is meant by that; if for example that implies a review 
of the open files, via for example the Work With Job (WRKJOB) for Opened 
Files option OPTION(*OPNF), that would not really be telling.  But a 
Trace of the job, that might be telling.  That or a break-point in the 
[shared] open code path(s); though unfortunately because the DB Open is 
no longer OPM, and that the ILE gives no capability to effect the 
equivalent of the effect from ADDBKP STMT('/1') on OPM, debug is no 
longer very capable.  I am not sure about whether the QDBSOPEN [for 
shared open] is still OPM however, and if the Common Data Management 
Open (QDMCOPEN) is, or if even the cursor-reuse would actually flow that 
path, and I do not recall the SQL program name but that is surely ILE. 
So again, probably only trace would help to see if real or faux opens 
were really happening.
  Note: A quick test in v5r3 seems to suggest shared-open, those that 
merely increment the shared-count, seems not to effect an increment to 
the /open accesses/ statistic.
Also, for that file 'Physical File Close accesses' is HIGHER than
Open accesses.
  If pseudo-closed cursors [ODPs that are left open for reuse] never 
effect the deactivate, which they would not given that is the whole 
point of pseudo-close vs full-close, then the close count could 
conceivably be very low as compared to the open count, *if* the reuse is 
implemented via the activate-method.  A possibly similar effect could be 
from /shared open/ of an ODP.?
  Hmmm... Then after writing all of that, I recall a recent discussion 
mentioning use of multiple-dataspace Logical File Member (LFM) with a 
keyed access path.  That of course means that every DataSpace (DS) will 
get that increment each time the LFM is opened.  I do not recall there 
being a cumulative count [e.g. as manifest in the presentation of the 
LFM; I think not, because the DataSpae statistics as I recall, are 
available only from displaying the Physical File Member (PFM)], but if 
there were, that could skew [much more rapidly upward] the number being 
seen; i.e. an aggregate of the open of a LFM built over 20 dataspaces 
would increment by 20 vs by 1.
As an Amazon Associate we earn from qualifying purchases.