I just realized there also needs to be a 3rd step in the process below
that removes any logging of locks that have since been released.  In the
following sequence of events:

Program A locks record R
Program A calls subroutine B
Program A calls subroutine C
Program A releases record R

Subroutines B and C will falsely accuse program A of leaving an
unresolved lock.  The next subroutine that runs following the release in
program A needs to check for this and remove the lock log for record R.
That way when the user eventually logs off you're only left with logs of
the locks that never went away.

-John

-----Original Message-----
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of John Hester
Sent: Thursday, September 08, 2011 1:36 PM
To: U2 Users List
Subject: Re: [U2] Lock Status

You might be able to implement this capability from within the programs
themselves without a huge amount of effort.  We have a small program
tracking subroutine and a companion utility that automatically installs
a call to it from every program.  The original purpose was to determine
which code was still in use for our initial conversion from Ultimate to
UV 15 years ago, but it's come in handy for isolating anomolies over the
years.  The call statement is simply:

CALL TRACKER('THIS.PROGRAM')

The utility goes through all programs on a weekly basis during nightly
batch processing, adds that line at the top if it doesn't exist
(following the "SUBROUTINE" line), and recompiles the program.  The
tracker program writes a log record where the ID is the user and the
data is a sequential list of programs as well as a record where the ID
is the program and the data is a sequential list of users.  For your
lock issue, you could take this a step further and:

1) Check to see if this session is still hanging onto locks from the
previously called subroutine
2) Figure out what subroutine was previously called from the log record
and log the locks still being held

You will also have to come up with a method of insuring you only log the
initial instance, but I think that should be do-able.

-John

-----Original Message-----
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Kevin King
Sent: Thursday, September 08, 2011 1:01 PM
To: U2 Users List
Subject: Re: [U2] Lock Status

Thank you goes out to everyone for the input.  We were able to identify
(and
as of this moment it would appear correct) a couple of suspects by
looking
at the code that had been compiled within the last 2 weeks and
evaluating
each routine separately.  I still think it'd be cool to be able to see
which
program set which locks retrospectively, though I completely understand
Wally's perspective about the effort involved to make that happen.

-K
_______________________________________________
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users
_______________________________________________
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users
_______________________________________________
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

Reply via email to