Java 8网络程序间歇性打印不起作用

时间:2019-02-01 05:03:34

标签: java java-8

我们有一个已经在Java 6上运行了好几年的应用程序。

这是一个GUI,它与服务器通信并接收要自动打印的未经请求的消息,并且对使用Java 8有新的要求。

自从移至Java 8以来,PrintSystem类(一个单独的线程,在App中总共有30个线程)基于查看日志文件而被挂起。 PrintSystem调用win32com.dll(运行Java 8 32位)以发送到LPTCOM端口。

通常情况下,一切正常,但是间歇性失败,当我们尝试捕获日志时,似乎应用程序在最关键的时间停止了日志记录(java.util.logging

我们已经在其中一个工作站上添加了调试信息,并且由于90%的时间一切正常,因此无法隔离问题。

我们在日志中唯一能看到的就是发送到PrintSystem类线程,并且没有响应。自从日志停止记录关键信息以来,这种情况一直发生。

更新:经过一番阅读后:

如果没有足够强的参考,似乎日志记录可能会被GC删除。 Java 8是否可能具有更具攻击性的GC并删除了Logger?还在Java 8中重新编译了代码,但是与Java 6(并与Java 8 JVM一起运行)相比,它的运行方式是否有所不同?

PrintSystem类不是由其他任何类所引用的,而是通过PrintSystem.getInstance()。printMessage(message)来保存的,因此Java 8可能会对该类进行GC处理?

任何建议,谢谢。

0 个答案:

没有答案