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

Làm thế nào để buộc sử dụng lại các kết nối trong jdbc pool?

Bạn không thực sự sử dụng một nhóm kết nối. Một ConnectionPoolDataSource không nhằm mục đích sử dụng trực tiếp. Nó được thiết kế như một DataSource (đặc biệt) cho PooledConnection các đối tượng sau đó được giữ trong một nhóm kết nối bởi DataSource (bình thường) triển khai cung cấp tổng hợp kết nối.

Một nhà phát triển bình thường không nên sử dụng ConnectionPoolDataSource trực tiếp, nó được thiết kế để sử dụng với các nhóm kết nối do Máy chủ ứng dụng cung cấp hoặc được gói vào mục đích chung DataSource đã cung cấp tổng hợp kết nối.

Khi một Connection được yêu cầu từ nhóm kết nối, nó sẽ kiểm tra một PooledConnection hiện có (hoặc yêu cầu một cái mới từ ConnectionPoolDataSource của nó ), truy xuất Connection và trả lại cho người dùng. Khi người dùng đóng Connection , PooledConnection sẽ báo hiệu nhóm kết nối rằng nó đã khả dụng trở lại.

Trong trường hợp này, bạn đang tạo một PooledConnection , truy xuất Connection từ nó và sau đó loại bỏ PooledConnection . Điều này có nghĩa là PooledConnection bị loại bỏ và kết nối vật lý của nó với cơ sở dữ liệu không thể được sử dụng lại và sẽ bị đóng / loại bỏ khi cuối cùng nó được thu gom rác (thông thường khi nhóm kết nối muốn đóng kết nối vật lý, nó sẽ gọi close() trên PooledConnection ).

Bạn cần sử dụng nhóm kết nối do Máy chủ ứng dụng của bạn cung cấp hoặc sử dụng nhóm kết nối cho mục đích chung như DBCP, c3p0 hoặc BoneCP.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP Mysql tham gia trên các cơ sở dữ liệu

  2. Nhập kho mysql 8GB mất nhiều thời gian

  3. Mật khẩu mặc định của mysql trong máy chủ ubuntu 16.04

  4. Chèn MySQL trên bản cập nhật trùng lặp cho khóa không phải CHÍNH

  5. Số lượng Mysql trả về 0 nếu không tìm thấy bản ghi