Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

12.4.4. ヒューリスティックな結果

ヒューリスティックな結果、または非アトミックな結果は、トランザクションの異常です。これは、一部のトランザクション参加者が状態をコミットし、他の参加者がロールバックした状況を指します。ヒューリスティックな結果により、状態に一貫性がなくなります。
通常、ヒューリスティックな結果は、2 フェーズコミット (2PC) プロトコルの 2 番目のフェーズで発生します。多くの場合、これは基盤のハードウェアまたは基盤のサーバーの通信サブシステムの障害によって引き起こされます。
ヒューリスティックな結果には 4 種類あります。
ヒューリスティックロールバック
一部またはすべての参加者が一方的にトランザクションをロールバックしたため、コミット操作が失敗しました。
ヒューリスティックコミット
参加者のすべてが一方的にコミットしたため、ロールバック操作に失敗します。たとえば、コーディネーターが正常にトランザクションを準備したにも関わらず、ログ更新の失敗などでコーディネーター側で障害が発生したため、ロールバックの実行を決定した場合などに発生します。暫定的に、参加者はコミットすることを決定することができます。
ヒューリスティック混合
一部の参加者がコミットし、その他の参加者はロールバックした状態です。
ヒューリスティックハザード
一部の更新の結果は不明です。既知のものについては、すべてコミットされているか、すべてロールバックされています。
ヒューリスティックな結果が起こると、システムの整合性が保たれなくなることがあり、通常、解決に人的介入が必要になります。ヒューリスティックな結果に依存するようなコードは記述しないようにしてください。