bom dia pessoal!!!
vou postar um fonte para poder explicar o problema!!!
public Vector getTabelaEnvio(){
Statement sEnvio = null;
ResultSet rEnvio = null;
try{
sEnvio = c.createStatement();
rEnvio = sEnvio.executeQuery("SELECT NR_VEICULO, DT_MENSAGEM, TP_MENSAGEM, DS_MENSAGEM, ROWID FROM TABELAENVIO WHERE ID_ENVIAR IS NULL ORDER BY DT_MENSAGEM ASC");
rEnvio.close();
sEnvio.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
vamos lá…
vamos supor que uma classe minha instanciada possui esse metodo, já com a conexao ao banco feita, quanto a isso nenhum problema!
esse metodo vai ser executado a cada 1 segundo, e esse programa deverá rodar meses e meses!!
o meu problema é o seguinte, se eu executar esse metodo exatamente como está ai, o meu programa nao para de aumentar o uso de memoria utilizada, daqui uns dois dias o programa da estouro de memoria!!!
mas se eu comentar as linhas
rEnvio = sEnvio.executeQuery(“SELECT NR_VEICULO, DT_MENSAGEM, TP_MENSAGEM, DS_MENSAGEM, ROWID FROM TABELAENVIO WHERE ID_ENVIAR IS NULL ORDER BY DT_MENSAGEM ASC”);
e a linha rEnvio.close();
meu programa fica com o uso de memoria estagnada!!! ou seja, nao ha mais aumento de memoria!!!
o que pode ser??? o statement nao esta desalocando a memoria ??
ele nao gera nenhum tipo de erro ou exception!!
1 abraço
Silvano