[firebase-br] OAT Travada

Carlos H. Cantu listas em warmboot.com.br
Seg Abr 7 11:04:13 -03 2014


A única situação onde vc poderia ter uma OAT que não aparece na tabela
mon$transaction, é quando a transação (considerada como a OAT) já foi
commitada, mas depois disso nenhuma outra transação foi iniciada.

Isso porque o número da OAT no header só é atualizado quando uma nova
transação é iniciada.

PS: Lembre-se que consultas em tabelas de monitoramento são snapshots
do estado da base de dados no momento em que ela foi executada, e não
mudam mais enquanto a transação associada a consulta não for encerrada.

[]s
Carlos H. Cantu
www.FireBase.com.br - www.firebirdnews.org
www.warmboot.com.br - blog.firebase.com.br

RGdS> Bom dia...

RGdS> Alguém sabe de algum motivo no qual posso ter uma OAT travada no banco de
RGdS> dados?

RGdS> A situação que estou tento é o seguinte... em um certo cliente que tem um
RGdS> uso grande do banco de dados esta acontecendo frequentemente alguma
RGdS> situação em que a OAT fica travada, consequentemente a OIT tb gerando gap
RGdS> de milhões de garbage em relação a next transaction. Isto poderia ser uma
RGdS> causa simples, de ser algum programa com transação aberta a dias, mas se
RGdS> olho pelas tabelas de monitoramento, mais especificamente pela
RGdS> mon$transactions, não encontro a transação referenciada pela OAT, e
RGdS> ordenado por transaction_id a mais antiga é uma do próprio dia, como seria
RGdS> o para um uso correto do banco de dados.

RGdS> A unica maneira que tenho resolver isto é reiniciando o firebird aonde ele
RGdS> atualiza o OAT normalmente bastando um sweep pra tirar o GAP da OIT, porem
RGdS> não é um procedimento que esta sendo visto com bons olhos pelo
RGdS> administrador da rede.

RGdS> Existe alguma forma de achar oq gerou esta OAT presa, ou fazer o servidor
RGdS> limpar ela sem precisar reiniciar ele por completo?





Mais detalhes sobre a lista de discussão lista