Я использую Struts 2.2.1.1 и Hibernate 3.6.2.Final. Я также использую C3P0 для своего пула соединений, который работает на Tomcat 7.0.11.
У меня возникают проблемы, когда мои сеансы Hibernate не закрываются, и я быстро превышаю максимальное количество открытых подключений, настроенное в свойстве "hibernate.c3p0.max_size".
Я думаю, это потому, что мои Hibernate Sessions открыты, но никогда не закрываются. Я открываю сеансы из SessionFactory, которая хранится в ServletContext. Я попытался закрыть сессию в блоке finally {} в моем классе Action, но это вызывает исключения org.hibernate.LazyInitializationException.
Я провел небольшое исследование и нашел подход Full Hibernate , а также подход Open Session in View .
Я предполагаю, что это распространенная проблема, и я хотел бы получить представление о наиболее часто используемом решении.
Еще одна вещь, которую я заметил, - плагин Full Hibernate поддерживает Struts 2.0.9+ до 2.1.6, но я использую 2.2.1.1. Не уверен, что это может быть проблемой, или если веб-сайт просто не был обновлен для отображения более новой версии.
Любой вклад приветствуется.