View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000687 | JEDI VCS | Server | public | 2003-02-13 13:09 | 2005-06-13 16:35 |
Reporter | dors | Assigned To | THuber | ||
Priority | none | Severity | tweak | Reproducibility | always |
Status | closed | Resolution | open | ||
Product Version | |||||
Target Version | Fixed in Version | 2.40 Stable (Server) | |||
Summary | 0000687: Avoid deadlocks for Interbase/Firebird port | ||||
Description | From: "Bojidar Alexandrov" <bojo@kodar.net> Subject: Interbase/Firebird Port Date: Tue, 11 Feb 2003 16:30:22 +0100 Message-ID: <b2b413$c79$1@talkto.net> I have done some changes in this port of server so want to let you know for the developer who will make it. I am not sure what isolation level is default when transaction is created (probably table stability/ serializable) because I have received deadlocks when tried to access database when server runs so I have maked it Read Commited and also CommitRetaining after each ExecSQL. in SrvDBDef constructor TSrvDatabase.Create(AOwner: TComponent); //this after the create FIBTransaction.Params.Clear; FIBTransaction.Params.Add('read_committed'); FIBTransaction.Params.Add('rec_version'); FIBTransaction.Params.Add('nowait'); This at the begin of this this ifdef and decalration for this in the class definition. {$IFDEF INTERBASE6SRV} //-- vr {$IFNDEF SQL_DEBUG} procedure TFVCSDebugQuery.ExecSQL; begin inherited ExecSQL; Transaction.CommitRetaining; end; {$ENDIF} this at the end body of debug version of ExecSQL. after inherited. {$IFDEF INTERBASE6SRV} DataBase.DefaultTransaction.CommitRetaining; {$ENDIF} | ||||
Additional Information | This way I sucessfully have compiled it with the newest versions of midware and IBX for Delphi 5 and it works about 1-2 months already with another program accessing same database. Note: Bojidar Alexanrov has changed the "CommitRetaining" to "Commit", claiming that the above "CommitRetaining" was wrong in his first post. So far, no one has objected these changes, so I guess they should be added | ||||
Tags | No tags attached. | ||||
Fix in JVCS version | |||||
Releasedocumentation | |||||
|
Me (and Bojidar :-) ) is reading russian interbase conference. AFAIR CommitRetaining was not recommednded to use on any IB. One more point is that IBX is centered on B.IB and will never fix miscompatibilities with FB/Yaffil/any other possible clones. There are more flexible libs, say IBO and FIB+ - but they are commercial :-( May be better to use some free OLE DB provider with ADO ? |
|
AFAIK CommitRetaining will lead to growing database due to old record versions. Away from this I'll change Interbase/Firebird using FIB+ so we need not to use any free OLE DB provider. |