我将PostgreSQL用于我的Web应用程序。我在Web应用程序代码的每个休眠调用中都添加了session. close
。但是postgreSQL连接没有关闭,这会使应用程序在连接计数达到阈值后中断。我需要重新启动PostgreSQL服务才能再次启动它。
我正在使用Apache tomcat作为Web服务器。
我该如何解决这种怪异?请提出永久修复方案。
代码段:
try {
session=sessionFactory.openSession();
Transaction tx = session.beginTransaction();
} finally {
if (session != null) {
session.close();
}
}
休眠配置文件:
<property name="hibernateProperties">
<props>
<prop key="hibernate.current_session_context_class">thread</prop>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.hbm2ddl.auto">auto</prop>
<prop key="hibernate.transaction.auto_close_session">on_close</prop>
<prop key="hibernate.multi_tenant_connection_provider">com.myapp.connections.MultiTenantConnectionsProvider </prop>
<prop key="hibernate.multiTenancy">DATABASE</prop>
<prop key="hibernate.tenant_identifier_resolver">com.myapp.connections.CurrentTenantIdentifierResolver </prop>
</props>
</property>
出现以下错误:
org.hibernate.service.spi.ServiceException: Unable to instantiate specified multi-tenant connection provider
请帮助。对此一无所知