我从未见过这个错误。我有一个 GlassFish 应用程序服务器实例,其中有一个(在此之前)完美运行的应用程序。它由几个使用 JMS 进行通信的 Web 应用程序组成。在单例 bean 中运行有计划的计时器任务,它们向另一台服务器发出多个 REST 请求,然后通过 JMS 发送接收到的 JSON。
此时某个地方会发生此异常,并且所有计时器都会被删除。问题是,我从未更改过代码中的任何内容,并且在此之前应用程序运行良好。REST-API 没有改变,任何地方都没有其他异常。
我检查了oracle 文档中的这个错误,但他们只说:
JTS5022 来自日志的意外异常 [{0}]。
解决方案:这是一个意外的内部错误。请联系 Sun 并提供完整的错误日志消息。
[2016-12-13T10:59:00.235+0000] [glassfish 4.1] [严重] [jts.log_error] [javax.enterprise.system.core.transaction.com.sun.jts.CosTransactions] [tid:_ThreadID=450 _ThreadName=__ejb-thread-pool6] [timeMillis: 1481626740235] [levelValue: 1000] [[ JTS5022: 来自日志的意外异常 [{0}]。com.sun.jts.CosTransactions.LogException:LOG004:数据已损坏。在 com.sun.jts.CosTransactions.Log.open(Log.java:172) 的 com.sun.jts.CosTransactions.Log.open(Log.java:172) 的 com.sun.jts.CosTransactions.LogControl.openFile(LogControl.java:541) 的第 12 点记录异常.CosTransactions.CoordinatorLog.openLog(CoordinatorLog.java:1161) 在 com.sun.jts.CosTransactions.CoordinatorLog.formatLogRecords(CoordinatorLog.java:1040) 在 com.sun.jts.CosTransactions.CoordinatorLog.write(CoordinatorLog.java:534) ) 在 com.sun.jts 的 com.sun.jts.CosTransactions.TransactionState.setState(TransactionState.java:732)。
我的理解是有一些日志文件损坏或任何东西。但我什至没有碰它们,它甚至没有说是哪一个。
我非常感谢任何建议。