Duvidas "connection Pool"

4 respostas
M

Pessoal,

To com varias duvidas

1 - onde devo inserir essas linhas

<parameter>
              <name>removeAbandoned</name>
              <value>true</value>
            </parameter>

para que seja removido as conexoes q por um motivo ou outro foi abandonada li no site do jakarta mas nao ficou claro em qual arquivo inserir
http://jakarta.apache.org/tomcat/tomcat-5.0-doc/jndi-datasource-examples-howto.html#Database%20Connection%20Pool%20(DBCP)%20Configurations

2 - Eu já vi alguns topicos d usuarios dizendo que precisou restartar o tomcat soh nao me lembro se foi por problemas no pool, eu pergunto isso pq ocorreru recentemente do pool se esgotar e a solucao mais pratica foi restartar o tomcat, estamos analisando para ver se existe alguma conexao q nao esteja sendo fechada, mas isso poderia ser um “bug” do tomcat??

Valeu…

Ate mais!!!

4 Respostas

R

“marceloedrei”:
Pessoal,

To com varias duvidas

1 - onde devo inserir essas linhas

<parameter>
              <name>removeAbandoned</name>
              <value>true</value>
            </parameter>

para que seja removido as conexoes q por um motivo ou outro foi abandonada li no site do jakarta mas nao ficou claro em qual arquivo inserir
http://jakarta.apache.org/tomcat/tomcat-5.0-doc/jndi-datasource-examples-howto.html#Database%20Connection%20Pool%20(DBCP)%20Configurations


… no server.xml

cê viu os arquivos de log ???

flw!

M

eu vi sim a msg eh essa

mas entao a minha duvida eh se mesmo com os codigos corretos, fechando todas as conexoes, pode ocorrer uma falha no pool e d tempos em tempos ser necessario restartar o tomcat?

e eu coloquei aquelas linhas no server.xml e nao funcionou :roll:

valeu!!!

M

eu inseri as linhas em

e vi no catalina.out que esta reconhecendo

mas ele nao esta liberando as conexoes ou seja eu criei um metodo que nao fecha as conexoes e todas as vezes q esse eh chamado aumenta um conexo no pool, um certo seria que apos 15 seg essas conexoes serem fechadas automaticamente, e isso nao?? e pq serah q nao esta acontecendo??

Ate mais!!!

R

a mecânica removeAbandoned do pool do TOMCAT é muito esquisita. Na verdade, se uma conexão é criada e não fechada corretamente, o DBCP só vai pensar nisso quando o maxActive for alcançado. O problema disso é que se acontecer de maxActive não ser atingido, a conexão criada e que não foi fechada ficará eternamente no pool de conexões.

20 anos de TOMCAT, será que não dava para resolver essa pendenga não?

Me parece que não existe um pool de conexões milagroso. o C3P0 todo mundo fala que é uma porcaria, que é pesado e mais um monte de problemas. Assim, alguma estratégia precisa ser implementada para garantir o fechamento da conexão.

public class CustomActionHandler extends ActionHandler{
  
  @Override
  public void doHandler(AppHandler handler)throws Exception{
    try{
      super.doHandler(handler);  
    }
    catch(Exception e){
      Session hibernate=handler.getContext().evaluate("${hibernate}");
      
      if(null!=hibernate)
        try{hibernate.close();}catch(Exception e2){}
      
      throw new RuntimeException(e);
    }
  }
}

Aqui, o ideal era testar com isOpen ou isConnected mas, como sempre, a documentação do Hibernate não pode dizer o que realmente acontece. Aliás, é bastante explicativo.

isOpen: Check if the session is still open.
isConnected: Check if the session is currently connected.

O jeito é deixar esse try seco ai. Vai fazer o que né? Parece até que foi feito para não usar.

Criado 13 de julho de 2005
Ultima resposta 13 de out. de 2012
Respostas 4
Participantes 3