Firebird keeps increasing memory usage until client disconnects?
This is usually a symptom of transaction handles not being released after the transaction is over. If you are programming the Firebird C API directly, check your code. Otherwise, it might be a bug in the connectivity library you use.
When you create a new transaction handle, Firebird allocates some memory to hold information about the transaction and keeps it allocated until you release the handle. When you disconnect, all handles related to that connection are released automatically.
A similar problem can also happen with statement handles not being properly released.