DBAtlas · データベース運用アトラス

40003: statement_completion_unknown

PostgreSQL

意味

トランザクションの結果が不明。トランザクションが完了したか判明する前に (特に COMMIT 中に) サーバーへの接続が切断された。クライアントは変更が永続化されたか確実には判断できない。Class 40 (transaction_rollback) に属する。

原因

COMMIT 送信後、応答到着前にネットワーク切断、サーバークラッシュ、またはフェイルオーバーが発生した。トランザクションはサーバー上で完了している可能性も、ロールバックされた可能性もある。

対処方法

トランザクションを盲目的に再試行しない。まず実際に適用されたか確認する (例: 想定される行を照会する)。トランザクションを冪等に設計し、一意な業務キー/冪等キーを使用する。コネクションプールに堅牢な再接続と検証のロジックを実装する。

DBAtlas で開く →

同じデータベースの他の項目