Re: [java-list] Resultset consumindo memória

2002-07-28 Por tôpico Celso Junior



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

2002-07-25 Por tôpico Sven E . van ´t Veer



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

2002-07-24 Por tôpico Cláudio R . Lanzilotti



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();  
}
 
}