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

Pan*_*edi 2 java apache-fop websphere-liberty

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

And*_*ert 5

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

  1. 在server.xml中进行的配置更改,触发应用程序重新启动
  2. 所述<applicationMonitor/>元件找到一个应用程序的改变时,它轮询的更新时,或者当应用监视器MBean接收更新请求.

在你的情况下可能发生的是场景#2.您的应用程序中可能正在将输出写入扩展的应用程序目录,并且默认的应用程序监视器设置(每500ms轮询一次更新)正在将此输出作为应用程序更改进行拾取,从而触发重新启动.

所以你有两个选择来解决这个问题:

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