2017-12-21 14 views
2

PDS全体でENQを取得せずにz/OS USSのPDSメンバーを削除する方法はありますか?私は "tso delete"を試みましたが、データセットの競合について不平を言いました。z/OS USSのPDSメンバーを削除しますか?

+0

USSからやっていますか?また、ENQのようなものは、あなたのGRSセットアップの様子に依存するかもしれないことに注意してください。 –

+0

Kevin McKenzie:はい、私はUSSからやる必要があります。アイデアは、PDSがUSSディレクトリの内容を反映するということです。私は変更されたメンバーをコピーするためにcpコマンドを使用することができますが、私はまだ同じexecでPDSメンバーを削除する方法を知らない。 –

+0

GRS RNLの外観はどうですか? –

答えて

7

ISPF削除サービスを使用する方法もあります。通常、データ・セットを共有として内部ENQを使用して削除してシリアル化します。 hereを参照してください。 UNIX Servicesでは、USSシェルが実行できるREXXスクリプトを作成することができます。このスクリプトでは、ISPEXECのようなものを呼び出すことができます。

IDCAMSを使用することもできます。まず、alloc fi(pds) dataset(dsn) shrのようなPDSデータセットを割り当てます。その後、DELETE 'pds(member)' FILE(pds)のIDCAMSもあなたが望むことをするでしょう。

主に、DISP = SHRでPDSを割り当て、出力用にPDSを開き、DELETEオプションでSTOWを呼び出して、必要なメンバーを削除します。

シリアル化は重要です。共有割り当てで出力するためにPDSを開くと、何をしているかによって破損する可能性があることに注意してください。 ISPFサービスは、DISP = OLD ... DISP = OLDで割り振るよりもきめ細かなシリアライズを実現するENQ(SPFEDIT)を使用してシリアル化します。データセットが割り当てられている間はDISP = OLDが維持され、SPFEDIT ENQはDELETEを実行するのに必要な秒。

+0

アドレスUSS RexxのISPEXECコマンドは、アドレス指定環境について認識していないことを示すRC -3を返します。これは、次のサイトで推奨されているエクスポート・ステートメントを使用しても発生します。https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.2.0/com.ibm.zos.v2r2.bpxa500/tso.htm –

+0

また、すべての順列ALLOCとDELETEのこれまでのところ失敗しました。 –

+0

UNIXシェル・スクリプト内からISPEXECを使用するには、いくつかのトリックがあります。まず、ISPF自体を起動する必要があります(これはISPSTARTを実行するADDRESS TSOです)。 ISPFのインスタンスが実行されると、ADDRESS ISPEXECの項目は正常に動作します。 –

関連する問題