NEWS

コンパイル時にオブジェクトの入れ替えが出来ない

iWorldトップ フォーラム ここなら聞けます。今さら聞けない基礎知識(初心者向け) コンパイル時にオブジェクトの入れ替えが出来ない

3件の返信スレッドを表示中
  • 投稿者
    投稿
    • #11090
      SPIKA
      参加者

      STRPDMでCL、RPG等について14:コンパイルを行うと、コンパイル自体はエラーなしで通るのですが、「プログラムXXXXXXは作成されなかった」と表示されて、オブジェクトが入れ替わりません。
      WRKACTJOBで確認すると、「置き換えられるオブジェクトとオブジェクトXXXXXXの所有者が同じでない」というメッセージが見られます。
      確かに現状のオブジェクトの所有者とコンパイルをしようとするユーザーは違うのですが、コンパイルをしようとするユーザーは*ALLOBJ権限を持っているので、オブジェクトの入れ替えは可能との認識なのですが、何故か出来ません。
      不思議なのは、POWER9でLPARを2つ作成して、もう片方の区画では上記条件で問題無くオブジェクトは入れ替わります。
      (OSのバージョンは7.4、セキュリティレベル:20です)
      *ALLOBJ権限を持っていても、REPLACE出来ない原因をご教授下さい

    • #11104
      ベストアンサー

      SPICAさん、こんにちは。

      当事象ですが、出ているのは以下のメッセージでしょうか?
      CPF2146
      > 置き換えられるオブジェクトとオブジェクト XXXXXX の所有者が同じでない。

      ~CPF2146 のメッセージから抜粋
      原因−−ライブラリー XXXLIB のオブジェクト XXXXXX タイプ *PGM の所有者が,置き換えられるオブジェクトの所有者と同じではありません。

      QLIRNMO API で作成または名前変更されるオブジェクトは置き換えられるオブジェクトからユーザー・プロファイル (USRPRF) 属性を取るので,これらの所有者は同じでなければなりません。

      置き換えることができるのは,ライブラリー XXXLIB のオブジェクト XXXXXX の現在の所有者だけです。
      ~CPF2146メッセージの抜粋ここまで​

      このメッセージは該当プログラムオブジェクトのユーザー・プロファイル(USRPRF)パラメータが *OWNER の場合に起こります。

      プログラムオブジェクトの確認

      > DSPPGM PGM(プログラム)

      > ユーザー・プロファイルを参照

      プログラムオブジェクトのユーザー・プロファイルパラメータが *OWNER の場合、例え *ALLOBJ を持っていても置き換えができません。そのため、コンパイル前に該当プログラムオブジェクトを削除する必要があるようです。

      また、LPARの別区画では同じことをしても問題なくオブジェクトの入れ替えができる件につきましては、コンパイルしているユーザープロファイル、該当プログラムオブジェクトの所有者、該当オブジェクトのユーザー・プロファイル(USRPRF)パラメータをご確認いただけますでしょうか。

      コンパイルしたユーザープロファイルとプログラムオブジェクト所有者が同じならば、ユーザー・プロファイル(OWNER)パラメータが *OWNER でも置き換え可能です。または、プログラムオブジェクトが *USER の場合は置き換え可能です。

      以上、確認されてみてはいかがでしょうか?

    • #11105
      SPIKA
      参加者

      ご回答いただきまして、ありがとうございました。
      確認した所、
      「ユーザー・プロファイル. . . . . . . . . . . . : *OWNER」
      となっていました。
      ご回答を受け、コンパイルを行いたいユーザープロファイルをグループ化して、オブジェクトのオーナーとした所、オブジェクトを削除しなくてもコンパイル出来る様になりました(^^)
      この度は大変参考になりました。ありがとうございました

      それしても、DELETE、CREATEは出来るのにREPLACEが出来ないって...

    • #11106

      ユーザープロフィールをグループ化してOBJの*OWNERとされたのですね!
      なるほど~~~、こちらも参考になります。

      それにしても、確かに、DELETE、CREATEはできるのにREPLACEできないってなんか残念な感じがありますよね・・・

3件の返信スレッドを表示中
  • トピック「コンパイル時にオブジェクトの入れ替えが出来ない」には新しい返信をつけることはできません。