Hal van den Assem wrote:
>
> An ESQL/C program, which processes a huge amount of data in one
> single transaction, causes the SQL-error Code -346.
>
> Could someone confirm or explain that the error is caused by
> a 'too large' transaction!?
> How can I determine the size of a transaction, and how to put more
> updates and inserts into 1 single transaction!? (enlarge a transaction)
> If possible, I do not want break-down the workload into smaller
> transactions.
> Hal van den Assem
I'm not an expert on SE, but in Online, you would have two possible
problems:
Locks and long transactions.
If you are attempting to lock too many rows/pages at a time, you will
run out of locks, which can be determined by onstat -k. Also, if you
have a transaction that takes up more than 50-70% of your logspace, it
will be rolled back because it can not be recovered from if the database
were to crash. Your long transaction high water marks can be varied,
but if it fails and is unable to rollback, the worst thing that could
happen is a complete restore (from tape) ---IN ONLINE. For SE, though,
if memory serves, you don't have transaction logging. I hope this will
help. My guess is you're out of locks. Lock the table in exclusive
mode if you can in SE.
Rob Donat.
--
_________________________________
| Robert Donat |
| rdonat@sigg.com |
| http://sashimi.wwa.com/~donat |
|_______________________________|