Subject Transaction questions
Author William L. Thomson Jr.
When I connect to a database and that connection uses resources like
memory. Once that connection is closed should those resources be freed?


If during the transaction, things were not committed. Will the resources
be freed once the connection is closed?

How and when are the resources used by a connection or transaction
freed?

Once connected aren't you using the same transaction at that point? Or
is each statement considered it's own transaction?

>From working with the API I remember get a tr_handle, and using that to
execute statements.

Reason for the questions. I have an app that runs a bunch of select
statements. Select COUNT() SELECT SUM(), etc. Each returns one value. A
few return some small tables with two or more rows of data. Very small
rows. The DB is currently around 3Mb.

When I run the app memory is slowly consumed and not ever released. Not
until I restart Firebird. Simply closing the connection does nothing.

Sweeping the database does nothing. I can't find any open transactions
to recover and close. The difference between my oldest, active, and next
transaction is only 1.

What is going on here? Why is Firebird consuming memory and not
releasing it?
--
Sincerely,
William L. Thomson Jr.
Support Group
Obsidian-Studios, Inc.
http://www.obsidian-studios.com