我正在开发独立(Swing)Java EE客户端。应用程序服务器是JBoss 6.1.0。一些Windows工作站在客户端运行时冻结,有些则不会。 32位和64位Windows工作站都冻结了,而且一些32位和64位Windows工作站再次完美运行。客户端在Linux上运行良好,没有任何问题。
我已按照StackOverflow的说明操作,人们建议禁用-Dsun.java2d.noddraw=true
的直接绘制。它没有帮助。
最令我困惑的是,有些工作站几乎完全相同 - 相同的Windows版本,相同的图形驱动程序,相同的JRE,但有些工作正常,有些则没有。
应用程序使用Preferences API来存储dockables的各种位置(来自Docking Frames项目),它使用JBoss客户端类。
我正在调查是否可能并发访问Windows注册表导致此问题(如果您遇到类似问题请告诉我)...
首先猜测是在GUI线程的某处发生竞争条件,并且GUI冻结。但这只会冻结GUI,它不应该冻结整个Windows。
机器一旦冻结,就响应ping,但没有Windows服务。
我希望任何提示可以帮助我解决问题。
修改
答案 0 :(得分:1)
试用EventQueue with Watchdog。您在应用程序中安装备用EventQueue。看门狗会告诉您哪些事件会锁定您的GUI。
答案 1 :(得分:0)
原来是ESET。在安装了ESET的每台Windows计算机上,我遇到了这个问题。显然,ESET具有默认启用的“协议跟踪”功能。一旦关闭,我们从未遇到过这个问题。