Erfahrung mit der IBPP-Schnittstelle für die Firebird-Datenbank

Erfahrung mit der IBPP-Schnittstelle für die Firebird-Datenbank


Ich möchte die Leute mit Erfahrung in Firebird und IBPP (insbesondere letzteres) fragen. Ich habe viele positive Beiträge über Firebird gefunden, aber ich habe ein Problem, mich für IBPP zu entscheiden. Die Schnittstelle selbst ist sauber und einfach, aber es scheint, dass das Projekt nicht viel Aktivität hat (vielleicht, weil es sehr stabil ist).



  • Würden Sie IBPP für Produktionsumgebungen empfehlen?

  • Ist es Thread-sicher?

  • Irgendwelche bekannten Fehler?


Danke.


Antworten:


Zusätzlich zu den von Milan erwähnten Punkten:



  • Derzeit gibt es keine Möglichkeit, mehr als eine Client-Bibliothek zu verwenden, wenn eine Verbindung zu verschiedenen Datenbanken hergestellt wird, oder sogar anzugeben, welche Client-Bibliothek verwendet werden soll. Es gibt eine bestimmte fest codierte Sequenz von Client-Bibliotheksspeicherorten, die sondiert werden, und der erste, der gefunden wird, wird für alle verwendet Verbindungen. Eine IBPP-Version, die dies ändert, wurde schon sehr lange angedeutet, ist aber noch nicht eingetroffen. SVN trunk enthält etwas Code, um damit umzugehen, aber ich würde sagen, das ist höchstens Alpha-Qualität.

    Und das alles gilt nur für Windows, da auf allen anderen Plattformen die Firebird-Client-Bibliothek sowieso nicht zur Laufzeit geladen wird.


  • Die Bibliothek ist nicht Thread-sicher. Das spielt größtenteils keine Rolle, da Sie sowieso jedem Thread seine eigene Verbindung, Transaktion und andere sortierte Objekte geben sollten. Aber IBPP verwendet seine eigene Smart-Pointer-Implementierung, die weder vollständig ausnahmesicher noch Thread-sicher ist. Solange Sie die Bibliothek vom Haupt-Thread aus initialisieren (bevor ein anderer Thread erstellt wird) und IBPP-Objekte im selben Thread erstellen und zerstören (also absolut keine gemeinsame Nutzung von Objekten mit anderen Threads!), sollte die Verwendung von IBPP in mehreren Threads funktionieren Gut.


  • Wenn Sie mit den oben genannten Punkten leben können (sie spielen für Sie möglicherweise überhaupt keine Rolle), ist es sicherlich bereit für den produktiven Einsatz. Sie können jederzeit Dinge ändern, auf die Sie stoßen, wie wir es auch bei FlameRobin getan haben.