UNIDAC Firebird ans Autocommit
Posted: Thu 19 Sep 2013 09:26
Hello,
I have installed newer version of UniDac 5.0.1 into Delphi 2009.
I'd like to know where can I find the AUTOCOMMIT property.
I only use a TUNIConnection and no TUniTransaction and on some clients we have a problem of progressively degrading performance. We don't really understand why !
On Firebird page we have the information :
Commit Retaining and “Autocommit”
Commit Retaining is a “feature” of Firebird that was inherited from the ancestor, InterBase. It was implemented as a means to retain server-side resources and keep them available for developers using Borland's rapid application development tools and the BDE, the generic data access layer that was used to connect Windows graphical applications to databases. Its purpose was to present a level playing field for RAD development, regardless of the database running at the back-end.
Autocommit—a client-side mechanism that rolls the statement-level Post and the transaction-level Commit phases into a single step—was provided to enable developers to avoid transactions altogether. In the RAD components, Commit Retaining and Autocommit were bound together. This fitted well with desktop databases like dBase and Paradox (whose engine is, in fact, the BDE!), which do not have transactions.
With Firebird (and InterBase), Commit Retaining causes transactions to remain interesting indefinitely. Garbage collection effectively ceases on the “standard” Borland RAD tools database application and any other applications that make use of Commit Retaining. Such systems are fraught with problems of progressively degrading performance that cannot be resolved except by shutting down the database and allowing these old transactions to die.
Autocommit and Commit Retaining are not restricted to the Borland tools, of course. They are supported by most data access interfaces and Commit Retaining is available in SQL, so it behoves the application developer to understand the effects and to use these features with extreme care and control.
ON DELPHI 5 with BDE there was the property SQLPASSTHRUMODE wich was set to "true".
I tried setting TUniConnection.Options.DisconnectedMode to true but no effect.
How can we force Firebird Server to AUTOCOMMIT ?
Thanks
I have installed newer version of UniDac 5.0.1 into Delphi 2009.
I'd like to know where can I find the AUTOCOMMIT property.
I only use a TUNIConnection and no TUniTransaction and on some clients we have a problem of progressively degrading performance. We don't really understand why !
On Firebird page we have the information :
Commit Retaining and “Autocommit”
Commit Retaining is a “feature” of Firebird that was inherited from the ancestor, InterBase. It was implemented as a means to retain server-side resources and keep them available for developers using Borland's rapid application development tools and the BDE, the generic data access layer that was used to connect Windows graphical applications to databases. Its purpose was to present a level playing field for RAD development, regardless of the database running at the back-end.
Autocommit—a client-side mechanism that rolls the statement-level Post and the transaction-level Commit phases into a single step—was provided to enable developers to avoid transactions altogether. In the RAD components, Commit Retaining and Autocommit were bound together. This fitted well with desktop databases like dBase and Paradox (whose engine is, in fact, the BDE!), which do not have transactions.
With Firebird (and InterBase), Commit Retaining causes transactions to remain interesting indefinitely. Garbage collection effectively ceases on the “standard” Borland RAD tools database application and any other applications that make use of Commit Retaining. Such systems are fraught with problems of progressively degrading performance that cannot be resolved except by shutting down the database and allowing these old transactions to die.
Autocommit and Commit Retaining are not restricted to the Borland tools, of course. They are supported by most data access interfaces and Commit Retaining is available in SQL, so it behoves the application developer to understand the effects and to use these features with extreme care and control.
ON DELPHI 5 with BDE there was the property SQLPASSTHRUMODE wich was set to "true".
I tried setting TUniConnection.Options.DisconnectedMode to true but no effect.
How can we force Firebird Server to AUTOCOMMIT ?
Thanks