Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Aplikasi musim semi + hibernasi saya tidak menutup koneksi jdbc

Masalahnya tidak terletak pada sesi tetapi di kumpulan koneksi, sesi di mana dikelola dengan benar, tetapi kumpulan koneksi di lapisan JDBC tidak menutup koneksi.

Ini adalah hal-hal yang saya lakukan untuk memperbaikinya.

Konfigurasi konteks JDBC

1.- Mengubah pabrik koneksi JDBC dari BasicDataSourceFactory lama Tomcat menjadi DataSourceFactory baru Tomcat

2.- Menyetel pengaturan JDBC berdasarkan artikel ini:http://www.tomcatexpert.com/blog/2010/04/01/configuring-jdbc-pool-high-concurrency

Konfigurasi xml pabrik sesi

3.- Menghapus baris ini dari konfigurasi pabrik sesi:

<prop key="hibernate.max_fetch_depth">1</prop>

Beginilah hasil konfigurasi saya:

Konfigurasi konteks JDBC

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/" override="true" reloadable="false" swallowOutput="false">
    <Resource name="jdbc/catWDB" auth="Container" type="javax.sql.DataSource"
              driverClassName="com.mysql.jdbc.Driver"
              factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
              url="@[email protected]"
              username="@[email protected]"
              password="@[email protected]"
              maxActive="200"
              maxIdle="50"
              minIdle="10"
              suspectTimeout="60"
              timeBetweenEvictionRunsMillis="30000"
              minEvictableIdleTimeMillis="60000"
              validationQuery="select 1"
              validationInterval="30000"
              testOnBorrow="true"
              removeAbandoned="true"
              removeAbandonedTimeout="60"
              abandonWhenPercentageFull="10"
              maxWait="10000"
              jdbcInterceptors="ResetAbandonedTimer;StatementFinalizer"
            />
</Context>

Konfigurasi xml pabrik sesi

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource">
            <ref local="dataSource"/>
        </property>
        <property name="configLocation" value="classpath:hibernate.cfg.xml" />
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                <prop key="hibernate.show_sql">false</prop>
                <prop key="hibernate.max_fetch_depth">3</prop>
            </props>
        </property>
</bean>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bisakah MySQL dengan andal memulihkan cadangan yang berisi tampilan atau tidak?

  2. Bagaimana cara saya lolos % dari permintaan python mysql

  3. Mysqli UPDATE SET WHERE kesalahan sintaksis

  4. hive.HiveImport:GAGAL:SemanticException [Kesalahan 10072]:Basis data tidak ada:

  5. Kesalahan:ER_WRONG_VALUE_COUNT_ON_ROW:Jumlah kolom tidak cocok dengan jumlah nilai pada baris 1