2012-03-26 4 views
0

私は以下のjclを使って既存のpsを修正しました。パラメータを変更することができました。私はI/Oエラーが発生しています。psまたはpdsのプロパティを変更するには

// TXXXXXSP JOB(MOD)、 'Pramodさん'、CLASS = A、MSGCLASS = X、MSGLEVEL =(1,1)、

// = & SYSUID
// FIXPDS EXEC PGM NOTIFY = IEBGENER
// SYSPRINT DD SYSOUT = *
// SYSIN DD DUMMY
// SYSUT2 DD DSN = XXXXXX.CREATE.GDG、
// DISP = MOD、SPACE =(TRK、(10,10,0 (RECFM = FB、LRECL = 80、BLKSIZE = 800)
// SYSUT1 DD * SYSUT1 DD *
/*
//

+0

I/Oエラー番号も教えてください。あなたの出力DSNが "GDG"で終わっていることに気づくことはできませんが、あなたはGDGのメンバーを変更しようとしていますか?その場合は、世代番号(相対または絶対)を指定する必要があります。 – NealB

+0

いいえいいえ。そのdsnは、gdgを作成するためにjclを書いたpsファイルです。私はgdgに関連する何もしていない。そして私はエラーを取得しています/私は閲覧、閲覧、ispfでオプション3.4を使用してファイルを編集しようとしたときにエラーが発生しました – Pramod

答えて

7

あなたはDISP = MODを指定することで、データセットの属性を変更しようとしているかのように見えます。 MODの文書化された目的は、データセットが存在し、レコードをレコードの最後に追加するか、新しいデータセットを作成するかを示すことです。

ただし、データセットの属性を変更するために使用できます。あなたのデータセットを簡単に破損する可能性があるので、これを慎重に行う必要があることをお勧めします。たとえば、既存のPSのDCBを変更することは合理的かもしれませんが、PSデータに既にデータが含まれていると、破損する可能性があります。私はこれを試していないが、あなたは16エクステントを渡さないとスペースを増やすことができると信じています。 PSをPDSに再び変更しても、それを再び見ることができるとは思わないと思います。

この主な点はおすすめしていないと思います。リスクを実行するのではなく、自分の仕事を使ってLIKEを使ってデータセットをコピーし、変更したいものを上書きすることができます。その後、古いデータセットを削除して新しいデータセットの名前を古い名前に変更してください。

次の例はメモリから行われているため、構文上の間違いがある可能性があります。 SPACEを指定する必要がありますが、「修正」する必要がない他のパラメーターはすべて削除してください。

例: PS用

//FIXPS EXEC PGM=IEBGENER 
//SYSPRINT DD SYSOUT=*        
//SYSUT1 DD DSN=XXXXXX.CREATE.GDG,DISP=SHR  
//SYSUT2 DD DSN=XXXXXX.CREATE.GDG.NEW, 
//   DISP=(NEW,CATLG,DELETE), 
//   SPACE=(TRK,(10,10,0),RLSE),UNIT=SYSDA, 
//   DCB=(RECFM=FB,LRECL=80,BLKSIZE=800),   
//   LIKE=XXXXXX.CREATE.GDG    

例: PDSのための詳細情報については

//FIXPDS EXEC PGM=IEBCOPY 
//SYSPRINT DD SYSOUT=*        
//SYSUT1 DD DSN=XXXXXX.CREATE.GDG,DISP=SHR  
//SYSUT2 DD DSN=XXXXXX.CREATE.GDG.NEW, 
//   DISP=(NEW,CATLG,DELETE), 
//   SPACE=(TRK,(10,10,0),RLSE),UNIT=SYSDA, 
//   DCB=(RECFM=FB,LRECL=80,BLKSIZE=800),   
//   LIKE=XXXXXX.CREATE.GDG    
//SYSUT3 DD UNIT=SYSDA,SPACE=(TRK,(30,30),RLSE) 
//SYSUT4 DD UNIT=SYSDA,SPACE=(TRK,(30,30),RLSE) 
//SYSIN DD *         
C I=SYSUT1,O=SYSUT2        
/*           

は、JCLのリファレンスマニュアルの第12章でDISPパラメータを参照してくださいhttp://publibz.boulder.ibm.com/epubs/pdf/iea2b6b0.pdf

+0

あなたの貴重な情報ありがとうございました。あなたが最初に言ったことは絶対に正しいことです。私は新しく作成したpsをそれにデータを入れずに修正しようとしましたが、成功しました。しかし、何らかのデータが既に入っているpsを変更するときはいつでも。ファイルが壊れています – Pramod

0

「それはwookieを動揺するのが賢明ではありません。」実際にPDSの属性を変更したいのであれば、実際に問題のライブラリのXバージョンを割り当ててから、すべてのメンバーをコピーしてから比較を実行して、破損しているビットやバイトがないことを確認してください古いライブラリを削除し、新しいライブラリの名前を古い名前に変更します。

関連する問題