View Issue Details

IDProjectCategoryView StatusLast Update
0000687JEDI VCSServerpublic2005-06-13 16:35
ReporterdorsAssigned ToTHuber 
PrioritynoneSeveritytweakReproducibilityalways
Status closedResolutionopen 
Product Version 
Target VersionFixed in Version2.40 Stable (Server) 
Summary0000687: Avoid deadlocks for Interbase/Firebird port
DescriptionFrom: "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 InformationThis 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
TagsNo tags attached.
Fix in JVCS version
Releasedocumentation

Relationships

child of 0002361 closedTHuber Releaseinfo: 2.40 server issues 

Activities

Arioch

2003-02-13 13:38

reporter   ~0001660

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 ?

THuber

2003-02-14 14:39

developer   ~0001668

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.

Issue History

Date Modified Username Field Change
2005-01-15 05:45 THuber Relationship added child of 0002361
2005-06-13 16:35 THuber Status resolved => closed
2005-06-13 16:35 THuber Fixed in Version => 2.40 Stable (Server)