Opa!
É pra já.
public class Datasource {
private Statement stmt;
private String _NomeBanco;
private String _Server;
private String _UID;
private String _Pass;
public Datasource(String NomeBanco, String Server, String UID,
String Pass){
_NomeBanco = NomeBanco;
_Server = Server;
_UID = UID;
_Pass = Pass;
}
private Connection AbreConn() throws SQLException,
ClassNotFoundException{
try{
Class.forName("org.postgresql.Driver");
String url = "jdbc:postgresql://" + _Server +
"/" + _NomeBanco + "?charSet=LATIN1";
return DriverManager.getConnection(url, _UID,
_Pass);
}catch(SQLException ex){
throw new SQLException("Erro ao abrir a
conexão\n " + ex.getMessage());
}
}
public void FechaConn() throws SQLException{
if(!stmt.getConnection().isClosed()){
stmt.getConnection().close();
}
}
public ResultSet getBySQL(String strSQL) throws Exception{
try{
stmt =
AbreConn().createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
return stmt.executeQuery(strSQL);
}catch(Exception ex){
throw new Exception(ex.getMessage());
}finally{
FechaConn();
}
}
public void AddBySQL(String strSQL) throws SQLException,
ClassNotFoundException{
try{
stmt = AbreConn().createStatement();
stmt.executeUpdate(strSQL);
}catch(SQLException ex){
throw new SQLException(ex.getMessage());
}catch(ClassNotFoundException ex2){
throw new SQLException(ex2.getMessage());
}finally{
FechaConn();
}
}}
_____
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Fernando Amorim
Sent: quarta-feira, 6 de dezembro de 2006 10:25
To: Grupo de Usuários do PostgreSQL no Brasil
Subject: Re: [PostgreSQL-Brasil] Muitos Processos postgres no Linux
Tive esse problema mais foi devido ao fato das conexões não estarem sendo
fechadas apropriada mente.
Qual servidor de aplicação vc esta utilizando?
Mostre o codigo que fecha as conexões.
On 12/6/06, Iannsp <[EMAIL PROTECTED]> wrote:
Olá Alexandre, procure fazer um lenvantamento de quantos usuarios estao
trabalhando comcomitantenmente em seu site, ou seja, a carga de conexoes
ao banco que seu site gera.
cruze estas informações com algum tipo de medição de qual a carga que o
SGDB esta preparado para receber . Esta informação voce pode conseguir
de uma forma aproximada ou até exata, se voce estabelecer um testes
baseado em seu banco de dados usando um aplicativo do proprio postgreSQL
chamado pgbench, em minha pagina tenho um artigo sobre ele em
http://www.ianntech.com.br/index.php?Tab=1
<http://www.ianntech.com.br/index.php?Tab=1&item=9&subitem=40>
&item=9&subitem=40 e fico
feliz se este artigo puder ajuda-lo.
No mais o que me parecer é que o SGDB esta recebendo mais tarefas do que
esta capacitado para realizar concomitantemente e por isso voce tem o
delay na sua aplicação.
Alexandre Biancuzzi escreveu:
>
> Pessoal,
>
>
>
> Estou enfrentando um problema meio grave com o Postgre + java no linux.
>
> Tenho um software de comércio eletrônico que está dando umas travadas.
>
>
>
> Visualizando os processos no linux, aparecem vários processos postgres
> como o exemplo abaixo:
>
> postgres 323 0.0 0.3 16960 3712 ? S 17:34 0:00
> postgres: MotoStore BaseDados 127.0.0.1(50950) UPDATE waiting
>
> postgres 432 0.0 0.9 16960 10204 ? S 17:35 0:00
> postgres: MotoStore BaseDados 127.0.0.1(50994) SELECT
>
> postgres 436 0.0 1.0 16960 10492 ? S 17:35 0:00
> postgres: MotoStore BaseDados 127.0.0.1(50996) SELECT
>
> postgres 441 0.0 1.0 16960 10460 ? S 17:35 0:00
> postgres: MotoStore BaseDados 127.0.0.1(50997) SELECT
>
> postgres 608 0.0 1.0 16960 10616 ? S 17:36 0:00
> postgres: MotoStore BaseDados 127.0.0.1(51013) SELECT
>
> postgres 618 0.0 1.0 16960 10620 ? S 17:36 0:00
> postgres: MotoStore BaseDados 127.0.0.1(51014) SELECT
>
> postgres 649 0.0 1.0 16960 10460 ? S 17:36 0:00
> postgres: MotoStore BaseDados 127.0.0.1(51015) SELECT
>
> postgres 653 0.0 1.0 16960 10608 ? D 17:36 0:00
> postgres: MotoStore BaseDados 127.0.0.1(51016) SELECT
>
>
>
> Em certos momentos, o número de processos postgres aumenta
> vertiginosamente (mais 50 processos) que acabam deixando o site muito
> lento. Já procurei sobre o problema e não encontrei nada para ter
> referência.
>
> Já chequei todos os códigos de acesso ao banco e todos abrem e fecham
> a conexão.
>
>
>
> Esse é o código que uso para abrir retornar ResultSet e adicionar registro
>
>
>
> public ResultSet getBySQL(String strSQL) throws Exception{
>
> try{
>
> stmt =
> AbreConn().createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
> ResultSet.CONCUR_READ_ONLY);
>
> return stmt.executeQuery(strSQL);
>
> }catch(Exception ex){
>
> throw new Exception(ex.getMessage());
>
> }finally{
>
> FechaConn();
>
> }
>
> }
>
> public void AddBySQL(String strSQL) throws SQLException,
> ClassNotFoundException{
>
> try{
>
> stmt = AbreConn().createStatement();
>
> stmt.executeUpdate(strSQL);
>
> }catch(SQLException ex){
>
> throw new SQLException(ex.getMessage());
>
> }catch(ClassNotFoundException ex2){
>
> throw new SQLException(ex2.getMessage ());
>
> }finally{
>
> FechaConn();
>
> }
>
> }
>
>
>
>
>
>
>
> Alguém tem alguma luz sobre o problema?
>
> Atenciosamente,
>
> Alexandre Biancuzzi
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Grupo de Usuários do PostgreSQL no Brasil
> Antes de perguntar consulte o manual
> http://pgdocptbr.sourceforge.net/
>
> Para editar suas opções ou sair da lista acesse a página da lista em:
> http://pgfoundry.org/mailman/listinfo/brasil-usuarios
--
Ivo Nascimento
Iann tech - Desenvolvendo soluções com performance e segurança
http://www.ianntech.com.br
_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/
Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios
--
Antonio Fernando Amorim
WebDeveloper - SCJP
Cel: 99698502
_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/
Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios