Subject | Re: [firebird-support] conflict when update table |
---|---|
Author | mailstor |
Post date | 2008-07-23T07:45:25Z |
> Hi,all..since nobody else answered so far, I will try to push you into the
> Anyone can help me why my fb server raise this exception when I
> run my app for more than 1 machines?
right direction.
You need to get involved with the concept of transaction based
database operation. I don't know what experiences you made before, but
you must know that even a simple "Select XYZ from Table123" is done
within a transaction.
Transactions can be read-only or read-write.
Transactions are "isolated" from other transactions following the
rules defined by the "isolation levels".
I suppose that you are "selecting" data in read-write transactions on
both machines, and keeping those transactions open (uncommitted, and
not rolled back) long enough to allow both machines editing the same
record(s).
You did not write, which database software you have been using before
Firebird, if any. I see this behaviour VERY often with former
dBase/access/paradox users.
If you have been used to a system which defaults to "the last writer
always wins" you must re-think a bit when it comes to SQL servers in
general.
Also, a less usual "isolation level" could be causing strange effects
in multi-user applications, if it is applied without understanding it.
A very good starting point to get involved into these topics is the
book "The Firebird Book" by Helen Borrie available in bookshops or via
the internet site IBPhoenix.com.
ciao,
André