Subject Firebird SS hangs on ics_dsql_allocate_statement.
Author Stan
Hi All,

I have 100+ clients connecting to Firebird using
the C++ fbclient.dll (v2,0, same version as server) api.
Each client prepares about 10 statements
and then uses these statements to batch insert 1000-3000
records into various tables.

I noticed that the prepare-statement procedure would hang
for 30-90 seconds, at this time Firebird is idle and my
clients are also idle. Some clients are stuck
on calls to isc_dsql_allocate_statement, some on isc_dsql_prepare,
and some on isc_dsql_describe_bind

After the initial 30-90 second "hang", the clients get unstuck
and the insert process proceeds very quickly.

This issue starts happening as the number of clients that
connect at the same time goes above ~50.

What could be causing the hang in firebird?
Is there some kind of shared resource involved in
preparing statements?

It feels like some kind of anti-DOS back-off algorithm?



Firebird 2.0
Windows XP
Athlon X2 4400
2GB Ram
Sata Raid Mirroring 2x80gb sata drives