HP3000-L Archives

November 2003, Week 2

HP3000-L@RAVEN.UTC.EDU

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Roy Brown <[log in to unmask]>
Reply To:
Roy Brown <[log in to unmask]>
Date:
Fri, 14 Nov 2003 00:59:27 +0000
Content-Type:
text/plain
Parts/Attachments:
text/plain (56 lines)
In message <[log in to unmask]>, Eben Yong
<[log in to unmask]> writes
>On Thu, 13 Nov 2003 00:29:45 +0000, Roy Brown
><[log in to unmask]> wrote:
>
>>Lots of snips - intriguing problem, though.
>>
>>How do you lock now, BTW? If you are not row-level (record) locking, or
>>set locking already you must be database locking. Seems a bit horrible
>>on a big, well-used database or set of bases.
>
>Currently, our existing custom apps do not "mess" with the vendor DB in a
>way that requires explicit locking.  We have many QUICK screens that
>handle the required locking mechanisms without explicit programmer
>knowledge, per se, of locking requirements.

OK, but if you don't know how that locking is actually being done, you
may have problems in choosing the correct locking strategy for a
high-usage COBOL program that has to work when they are working.

(Mind you, this may imply nothing much more than reading up the
technical background of how QUICK implements locking).

>>But one question intrigues me (and may either be the germ of a solution
>>to the do-it-during-OLTP problem, or its death knell, no matter how
>>fancy the locking you used was)
>>
>>"During OLTP, if you were updating at the same time, and even if you
>>could solve the half-updated problem in some way: how would the users
>>know whether to use the old key or the new key for a given member?"

>This boils down to training.  We will be creating a cross-reference table
>that users can use to look up the "old" key and find the "new" key.  Then,
>they would use the "new" key to look up the member's information.

OK, then maybe you could use this X-Ref to solve the 'half-updated'
problem. Load the X-Ref with the old keys on both sides, and have your
users start using it straightaway. Then as your update program runs, it
first finds the old key in the X-Ref, sets the new key to something
which signifies 'Come Back Later', updates all the old key records to
the new key, and finally writes the new key into the X-Ref.

That way, the worst the users will find is a set of records temporarily
unavailable to them; they won't have an incomplete set returned to them
undetected.

It does mean training the users not to do 'look for the old, and only
use the X-Ref if it isn't found'; but they would pretty soon find that
the slower strategy even if you did all your updates out of hours.
--
Roy Brown        'Have nothing in your houses that you do not know to be
Kelmscott Ltd     useful, or believe to be beautiful'  William Morris

* To join/leave the list, search archives, change list settings, *
* etc., please visit http://raven.utc.edu/archives/hp3000-l.html *

ATOM RSS1 RSS2