Erro no Insert - Lock wait timeout exceeded

4 respostas
M

Olá, estou tomando o seguinte erro: java.sql.BatchUpdateException: Lock wait timeout exceeded; try restarting transaction.
Gostaria de saber se alguém poderia me dar um HELP. Obrigado desde já.

Segue abaixo o código:

public void save(final Cliente cliente) throws SQLException {		
		Session session = this.getHibernateTemplate().getSessionFactory().getCurrentSession();
		Connection conn = session.connection();
		PreparedStatement stmt = null;
		String sql = null;
		
		try {
			
			sql =	"INSERT INTO clientes_tb( " + 
							"cliente_id, nome) 						" +
							" VALUES(?,?)";
			
			stmt = conn.prepareStatement(sql);
			stmt.setString(1, cliente.getCliente_id());
			stmt.setString(2, cliente.getNome());
			stmt.executeUpdate();

		}finally {
			conn.close();
			stmt.close();
		}
	}

4 Respostas

G

Pelo erro parece que a tabela já está sendo “Lockada” e por isso seu insert não funciona.

Verifique se em algum outro lugar da sua aplicação a tabela já não está em uso.

Que banco que você está usando?

M

Estou usando MySQL.

G

Posta ai seu arquivo de configuração do Hibernate.

Outra coisa tenta rodar esse insert direto no console do banco pra ver se funciona.

M

Oi cara, valeu pela ajuda.

Eu acho que já sei qual é o problema…
EU estou usando synchronized no metódo anterior que chama —> public void save(final Cliente cliente)…

E como é um procedimento serial, creio que isso esteja causado erro.

Obrigado.

Criado 3 de dezembro de 2010
Ultima resposta 3 de dez. de 2010
Respostas 4
Participantes 2