Estou com um grande problema.
Desenvolvi uma aplicação em java, que acessa o banco de dados Informix.
Criei um pool de conexões para controlar as conexões com o banco de dados.
Setei várias propriedades como:
objPool.setIfxIFX_AUTOFREE(true);
objPool.setIfxENABLE_TYPE_CACHE(false);
objPool.setIfxLOBCACHE(0);
objPool.setIfxOPTOFC(“1”);
para que o programa não gere cache e não fique nenhuma consulta presa no banco de dados.
Criei no servlet principal o método destroy() para que quando executado feche todas as conexões e o pool de conexões.
Até então, com um número menor de usuários, os processo estavam ocorrendo normalmente e o cache estava sendo liberado corretamente sem interferir na performance do banco de dados.
Porém, esta aplicação vou liberada para mais usuários, e o cache aumenta muito, fazendo com que às vezes o banco de dados caia, parando totalmente os processos e trazendo um grande prejuizo para a empresa.
Alguém já teve este problema?
Será que só configurando o Garbage Collector para rodar num intervalo menor isso será resolvido?
Preciso colocar o método destroy() e mais objetos para fechar a conexão e não apenas no servlet principal?
Se alguém puder me auxiliar seria muito Grato.
Obrigado