Interessanterweise habe ich das "invalid transaction handle (expecting explicit transaction start)" Problem gerade unter .Net auch.
Wenn die Embedded DB unter heftigen Multithreading Druck gerät bekomme ich das random an verschiedensten Stellen (Starten/Commiten/Preparen/Executen etc.) hin
Natürlich funktioniert das ganze unter 2.5 problemlos.
Pooling abschalten hilft ein wenig löst das Problem aber nicht. Vermutlich hilft es da es die durschnittliche Lebenszeit einer Connection zu verkürzen(im embedded Fall ist Pooling ja auch nicht ganz so relevant). Da ich eh gerade wegen diverser Probleme in den Firebird Mailinglisten rumhänge werde ich das da auch mal unterbringen.