リビジョン | e66925140ef041ba0e6fad1737f8d4a00cf1d242 (tree) |
---|---|
日時 | 2022-11-16 00:06:27 |
作者 | yoshy <yoshy.org.bitbucket@gz.j...> |
コミッター | yoshy |
[UPD] DBトランザクションハンドラでコミット・ロールバックが異常終了した場合の処理を改善
@@ -41,7 +41,16 @@ namespace CleanAuLait48.Adaptor.Controller.Handler.tx | ||
41 | 41 | |
42 | 42 | if (!tx.IsTerminated) |
43 | 43 | { |
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 | + } | |
45 | 54 | } |
46 | 55 | else |
47 | 56 | { |
@@ -54,7 +63,17 @@ namespace CleanAuLait48.Adaptor.Controller.Handler.tx | ||
54 | 63 | { |
55 | 64 | if (!tx.IsTerminated) |
56 | 65 | { |
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 | + } | |
58 | 77 | } |
59 | 78 | else |
60 | 79 | { |
@@ -40,7 +40,16 @@ namespace CleanAuLait48.Adaptor.Controller.Handler.tx | ||
40 | 40 | |
41 | 41 | if (!tx.IsTerminated) |
42 | 42 | { |
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 | + } | |
44 | 53 | } |
45 | 54 | else |
46 | 55 | { |
@@ -53,7 +62,17 @@ namespace CleanAuLait48.Adaptor.Controller.Handler.tx | ||
53 | 62 | { |
54 | 63 | if (!tx.IsTerminated) |
55 | 64 | { |
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 | + } | |
57 | 76 | } |
58 | 77 | else |
59 | 78 | { |