Không biết đây có phải là câu trả lời của mọi người hay không, nhưng sau khi tìm hiểu kỹ, đây là những gì chúng tôi đã đưa ra.
Lỗi rõ ràng là do người nghe không chấp nhận kết nối, nhưng tại sao chúng tôi lại gặp lỗi đó khi các thử nghiệm khác có thể kết nối tốt (chúng tôi cũng có thể kết nối không có vấn đề gì thông qua sqlplus)? Mấu chốt của vấn đề không phải là chúng tôi không thể kết nối mà là nó không liên tục
Sau một số cuộc điều tra, chúng tôi nhận thấy rằng có một số dữ liệu tĩnh được tạo trong quá trình thiết lập lớp sẽ giữ các kết nối mở trong suốt thời gian tồn tại của lớp thử nghiệm, tạo ra các kết nối mới khi nó hoạt động. Bây giờ, mặc dù tất cả các tài nguyên đã được giải phóng đúng cách khi lớp này vượt ra ngoài phạm vi (tất nhiên là thông qua một khối {} cuối cùng), nhưng vẫn có một số trường hợp trong quá trình chạy khi lớp này sẽ nuốt tất cả các kết nối có sẵn (được rồi, tệ lắm cảnh báo thực hành - đây là mã kiểm tra đơn vị được kết nối trực tiếp thay vì sử dụng nhóm, vì vậy vấn đề tương tự không thể xảy ra trong quá trình sản xuất).
Cách khắc phục là không đặt lớp đó ở trạng thái tĩnh và chạy trong thiết lập lớp, mà thay vào đó, sử dụng nó trong các phương thức setUp và dropsDown cho mỗi phương thức.
Vì vậy, nếu bạn gặp lỗi này trong các ứng dụng của riêng mình, hãy tát một cái hồ sơ vào kẻ xấu đó và xem liệu bạn có thể bị rò rỉ kết nối hay không. Hy vọng điều đó sẽ hữu ích.