Posso trabalhar com o FB em aplicações multi-thread?
Data da última atualização: 08/03/2010
Até a versão 2.1 do Firebird, a biblioteca fbclient.dll não era thread-safe. Isso significa que se você utiliza múltiplas threads na sua aplicação, e essas threads realizam operações no banco de dados ao mesmo tempo, a única forma de garantir que tudo funcione corretamente é fazendo com que cada thread tenha sua própria conexão e transação com o banco de dados. Você até pode usar uma única conexão/transação na aplicação, desde que as threads não acessem o BD ao mesmo tempo.
O Firebird 2.5 traz uma biblioteca cliente thread-safe! Isso quer dizer que não é mais necessário ter uma conexão e transação em cada thread na aplicação, para que as coisas funcionem corretamente. No entanto, todas as requisições enviadas ao banco de dados pela mesma conexão são serializadas, ou seja, se mais de uma thread fizer uma requisição ao BD, as requisições serão enviadas na sequência em que foram recebidas, e não simultaneamente.
Caso sua aplicação precise que as requisições sejam enviadas "em paralelo", use o modelo onde cada thread possui sua própria conexão/transação com o banco.
Autor: Carlos H. Cantu
blog.firebase.com.br