1

我们有一个带有 with one的weblogic服务器10.0实例。每个星期一早上 5 点(或几秒钟后),它会自行关闭。除了以下消息外,日志不显示任何错误:clustermanaged server

JVM called WLS shutdown hook. The server will force shutdown now.

JVM 有一个-Xnohup选项并使用JRockit. 服务器上没有 cron 作业。我不确定如何调试这个。管理服务器继续运行没有问题,我能够启动托管服务器备份没有问题。任何帮助是极大的赞赏。

更新:
我尝试使用-Djrockit.waitonerror,但 JVM 没有暂停。我还在之前或几分钟之前在日志中看到以下“恐慌”消息。CharScanner; panic: ClassNotFoundException: org.antlr.stringtemplate.language.ChunkToken. 在某种诊断运行期间看起来像这样:

<Diagnostics> <BEA-320140> <Scheduling data retirement tasks as per configuration.>

谢谢。

4

2 回答 2

2

与 weblogic 的 antlr 版本和已部署应用程序(war)中使用的版本冲突。将该战争包含在一个 ear 文件中,并将一个 weblogic-application.xml 文件放入 META-INF 中,其中包含以下内容:

<weblogic-application xmlns="http://www.bea.com/ns/weblogic/90" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">      
<prefer-application-packages>
    <package-name>antlr.*</package-name>
</prefer-application-packages> 

于 2010-03-23T18:45:04.810 回答
2

由于您使用的是-Xnohup选项,JVM 很可能没有收到操作系统信号。尽管如此,某些事情正在触发关闭(并且它以非常规律的时间间隔发生的事实表明这是一个自动化的过程)。

尝试应用这篇文的第二个建议(我认为这实际上来自支持):

如果即使在尝试上述选项后问题再次出现,那么您能否应用以下方法 JAVA_OPTION

  • 根据 JVM 版本,可能会在进程退出之前获得线程转储

    • HotSpot 支持命令行选项-XX:+ShowMessageBoxOnError

    • 对应的 JRockit 选项是-Djrockit.waitonerror

    • 当 JVM 宕机时,它可能会提示用户:“您要调试问题吗?”

    • 这会暂停 JVM,从而为生成线程转储(JVM 中每个线程的堆栈跟踪)、附加调试器或执行其他一些调试活动创造了机会。

要生成线程转储,我认为您必须删除该-Xnohup选项(这应该不是问题,因为它没有帮助)。这对分析很有帮助。

还要打开一个案例,支持人员可能对此有更多意见(您不是唯一面临此问题的人,请参阅下面提到的线程)。


以防万一,看看WebLogic Server 自动关闭(任何看门狗进程 OOMKiller 正在运行?)和JVM 称为 WLS 关闭挂钩。服务器现在将强制关闭

于 2010-03-17T22:38:48.863 回答