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.
>
> I use Informix-SE INFORMIX-SE Version 7.10.UD1, on a Unisys
> SMP5400 Unix machine.
>
> 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.
Informix locks far more records than you would think while updating a
record. Most important cause for this is that referenced tuples (by
foreign key constraints) are locked as well. If you insert/update/delete
records with lots of foreign keys, transactions grow large very fast.
For some large transactions in an environment with little concurrent
users you might need as much as 200000 locks.
Frido