Subject Re: [IBO] Too many SavePoints error
Author Helen Borrie
At 01:29 PM 16/03/2004 +0000, you wrote:
>I was doing an update on an IB6 database which involved changing
>several table structures, then updating various existing fields in
>the database and intitialising some new fields to zero. I ran this
>update as a script using the IB_SQL utitlity. The script was of the
>form
>
>ALTER TABLE STRUCTURES
>
>COMMIT;
>
>UPDATE TABLE A SET ORIGINALFIELD1 = 'X' WHERE ORIGINALFIELD1 = 'Y';
>
>COMMIT;
>
>UPDATE TABLE A SET NEWFIELD1 = 0, NEWFIELD2 = 0;
>
>COMMIT;
>
>where there were 3 copies of the update of original fields for
>different values plus one copy of the new field update for each of
>about 6 tables of 75,000 to 200,000 records.
>
>Eventually IB ground to a halt and I found the message 'Too many
>savepoints (287)'
>
>I've since run the update on a copy of the data, with no problems.
>Needless to say, the copy that crashed was at a customer's site. The
>database before updating verified OK and had no limbo transactions.
>
>There is very little information on this error, but what there is
>seems to point to excessive commit retainings without a commit.

You are right on the button. In IB, you need to ensure you do a hard
commit (not commit retaining) about once every 10,000 updates.

Helen