COMMIT

Kesterson, Roger Roger.Kesterson@mtdsw.com
Thu, 24 May 2001 08:11:55 -0700


Thanks for all the responses.  It wasn't clear to me from reading the manual
that it is only for relational.  We only use PH with RMS, so I guess that's
all I needed to know.

I am experiencing another strange problem.  One thing we are using PH for
(PH 7.10.G2, OpenVMS 7.1) is to run  a QUICK program in batch that acts as a
"server" for some data collection systems running on remote nodes.  The
communication is via a combination of mailboxes and DECNET transparent
task-to-task.  This setup, so far, appears to be very robust, and seems to
recover quickly and cleanly from network "glitches" which we experience on a
regular basis since one of our nodes is in Mexico, where the power grid and
data lines are quite unstable.  But I digress.

The error is:

"Data access error. (LOAD_LISTS*01)?%RMS-F-FAC, record operation not
permitted by
 specified file access (FAC)"

The LOAD_LISTS file is defined as:

FILE LOAD_LISTS DESIGNER OPEN WRITE SHARE
FILE LOAD_LISTS DESIGNER ALIAS LOAD_LISTS_REF OPEN READ SHARE

Even though the error message says (LOAD_LISTS*01), it is occurring in a
procedure that is trying to read from LOAD_LISTS_REF.  It seems to only
occur after it writes a record to LOAD_LISTS for one request from the data
collection system, and then the very next request causes it to attempt to
read the same record from LOAD_LISTS_REF.

Here are the code snipets:

PROCEDURE INTERNAL PROCESS_TRC
  BEGIN
    LET T-TRAILER = (MBX_BUF OF MBXOUT)[1:9]
    LET T-LOAD-LIST = (MBX_BUF OF MBXOUT)[10:6]

    LET LOAD_LIST_NUMBER OF LOAD_LISTS = T-LOAD-LIST
    LET TRAILER_NO OF LOAD_LISTS = T-TRAILER
    LET DATE_TIME_CREATED OF LOAD_LISTS = &
        ASCII(SYSDATE,8) + ASCII(SYSTIME,8)
    PUT LOAD_LISTS RESET
  END

PROCEDURE INTERNAL PROCESS_CMP
  BEGIN
    LET T-LOAD-LIST = (MBX_BUF OF MBXOUT)[1:6]

    GET LOAD_LISTS_REF VIA LOAD_LIST_NUMBER &
        USING T-LOAD-LIST OPTIONAL
    IF ACCESSOK
      THEN
        BEGIN
	.
	.
	.
        END
  END

So basically, PROCESS_TRC is called, followed fairly quickly by PROCESS_CMP,
using the same value for T-LOAD-LIST, and the program blows on the GET with
the above error.  It seems like it might be a timing issue, because when the
program comes back up, the PROCESS_CMP works fine on the same load list
number.

Thanks,
Roger

> -----Original Message-----
> From: Kesterson, Roger [mailto:Roger.Kesterson@mtdsw.com]
> Sent: Wednesday, May 23, 2001 9:54 AM
> To: PowerHouse List Server (E-mail)
> Subject: COMMIT
> 
> 
> This might seem like a silly question, but when might one use a COMMIT
> command in QUICK?
> 
> = = = = = = = = = = = = = = = = = = = = = = = = = = = =
> Mailing list: powerh-l@lists.swau.edu
> Subscribe: "subscribe" in message body to 
> powerh-l-request@lists.swau.edu
> Unsubscribe: "unsubscribe" in message body to
> powerh-l-request@lists.swau.edu
> http://lists.swau.edu/mailman/listinfo/powerh-l
> This list is closed, thus to post to the list you must be a 
> subscriber.
>