Pessoal,
estou com uma buxa aqui. Tenho um sistema multithread de transferência de arquivos, utilizando um protocolo próprio. A questão é a seguinte, a camada de persistência foi toda feita em Hibernate (mal feita por sinal e posso falar pois participei da implementação hahahaha). Basicamente tinhamos uma classe Database, e vários métodos estáticos responsáveis por fazer as operações no banco de dados. Eu sei que é horrível mas está feito. O que acontece é que agora virou um CAOS. Tivemos vários problemas de concorrência (que foi brilhantemente solucionado colocando um synchronized no método) e agora começou a aparecer uns erros do tipo:
org.hibernate.exception.LockAcquisitionException: could not execute statement
Minha dúvida é a seguinte. Devo continuar no hibernate? Caso positivo alguém teria uma arquitetura para sugerir, levando em conta esse ambiente multithread??
Se eu for para o JDBC, devo seguir algum pattern específico para evitar esses problemas?
Valew