レコードデッドロックの実務経験(ロック待ちタイムアウトを超過し、トランザクションを再起動してみてください)

問題の経緯

私が最初に新会社の近くに来たときに、ビジネスはまだ慣れていないので、私は、既存のシステムのリーダーシップを維持するために配置されました。おそらくプロジェクトの背景に導入、プロジェクトがプロジェクトBには、サードパーティのビジネスとの対話、プロジェクトAにおけるBセクションのプロジェクトインタフェースとコール・インタフェースBプロジェクトAプロジェクトとプロジェクトのコアビジネスを呼び出すための要求は、フロントエンドの打ち上げに分かれていますデータを取得する呼び出す第三者(たとえば、レガシーシステムの設計)。

更新操作が行われた場合(ユニークキーを持つ)は、サードパーティのデータベースレコードかどうかを判断するためのデータを取得した後、新しいものではありません。第三者がデータの有効期限が切れている、あなたは、データベースから(墓石)を削除し、コールバックを削除するには成功した第三者を返却する必要があると考えられる場合や、フォローアップのデータは、もはや有効期限が切れたことはありません。

次のように示すフローチャートに対応

ハンドルが一意のインデックスに基づいて取引を加えた全体のプロセスに@Transactionalコメントは、データ消去の時にバンクをロックすることで、コード(廃棄、実際のステートメントを更新)。Bロック待ちタイムアウトを超過生産頻出アイテムでは、機能コードを見つけるために調査により、トランザクションの例外を再起動してみてください、コードの調査は、以下の機能コードことがわかりました

経験豊富な学生はすでに、例外はそれがロールバックロールバックを実行しないように、例外を取得することができませんでしトランザクション@キャッチ飲み込んであるため、グローバル例外キャプチャ、ログのエラーが、ここでキャッチに問題の嘘があるだろう、問題が表示されるはずですリードは、データベースの行ロックによって占有されています。そのため(ここでは例外は、サードパーティのインターフェースは、あまりにも多くの場合、サードパーティのインターフェースの崩壊を呼び出すことによる失敗呼び出すことです、フォローアップここで同時実行制御を行っている)が故障のためのロックと待機の欠如にアップデート銀行のレコードを実行する後続のトランザクション、彼らが報告ロック待ちタイムアウトを超え、取引の例外を再起動してみてください。

  

2.問題の影響

このインタフェースは、クライアントが開始した呼であり、デッドロックがTomcatのサポート要求スレッドの限られた数のために、フロントエンドプロジェクトA要求ブロッキング、多数のその結果、結果を返すことができないので、Bは、コアプロジェクトA、Bプロジェクトのプロジェクトを投影呼び出すためこの問題のサービスのダウンタイムの直接の結果。影響はより深刻です。

 

解決方法3。

この問題解決のアイデアこと、Aプロジェクトのダウンタイム、サーバーログが異常に多くの情報を見ることができるので、ロック待ちの下にはロック問題があることを示しています。

  。使用はINFORMATION_SCHEMA.INNODB_TRX SELECT * FROM;ビュー時事問題を、INFORMATION_SCHEMA.INNODB_LOCKS SELECT * FROMを使用して、ビュー現在のロックのトランザクションを、INFORMATION_SCHEMA.INNODB_LOCK_WAITS SELECT * FROMを使用して、現在のロックおよびその他の事項を表示します。3の上を使用してコード位置SQL実質的に位置決めすることができます。

  B.は、コードを配置した後、コードはロールバックされていない例外につながる多くの理由の具体的な問題に依存します。IOExceptionのSQLExceptionは、ロールバックをトリガしないだろうとしながら、使用@Transactionalアノテーションは、デフォルトのRuntimeExceptionのみ、ロールバックされることをここで注意してください。あなたは二つの非操作例外にしたい場合は、バック@Transactionalの必要性を巻いている(rollbackForClassName = {「IOExceptionが」、「のSQLException」})は、グローバルまたは異常@Transactional例外ではロールバック@Transactionalを設定してください(rollbackFor = Exception.class)。別の後または手動でのRuntimeExceptionキャプチャIOExceptionをスロー

  

概要

  上記同様の問題をここに記録実用的な仕事にブロガーが遭遇する問題は、すぐに見つけて未来を容易にするために、問題を解決することができます。私はあなたが私たちを助けることができると思います。

 

おすすめ

転載: www.cnblogs.com/menglong1108/p/11919273.html