C'è un modo per un programma Java di rilevare quando il sistema operativo sta per andare a dormire o, in caso contrario, di rilevare almeno una sveglia?Rileva eventi di sospensione e riattivazione del sistema operativo in Java
Il problema reale è che in una particolare applicazione vengono eseguite in background numerose operazioni del database MySQL. Durante il test su una macchina Windows queste transazioni del database vengono interrotte dopo un ciclo di sospensione/riattivazione che causa un sacco di condizioni di errore nel programma. Questi errori di solito sono qualcosa del tipo:
java.net.SocketException MESSAGE: Software caused connection abort: recv failed
Se potessimo reagire a un evento 'presto dormirà' potremmo tentare di mettere in pausa le operazioni in background preempting il problema. Meno idealmente se potessimo reagire a un evento "appena svegliato" potremmo almeno sopprimere i messaggi di errore.
Peccato che non si possa fare senza JNI ma il collegamento sembra un buon inizio. –
Sì, JNI può essere un problema per lo sviluppo e il debug. Abbiamo trovato la chiave per mantenere il più possibile la logica in Java e utilizzare JNI come bridge per effettuare chiamate di basso livello all'API C. – rob