Subject: | |
From: | |
Reply To: | |
Date: | Sun, 21 Jan 2007 13:51:18 EST |
Content-Type: | text/plain |
Parts/Attachments: |
|
|
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 *
|
|
|