Erro de Dead Lock - Firebird

Firebird

29/10/2012

olá amigos,

Temos um cliente onde nossa aplicação, às vezes (tipo a cada 10 dias + ou -), dá erro de dead lock. O firebird instalado é a versão 1.5.6. Uso Delphi 7 e alguns clientes (poucos) dão esse erro. É sempre na gravação de uma tabela via stored procedure. Já coloquei tratamentos para gravar log quando gera erro, só que nem passa na rotina... Alguém já passou por isso?

A instalação default do firebird que usamos é a Super Server. Bom, tentei deixar como Classic, porém também gera dead lock. E até trocamos o servidor de banco de dados, para uma maquina melhor... nada.
Fernando

Fernando

Curtidas 0

Respostas

Fernando

Fernando

29/10/2012

Esqueci de comentar: a gravação na tabela está sendo feita por transação (commit/rollback), ou seja, está sendo tratada.
GOSTEI 0
Claudia Nogueira

Claudia Nogueira

29/10/2012

É muito estranho dar esse problema no firebird trabalhando com transação. Pois dessa forma se estiver editando em duas máquinas ao mesmo tempo um registro, as duas alterações são realizadas, isso se não bloquear o registro. Isso ocorre aleatoriamente em todo o sistema, ou na gravação de alguma tabela específica?
Quais componentes de conexão com o banco de dados você está utilizando?
GOSTEI 0
Fernando

Fernando

29/10/2012

O erro é sempre na mesma tabela (tabela de movimentação de estoque), que é a mais usada no sistema.
Ela tem como chave primária um sequencial (generator + trigger).

A gravação (DBExpress - delphi 7) é feita via stored procedure SQLStoredProc. O interessante é que não são todos os clientes que ocorrem isso... tem até cliente que usa intensamente o sistema e não ocorre deadlock.
GOSTEI 0
POSTAR