应用程序在Websphere Liberty Profile上神秘地重新启动

时间:2017-01-03 07:53:28

标签: java websphere-liberty apache-fop

我们的应用程序在WLP 16.0.0.2上运行。最近,我们看到一旦使用Apache FOP 2.1的代码完成执行,应用程序就会重新启动。该代码有望生成一个成功的PDF。我们在日志中看不到任何内存转储或任何其他类型的错误,异常。当用于在Tomcat 8上运行的应用程序时,相同的代码段工作正常。尝试常规的Heap Size和PermGen调整没有帮助。

1 个答案:

答案 0 :(得分:5)

应用程序重启可以由Liberty中的两件事触发:

  1. 在server.xml中进行的配置更改,触发应用重启
  2. <applicationMonitor/>元素在轮询更新时或应用程序监视器MBean收到更新请求时发现应用程序更改。
  3. 您的情况可能发生的情况是情景#2。您的应用程序中可能正在将输出写入扩展的应用程序目录,并且默认的应用程序监视器设置(每500ms轮询一次更新)正在将此输出作为应用程序更改进行拾取,从而触发重新启动。

    所以你有两种方法可以解决这个问题:

    1. (推荐)将应用程序更改为在扩展的应用程序目录
    2. 之外的某处写入输出
    3. 将此文件放入server.xml中禁用应用程序监控:
          <applicationMonitor updateTrigger="mbean"/>
      注意:将应用程序监视设置为mbean将导致丢弃应用程序无法启动,除非您在WDT中运行。