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

    論理ファイルであっても更新用としてオープンして
    READ や CHAIN 命令でレコードを読取るとそのレコードは
    別の更新プログラムからはレコード・ロックされて読めなく
    なります。(読取り待機 .. 待機時間は CRPF, CRTLF で指定されている時間、
    省略時は 90秒の待機) 

    これは物理レコード単位のレコード・ロックでありしかも今読取った 1レコードのみの
    レコードロックです。(読取りプログラムではロックされず読取ることはできます。)

    物理レコードを排他ロックするのですからそれを基底とするすべての論理ファイルからも
    そのレコードはロックされます。

    あまり知られていないかも知れませんが ILE-RPG では更新用にオープンしているファイルでも
    READ(N) や CHAIN(N) 命令を使うとレコードを読取った時点でレコード・ロックは解除されますので
    ダミーの UPDATE命令や UNLOCK など使用する必要はありません。

    例えば SFLレコードによる更新を例にすると
    更新対象ファイルを READ 命令で読取って SFLレコードに出力するようにRPGを記述すると
    最後に READ 命令で読取ったレコードだけがレコード・ロックとして残ります。
    これは他人とそのファイルを共有して更新作業をやるとなると問題を生じる場合が
    ありますので READ ではなく READ(N) で更新レコードを読むべきでしょう。

    レコード・ロックは 1レコード単位です。
    ひとつのプログラムでひとつのファイルに対して複数のレコードがロックされることは
    ありません。

    レコード・ロックは基本的にそのレコードを更新用に他人と共有してしまったときの
    更新の入れ違いの問題を発生させなくするために必要な機能です。
    在庫レコードであれば引当済み数と引当て可能在庫数の取り合いにおいて
    レコード・ロックの機能がないと在庫が十分ないのに2人の受注者に引当て可能と
    してしまう可能性があります。

    不明な点があればもう一度お問い合わせください。



    RE:レコードロックについて NH さん [ 7月6日(水) 9時29分 ]

      > 論理ファイルであっても更新用としてオープンして> READ や CHAIN 命令でレコードを読取るとそのレコードは> 別の更新プログラムからはレコード・ロックされて読めなく> なります。(読取り待機 .. 待機時間は CRPF, CRTLF で指定されている時間、> 省略時は 90秒の待機) > > これは物理レコード単位のレコード・ロックでありしかも今読取った 1レコードのみの> レコードロックです。(読取りプログラムではロックされず読取ることはできます。)> > 物理レコードを排他ロックするのですからそれを基底とするすべての論理ファイルからも> そのレコードはロックされます。> > あまり知られていないかも知れませんが ILE-RPG では更新用にオープンしているファイルでも> READ(N) や CHAIN(N) 命令を使うとレコードを読取った時点でレコード・ロックは解除されま
      すので> ダミーの UPDATE命令や UNLOCK など使用する必要はありません。> > 例えば SFLレコードによる更新を例にすると> 更新対象ファイルを READ 命令で読取って SFLレコードに出力するようにRPGを記述すると> 最後に READ 命令で読取ったレコードだけがレコード・ロックとして残ります。> これは他人とそのファイルを共有して更新作業をやるとなると問題を生じる場合が> ありますので READ ではなく READ(N) で更新レコードを読むべきでしょう。> > レコード・ロックは 1レコード単位です。> ひとつのプログラムでひとつのファイルに対して複数のレコードがロックされることは> ありません。> > レコード・ロックは基本的にそのレコードを更新用に他人と共有してしまったときの> 更新の入れ違いの問題を発生させなくするために必要な機能です。> 在庫レコードであれば引当済み数と引当て可能在庫数の取り合いにおいて> レコード・ロックの機能がないと在庫が十分ないのに2人の受注者に引当て可能と> してしまう可能性があります。> > 不明な点があればもう一度お問い合わせください。> > > > 

      RE:レコードロックについて NH さん [ 7月6日(水) 9時56分 ]

        レコードロックニついて回答有難うございました。この件についてマニュアルをいろいろ調べましたが質問させて頂いた件についてなかなか適確な情報が見つからなかった為、質問させて頂きました。回答の内容は理解できました有難うございました。ちなみに回答にあるような内容はどこにそのような情報があるのでしょうか?追加質問当社はAS400(i5)を使用して28年になりますが、今回質問させて頂いたレコードロックを考慮せずにプログラムが作成されている為、更新したファイルの一部が変になることがあります。一つのファイルに複数のレコードロックはないことはわかりました。が下記の様な入力プログラムの時はどうしたらよいのでしょうか?入力画面              ファイル商品1        レコード1             商品2        レコード20商品3        レコード30商品4                レコード40この場合 レコード1,20,30,40のレコードに対して他プログラムから更新されないようにロック(更新中)する必要があるのですが、レコードロックは最後の 商品4にしか適用されない為レコードロックの機能は使用できない?解決方法をお教えできないでしょうか?できれば参考コーデイングサンプルでもあれば助かります。

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