SH配置中,hibernate不会自动释放session conn程序卡死
在实际应用过程中,发现一个问题,其表现形式为:在访问数据库时,在多次(8)访问过后就出现容器不在继续访问。有点像挂起。 研究发现,没有配置OpenSessionInViewFilter这个拦截器。至于为什么,网上大把。主要就是提出没有配置这个,hibernate没有自动flush的功能。 下面把配置方式放上来。在web.xml文件中添加
在实际应用过程中,发现一个问题,其表现形式为:
在访问数据库时,在多次(8)访问过后就出现容器不在继续访问。
有点像挂起。
研究发现,没有配置OpenSessionInViewFilter这个拦截器。
至于为什么,网上大把。主要就是提出没有配置这个,hibernate没有自动flush的功能。
下面把配置方式放上来。在web.xml文件中添加
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
<init-param>
<param-name>singleSession</param-name>
<param-value>true </param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
-----------------------------------------------------------------------------------------------
Spring 配置文件
<!-- 事务管理 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<!-- 配置事务拦截器 -->
<bean id="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<!-- 事务拦截器bean需要依赖注入一个事务管理器 -->
<property name="transactionManager">
<ref bean="transactionManager"/>
</property>
<property name="transactionAttributes">
<!-- 下面定义事务传播属性-->
<props>
<prop key="*">PROPAGATION_REQUIRED</prop>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<!-- 定义BeanNameAutoProxyCreator -->
<bean id="beanNameAutoProxyCreator"
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>*DAO</value>
</list>
</property>
<property name="interceptorNames">
<list>
<idref local="transactionInterceptor"/>
</list>
</property>
<property name="proxyTargetClass" value="true"/>
</bean>
更多推荐
所有评论(0)