Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Ứng dụng Spring + hibernate của tôi không đóng các kết nối jdbc

Vấn đề không phải do các phiên mà nằm trong nhóm kết nối, các phiên được quản lý đúng cách, nhưng nhóm kết nối trong lớp JDBC không đóng các kết nối.

Đây là những điều tôi đã làm để sửa chữa chúng.

Cấu hình ngữ cảnh JDBC

1.- Thay đổi nhà máy kết nối JDBC từ BasicDataSourceFactory cũ của tomcat thành DataSourceFactory mới của tomcat

2.- Điều chỉnh cài đặt JDBC dựa trên bài viết này: http://www.tomcatexpert.com/blog/2010/04/01/configuring-jdbc-pool-high-concurrency

Cấu hình xml của nhà máy phiên

3.- Đã xóa dòng này khỏi cấu hình gốc của phiên:

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

Đây là cách cấu hình của tôi kết thúc:

Cấu hình ngữ cảnh 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>

Cấu hình xml của nhà máy phiên

<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. Khó khăn với độ trễ thay đổi

  2. MySQL chọn dựa trên phạm vi dấu thời gian hàng ngày

  3. Chuyển đổi BIGINT UNSIGNED thành INT

  4. Có phải chuẩn hóa trong trường hợp này không?

  5. MySQL Tìm tổng số bài đăng trên mỗi người dùng