タスクがアボートされた場合
tomato
投稿数: 27
初歩的でいまさらな質問ですが教えてください。
以下のようなタスクがあります。親タスクが 子タスクAや孫タスクAがアボート(レコードロックの解除待ちのリトライ時間が過ぎたなど)されたことを知る仕組みはありますか?
親タスク(P=物理、N=なし、N=なし、A=アボート)
┣子タスクA(P=物理、T=タスク前の前、I=即時、A=アボート)
┃ ┗孫タスクA(P=物理、T=タスク前の前、I=即時、A=アボート)
┗子タスクB(P=物理、T=タスク前の前、I=即時、A=アボート)
子タスクAが失敗しても子タスクBに処理が進んでしまいますので、子タスクAのタスク後で処理成功フラグをTrueすることで子タスクBに進んでよいか判定するしかないでしょうか。訳があって子タスクAと子タスクBは別トランザクションでないといけません。
恥ずかしい話、magicを20年近く触っているのに、孫がこけても親タスクまでアボートされると思っていました。子タスクBに処理がいかないように改修していこうとしているところです。。。
よろしくお願いします。
以下のようなタスクがあります。親タスクが 子タスクAや孫タスクAがアボート(レコードロックの解除待ちのリトライ時間が過ぎたなど)されたことを知る仕組みはありますか?
親タスク(P=物理、N=なし、N=なし、A=アボート)
┣子タスクA(P=物理、T=タスク前の前、I=即時、A=アボート)
┃ ┗孫タスクA(P=物理、T=タスク前の前、I=即時、A=アボート)
┗子タスクB(P=物理、T=タスク前の前、I=即時、A=アボート)
子タスクAが失敗しても子タスクBに処理が進んでしまいますので、子タスクAのタスク後で処理成功フラグをTrueすることで子タスクBに進んでよいか判定するしかないでしょうか。訳があって子タスクAと子タスクBは別トランザクションでないといけません。
恥ずかしい話、magicを20年近く触っているのに、孫がこけても親タスクまでアボートされると思っていました。子タスクBに処理がいかないように改修していこうとしているところです。。。
よろしくお願いします。
投票数:1
平均点:10.00
投稿ツリー
-
タスクがアボートされた場合
(tomato, 2016-11-2 15:00)
- Re: タスクがアボートされた場合 (nkmt, 2016-11-2 15:28)