[Info-vax] RMS internals?

Howard S Shubs howard at shubs.net
Tue Aug 11 11:09:49 EDT 2009


In article 
<1e27ffb3-e228-450c-aead-22d23950f110 at d23g2000vbm.googlegroups.com>,
 "Hein, Nashua NH" <heinvandenheuvel at gmail.com> wrote:

> On Aug 10, 10:11 am, Howard S Shubs <how... at shubs.net> wrote:
> > In article <sNgXXOeOf... at eisner.encompasserve.org>,
> >  koeh... at eisner.nospam.encompasserve.org (Bob Koehler) wrote:
> :
> > >    Of course, the quick fix in this case is "set file/attributes", or
> > >    maybe just changing the realvent FAB or RAB fields after doing an
> > >    $OPEN.  But then you have to know what was done wrong by the user.
> :
> > You're working on an incorrect assumption.  I suggest you read the thread.
> 
> Not so quick Howard. Bob's suggestion has merit.

I was keying on the "was done wrong by the user", which he seems to have 
understood from his reply, thankfully.


> Yeah you can readily read through the file with $READ (or $QIO).
> But are you going to add multi-buffering, read-ahead and such?
> If you change the file to 'undefined', or fixed-512 or such, then you
> can use RMS $GET and have RMS do the multi buffering ( RAB$V_RAH ) and
> AST /WAIT support and such.

I'm not sure what you're getting at.  I'm just looking at a simple 
situation of "read it, give the data to the caller".  I'm using $READ 
and $OPEN (and $CLOSE) so I don't have to open the file by hand, which 
would require me to play with ODS-2 myself, I expect.  Disk $QIOs would 
be new to me, as well.  Might be interesting, but I prefer to do 
something more practical (read: maintainable) for my client with this 
situation.


> Using SYS$MODIFY you can do that on the fly, after the open.
> You could even start out with regular gets, in case it is a regular
> file, and switch to undefined and your private cut & paste segments
> algorithms if and when you determine that is needed ($GET error).

I'm not seeing $MODIFY in either the System Services Reference or the 
RMS reference.  What is it, please?


> Admittedly  the RMS record-io buffers will be limited to 127 blocks,
> so you can do bigger=better with SYS$READ and a RAB64  or QIO

I'm reading up to 512 blocks at a time, or 3*recordsize rounded up to 
the next block size, whichever is bigger.  Since the record involved 
isn't THAT big, 512 blocks at a time is what's actually happening.  A 
256KB read is fairly modest, I figure.

-- 
Don't bother with piddly crap like "gun control".
Life is 100% fatal.  Ban it.



More information about the Info-vax mailing list