Entwickler-Ecke

Datenbanken - Firebird 3.0 Embedded verlangsamt DB Prog und es gibt Fehler


NOS - Mi 03.08.16 20:18
Titel: Firebird 3.0 Embedded verlangsamt DB Prog und es gibt Fehler
Nach der Umstellung meiner App von Firebird 2.5 Embedded auf Firebird 3.0 Embedded im "Super" Mode sind zum einen die Zugriffe oder die Gesamtanalysezeit massiv angestiegen und ich bekomme massig Fehler im LOG ->


Quelltext
1:
[FireDAC][Phys][FB]invalid transaction handle (expecting explicit transaction start)                    


Im "Classic" und im "SuperClassic" Mode schreibt er einfach keine Daten mehr in die DB ab einem gewissen Punkt. Aber ich konnte noch nicht herrausfinden woran es liegt.


Nersgatt - Do 04.08.16 07:59

Sieht wie ein Programmfehler aus. Die Meldung besagt ja, dass erwartet wird, dass Du eine Transaktion explizit startest. Vermutlich beendest Du eine Transaktion ohne sie vorher gestartet zu haben.


Ralf Jansen - Do 04.08.16 14:18

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.


Ralf Jansen - Do 04.08.16 15:30

Mit dem aktuellen Snapshot Build konnte ich das Probleme bisher nicht mehr provozieren.

http://www.firebirdsql.org/en/snapshot-builds/