从IIS6运行的Javasubprocess返回退出值128,没有stdout / stderr

我正在testing环境中build立一个新的服务器,几乎一切正常,但Java似乎无法创build一个新的进程。 体系结构的简短版本:Windows 2003,IIS6,带有JRun的ColdFusion 8.0.1 MultiServer,一切都是64位*。

一个ColdFusion请求调用一些运行R(统计包)的Java代码作为本地进程,捕获得到的stdout / stderr,并做一些额外的工作。 Java代码似乎没有启动R,尽pipe没有抛出exception。 它贯穿所有事情(通过捕获stdout / stderr / exitcode),但是它似乎没有调用R可执行文件,stdout / stderr中没有任何内容,并且Process.exitValue()返回128。

我把R拿出来,试图让代码返回“cmd.exe / c dir”的输出,没有任何改变 – exitValue()仍然返回128.(*我使用R 2.10.1,这是只有32位,但因为我甚至不能运行cmd.exe我相信这是不相关的。)

我也相信我排除了访问/权限问题。 ColdFusion使用的AppPool设置为以NetworkService身份运行,但我甚至尝试将身份设置为域pipe理员,但没有任何帮助。

我几乎把这张贴到StackOverflow(如果我最终redirect到那里,不会被冒犯),但是这个完全相同的代码在其他非常相似的环境中工作,这是我们的系统中唯一不能工作的部分新的服务器。

其他工作环境:

  • Win2003,IIS6,CF801 MultiServer,JRun,全部32位,testing
  • Win2008,IIS7,CF801 MultiServer,JRun,全部64位,testing
  • Win2003,IIS6,CF801 MultiServer,JRun,全部64位,正式生产

所以我想我的问题如下:

  • 有没有其他人在调用本地进程的Java服务器端应用程序中看到(或更好地修复)这种行为?
  • 除了额外的日志logging(我已经尝试过)之外,还可以尝试其他哪些疑难解答或诊断步骤?

所以我们通过杀死大量的JRun进程来“解决”这个问题。 我们认为这个问题与这里描述的问题密切相关: http : //www.arcanadev.com/support/kb/K00000329.aspx ,进程试图调用java的可执行文件超出了可用的桌面堆空间或内存。 很奇怪。

正常工作的其他服务器只有较less的JRun实例同时执行。 所以我们认为我们现在的select是(1)运行的JRun实例更less,(2)遵循链接文章的build议来增加可用的桌面堆空间,或者(3)升级到Windows 2008+。