Olá pessoal!
procurei por aqui e no Google e não encontrei nada a respeito, então recorro a vocês.
Tenho uma aplicação java que dá OutOfMemory. Até aí, o problema é conhecido e estou trabalhando nisso. No pior caso, enquanto não consigo fazer uma uso otimizado da memória (ou detectar o meu ponto de vazamento), acabo reiniciando a aplicação, o que me permite utilizar de novo por algum tempo.
O problema é que quando ocorre OutOfMemory, os dados da minha aplicação ficam inconsistente. Isso inclui dados que já estavam consistentes antes, ou seja, a aplicação corrompe dados que já haviam sido comitados.
Exemplo: cadastrei um funcionário. Consultei o funcionário e tudo está certo (inclusive consultando no banco via SQL). Em seguida, vou cadastrar os filhos do funcionário e acaba dando OutOfMemory. Quando reinicio a aplicação, não apenas os filhos possuem dados errados, como também o funcionário.
A pergunta é: o gerenciamento de memória da VM (usado junto com Hibernate, Spring e Oracle) podem provocar esse erro, ou a minha aplicação possui um bug que eu ainda não consegui encontrar?
Desde já agradeço a ajuda!
Takeda