Re: Response issues on GS1280, VMS 7.3-2
From: Dave Froble (davef_at_tsoft-inc.com)
Date: 07/26/05
- Next message: Didier Morandi: "Another VMS system bites the dust :-("
- Previous message: Dave Froble: "Re: [OT] Rounding v Truncation, was: Re: Platform Support vs."
- In reply to: Lee Mah: "Re: Response issues on GS1280, VMS 7.3-2"
- Next in thread: Hein: "Re: Response issues on GS1280, VMS 7.3-2"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Tue, 26 Jul 2005 02:33:36 -0400
Lee Mah wrote:
> Keith Parris wrote:
>
>> Lee wrote:
>>
>>> All I/O of production data files is co-ordinated through
>>> in-house developed library routines. For every record read,
>>> inserted, updated, or deleted, a translation of the XXXXXX
>>> logical is performed to see if a production data file is
>>> being maintained (CONVERT/RECLAIM). If the XXXXXX value is
>>> anything other than OFF, then extra processing takes place
>>> for a data file that is being maintained. The processing
>>> that takes place on a file being maintained is a "journalling
>>> concept. This allows us to maintain a file with users
>>> actively entering data. Once the maintenance is completed,
>>> the users access the new data file transparently.
>>
>>
>>
>> Instead of translating the logical name for each I/O, you might
>> consider one of a couple of approaches:
>> 1) Within the application, use a TQE to fire off a periodic routine to
>> translate the XXXXXX logical name and set a flag indicating whether
>> maintenance work is in progress. Then for each I/O, first test this
>> flag. Let's say you decide to do this polling once every 10 seconds.
>> Then you simply need to $WAIT slightly more than 10 seconds after
>> defining the logical name XXXXXXX to be something other than "OFF"
>> before you actually start working with the files.
>> 2) At application startup time, use $ENQW to acquire a Protected Write
>> mode lock on a resource named XXXXXX (or whatever) with a Blocking AST
>> queued. Once this lock is granted, set a flag indicating that no
>> maintenance work is going on. Test this flag for each I/O. When you
>> need to do file maintenance work, grab and hold a lock with EXclusive
>> mode for the duration of the maintenance work. In the applications'
>> Blocking AST routine, convert the PW lock down to NL mode, set the
>> flag so as to indicate that maintenance work is now going on, and
>> queue an asynchronous request with $ENQ to convert your lock from NL
>> to PR mode lock, with a completion AST which clears the
>> "maintenance-in-progress" flag.
>
>
>
> Thanks Keith,
>
> I'll forward your suggestion to the DB team.
Without getting into the details, I'll second Keith's idea of using the
lock manager for what is, by your description above, basically a locking
type of task. Using logicals for such is a mis-use of the logicals
capability, and such mis-use can lead to problems.
That said, getting a good grasp of usage of the DLM can be, well,
difficult comes to mind.
-- David Froble Tel: 724-529-0450 Dave Froble Enterprises, Inc. Fax: 724-529-0596 DFE Ultralights, Inc. E-Mail: davef@tsoft-inc.com 170 Grimplin Road Vanderbilt, PA 15486
- Next message: Didier Morandi: "Another VMS system bites the dust :-("
- Previous message: Dave Froble: "Re: [OT] Rounding v Truncation, was: Re: Platform Support vs."
- In reply to: Lee Mah: "Re: Response issues on GS1280, VMS 7.3-2"
- Next in thread: Hein: "Re: Response issues on GS1280, VMS 7.3-2"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]