CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 395

395

Chương 10: Cơ sở dữ liệu

hiện có. Chỉ khi bạn chỉ định một chuỗi kết nối khác thì data-provider mới tạo một pool mới.
Bạn có thể điều khiển các đặc tính của pool bằng cách sử dụng các thiết lập trong chuỗi kết
nối được mô tả trong bảng 10.2.

Một khi đã được tạo, pool sẽ tồn tại cho đến khi tiến trình kết thúc.

Bảng 10.2 Các thiết lập trong chuỗi kết nối dùng để điều khiển Connection Pooling

Thiết lập

Mô tả

Connection
Lifetime

Chỉ định thời gian tối đa (tính bằng giây) mà một kết nối được phép sống
trong pool trước khi nó bị đóng. “Tuổi” của một kết nối được kiểm tra
chỉ khi kết nối được trả về cho pool. Thiết lập này cần thiết trong việc
thu nhỏ kích thước pool nếu pool không được sử dụng nhiều và cũng bảo
đảm tính cân bằng tải được thực hiện tối ưu trong môi trường cơ sở dữ
liệu gom tụ. Giá trị mặc định là 0, có nghĩa là kết nối tồn tại trong thời
gian sống của tiến trình hiện thời.

Connection

Reset

Chỉ được SQL Server Data Provider hỗ trợ. Chỉ định kết nối có được
reset hay không khi chúng được lấy từ pool. Giá trị

True

bảo đảm trạng

thái của kết nối được reset nhưng cần phải thông báo cho cơ sở dữ liệu.
Giá trị mặc định là

True

.

Pooling

Thiết lập là

False

để có được kết nối không lấy từ pool. Giá trị mặc định

True

.

Max Pool Size

Chỉ định số lượng kết nối tối đa cần có trong pool. Các kết nối được tạo
và thêm vào pool khi được yêu cầu cho đến khi đạt đến con số này. Nếu
một yêu cầu kết nối được thực hiện nhưng không còn kết nối trống thì lời
gọi sẽ block cho đến khi có một kết nối có hiệu lực. Giá trị mặc định là
100.

Min Pool Size

Chỉ định số lượng kết nối tối thiểu cần có trong pool. Lúc tạo pool thì số
kết nối này được tạo và thêm vào pool. Trong quá trình duy trì định kỳ
hoặc khi một kết nối được yêu cầu, các kết nối sẽ được thêm vào pool để
bảo đảm số lượng kết nối tối thiểu có hiệu lực. Giá trị mặc định là 0.

Đoạn mã dưới đây mô tả cấu hình của một pool: chứa tối thiểu 5 kết nối và tối đa 15 kết nối,
kết nối sẽ hết hiệu lực sau 10 phút (600 giây) và được reset mỗi khi một kết nối được lấy từ
pool.

// Thu lấy pooled connection.

using (SqlConnection con = new SqlConnection()) {

// Cấu hình chuỗi kết nối của đối tượng SqlConnection.

con.ConnectionString =

"Data Source = localhost;" + // Đối tượng SQL Server cục bộ

"Database = Northwind;" + // Cơ sở dữ liệu mẫu Northwind

"Integrated Security = SSPI;" + // Integrated Windows Security

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.