Transações em estado permanente de "Idle in transaction"

Bom dia,

Estou usando na minha aplicação:
Postgres 9.1
Spring 3.0.5.RELEASE
Hibernate 3.6.3.Final

Meu problema é o seguinte, estou definindo um número máximo de conexões em meu arquivo de configuração do Spring:

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${database.driver}" /> <property name="jdbcUrl" value="${database.url}" /> <property name="user" value="${database.username}" /> <property name="password" value="${database.password}" /> <property name="initialPoolSize" value="3" /> <property name="minPoolSize" value="1" /> <property name="maxPoolSize" value="17" /> </bean>

Quando minha aplicação chega a ocupar todas as conexões, ele simplesmente trava, não cancela e nem aceita mais transações. Consulto os processos do Postgres e estão lá, todas as conexões em estado “Idle in transaction”.
Alguém já teve este problema?

Ainda não conseguir achar uma solução para o problema. Mas por enquanto estou usando Semáforo para limitar o número de threads da minha aplicação que acessam o banco.