Subject | IBO caching |
---|---|
Author | williamvdw2005 |
Post date | 2007-01-17T13:45:18Z |
Hi all,
I have written a simple test application. It opens a connection to a
firebird database, does a single sequery and closes and frees all the
IB components. My problem is that after I have freeded all the IB
components my test app still uses ab out 2 mb of ram more then when
the app started.
Is this due to caching on IBO's side?
If so how can `n make it less or perhaps free it?
Will this cache be shared among connections in a multithreaded
envirnonment?
Sample code of the create function
Session := TIB_Session.Create(nil);
Connection := TIB_Connection.Create(Session);
Connection.Protocol := cpTCP_IP;
Connection.Server := '127.0.0.1';
Query := TIB_Query.create(Session);
Transaction := TIB_Transaction.Create(Session);
Transaction.IB_Connection := Connection;
Query.IB_Transaction := Transaction;
Query.IB_Connection := Transaction.Connections[0];
Query.RequestLive := requestLive;
Transaction.Isolation := tiCommitted;
Transaction.ReadOnly := false;
Connection.Path := DBPath;
Connection.Username := username;
Connection.Password := password;
Sample code of the destroy function
Query.Close;
Query.Free;
Connection.Disconnect;
Connection.Close;
Connection.Free;
Transaction.Close;
Transaction.Free;
Session.Free;
Thanks in Advance
I have written a simple test application. It opens a connection to a
firebird database, does a single sequery and closes and frees all the
IB components. My problem is that after I have freeded all the IB
components my test app still uses ab out 2 mb of ram more then when
the app started.
Is this due to caching on IBO's side?
If so how can `n make it less or perhaps free it?
Will this cache be shared among connections in a multithreaded
envirnonment?
Sample code of the create function
Session := TIB_Session.Create(nil);
Connection := TIB_Connection.Create(Session);
Connection.Protocol := cpTCP_IP;
Connection.Server := '127.0.0.1';
Query := TIB_Query.create(Session);
Transaction := TIB_Transaction.Create(Session);
Transaction.IB_Connection := Connection;
Query.IB_Transaction := Transaction;
Query.IB_Connection := Transaction.Connections[0];
Query.RequestLive := requestLive;
Transaction.Isolation := tiCommitted;
Transaction.ReadOnly := false;
Connection.Path := DBPath;
Connection.Username := username;
Connection.Password := password;
Sample code of the destroy function
Query.Close;
Query.Free;
Connection.Disconnect;
Connection.Close;
Connection.Free;
Transaction.Close;
Transaction.Free;
Session.Free;
Thanks in Advance