У меня есть приложение Java, работающее на Solaris.Это приложение регулярно запускает внешние процессы, используя Runtime.exec.Кажется, что через некоторое время, успешно запустив такие процессы много раз, запуск процесса будет зависать.Дамп потока, полученный в этот момент (и несколько минут спустя), обнаруживает, что java.lang.UNIXProcess.forkAndExec "застрял".Ниже приведена вершина соответствующей трассировки стека, взятой из дампа потока:
"Thread-85305" prio=3 tid=0x0000000102aae800 nid=0x21499 runnable [0x7fffffff2a3fe000]
java.lang.Thread.State: RUNNABLE
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
Я прочитал некоторые форумы, где другие испытывали forAndExec, выбрасывающее IOException из-за нехватки места или недостаточно памяти, ноЯ не получаю эту ошибку здесь.Сейчас я жду, чтобы получить результаты pstack в надежде, что он покажет больше информации.
Кто-нибудь знает, как решить эту проблему?спасибо, Майк