java.sql.BatchUpdateException: Lock wait timeout exceeded; try restarting transaction
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
Espero que alguém possa ajudar..
Abra
Rodrigo Andrade
Curtidas 0
Respostas
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...
Verifique as operacoes que estão no ar...
GOSTEI 0
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
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
10/11/2010
Qual é o seu banco de dados ?
E qual o tipo de tabela ?
E qual o tipo de tabela ?
GOSTEI 0
Rodrigo Andrade
10/11/2010
MYSQL e tabela normal criada com relacionamentos pelo JPA...
GOSTEI 0
Dyego Carmo
10/11/2010
Utilize tabelas do tipo InnoDB dentro do MySQL.
GOSTEI 0