メインコンテンツへスキップ

バッチタスクの処理が途中で飛ばされる?

コメント

14件のコメント

  • Tanda

    tagamiさん、

    バッチタスクは並列に並んでいるのでしょうか、それとも階層的に繋がっているのでしょうか?

     

  • tagami

    ご返信ありがとうございます。

    並列に並んでいる

  • tagami

    状況です。

    途中送信になり、失礼しました

  • Tanda

    tagamiさん、

    トランザクションの設定を調べてみてはいかがでしょうか?

    バッチタスクが親タスクのトランザクションの配下に入っていると、親のタスクが終了するまでバッチ更新の内容はコミットされませんので、並列上にある別タスクからトランザクション中のデータを除き見ても、途中のデータしか見えないはずです。

    バッチタスクのトランザクションを親タスクから切り離してもよいのであれば、トランザクションをネストにして、サブタスクごとにコミットにしてやればいいですよ。

     

  • tagami

    tanda様

    お忙しいところご返信ありがとうございます。

    まずは、トランザクションのあたりを確認してみようと思います。

     

  • E_y

    データベースは何を使用されていますか。

  • tagami

    投稿いただき、ありがとうございます。

    データベースは、SQL Serverを使っています。

  • E_y

    Pervasiveのトランザクションを使っていた時に

    ページロックでtagamiさんが言われている様な現象で苦しめられた事がありましたので確認させていただきました。

  • Pu

    こんにちはPuです
    自分が遭遇した時は「イベント=yes」になっていたと言う初歩的なミスでした(^^)/
    でわ~でわ~

  • tagami

    コメントありがとうございます。

    似たような事例の方がいらして、ホッとしました。

    そこも見てみます

  • 水野雅仁

    タスク特性のイベント割り込みがYesだとこういう現象が起きると思います。

  • tagami

    みなさま、ありがとうございます。

    トランザクションおよびタスク特性の「イベント可」をNoにして、しばらく様子をみてみます。

    大変助かりました。

  • Tanda

    tagamiさん、

    バッチが並列に並んでいるということでしたら、それぞれのバッチが途中で干渉して割り込むということはないはずですよ。最初に確認させていただいた通りですよ。

  • Tanda

    > バッチタスクのトランザクションを親タスクから切り離してもよいのであれば、トランザクションをネスト
    > にして、サブタスクごとにコミットにしてやればいいですよ。

    この方法をぜひ試してみてください。

サインインしてコメントを残してください。