java.sql.BatchUpdateException: Lock wait timeout exceeded; try restarting transaction

Java

10/11/2010

 Olá pessoal, tenho várias aplicações que trabalham com um único banco de dados. Fazem desde a inserção de dados até simples consultas. Apesar de serem muitas aplicações, elas se separam pelo assunto dentro do banco, porém existem algumas tabelas como a de alunos ue é comum a todas eles, ela serve de base... Bem aliado a isso temos também várias conexões ao mesmo tempo e gerenciadas pelo Spring/JPA/c3p0. Até a 2 semanas atrás estava tudo ok (trabalhou bem por 1 ano), agora vez por outra está aparecendo esta mensagem de "Lock wait timeout exceeded" quando algum usuário tenta alterar ou salvar alguma informação do aluno... pesquisei na net e alguns falaram que era por causa do travamento que o hibernate faz na tabela enquanto executa alguma operação e como são muitas conexões, o tempo excede, porém por que apenas agora esse erro foi manifestar-se e será isso mesmo ou fi algo que fiz de errado em alguma atualização...
Espero que alguém possa ajudar..
Abra
Rodrigo Andrade

Rodrigo Andrade

Curtidas 0

Respostas

Dyego Carmo

Dyego Carmo

10/11/2010

O  que está acontecendo que está tendo um DEAD LOCK no seu banco de dados , e a transacao está sendo abortada automaticamente depois de X segundos...

Verifique as operacoes que estão no ar...

GOSTEI 0
Rodrigo Andrade

Rodrigo Andrade

10/11/2010

 Diego como comentei antes, tenho vários aplicativos manipulando a tabela clientes...
 Trabalhamos com uma mesma base de dados, pois tudo gira em torno dela, temos um aplicativo que contrla as notas da faculdade, outro que controla a parte de vôo (pois é uma escola de instrução de vôo também), outro que controla a avaliação conceitual e de desempenho dos alunos que é feita tanto pelos outros alunos quanto pelos professores, ...
 Fica difícil dizer quais são as ações que estão acontecendo em todos eles, porém o único que manipula diretamente o aluno é esse em que está ocorrendo a pane intermitente... volto a salientAR QUE CO0MEÇOU A POUCO...
 Ressalto que todos os aplicativos estão gerenciados pelo Spring, JPA e  JSF , e que a base de dados (classes) é a mesma (importação de projeto base ), só modificando as regras de negócio que são específicas de cada um...
Em algumas pesquisas pude perceber que poderia ser o travamento momentâneo da tabela alunos pelo hibernate (JPA), por alguma modificação no conteúdo, porém não teria que ser extamente naquela linha a modificação?
Aguardo
GOSTEI 0
Dyego Carmo

Dyego Carmo

10/11/2010

Qual é o seu banco de dados ?
E qual o tipo de tabela ?

GOSTEI 0
Rodrigo Andrade

Rodrigo Andrade

10/11/2010

MYSQL e tabela normal criada com relacionamentos pelo JPA... 
GOSTEI 0
Dyego Carmo

Dyego Carmo

10/11/2010

Utilize tabelas do tipo InnoDB dentro do MySQL.

GOSTEI 0
POSTAR