ホーム   フォーラム   FAQ
 
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

タスクがアボートされた場合

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています
depth:
0
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2016-11-2 15:00
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に処理がいかないように改修していこうとしているところです。。。

よろしくお願いします。
投票数:1 平均点:10.00
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2016-11-2 15:28 | 最終変更
nkmt  長老   投稿数: 1668
Magicがこけた、Windowsがこけた という事ではないという事なのでしょうね。

子タスクA に
イベント イベントタイプ R=エラー  スコープ=サブツリー
を定義して、親タスクに配置した エラー変数に値をセット

なんていうのはいかがでしょうか?

という私もこれでいいのか自信ありません。

あとそれにプラスして
Rollbackも実行してもいいのかもしれないですね。
投票数:0 平均点:0.00

  条件検索へ


Copyright (C) Magic Software Japan K.K. All Rights Reserved.
個人情報保護方針 会員規約