Como limpar o pool de conexões ODP.NET em erros de conexão?

Estou usando NHibernate e ODP.NET para conectar-se a um banco de dados Oracle 11g. Claro que pode haver erros de conexão (falha na rede, banco de dados inativo, ...). Estou lidando com todas essas exceções no meu código, então não há problema. Mas é claro que o usuário pode tentar novamente suas ações (talvez tenha sido apenas uma pequena falha de rede), e aí vem o meu problema:

ODP.NET está usando o pool de conexões por padrão. Normalmente, não há problema com isso, mas quando o usuário tenta novamente uma ação após um erro de conexão, o NHibernate obtém uma conexão inválida (em pool) do ODP.NET. O usuário precisa tentar várias vezes (até que o pool esteja vazio) para fazê-lo funcionar novament

Claro que posso desativar o pool de conexões no ODP.NET, mas gostaria de evitar isso. Também li sobre uma configuração que verifica a conexão com o banco de dados para cada conexão retornada do pool, mas isso adiciona uma viagem de ida e volta adicional a cada conexão que eu gostaria de evitar também.

Existe alguma maneira de configurar o ODP.NET para limpar automaticamente o pool de conexões quando alguma conexão lança uma exceção de conexã

questionAnswers(2)

yourAnswerToTheQuestion