COMMIT
Boyle, Joe
Joe.Boyle@cognos.com
Thu, 24 May 2001 12:01:21 -0400
could it be that either of T-LOAD-LIST or MBX_BUF OF MBXOUT do not have data
at the first time round so there is no key value present for use with the
either the read or write.
You could try making T-LOAD-LIST 'reset at startup' ( if it is'nt already )
and make the read/write syntax conditional on there not being a null value
in the MBX_BUF OF MBXOUT field.
-----Original Message-----
From: Kesterson, Roger [mailto:Roger.Kesterson@mtdsw.com]
Sent: 24 May 2001 16:12
To: 'powerh-l@list.swau.edu'
Subject: RE: COMMIT
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.
>
= = = = = = = = = = = = = = = = = = = = = = = = = = = =
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.