Re: [java-list] Resultset consumindo memória
Cláudio, tente fechar todos os ResultSets e Statements que você usar. Feche a conexão com o banco ao encerrar as consultas. Isto deve ajudar. []´s Celso Jr - Original Message - From: Cláudio R. Lanzilotti To: [EMAIL PROTECTED] Sent: Wednesday, July 24, 2002 9:31 AM Subject: [java-list] Resultset consumindo memória Ola Pessoal, sou iniciante em Java e preciso de um help no uso do ResultSet.. No código abaixo estou tendo problemas de memória no servidor de banco de dados, é o seguinte: - executo o programa na minha estação - no servidor faço o monitormanento de memória pelo Task Manager e a memória é consumida em questão de minutos, até que a aplicação é abortada Fazendo alguns testes consegui resolver eliminando os 2 ResultSets rstAux que crio no terceiro loop... O fato é que seguindo exemplos de livros e do help consegui montar este programa, e na verdade não sei estou utilizando os componentes de forma correta, definindo nos lugares certos Se alguém puder ajudar agradeço desde já... Servidor: Win2000 Server c/ SQL Server 2000 Minha estação: Win2000 Pro + J2SDK 1.4.0 Valeu !! Claudio import java.io.*;import java.net.*;import java.sql.*;import java.util.*;import java.lang.reflect.Array; public class tsthelp{ public static void main(String args[]) throws Exception { Properties prop = new Properties(); prop.put("user","HELP"); prop.put("password","HELP"); prop.put("serverVersion","Sql7"); String url = "jdbc:AvenirDriver://SERVIDOR:1433/HELPMIG"; Class.forName ("net.avenir.jdbc2.Driver"); Connection ctn= DriverManager.getConnection(url,prop); Statement stmtEven = ctn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); Statement stmtEmpr = ctn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); Statement stmtFunc = ctn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); Statement stmtAux = ctn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); ResultSet rstAux; strSQL = " SELECT CODIGOEVENTO, NOMEVENTO, TEMQTDE, TEMVALOR" + " FROM TB_EVENTO"; ResultSet rstEven = stmtEven.executeQuery(strSQL); strSQL = " SELECT CODIGOEMPRESA, NOMEEMPRESA" + " WHERE TB_EMPRESA"; ResultSet rstEmpr = stmtEmpr.executeQuery(strSQL); while(rstEmpr.next()) { strSQL = " SELECT CODIGOFUNC, NOMEFUNC" + " FROM TB_FUNC" + " WHERE CODIGOEMPRESA = " + rstEmpr.getLong("CODIGOEMPRESA") ResultSet rstFunc = stmtFunc.executeQuery(strSQL); while(rstFunc.next()) { strSQL = " SELECT CODIGOLANCTO, VALORLANCTO" + " FROM TB_LANCFUN" + " WHERE CODFUNC = " + rstFunc.getLong("CODFUNC") ResultSet rstLanc = stmtLanc.executeQuery(strSQL); while( ! rstEven.next() ) { if ( rstEven.getString("TEMQTDE") == 'S' ) { strSQL = " SELECT QTDE" + " FROM TB_VALQTDE" + " WHERE CODIGOFUNC = " + rstFunc.getLong("CODIGOFUNC"); rstAux = stmtAux.executeQuery(strSQL); rstAux.beforeFirst(); if ( rstAux.next() ) { dblTotQtde += rstAux.getDouble("QTDE"); } rstAux.close(); } if ( rstEven.getString("TEMVALOR") == 'S' ) { strSQL = " SELECT VALOR" + " FROM TB_VALVALOR" + " WHERE CODIGOFUNC = " +
RE: [java-list] Resultset consumindo memória
qual o tamanho das tabelas ??? -Original Message-From: Cláudio R. Lanzilotti [mailto:[EMAIL PROTECTED]]Sent: Wednesday, July 24, 2002 9:31 AMTo: [EMAIL PROTECTED]Subject: [java-list] Resultset consumindo memória Ola Pessoal, sou iniciante em Java e preciso de um help no uso do ResultSet.. No código abaixo estou tendo problemas de memória no servidor de banco de dados, é o seguinte: - executo o programa na minha estação - no servidor faço o monitormanento de memória pelo Task Manager e a memória é consumida em questão de minutos, até que a aplicação é abortada Fazendo alguns testes consegui resolver eliminando os 2 ResultSets rstAux que crio no terceiro loop... O fato é que seguindo exemplos de livros e do help consegui montar este programa, e na verdade não sei estou utilizando os componentes de forma correta, definindo nos lugares certos Se alguém puder ajudar agradeço desde já... Servidor: Win2000 Server c/ SQL Server 2000 Minha estação: Win2000 Pro + J2SDK 1.4.0 Valeu !! Claudio import java.io.*;import java.net.*;import java.sql.*;import java.util.*;import java.lang.reflect.Array; public class tsthelp{ public static void main(String args[]) throws Exception { Properties prop = new Properties(); prop.put("user","HELP"); prop.put("password","HELP"); prop.put("serverVersion","Sql7"); String url = "jdbc:AvenirDriver://SERVIDOR:1433/HELPMIG"; Class.forName ("net.avenir.jdbc2.Driver"); Connection ctn= DriverManager.getConnection(url,prop); Statement stmtEven = ctn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); Statement stmtEmpr = ctn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); Statement stmtFunc = ctn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); Statement stmtAux = ctn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); ResultSet rstAux; strSQL = " SELECT CODIGOEVENTO, NOMEVENTO, TEMQTDE, TEMVALOR" + " FROM TB_EVENTO"; ResultSet rstEven = stmtEven.executeQuery(strSQL); strSQL = " SELECT CODIGOEMPRESA, NOMEEMPRESA" + " WHERE TB_EMPRESA"; ResultSet rstEmpr = stmtEmpr.executeQuery(strSQL); while(rstEmpr.next()) { strSQL = " SELECT CODIGOFUNC, NOMEFUNC" + " FROM TB_FUNC" + " WHERE CODIGOEMPRESA = " + rstEmpr.getLong("CODIGOEMPRESA") ResultSet rstFunc = stmtFunc.executeQuery(strSQL); while(rstFunc.next()) { strSQL = " SELECT CODIGOLANCTO, VALORLANCTO" + " FROM TB_LANCFUN" + " WHERE CODFUNC = " + rstFunc.getLong("CODFUNC") ResultSet rstLanc = stmtLanc.executeQuery(strSQL); while( ! rstEven.next() ) { if ( rstEven.getString("TEMQTDE") == 'S' ) { strSQL = " SELECT QTDE" + " FROM TB_VALQTDE" + " WHERE CODIGOFUNC = " + rstFunc.getLong("CODIGOFUNC"); rstAux = stmtAux.executeQuery(strSQL); rstAux.beforeFirst(); if ( rstAux.next() ) { dblTotQtde += rstAux.getDouble("QTDE"); } rstAux.close(); } if ( rstEven.getString("TEMVALOR") == 'S' ) { strSQL = " SELECT VALOR" + " FROM TB_VALVALOR" + " WHERE CODIGOFUNC = " + rstFunc.getLong("CODIGOFUNC"); rstA
[java-list] Resultset consumindo memória
Ola Pessoal, sou iniciante em Java e preciso de um help no uso do ResultSet.. No código abaixo estou tendo problemas de memória no servidor de banco de dados, é o seguinte: - executo o programa na minha estação - no servidor faço o monitormanento de memória pelo Task Manager e a memória é consumida em questão de minutos, até que a aplicação é abortada Fazendo alguns testes consegui resolver eliminando os 2 ResultSets rstAux que crio no terceiro loop... O fato é que seguindo exemplos de livros e do help consegui montar este programa, e na verdade não sei estou utilizando os componentes de forma correta, definindo nos lugares certos Se alguém puder ajudar agradeço desde já... Servidor: Win2000 Server c/ SQL Server 2000 Minha estação: Win2000 Pro + J2SDK 1.4.0 Valeu !! Claudio import java.io.*;import java.net.*;import java.sql.*;import java.util.*;import java.lang.reflect.Array; public class tsthelp{ public static void main(String args[]) throws Exception { Properties prop = new Properties(); prop.put("user","HELP"); prop.put("password","HELP"); prop.put("serverVersion","Sql7"); String url = "jdbc:AvenirDriver://SERVIDOR:1433/HELPMIG"; Class.forName ("net.avenir.jdbc2.Driver"); Connection ctn= DriverManager.getConnection(url,prop); Statement stmtEven = ctn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); Statement stmtEmpr = ctn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); Statement stmtFunc = ctn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); Statement stmtAux = ctn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); ResultSet rstAux; strSQL = " SELECT CODIGOEVENTO, NOMEVENTO, TEMQTDE, TEMVALOR" + " FROM TB_EVENTO"; ResultSet rstEven = stmtEven.executeQuery(strSQL); strSQL = " SELECT CODIGOEMPRESA, NOMEEMPRESA" + " WHERE TB_EMPRESA"; ResultSet rstEmpr = stmtEmpr.executeQuery(strSQL); while(rstEmpr.next()) { strSQL = " SELECT CODIGOFUNC, NOMEFUNC" + " FROM TB_FUNC" + " WHERE CODIGOEMPRESA = " + rstEmpr.getLong("CODIGOEMPRESA") ResultSet rstFunc = stmtFunc.executeQuery(strSQL); while(rstFunc.next()) { strSQL = " SELECT CODIGOLANCTO, VALORLANCTO" + " FROM TB_LANCFUN" + " WHERE CODFUNC = " + rstFunc.getLong("CODFUNC") ResultSet rstLanc = stmtLanc.executeQuery(strSQL); while( ! rstEven.next() ) { if ( rstEven.getString("TEMQTDE") == 'S' ) { strSQL = " SELECT QTDE" + " FROM TB_VALQTDE" + " WHERE CODIGOFUNC = " + rstFunc.getLong("CODIGOFUNC"); rstAux = stmtAux.executeQuery(strSQL); rstAux.beforeFirst(); if ( rstAux.next() ) { dblTotQtde += rstAux.getDouble("QTDE"); } rstAux.close(); } if ( rstEven.getString("TEMVALOR") == 'S' ) { strSQL = " SELECT VALOR" + " FROM TB_VALVALOR" + " WHERE CODIGOFUNC = " + rstFunc.getLong("CODIGOFUNC"); rstAux = stmtAux.executeQuery(strSQL); rstAux.beforeFirst(); if ( rstAux.next() ) { dblTotQtde += rstAux.getDouble("VALOR"); } rstAux.close(); } } // Evento } // Func } // Empr stmtFunc.close(); stmtEmpr.close(); stmtEven.close(); stmtAux.close(); } }