http://nhforge.org/doc/nh/en/index.html#configuration-hibernatejdbc
On Mon, Nov 8, 2010 at 6:28 PM, Mark Kharitonov <[email protected]>wrote: > Dear sirs. > > We have switched from sqlite to FireBird embedded server, because FB > seems to support concurrent updates of the database, but we sometimes > have these exception coming from it: > > 2010-10-28 15:49:31,242 [56] ERROR > NetworkCatcher.Entities.Agent.Server.RunResultManager - Failed to send > result to server 32W2K3SP2VM-DEV. > NHibernate.Exceptions.GenericADOException: could not update: > [ExecutionEntry#89_19_32W2K3SP2VM-DEV][SQL: UPDATE Run SET ExecutionId > = ?, Source = ?, Destination = ?, ProtocolId = ?, Duration = ?, > SampleCount = ?, StartTime = ?, ServerHostName = ?, > SamplesSentToServer = ?, SampleInterval = ?, Parameters = ? WHERE Id > = ?] ---> FirebirdSql.Data.FirebirdClient.FbException: deadlock > update conflicts with concurrent update > concurrent transaction number is 31632 ---> > FirebirdSql.Data.Common.IscException: deadlock > update conflicts with concurrent update > concurrent transaction number is 31632 > at > FirebirdSql.Data.Client.Native.FesDatabase.ParseStatusVector(IntPtr[] > statusVector) > at FirebirdSql.Data.Client.Native.FesStatement.Execute() > at > FirebirdSql.Data.FirebirdClient.FbCommand.ExecuteCommand(CommandBehavior > behavior, Boolean returnsSet) > at > FirebirdSql.Data.FirebirdClient.FbCommand.ExecuteCommand(CommandBehavior > behavior) > at FirebirdSql.Data.FirebirdClient.FbCommand.ExecuteNonQuery() > . > . > . > > The FB response to this was > “Why do you think it's a bug? It's a regular update conflict causing > by two transactions updating the same record simultaneously. What is > your transaction isolation mode?“ > > This phrase has puzzled me twice – once, because I was unpleasantly > surprised to discover that I may write the same record concurrently > and the second time – I have no idea what is my > transaction isolation mode and how do I use it to serialize writes to > the same record. > > The mapping of the object, being updated is: > > <?xml version="1.0" encoding="utf-8" ?> > <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" auto- > import="true"> > <class name="NetworkCatcher.Entities.Agent.Server.ExecutionManager > +ExecutionEntry,NC.Entities.Agent.Server" lazy="false" table="Run" > entity-name="ExecutionEntry"> > <id name="Id" column="Id" type="string" > > <generator class="assigned"/> > </id> > <property name="ExecutionId"/> > <property name="Source"/> > <property name="Destination"/> > <property name="ProtocolId" type="string"/> > <property name="Duration"/> > <property name="SampleCount"/> > <property name="StartTime"/> > <property name="ServerHostName"/> > <property name="m_samplesSentToServer" > column="SamplesSentToServer" type="int" access="field" /> > <property name="SampleInterval"/> > <property name="Parameters" type="binary"/> > </class> > </hibernate-mapping> > > I am sure there is a good samaritan out there, who knows the answer to > my problem. Please, please, please share from your wisdom... > > Thanks. > > -- > You received this message because you are subscribed to the Google Groups > "nhusers" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<nhusers%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/nhusers?hl=en. > > -- Fabio Maulo -- You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/nhusers?hl=en.
