¿Cómo puedo evitar que Hibernate + c3p0 + MySql cree un gran número de conexiones inactivas?

Estoy usando GWT con Hibernate, c3p0 y MySQL para producir una aplicación web con una audiencia limitada (máximo 50 usuarios por día). Durante las pruebas descubrí que Hibernate estaba abriendo una conexión con cada sesión pero no la cerraba, independientemente del uso declose() método.

Mi configuración actual es la siguiente:

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

Con cada nueva conexión a la aplicación se crea un nuevo grupo. Por ejemplo, si configuro el tamaño del grupo en 3, 2 conexiones a la aplicación dan como resultado 6 conexiones hasta que la aplicación se cierra.

El comportamiento previsto es simplemente cerrar o reutilizar las conexiones después de cada transacción. ¿Cómo puedo conseguir esto?