Subject | Re: about the deadlock problem |
---|---|
Author | rrokytskyy |
Post date | 2002-04-14T18:13:05Z |
> Well, I understand this, but in my mind such deadlock should occurYou have some kind of bloncking here only if you do not use IB's
> only in this case:
>
> T1 starts (java)
> T1 reads a record
> T2 modifies that
> T2 commits
> here I have a deadlock in java, because the record was modified in
> T1. But (this is what I still don't understand) in every 2 second I
> start a new transaction. And in that transaction I should be able
> to new value, should not?
versioning and T2 does not commit (i.e. change is pending). Otherwise
your transactions are happy. Only when your two transaction modify
the same row you get the conflict. See API reference about the
transaction conflicts.
> Moreover, if I change the record in that 2 second while java isYou sould not have exception at all. isc_tpb_no_wait is not used in
> sleeping, I should have no exception at all, right?
driver. Even if you modify row in T2 while T1 is reading it in READ
COMMITED, T1 will wait until T2 commits and happily continue reading.
BTW, if you're only reading in that transaction use con.setReadOnly
(true). This gives the server additional hint how to resolve
conflicts.
> Fine, but I can't recognize the consequences. I still believe theMe too. And not because on Windows it works, but because in
> reason is not in the driver.
InterClient I saw the same problem, and because IB 6.5 works fine.
> By the way, what is a TBP?No idea. :) I should be TPB - Transaction Parameters Buffer.
> By the way it works on Windows perfectly and works with IB 6.5 onOr it is related to Windows and runs ok on Linux :) And there's a bug
> Linux as well. I've not changed anything in the driver. This is the
> reason why I think this a special bug related only to the Linux
> version of FB.
in 6.5. Until we find the reason why it is so, we cannot tell where
the bug is.
Regards,
Roman