Websphereで動作するJavaプログラムがあり、ストレートjdbc(HibernateまたはJPAなし)を使用するOracleデータベースが使用されています。私たちの顧客は、HP Performance Centerのを使用して負荷テストをやっている、と彼は負荷Oracle例外でjvmスレッド・ダンプをトリガーする方法はありますか?
Caused by: java.sql.SQLException: ORA-00060: deadlock detected while waiting for resource
の下に時折Oracleの「デッドロック」の例外を取得しています、コード内または外部のいずれか、あなたをダンプしたスレッドと同じ種類のを強制する方法はありますこの例外が発生したときにkill -3
jvmを取得しますか?
+1;私はちっぽけなものを発見したとき、小さな電球が起こったことを覚えています。 –
'kill -3'は各スレッドのスタックトレースと同様に、各スレッドが獲得して待機しているロックに関する情報を持っています。 'Thread.getAllStackTraces()'にもそれがありますか? –
@Paul Tomblin:そうは思わない。 * findDeadlockedThreads *メソッドを使用してデッドロックを検出しています(この呼び出しをサポートするJVM上)。 –