Symfoware ServerのCOMMIT文実行時のエラー(SQLSTATE:40003、または40705)について

INSERT文でレコードを挿入後にCOMMIT文を実行したところ、「SQLSTATE:40003」というエラーになったため、INSERT文を再実行したところ、同一レコードが2件格納されていました。 原因と対処方法を教えてください。
[原因]
COMMIT文実行時、サーバやネットワーク負荷の影響により、サーバ側のCOMMIT処理が完了するタイミングとクライアント側でのJYP1002Uエラー(タイムアウト、または通信エラー)検出がほぼ同時で行われた可能性があります。
この場合、最初のINSERT文は有効になっているため、INSERT文を再実行したことで同一レコードが2件格納されます。

[対処方法]
COMMIT文で以下のエラーが発生した場合、トランザクションで処理していたデータベースの内容を参照し、トランザクションがコミットされたのか、ロールバックされたのかを確認し、トランザクションで実施していた操作を再実行するかどうかを判断してください。
・SQLSTATE=40003 文終了不明(処理時間オーバまたは強制終了)
・SQLSTATE=40705 Connection Managerの強制終了

[補足] “40”で開始される SQLSTATEはトランザクション・ロールバックとSQL規格で定義されていますが、“40003”、“40705”の場合は実行したSQL文が完了したかどうか不明の状態を意味します。
製品・サービス区分 Symfoware
製品・サービス情報
アンサー種別 -
このページの先頭へ