gpt4 book ai didi

java - 从 weblogic Java EE 应用程序运行 Perl 脚本的最佳方式

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:34:23 26 4
gpt4 key购买 nike

我目前在 Weblogic Java EE 项目中工作,应用程序有时会执行 Perl 脚本来执行一些批处理作业。在应用程序中,脚本被调用为

Process p = Runtime.getRuntime().exec(cmdString);

虽然这是一种危险的运行方式,但在我们需要在for循环下同步执行脚本之前,它一直在正常工作。经过几次运行,我们得到java.io.IOException: Not enough space 因为可能操作系统在 for 循环下执行时虚拟内存不足。因此,我们根本无法在服务器中运行该脚本。

我正在拼命寻找一种更安全、更好的方式来运行 Perl 脚本,我们不需要 fork 父进程,或者至少不需要吃掉所有交换空间!

规范如下:

Appserver - Weblogic 9.52  
JDK - 1.5
OS - SunOS 5.10
Sun-Fire-T200

最佳答案

我遇到过几次类似的事情。由于子进程是(非常大的父进程的一个分支,它可以看到它所有共享它的所有内存(使用写时复制)。我发现内核需要能够确保它可以复制所有的在 fork 子进程之前的内存页面,在 32 位操作系统上你用完虚拟头运行得非常快。

可能的解决方案:

  • 使用 64 位操作系统和 JVM,将问题推到目前为止没关系
  • 在另一个进程(如 HTTPD)中托管您的脚本,并使用 HTTP 请求调用它

关于java - 从 weblogic Java EE 应用程序运行 Perl 脚本的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9784543/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com