2014-02-06 9 views
0

Я создал простое приложение Java для изучения интеграции Spring и hibernate. Я сделал все настройки и приложения, также отлично работает.Получение сеанса сеанса Hibernate из приложения

Все работает нормально. Но я хочу посмотреть, сколько сеансов в настоящее время используется моим приложением, используя открытые соединения и закрытые спящие соединения.

В SessionFactory classs мы имеем «getStatistics» метод, используемый для получения статистических данных Hibernate, но это не помогает мне. Это дает мне и Zero. ниже, рис.

enter image description here

Я хочу, чтобы обеспечить мое приложение, с помощью одного сеанса для целых операций приложения или нет.

Итак, есть ли способ узнать или получить подсчет сессий Spring + hibernate.

Мой конфигурационный файл спящего режима;

<?xml version="1.0" encoding="UTF-8"?> 

http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd «>

<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" 
    destroy-method="close"> 
    <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" /> 
    <property name="url" value="jdbc:oracle:thin:@localhost:1521:XE" /> 
    <property name="username" value="rocky" /> 
    <property name="password" value="rocky" /> 
</bean> 

<bean id="mySessionFactory" 
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
    <property name="dataSource" ref="myDataSource" /> 
    <property name="mappingResources"> 
     <list> 
      <value>orders.hbm.xml</value> 
     </list> 
    </property> 
    <property name="hibernateProperties"> 
     <map> 
      <entry> 
       <key> 
        <value>hibernate.show_sql</value> 
       </key> 
       <value>true</value> 
      </entry> 
      <entry> 
       <key> 
        <value>hibernate.dialect</value> 
       </key> 
       <value>org.hibernate.dialect.OracleDialect</value> 
      </entry> 
      <entry> 
       <key> 
        <value>hibernate.query.factory_class</value> 
       </key> 
       <value>org.hibernate.hql.classic.ClassicQueryTranslatorFactory</value> 
      </entry> 
      <entry> 
       <key> 
        <value>connection.autocommit</value> 
       </key> 
       <value>true</value> 
      </entry> 
     </map> 
    </property> 
</bean> 

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

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

<bean id="transactionProxy" 
    class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> 
    <property name="transactionManager" ref="txManager" /> 
    <property name="transactionAttributes"> 
     <props> 
      <prop key="*">PROPAGATION_REQUIRED</prop> 
     </props> 
    </property> 
    <property name="target" ref="myServiceClass"> 
    </property> 
</bean> 

<tx:annotation-driven transaction-manager="txManager" /> 

<bean id="myServiceClass" class="myServiceClass"> 
    <property name="sessionFactory" ref="mySessionFactory" /> 
</bean> 

ответ

0

Глядя на ваш код Это швы, которые вы не включили staticstics вашего фабрики сеансов

Шаг к неспособным сессиям фабричной статике

SessionFactory sessionFactory = getSessionFactoryForApplication(); 
Statistics stats = sessionFactory.getStatistics(); 
stats.setStatisticsEnabled(true); 

Взятой из этой article

надеюсь, что это решит вашу проблему ..!

+0

Каждый метод Статистического объекта возвращает ноль, а не полезен. – ArifMustafa

Смежные вопросы