Pool de Conexões C3P0

Não estou usando JPA, Hibernate, Spring, JSF, nada… é Servlet e JDBC na unha…

Anteriormente tive este problema ==> Problema com Singleton e acho que estou errando a mesma coisa… no mesmo conceito…mas não estou sabendo como fazer…

Segui como exemplo (copiei para entender) este link ==> http://www.javatips.net/blog/c3p0-connection-pooling-example

Quando executo o main do exemplo…funciona legal… conecta… a conexão abre e fecha…e mostra a informação…

Quando mudo para um Servlet… de cara ja abre as 5 conexões configuradas…se dou refresh abre mais 5… se continuo dando refresh…as vezes abre mais cinco…as vezes não…até chegar a 20…e a pagina fica rodando ate q eu pare o tomcat…

O servlet só faz isso:

@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
		try {
			DataSource.getInstance().getConnection();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		req.getServletContext().getRequestDispatcher("/WEB-INF/views/index.jsp").forward(req, resp);
	}

pelo q entendi…o pool de conexões deveria gerenciar apenas as 5 conexões q defini e não ficar abrindo tantas outras correto?

Resolvi da seguinte forma e pode ajudar a alguém.

Lendo a documentação do C3P0… vi o seguinte…

ComboPooledDataSource is an instance of PooledDataSource, and can be closed directly via its close() method. PooledDataSource implements java.lang.AutoCloseable, so they may be managed by Java 7+ try-with-resources blocks.

Dessa forma… coloquei a chamada DataSource.getInstance().getConnection(); dentro de um bloco try with resources e o fechamento foi automatico…mantendo sempre as 5 conexões abertas podendo chegar a 20 e não travando mais por que são fechadas.,…