Esperienza con l'interfaccia IBPP per database Firebird

Esperienza con l'interfaccia IBPP per database Firebird


Vorrei chiedere a ragazzi con esperienza in Firebird e IBPP (soprattutto quest'ultimo). Ho trovato molti post positivi su Firebird ma ho problemi a decidere su IBPP. L'interfaccia stessa è pulita e semplice ma sembra che il progetto non abbia molte attività in corso (forse perché è molto stabile).



  • Consiglieresti IBPP per l'ambiente di produzione?

  • È thread-safe?

  • Qualche bug noto?


Grazie.


Risposte:


Oltre ai punti citati Milan:



  • Attualmente non è possibile utilizzare più di una libreria client quando ci si connette a database diversi o anche per specificare quale libreria client verrà utilizzata. C'è una certa sequenza codificata di posizioni della libreria client che vengono esaminate e la prima che viene trovata verrà utilizzata per tutti connessioni. Una versione IBPP che cambia questo è stata suggerita per molto tempo, ma non è ancora arrivata. SVN trunk contiene del codice per gestirlo, ma direi che è al massimo di qualità alfa.

    E tutto ciò vale solo per Windows, poiché su tutte le altre piattaforme la libreria del client Firebird non viene comunque caricata in fase di esecuzione.


  • La libreria non è thread-safe. Ciò non ha importanza per la maggior parte, poiché dovresti comunque lasciare che ogni thread abbia la propria connessione, transazione e altri oggetti assortiti. Ma IBPP utilizza la propria implementazione del puntatore intelligente, che non è né completamente a prova di eccezioni né a prova di thread. Tuttavia, fintanto che inizializzi la libreria dal thread principale (prima che venga creato qualsiasi altro thread) e crei e distruggi oggetti IBPP nello stesso thread (quindi assolutamente nessuna condivisione di oggetti con altri thread!) L'utilizzo di IBPP in più thread dovrebbe funzionare bene.


  • Se riesci a convivere con i punti di cui sopra (potrebbero non essere affatto importanti per te) è sicuramente pronto per l'uso in produzione. Puoi sempre cambiare le cose in cui ti imbatti, come abbiamo fatto anche per FlameRobin.