アーティクル - CS247546
Windchill でスレッド セーフの問題を処理する方法
修正日: 09-May-2023
適用対象
- Windchill PDMLink 6.2 to 12.1
説明
- スレッド セーフティの問題とは (並行性の問題または競合状態とも呼ばれます)
- Windchill システムで高い一定の CPU 使用率が観察される
- 1 つ以上のスレッドが、スレッド セーフではないオブジェクト (例: HashMap、
- Windchill からキャプチャされたスレッド ダンプを見ると、ハングしたスレッドは次のルールで特定できます。
- スタック トレースは、コードが現在非スレッド セーフ オブジェクト (例: HashMap、HashSet、ArrayList) にアクセスしていることを示しています。
- CPU ユーザー時間は、最後の状態以降に費やされた時間の量だけ増加しています (つまり、この量の CPU リソースが利用できない場合、1 CPU の 100% またはそれ以下)。
- バイト割り当て値は時間の経過とともに進化していません
- 操作が完了しない
- 以下は、2 つの後続のスレッド ダンプのキャプチャを通じて確認できる、問題の 1 つの典型的な発生の進化を示す例です。
- HashMap.getEntry で問題のあるスレッドを示す最初のスレッド ダンプの抜粋:
"ajp-bio-8011-exec-6" Id=129 デーモン prio=5 RUNNABLE
ブロックされた (cnt): 35714;待機 (連続): 32780
CPU ナノ: 256245725053586;ユーザーナノ: 254639820000000;割り当てられたバイト数: 558960941120
サーブレット要求: 10gd6vh;ihca5tzc;16546;ov2qsw;3024310;メソッドのコンテキスト: 10gd6vh;ihca5tzc;16546;ov2qsw;3024313
java.util.HashMap.getEntry (HashMap.java:469) で
java.util.HashMap.containsKey (HashMap.java:453) で
com.ptc.wvs.server.loader.PartGenericStructure.getNextSiblingNumber (PartGenericStructure.java:2138) で
ブロックされた (cnt): 35714;待機 (連続): 32780
CPU ナノ: 256245725053586;ユーザーナノ: 254639820000000;割り当てられたバイト数: 558960941120
サーブレット要求: 10gd6vh;ihca5tzc;16546;ov2qsw;3024310;メソッドのコンテキスト: 10gd6vh;ihca5tzc;16546;ov2qsw;3024313
java.util.HashMap.getEntry (HashMap.java:469) で
java.util.HashMap.containsKey (HashMap.java:453) で
com.ptc.wvs.server.loader.PartGenericStructure.getNextSiblingNumber (PartGenericStructure.java:2138) で
- 問題のあるスレッドがまだ HashMap.getEntry の呼び出しにあることを示す 2 番目のスレッド ダンプの抜粋。 CPU ナノ/ユーザー ナノのみが増加していることを確認します。割り当てられたバイトに変化はありません。 100% の CPU を使用しているため、時間は通常、2 つのスレッド ダンプの間に経過した時間だけ増加します。
"ajp-bio-8011-exec-6" Id=129 デーモン prio=5 RUNNABLE
ブロックされた (cnt): 35714;待機 (連続): 32780
CPU ナノ: 256257725053586;ユーザーナノ: 254651820000000;割り当てられたバイト数: 558960941120
サーブレット要求: 10gd6vh;ihca5tzc;16546;ov2qsw;3024310;メソッドのコンテキスト: 10gd6vh;ihca5tzc;16546;ov2qsw;3024313
java.util.HashMap.getEntry (HashMap.java:469) で
java.util.HashMap.containsKey (HashMap.java:453) で
com.ptc.wvs.server.loader.PartGenericStructure.getNextSiblingNumber (PartGenericStructure.java:2138) で
ブロックされた (cnt): 35714;待機 (連続): 32780
CPU ナノ: 256257725053586;ユーザーナノ: 254651820000000;割り当てられたバイト数: 558960941120
サーブレット要求: 10gd6vh;ihca5tzc;16546;ov2qsw;3024310;メソッドのコンテキスト: 10gd6vh;ihca5tzc;16546;ov2qsw;3024313
java.util.HashMap.getEntry (HashMap.java:469) で
java.util.HashMap.containsKey (HashMap.java:453) で
com.ptc.wvs.server.loader.PartGenericStructure.getNextSiblingNumber (PartGenericStructure.java:2138) で
最新バージョンはこちらを参照ください CS247546