Я работаю над настройкой нового сервера в тестовой среде, и почти все работает, но Java не может создать новый процесс. Краткая версия архитектуры: Windows 2003, IIS6, ColdFusion 8.0.1 MultiServer с JRun, все 64-битное *.
Запрос ColdFusion вызывает некоторый Java-код, который запускает R (статистический пакет) как собственный процесс, фиксирует полученный stdout / stderr и выполняет с ним дополнительную работу. Кажется, что код Java не запускает R, хотя никаких исключений не возникает. Он проходит через все (через захват stdout / stderr / exitcode), но похоже, что исполняемый файл R не вызывается, в stdout / stderr ничего нет, а Process.exitValue () возвращает 128.
Я исключил R из уравнения и просто попытался получить код для возврата вывода "cmd.exe / c dir", и ничего не изменилось - exitValue () по-прежнему возвращает 128. (* Я использую R 2.10.1, который является только 32-битным, но поскольку я даже не могу запустить cmd.exe, я считаю, что это не имеет значения.)
Я также считаю, что исключил проблемы с доступом / разрешением. AppPool, который использует ColdFusion, настроен для работы как NetworkService, но я даже попытался установить идентификатор для администратора домена, и это не помогло.
Я почти опубликовал это в StackOverflow (и не обижусь, если меня в конечном итоге перенаправят туда), но тот же самый код работает в других очень похожих средах, и это единственная часть нашей системы, которая не работает на новый сервер.
Другие среды, в которых это работает:
Итак, я предполагаю, что мои вопросы следующие:
Итак, мы «решили» эту проблему, убив большое количество процессов JRun. Мы считаем, что проблема тесно связана с проблемами, описанными здесь: http://www.arcanadev.com/support/kb/K00000329.aspx, когда процессу, пытающемуся вызвать java-exec, не хватает доступного пространства кучи рабочего стола или памяти. Очень странно.
На других серверах, где это работает правильно, просто одновременно выполняется меньше экземпляров JRun. Таким образом, мы считаем, что на данный момент наши варианты: (1) иметь меньше запущенных экземпляров JRun, (2) следовать советам из связанной статьи, чтобы увеличить доступное пространство кучи рабочего стола, или (3) обновить до Windows 2008+.