Subject stale statements in MON$STATEMENTS
Author Hamish Moffatt

I'm trying to debug a concurrency issue I'm having with an application
of mine, connecting to Firebird 2.5.6, so I'm trying to understand the
various monitor tables. I have dozens of threads all making their own
connections to Firebird (superserver).

After running for a while my MON$STATEMENTS table shows over 100
statements with in state 0 (idle) with no transaction ID. They are
mostly "merge into ..." statements. I understand that the idle statement
means they have been prepared but not executed, but this shouldn't be
possible in my application source (prepare has never failed, and I
always execute).

Is there something else I must be doing wrong to cause these to hang around?

I also have a couple of plain selects in that table.