Como posso impedir que o Hibernate + c3p0 + MySql crie um grande número de conexões inativas?

Estou usando o GWT com Hibernate, c3p0 e MySQL para produzir um aplicativo da Web com um público limitado (máximo de 50 usuários por dia). Durante o teste, descobri que o Hibernate estava abrindo uma conexão com cada sessão, mas não a fechando, independentemente do uso doclose() método.

Minha configuração atual é a seguinte:

hibernate.connection.driver_class=com.mysql.jdbc.Driver
hibernate.connection.url=
hibernate.connection.username=
hibernate.connection.password=
hibernate.dialect=org.hibernate.dialect.MySQLDialect
hibernate.current_session_context_class=thread
hibernate.c3p0.min_size=1
hibernate.c3p0.max_size=1
hibernate.c3p0.timeout=10
hibernate.c3p0.max_statements=50
hibernate.c3p0.idle_test_period=10
hibernate.c3p0.unreturned_connection_timeout=1
hibernate.connection.provider_class=org.hibernate.connection.C3P0ConnectionProvider

A cada nova conexão com o aplicativo, um novo pool é criado. Por exemplo, se eu definir o tamanho do pool como 3, 2 conexões com o aplicativo resultarão em 6 conexões até que o aplicativo seja fechado.

O comportamento pretendido é simplesmente fechar ou reutilizar as conexões após cada transação. Como posso conseguir isso?

questionAnswers(3)

yourAnswerToTheQuestion