新規投稿 記事一覧 ホーム
●ご利用方法,ご利用に際しての規約はこちらをお読みください。
こちらからの投稿は、先頭に表示されているコメントへの返信になります。
RE:レコードロックについて IKD さん [ 7月7日(木) 8時15分 ]

    (1)レコード排他的ロックについて
     
        DB2/400データ・ベース・プログラミングの手引き SC88-5326-01

        に記述があるはずですが、このマニュアルは最新ではないかもしれません。
       レコード・レベルの排他的ロックは RPGプログラマーの手引きにも解説はあるはずですし
        RPG解説書の CHAIN や READ にも CHAIN(N) や READ(N) の解説もあるはずです。

        レコード・レベルの排他的ロックの機能については、ほとんどのRPGプログラマーは    ご存知
    であると思います。
        これを意識しておかないと複数ユーザーからの同時更新について考慮することは
        できませんから。

    (2)ファイル・レベルの排他ロックの方法

      確かにファイル・レベルで排他ロックを行いたい場合があります。
        月次更新バッチ・プログラムの実行中に日次の入力を行われると
        整合性が合わなくなってしまいます。
      そこで月次更新のプログラムを実行中は他からの更新を禁じるようにする必要があります。
        これを行うのが ALCOBJコマンドです。
        ALCOBJ コマンドによって他から更新を行わないように、あるいはもっと強く
      読取りさえ禁止させることができます。

        ALCOBJ     OBJ((&FILLIB/&FILE *FILE *SHRUPD))
        MONMSG     MSGID(CPF1000) EXEC(GOTO CMDLBL(ERROR))
         :
        CALL       PGM(CVTS36/PCKILL)
        DLCOBJ     OBJ((&FILLIB/&FILE *FILE *SHRUPD))

        [説明]
        ALCOBJ *SHRUPD で他からの更新プログラムの実行を抑制します。
      もし ALCOBJ を実行するときは先に更新プログラムが実行中であれば
        MONMSG によって更新排他ロックができないことを監視します。
        プログラムの実行が終われば
        DLCOBJ で排他ロックを解放して終了します。

お名前
パスワード
e-mailアドレス
タイトル
ホームページ
アドレス