• R/O
  • HTTP
  • SSH
  • HTTPS

コミット

タグ
未設定

よく使われているワード(クリックで追加)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

コミットメタ情報

リビジョン8dacfb73e4b2cecda2d358d2920b4e11891fce92 (tree)
日時2022-11-16 00:36:36
作者yoshy <yoshy.org.bitbucket@gz.j...>
コミッターyoshy

ログメッセージ

[UPD] DBトランザクションハンドラでコミット・ロールバックが異常終了した場合の処理を改善

変更サマリ

差分

--- a/Adaptor/Controller/Handler/Tx/AbstractAsyncDbTransactionHandler.cs
+++ b/Adaptor/Controller/Handler/Tx/AbstractAsyncDbTransactionHandler.cs
@@ -41,7 +41,16 @@ namespace CleanAuLait48.Adaptor.Controller.Handler.tx
4141
4242 if (!tx.IsTerminated)
4343 {
44- tx.Commit(false);
44+ try
45+ {
46+ tx.Commit(false);
47+ }
48+ catch (Exception e)
49+ {
50+ logger.Error(e, "トランザクション境界 [{0}] のコミットに失敗しました。", name);
51+
52+ throw;
53+ }
4554 }
4655 else
4756 {
@@ -54,7 +63,17 @@ namespace CleanAuLait48.Adaptor.Controller.Handler.tx
5463 {
5564 if (!tx.IsTerminated)
5665 {
57- tx.Rollback(false);
66+ try
67+ {
68+ tx.Rollback(false);
69+ }
70+ catch (Exception e)
71+ {
72+ logger.Error(e, "トランザクション境界 [{0}] のロールバックに失敗しました。", name);
73+ // force terminate transaction
74+ tx.TerminateTransaction();
75+ // ignore exception
76+ }
5877 }
5978 else
6079 {
--- a/Adaptor/Controller/Handler/Tx/AbstractDbTransactionHandler.cs
+++ b/Adaptor/Controller/Handler/Tx/AbstractDbTransactionHandler.cs
@@ -40,7 +40,16 @@ namespace CleanAuLait48.Adaptor.Controller.Handler.tx
4040
4141 if (!tx.IsTerminated)
4242 {
43- tx.Commit(false);
43+ try
44+ {
45+ tx.Commit(false);
46+ }
47+ catch (Exception e)
48+ {
49+ logger.Error(e, "トランザクション境界 [{0}] のコミットに失敗しました。", name);
50+
51+ throw;
52+ }
4453 }
4554 else
4655 {
@@ -53,7 +62,17 @@ namespace CleanAuLait48.Adaptor.Controller.Handler.tx
5362 {
5463 if (!tx.IsTerminated)
5564 {
56- tx.Rollback(false);
65+ try
66+ {
67+ tx.Rollback(false);
68+ }
69+ catch (Exception e)
70+ {
71+ logger.Error(e, "トランザクション境界 [{0}] のロールバックに失敗しました。", name);
72+ // force terminate transaction
73+ tx.TerminateTransaction();
74+ // ignore exception
75+ }
5776 }
5877 else
5978 {