Я использую struts2 + hibernate3 в своем веб-приложении. Он работает нормально. Несколько раз показывает Не удается открыть соединение. Заявление о соединении с подключением с гибернацией в Класс действия.Как разрешить слишком много ошибок подключения в спящем режиме
protected SessionFactory getSessionFactory() {
try {
Configuration cfg = new Configuration();
cfg.configure("hibernate.cfg.xml");
SessionFactory factory = cfg.buildSessionFactory();
return factory;
} catch (Exception e) {
log.error("sessionFactory", e);
throw new IllegalStateException(
"Could not locate SessionFactory");
}
}
public List viewAllPromotion() {
System.out.println("finding student instance");
try {
Session session = sessionFactory.openSession();
System.out.println("View All Student");
session.beginTransaction();
List results = session.createQuery("from Student").list();
System.out.println("List got Rsults:"+results.size());
session.close();
return results;
} catch (RuntimeException re) {
log.error("find by example failed", re);
throw re;
}
}
файл конфигурации Hibernate:
<session-factory>
<property name="hibernate.bytecode.use_reflection_optimizer">false</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/marksheet</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">admin</property>
<property name="hibernate.search.autoregister_listeners">false</property>
<property name="hibernate.session_factory_name">MySessionFactory</property>
<property name="current_session_context_class">thread</property>
<property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
<property name="hibernate.connection.pool_size">10</property>
<property name="show_sql">true</property>
<mapping resource="com/rewardz/model/student.hbm.xml" />
<mapping resource="com/rewardz/model/course.hbm.xml" />
<mapping resource="com/rewardz/model/subject.hbm.xml" />
<mapping resource="com/rewardz/model/staff.hbm.xml" />
<mapping resource="com/rewardz/model/Role.hbm.xml" />
<mapping resource="com/rewardz/model/Privilege.hbm.xml" />
<mapping resource="com/rewardz/model/Logtab.hbm.xml" />
</session-factory>
Я получаю следующее сообщение об ошибке, когда я делать больше операций.
HTTP Status 500 - type Exception report
message
descriptionThe server encountered an internal error() that prevented it from fulfilling this request.
exception
org.hibernate.exception.JDBCConnectionException: Cannot open connection
записные Полный стек следы исключения и его коренные причины доступны в журналах GlassFish сервер Open Source Edition 3.1.1.
Может ли кто-нибудь помочь мне решить эту проблему? Заранее спасибо.
вы начали транскрипцию в своем коде, но не закрыли его? –
@ Umesh Awasthi: Я использовал метод session.close(). Могу ли я узнать, как закрыть транзакцию? – shiva
что-то вроде 'tx.commit();' –