HP3000-L Archives

January 2007, Week 3

HP3000-L@RAVEN.UTC.EDU

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Brian Donaldson <[log in to unmask]>
Reply To:
Date:
Sun, 21 Jan 2007 13:51:18 EST
Content-Type:
text/plain
Parts/Attachments:
text/plain (43 lines)
I have used the DBX procedures for many years now and have also encountered  
this 
stalled transaction error.
 
My only suggestion would be to call DBXEND every "n" records processed and  
then call DBXBEGIN
at the start of the next "n" transactions. 
 
I have never found a way around this except to limit the number of  
transactions within the scope of a DBXBEGIN/DBXEND combo.
 
However, these DBX procedures were not intended to be used for mass  updates. 
They are used primarily
for updating a reasonably short number of logical transactions. 
 
Example:
 
DBLOCK
DBXBEGIN
loop_start
  read input file, EOF goto loop_end 
     DBPUT, (error, do DBXUNDO goto  loop_end) 
     DBUPDATE,  (error, do DBXUNDO goto  loop_end) 
     DBDELETE  (error, do DBXUNDO goto  loop_end)
    goto loop_start
loop_end 
DBXEND
DBUNLOCK
 
Another solution, instead of the DBX procedures would be to use  AUTODEFER 
(enable via DBUTIL)
 
However, if you go this route you better make sure you have a good full  
backup of your TurboIMAGE database before you do it. If the program  aborts for 
whatever reason (program abort, system failure etc)
and AUTODEFER is enabled your database will be trashed.....
 
 
Brian Donaldson.

* To join/leave the list, search archives, change list settings, *
* etc., please visit http://raven.utc.edu/archives/hp3000-l.html *

ATOM RSS1 RSS2