[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