Я думаю, что мы решили это. Мы настроили наш источник данных в JBoss следующим образом:
<pool>
<min-pool-size>200</min-pool-size>
<max-pool-size>400</max-pool-size>
</pool>
..
<statement>
<prepared-statement-cache-size>100</prepared-statement-cache-size>
<share-prepared-statements>true</share-prepared-statements>
</statement>
Теперь мы изменили его на
<statement>
<prepared-statement-cache-size>5</prepared-statement-cache-size>
<share-prepared-statements>true</share-prepared-statements>
</statement>
И теперь GC, кажется, работает хорошо. Я думаю, что пул для подготовленных заявлений был слишком большим. Я думаю, что у нас было 400 * 100, теперь у нас есть 400 * 5.
Все комментарии приветствуются.
С наилучшими пожеланиями
Фредрик