2

本番環境での GDG 生成の問題に直面しました。

新しい世代は STEP 2 で作成されます。

//INP DD DSN=sample.test(+1),  
//      DISP=(,CATLG,KEEP),                     
//       SPACE=(CYL,(50,20),RLSE),               
//       DCB=(RECFM=FB,LRECL=1020,BLKSIZE=4080)  

STEP3で同じ世代を参照している:

//step3 exec PGM=SORT                               
//SORTIN   DD DSN=sample.test(+1),    
//            DISP=SHR                                 
//SORTOUT  DD DSN=xxxx.yyyy,     
//            DISP=(NEW,CATLG,DELETE),                 
//            UNIT=(SYSDA,9),DCB=(RECFM=FB,LRECL=132), 
//            SPACE=(CYL,(50,20),RLSE)     

私はこのように与えましたが、JCL エラーで失敗します。

なぜこれが失敗するのか、誰でも助けてくれますか?

理論によると、ジョブは一度だけ完了します。0 番目のバージョンを参照する必要があります。同じジョブでは、+1 バージョンで参照する必要があります。ステップ 3 で 0 番目のバージョンに変更した場合、ジョブは正常に実行されました。

4

4 に答える 4

1

メッセージ番号IEFを指定する必要があります…INPステップのデフォルトの配置はNEWであるため、メッセージはデータセットがすでに存在することを示します。デッキの他のステップが表示されない場合、支援するのは困難です。

于 2012-10-26T21:18:40.787 に答える
1

GDGについてのあなたの考えは正しいです。この場合、GDG を作成するステップが失敗するか、COND / IF ステートメントが原因でスキップされるか、ステップ2 で GDG が開かれない (非 SMS ???) と、JCL エラーが発生します。 test(+1) は存在しません。JCL エラー (データセットを割り当てられないなど) を引き起こす可能性は他にもありますが、これが最も可能性が高いと思います。完全な JCL / エラーメッセージがリストされていると簡単です

考えられる解決策は 2 つあります (ほとんどの場合、オプション 1 または 2を選択します) 。

  1. ステップ 2 の前にIEBGENER step1a を追加して GDG を作成します。これにより、GDG が確実に作成されます。

  2. ステップ 3 に cond を追加します。

    //step3 exec PGM=SORT,COND=(0,NE)

  3. disp を DISP=(,CATLG,CATLG) に変更します (ステップが失敗した場合)

    //INP DD DSN=sample.test(+1),
    // DISP=(,CATLG,CATLG),

    ジョブが失敗した場合に出力が必要な場合は、オプション 2 のみを選択してください。

DISP=(,CATLG,KEEP) を DISP=(,CATLG)、DISP=(,CATLG,DELETE) または DISP=(,CATLG,CATLG) のいずれかに変更します。昔は、KEEP はカタログ化されていないデータセットを作成することを許可していました。

または、SMS が問題になる場合があります。

于 2013-05-13T02:32:47.003 に答える
0

どの DD ステートメントがエラーであるかについての情報が限られているため、正確な問題を解釈することは困難です。あなたの例での +1 の使用に関して、あなたは正しい考えを持っていると思います。それがあなたのエラーの問題だとは思いません。

エラーは、//INP DD ステートメントでの最初の DD の KEEP の異常処理にあると思われます。実際には、ステップ 2 が正常に実行された場合にのみカタログ化される新しい gdg データセットを作成するよう求めています。ステップ 2 でジョブが異常終了した場合は、システム カタログにまだ登録されていないGDG データセットの KEEP をシステムに要求しています。このシナリオでは、DISP=(,CATLG,CATLG) が //INP DD ステートメントのより適切なコーディングになると思います。

通常、データセットがすでに存在し、保持する必要がある場合は、KEEP を使用します。

ただし、ショップが SMS 管理のデータセットを使用している場合、すべての SMS 管理のデータセットをカタログ化する必要があるため、KEEP は CATLG として扱われます。そのような状況である場合、この回答はあなたの特定の状況には当てはまらない可能性があります。SMSがここでの要因であることは、あなたの例からは見えません。

于 2013-05-12T23:24:56.277 に答える
0

間違った GDG インデックスを使用しています。(0) インデックスを使用して、最後に追加されたデータセットを GDG に参照する必要があります。

(+1) は、新しいデータセットを GDG に追加する必要があることを示します。

詳細: IBM 世代別データ セットの取得

于 2012-10-27T13:41:20.400 に答える