【问题标题】:hibernate transaction manager休眠事务管理器
【发布时间】:2013-01-07 11:34:48
【问题描述】:

我有一个使用 spring 和 hibernate 部署在 jboss 环境中的 web 应用程序。 问题是我的日志中一直有这条消息:

12:28:44,895 FINE  [org.hibernate.jdbc.ConnectionManager] transaction completed on session with on_close connection release mode; be sure to close the session to release JDBC resources!

我应该担心吗?所有数据都正确存储在数据库(oracle)中,一切似乎都运行良好。

这是我的配置(数据库相关):

<bean name="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName">
        <value>java:jboss/datasources/DbDS</value>
    </property>
</bean>

<bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="annotatedClasses">
        <list>
            ..
        </list>
    </property>

    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
            <prop key="hibernate.show_sql">true</prop>
            <prop key="hibernate.connection.release_mode">auto</prop>
            <prop key="hibernate.transaction.auto_close_session">false</prop>
        </props>
    </property>
</bean>

<bean id="txManager"
    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="dataSource" ref="dataSource" />
    <property name="sessionFactory" ref="sessionFactory" />
</bean>

--> --> -->

<bean id="viewResolver"
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="viewClass"
        value="org.springframework.web.servlet.view.JstlView"></property>
    <property name="prefix" value="/WEB-INF/jsp/"></property>
    <property name="suffix" value=".jsp"></property>
</bean>

<bean
    class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />

<bean
    class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />

提前致谢。

【问题讨论】:

  • 如何从 sessionFactory 获取会话? sessionFactory.getCurrentSession()sessionFactory.openSession()
  • sessionFactory.getCurrentSession()
  • 我不确定 transaction.auto_close_session 参数,我不确定 Spring 是否明确关闭会话,而不是依赖于使用事务关闭它(它的包装器只是在幕后使用休眠事务类)但我不是在桌面上 100% 肯定))

标签: spring hibernate jboss transactionmanager


【解决方案1】:

你可以试试这个——

<prop key="hibernate.connection.release_mode">after_statement</prop>

另外,查看以下链接了解更多详情 -

http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/transactions.html#transactions-connection-release

【讨论】:

  • 是的,我已经读过了,但感谢您的提示。在任何情况下,汽车都应该执行 after_statement 释放模式。
猜你喜欢
  • 2017-05-09
  • 1970-01-01
  • 2011-11-16
  • 2017-02-07
  • 2014-08-25
  • 1970-01-01
  • 2012-08-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多