Có cách nào để chương trình Java phát hiện khi hệ điều hành sắp chuyển sang chế độ ngủ hay không, ít nhất là phát hiện một sự thức dậy?Phát hiện sự kiện OS Sleep and Wake Up trong Java
Vấn đề thực tế là trong một ứng dụng cụ thể, một số hoạt động cơ sở dữ liệu MySQL được chạy trong nền. Trong thử nghiệm trên một máy Windows, các giao dịch cơ sở dữ liệu này bị gián đoạn sau một chu kỳ ngủ/thức dậy gây ra một loạt các điều kiện lỗi trong chương trình. Những lỗi này thường trông giống như sau:
java.net.SocketException MESSAGE: Software caused connection abort: recv failed
Nếu chúng ta có thể phản ứng lại sự kiện 'sẽ ngủ sớm' chúng tôi có thể cố gắng tạm dừng hoạt động nền để tránh vấn đề. Ít lý tưởng hơn nếu chúng ta có thể phản ứng với một sự kiện 'vừa tỉnh dậy', chúng ta có thể ít nhất là loại bỏ các thông báo lỗi.
Đáng tiếc là không thể thực hiện được nếu không có JNI nhưng liên kết có vẻ như là một khởi đầu tốt. –
Có, JNI có thể là một nỗi đau để phát triển và gỡ lỗi. Chúng tôi đã tìm thấy chìa khóa là giữ càng nhiều logic càng tốt trong Java, và chỉ sử dụng JNI làm cầu nối để thực hiện các cuộc gọi cấp thấp tới API C. – rob