Tôi đang cố gắng sử dụng các câu lệnh chuẩn bị hoạt động trên cơ sở dữ liệu nằm khá xa, có độ trễ đáng kể và không đáng tin cậy liên quan đến kết nối mạng được sử dụng để truy cập cơ sở dữ liệu này. Thời gian ngừng hoạt động tối đa một phút là phổ biến. Vấn đề là trong trường hợp thất bại như vậy, nếu chương trình của tôi cố gắng thực thi bất kỳ câu lệnh đã chuẩn bị nào, toàn bộ luồng sẽ đi vào tình trạng chờ vô hạn. Nó không bao giờ lần ra ngoài và chỉ còn bị mắc kẹt, chờ đợi một phản ứng từ cơ sở dữ liệu.Đặt timeouts trên báo cáo đã chuẩn bị
Tôi đã thử sử dụng phương pháp setQueryTimeout() để đặt hết thời gian chờ thực thi, nhưng dường như có một số vấn đề với phương pháp này trong đó không thể hoạt động bình thường nếu mạng không thành công.
Có cách nào khác thay thế không?
Có cách nào khác để giải quyết vấn đề này không, tôi không thực sự có ý định sử dụng Trình quản lý giao dịch, vì dường như quá mức cần thiết cho một thời gian chờ đơn giản – angryInsomniac