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

Reply via email to