Subject | Re: [firebird-support] deadlock - update conflicts with concurrent update |
---|---|
Author | Helen Borrie |
Post date | 2007-06-06T15:18:23Z |
At 12:34 AM 7/06/2007, you wrote:
that there would be no update conflicts. :-)
anyway!) Update conflicts occur when one transaction tries to update
or delete a record that another transaction is holding already with a
pending update or deletion, awaiting a commit or rollback of that transaction.
database server won't complain. Your problem is about uncommitted
transactions...something that your application is solely responsible
for. If you're doubtful about what your code is doing, raise a
question on the firebird-net-provider list, preferably with an
example that illustrates what your application flow does typically.
./heLen
>In my heavy loaded server application I sometimes see exceptions ofA blank database doesn't have anything to update so it would follow
>---------
>FirebirdSql.Data.FirebirdClient.FbException: deadlock
>update conflicts with concurrent update
>---------
>
>When using a blank database it doesn't have the problem.
that there would be no update conflicts. :-)
>But afterIt's not a question of database size (and 1 Gb is not very big,
>running for a couple of days when the database size becomes bigger
>(around 1GB), the exception happens more and more...
anyway!) Update conflicts occur when one transaction tries to update
or delete a record that another transaction is holding already with a
pending update or deletion, awaiting a commit or rollback of that transaction.
>I am using firebird 1.5.4, .net provider 2.0.1. The connection poolIf your system genuinely has the resources to support all that, the
>size is 1000, basically caches all db connections. Sometimes there may
>be 100 threads spawned trying to insert/update records.
>
>What can I do to avoid update conflicts as much as possible? shall I
>limit the thread number or connection pool size?
database server won't complain. Your problem is about uncommitted
transactions...something that your application is solely responsible
for. If you're doubtful about what your code is doing, raise a
question on the firebird-net-provider list, preferably with an
example that illustrates what your application flow does typically.
./heLen