Olá galera mais uma vez estou com o seguinte problema:
Verificamos que o Firebird fica com a memória crescendo enquanto a conexão não é fechada corretamente, ou seja, tendo 3 conexões dierentes no banco simultaneamente, por mais que somente uma tenha executado statements, enquanto as 3 não forem fechados os processos continuam carregando no cache.
Comecei a correr o código tentando descobrir onde está o Connection Leak, porque tinha certeza que um lugar estava deixando uma conexão aberta. Acabei encontrando que o que fazia uma conexão com o banco e nunca fechava era a própria SessionFactory. Quando se fecha a SF a tal conexão perdida é automaticamente liberada. Isso é correto? Existe alguma maneira de que a SF não abra conexãoes, porque sempre cri que quem fazia a conexão era a Session e não a Session Factory
OBS.: Utilizo o C3p0 com a seguinte config:
<!-- Configura o C3p0 -->
<property name="c3p0.acquire_increment">1</property>
<property name="c3p0.idle_test_period">100</property> <!-- seconds -->
<property name="c3p0.max_size">100</property>
<property name="c3p0.max_statements">0</property>
<property name="c3p0.min_size">10</property>
<property name="c3p0.timeout">100</property> <!-- seconds -->
Agradeço mais uma vez a atenção e a ajuda!!!
Abraço galera