Subject | Re: [firebird-support] Re: Deadlocks without transaction |
---|---|
Author | Ann W. Harrison |
Post date | 2005-01-03T21:54:48Z |
clarion55sucks wrote:
thread tried to physically modify the record. If the some layer in the
application is doing you the "favor" of caching updates, you'll have a
hard time guessing which thread actually sent the update to the database
first.
consistent results to read and return inconsistent (i.e. modified) data.
read-committed transactions for your "non-transactional" reads. The
alternative is to start a new transaction for updates - and rollback and
restart after errors. Unlikely as it may seem to you at the moment,
providing a consistent view of data is a good thing - even if it means
that an error stays an error until you restart the transaction.
Regards,
Ann
>Right.
> I understand what your saying but the important point is that I do
> commit the changes (i would assume that if i didnt a new thread would
> not see the data and it is running in read commited mode),
> and I dontIt depends less on the age of the thread than on the time when each
> get errors on the new thread as you said I should but the old thread.
thread tried to physically modify the record. If the some layer in the
application is doing you the "favor" of caching updates, you'll have a
hard time guessing which thread actually sent the update to the database
first.
> I am suspicious that the error message coming from the backend isI agree that thread A - the "oldest" thread - is probably snapshot mode.
> confusing and the problem is really that there is a snapshot on the
> backend
> and If i could get A to see the most recent data instead ofThere's no way to force a transaction that's trying to give you
> its snapshot than the problem might go away.
consistent results to read and return inconsistent (i.e. modified) data.
>No. You may be able to convince the various levels involved to give you
> Is there any way to turn off snapshots on the backend?
read-committed transactions for your "non-transactional" reads. The
alternative is to start a new transaction for updates - and rollback and
restart after errors. Unlikely as it may seem to you at the moment,
providing a consistent view of data is a good thing - even if it means
that an error stays an error until you restart the transaction.
Regards,
Ann