0

スタンドアロン (Swing) Java EE クライアントを開発中です。アプリケーション サーバーは JBoss 6.1.0 です。一部の Windows ワークステーションは、クライアントの実行中にフリーズしますが、フリーズしないものもあります。32 ビットと 64 ビットの両方の Windows ワークステーションがフリーズしますが、一部の 32 ビットと 64 ビットの Windows ワークステーションは完全に動作します。クライアントは Linux 上で問題なく動作します。

私は StackOverflow の指示に従って、直接描画を無効にすることを提案しました-Dsun.java2d.noddraw=true。役に立ちませんでした。

私が最も困惑しているのは、一部のワークステーションがほぼ同一であることです。同じ Windows バージョン、同じグラフィックス ドライバー、同じ JRE ですが、一部はうまく機能し、一部は機能しません。

このアプリケーションは、Preferences API を頻繁に使用して、(ドッキング フレーム プロジェクトからの) ドッキング可能オブジェクトのさまざまな位置を保存し、JBoss クライアント クラスを使用します。

Windowsレジストリへの同時アクセスがこの問題を引き起こしている可能性があるかどうかを調査中です(同様の問題があった場合はお知らせください)...

最初の推測は、GUI スレッドのどこかで競合状態が発生し、GUI がフリーズしたというものでした。しかし、それは GUI だけをフリーズさせ、Windows 全体をフリーズさせるべきではありません。

フリーズしたマシンは ping に応答しますが、Windows サービスは動作しません。

問題の解決に役立つヒントがあれば幸いです。

編集:

  • CPU 使用率は常に約 10% です。
  • スレッド数が 30 を超えることはありませんが、すべてのスレッドがデーモン スレッドであるとは限りません (これには AWT スレッド、RMI スレッドなどが含まれます)。
4

2 に答える 2

1

Watchdog で EventQueue を試してみてください。アプリケーションに代替 EventQueue をインストールします。Watchdog は、GUI をロックしているイベントを通知します。

于 2012-10-02T19:20:48.003 に答える
0

ESETであることが判明しました。ESET がインストールされているすべての Windows マシンで、この問題が発生しました。どうやらESETには、デフォルトでオンになっているこの「プロトコル追跡」機能があります。オフにすると、この問題は発生しませんでした。

于 2012-11-22T17:57:58.477 に答える