Controlar numero de conexões (Sem o pool do hibernate)

Boa tarde pessoal.

Possuo uma aplicação Web que até então estava funcionando as mil maravilhas, porem ontem começou a ocorrer erro de “Maximo número de conexões ativas por usuário”, no caso o usuário em questão é o que o próprio sistema utiliza para fazer as consultas.
Estou utilizando classes DAO, sem nenhum frameWork complementar, para resolver por hora e não deixar meu sistema desprotegido, criei mais usuarios e dividi as consultas entre estes, foi quando surgiu um paradigma.

Devo abrir e fechar uma conexao com o banco a cada consulta, ou devo abrir uma conexão e armazená-la na sessão do usuário enquanto ele usufrui do meu sistema?

PS: Outra coisa que eu fiz foi me certificar que todas as conexões estão sendo fechadas após o uso, eu estava com o péssimo costume de eleger o objeto da conexão para coleta (GC) nulificando o ponteiro, só que acho que fazendo isso o MYSQL pode manter por tempo indeterminado a conexão aberta.

Eu não pretendo usar Hibernate, gostaria de saber de vocês (que tambem não usam) como gerenciam as conexões com o banco em uma aplicação WEB. Favor dissertem.

Abraços.

O Tomcat pode gerenciar a conexões para vc tb, procure por pool de conexões no tomcat.
Já utilizei, vc precisará configurar só.