Я создал простой Java-демон. Это настолько глупо, насколько это возможно - получить некоторую информацию из базы данных и отправить ее на общий ресурс Samba
Как это выглядит:
while (true) {
do_some_database_job(connection_pool.getCnx())
do_some_preprocessing
Thread.sleep(schedule_interval);
}
Однако после нескольких итераций он застревает.
Я проверял процесс JVM с помощью strace, и последняя запись была такой:
futex(<a_hex_address>, FUTEX_WAIT, <jvm_pid+some_number>, NULL)
Так что я подозреваю, что это тупик, но почему это так? Я запускаю только один поток.
Я использую dbcp2 для пула соединений и входа в систему.
Экспериментировал на Win7 / RHEL7, jdk1.8 / jdk10