[firebase-br] TImeOut para transacoes.

Gladiston Santana gladiston em vidy.com.br
Terça Setembro 7 20:43:08 -03 2021


FB4 tem, pode estar na configuração, na transação, no select, no
statement... agora o timeout tá bem servido em todo lugar, e nem precisa do
firedac, basta um comando SET antes do statement que pretende usar. Agora
até o FB3, necas de catipiriba.
Você vai encontrar na documentação do firedac que tem como colocar um
timeout para a transação, até posso te passar os parâmetros indicados para
incluir TFDBTransaction, mas já testei e não funciona - tentei usando
delphi 10.3.3.
A única forma  de contornar a limitação no fb3 é fazendo manualmente, isto
é,  quando uma mesma pessoa/estação se conecta novamente a base de dados
através de uma ***trigger after connection*** e você conseguir ligar a
pessoa que se conecta a uma conexão pré-existente então basta eliminar a
conexão anterior, um trabalho louco que funciona - já fiz - mas tem que
valer muito a pena e você tem que pensar em não ter um falso positivo, isto
é, uma pessoa que acertadamente conectou duas ou mais vezes, por isso
apesar de funcionar nunca implementei em produção.

Em ter., 7 de set. de 2021 às 18:26, Deonir Spancerski via lista <
lista em firebase.com.br> escreveu:

> Existe alguma maneira de definir um tempo de vida de uma transacao no
> firebird?
>
> Uso o componente firedac junto com delphi xe10 e estou com problemas
> quando alguma estacao trava ou e' desligada com alguma transacao aberta no
> aplicativo desktop ficando assim por muito tempo ativa no firebird server
> provocando erro de deadlock.
>
>


Mais detalhes sobre a lista de discussão lista