Pool de Conexões - Como verificar seu status?

Boa tarde a todos.

É possível verificar o atual estado das conexões de um pool e/ou até mesmo do pool completo?

Pois é possível que um servidor, onde está o banco de dados, sofrer alguma instabilidade em uma situação qualquer e influenciar no pool de conexões,e estou buscando uma forma de deixar a aplicação um pouco mais inteligente, impedindo sempre que possível as exceções para os usuários.

Grato.
Ederson.

Qual connection pool que vc esta utilizando?

Rafael

Estou utilizando o DBCP da Jakarta.

Voce consegue o que quer com um pouco de tratamento de exceptions… Voce poderia deixar a transacao executando dentro de um try-catch unico ( de nivel mais alto ), onde entao vc trataria os erros conforme o tipo deles… Tipo, se vc pegasse uma exception onde a msg diz “could not open database connection”, fazer um redirect para uma pagina de erro customizada para esse problema… algo no estilo

Rafael

Obrigado Rafael.

A sua idéia é muito boa, mas não queria que o erro foi apresentado em uma página. Por exemplo, se por alguma razão o banco de dados trava ou perde a comunicação, não gostaria que fosse necessário parar o tomcat para reinicializar toda a estruturação desse pool novamente.
Seria interessante se ao detectar que houve problemas com uma conexão distinta ou até mesmo com o pool, a aplicação tenta-se de alguma forma restabelecê-los.

Obrigado por sua ajuda.
Ederson.

Olá pessoal, estou trazendo a tona um tópico antigo, pois esse problema está acontecendo comigo hoje em dia, estou utilizando o DBCP no Tomcat 5.0.28, e estamos tendo problemas de que algumas vezes a conexão com o banco é reiniciada ou simplesmente cai, enfim acabei de utilizar parâmetros na configuração do pool (validationQuery, testOnBorrow e testeWhileIdle), só que pelo que eu entendi na documentação ele não reiniciaria a conexão com o banco, gostaria de saber se alguém já passou por alguma situação parecida e qual foi a solução adotada?

bom na verdade essa solução com os parâmetros está sendo testada, porém eu preferi compartilhar com vocês antes, pois caso não dê certo eu tenha um outro plano de atuação :smiley:

Obrigado