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

更新前の状態が表示される

コメント

8件のコメント

  • Tanda

    親のトランザクションモードと子のトランザクションモードは、それぞれどのような設定になっていますか?特に子タスクの設定が大きな要因となります。

  • 木村敏史

    子タスクはトランザクションモード:W=親と同一 トランザクション開始:P=レコード前の前です。

    トランザクションは親に倣うものとばかり思っておりましたが、違いましたでしょうか?

    ちなみにDBはMSSQLです。

  • Tanda

    子タスクのトランザクションモードが「親と同一」であれば、親がコミットされるまでは通常では他の端末からは見えないはずですね。ただし、DBMSの分離レベルの設定がどこかでダーティリードの設定になっていると、トランザクション中のデータも他の端末から見えることになります。問題は、その設定がどこでなされているかなのですが、何か心当たりはありませんか?DBMS側の設定も含めてです。

  • 木村敏史

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

    親のトランザクションモードをP=物理からD=遅延にしたらそうなりました。

    確かに遅延はそのように使うものだと言われればそうかも知れません。

    ただ、unipaasではP=物理でもそうなっていたので、気になります。

    物理から遅延にした場合に注意しなければならないことは何かございますでしょうか?

    DBMSはunipaas、xpaとも同じものを使用してチェックしたのでDBMSの違いではなさそうです。

    unipaasとxpaの違いはデータベース特性のデータベース情報にONLINE_ARRAY_FETCHING=N LimitLinkToSingleFetch=Nと記述しています(xpa側)

  • 木村敏史

    すいませんでした。その通りでした。

    unipaasはDBMS特性の分離レベルが1になっていました。

    ご面倒をお掛けしました。

  • Tanda

    親が「物理」で子が「親と同一」であれば、子が終了してもDB側のトランザクションはコミットされていませんので、そうなりますね。

    「物理」を「遅延」にしたら他の端末から見えたとすると、DB側ではなく、Magic側のダーティリード(キャッシュ)が効いているという動作になりますね。

    遅延はトランザクションもキャッシュも、すべてがMagicの配下で動作しますので、いろいろな設定ができます。

    マジック社主催の「RIAトレーニング(3日間)」では、これらについて徹底的に解説してくれていますので、そのセミナーを受講されるのもいいかもしれませんね。

  • Tanda

    > unipaasはDBMS特性の分離レベルが1になっていました。

    やはり、分離レベルの設定だったんですね。よかったです。

    マジック社主催のRIAトレーニング(3日間)では、この分離レベルについても徹底的に解説してくれていますので、超お勧めですよ。

  • Tanda

    分離レベル「0」は、俗に「ダーティリード」とか呼ばれているのですが、個人的な考えでは「ダーティ」どころか、「クリア」って感じな透明性がありますね。

    Magicもこちらをデフォルトにしているわけですから。

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