Tôi có ứng dụng Mule kết nối với cơ sở dữ liệu Oracle. Ứng dụng này là một api SOAP cho phép thực thi các thủ tục lưu trữ SQL. Trình kết nối của tôi được thiết lập để sử dụng kết nối tổng hợp và tôi đã tự giám sát các kết nối. Tôi có kích thước hồ bơi tối đa là 20 và khi thực hiện cuộc gọi đến cơ sở dữ liệu, tôi có thể thấy chúng mở (netstat -ntl | grep PORTNUMBER).Đóng các kết nối cơ sở dữ liệu sau khi không hoạt động
tcp4 0 0 IP HERE OTHER IP HERE SYN_SENT
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 10 0 IP HERE OTHER IP HERE ESTABLISHED
Khi cuộc gọi được thực hiện, tôi hy vọng các kết nối sẽ bị đóng sau một khoảng thời gian nhất định. Điều này không xảy ra. Tôi đã nhận thấy rằng khi ứng dụng đang chạy trên một máy chủ, các kết nối vẫn mở từ tháng bảy (đó là một vài tháng trở lại).
Cách duy nhất tôi tìm thấy cho đến nay thực sự đóng kết nối sau một vài giây là bằng cách bật giao dịch XA và đặt Thời gian chờ kết nối. Tuy nhiên, điều này hoàn toàn messes lên hiệu suất của ứng dụng và nó không cần thiết trên không.
Tôi làm cách nào để thêm thời gian chờ mà không sử dụng kết nối XA? Tôi muốn kết nối cơ sở dữ liệu của mình bị đóng sau 20 giây không hoạt động.
Cảm ơn bạn
Edit: nối cơ sở dữ liệu được sử dụng Generic - Mule phiên bản 3.8.0, Chúng tôi có một số lượng tối đa các kết nối được phép vào cơ sở dữ liệu, chúng tôi có nhiều trường hợp của dòng chảy chạy này. Điều này có nghĩa là các kết nối được bảo lưu bởi một trong các trường hợp khiến các trường hợp khác không thể nhận được kết nối mới.
Vấn đề cụ thể mà chúng tôi đã có là một ví dụ vẫn có 120 kết nối được bảo lưu, mặc dù lần cuối cùng nó chạy được vài tuần trước đó. Khi trường hợp thứ hai yêu cầu nhiều kết nối hơn, nó chỉ có thể nhận được 30 vì tối đa ở phía cơ sở dữ liệu là 150.
Tôi đã chỉnh sửa câu hỏi của mình. – DenCowboy