Do I need to always add a READU before the WRITE, just to establish a lock?
(which is what fixed my problem)
Program "ED": pc = 726C, Program "*UPDATE.EMAIL.QUEUE": Line 21, FATAL: The lock
s necessary for database operations at the current isolation level (0) are not h
eld by this process.
Program "ED": pc = 726C, Error performing trigger for "SQLTEST".
Failed to file "0001001" in file "SQLTEST". STATUS = -2
SUBROUTINE
TRIGGER_EMAIL(TRIGGERNAME,SCHEMA,TABLE,EVENT,TIME,NEWRECID,NEWREC,OLDRECID,OLDREC,ASSOC,ASSOCEVENT,COUNT,CHAINCASCADE,CASCADE)
*
*
*****************************************************************************
*
EMAILATTR=2
NAMEATTR=1
*
TYPE=EVENT
BEGIN CASE
CASE TYPE='INSERT'
ACTION='INSERT'
NAMEFLD=NEWREC<NAMEATTR>
EMAILFLD=NEWREC<EMAILATTR>
CALL *UPDATE.EMAIL.QUEUE(TABLE,ACTION,NAMEFLD,EMAILFLD)
END CASE
*
RETURN
END
SUBROUTINE UPDATE.EMAIL.QUEUE(TABLE,EVENT,NAME,EMAIL)
*
**************************************************************************
*
OPEN "","EMAIL-QUEUE-DATA" TO F.EQD ELSE STOP
OPEN "DICT","EMAIL-QUEUE-DATA" TO D.EQD ELSE STOP
*
READU NXT FROM D.EQD,'NEXT' ELSE NXT=1
NXT=NXT+1
WRITE NXT ON D.EQD,'NEXT'
NXT=NXT-1
*
IF EMAIL="" THEN RETURN
IF NAME="" THEN NAME="*"
QUEUE=""
QUEUE<1>=EVENT
QUEUE<2>=NAME
QUEUE<3>=EMAIL
QUEUE<4>=TABLE
*
READU ANYTHING FROM F.EQD,NXT ELSE ANYTHING ="" (ADDED IN, AND PROBLEM
VANISHED)
WRITE QUEUE ON F.EQD,NXT <==== line 21
RETURN
STOP
END
George Gallen
Senior Programmer/Analyst
Accounting/Data Division, EDI Administrator
[email protected]
ph:856.848.9005 Ext 220
The Wyanoke Group
http://www.wyanokegroup.com
_______________________________________________
U2-Users mailing list
[email protected]
http://listserver.u2ug.org/mailman/listinfo/u2-users