Трудно поверить конечно, что в логах у тебя ничего не написано. Как вариант - ты упираешся в какие-то прикладные ограничения который сам и создал.
Для начала тебе надо посмотреть чем заняты потоки в обычно (стационарном режиме) и в тот момент времени когда системе стало плохо. Когда именно - ты сам определишь. Пишешь дескыть "оно останавливается" - значит есть какой-то субъективный способ понять что беда уже случилась.
Значит тебе надо дважды вызвать вот эту утилиту
$ jstack --help
Usage:
jstack [-l][-e] <pid>
(to connect to running process)
Options:
-l long listing. Prints additional information about locks
-e extended listing. Prints additional information about threads
-? -h --help -help to print this help message
и сохранить в текстовый файл что она выдаст. Потом сравнить. Разница - будет подсказывать причину.
И еще понаблюдай глазами за памятью через JVisualVM. Может что-то раньше увидишь.