2017-03-18 10 views
-2

私は私のプログラムをコンパイルしようとすると、私はこれらのエラーメッセージを取得しています:DDで処理するシーケンシャルデータセット IEW2230S 0414モジュールはNO TEXTを持っていませんがJCL SEVERE MESSAGES

IEW2747S D90CのABEND 013から18が発生しました。
IEW2677S 5130有効なエントリポイントが決定されない可能性があります。
IEW2008I 0F03処理が完了しました。 RETURNのCODE =ここ12

がJCLです:

000100 //IBMP5 JOB (COMPILE),USERID,MSGCLASS=H,REGION=0M,     
000200 //   MSGLEVEL=(1,1),CLASS=A,NOTIFY=&SYSUID      
000300 //******************************************************************* 
000400 //*                 * 
000401 //* THIS JCL WILL COMPILE, LINK-EDIT (BIND) AND RUN A PROGRAM  * 
000402 //*                 * 
000410 //******************************************************************* 
000420 //* COMPILATION STEP             
000430 //*                  
001100 //STEP1 EXEC PGM=IBMZPLI,REGION=1M,PARM=('MACRO,OBJECT,INSOURCE') 
001200 //STEPLIB DD DSNAME=IEL380.SIBMZPRC,DISP=SHR       
001201 //   DD DSNAME=IEL380.SIBMZCMP,DISP=SHR       
001204 //SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(2,1))        
002000 //SYSPRINT DD SYSOUT=*             
002010 //SYSOUT DD SYSOUT=*             
002100 //*                  
002510 //* SOURCE CODE MEMBER             
002520 //*                  
002530 //PLI.SYSIN DD DSN=INVAT.SOURCE(PROG5),DISP=SHR       
002531 //*                  
002532 //* TARGET FOR OBJECT FILE            
002535 //*                  
002536 //SYSLIN DD DSN=INVAT.OBJ(PROG5),DISP=(OLD,PASS),UNIT=SYSALLDA,  
002537 //    SPACE=(CYL,(1,1)),DCB=(LRECL=80,BLKSIZE=800)    
002540 //*                  
002541 //* LINKAGE (BIND) STEP            
002542 //*                  
002550 //STEP2 EXEC PGM=IEWL,REGION=0M          
002560 //SYSLIB DD DSNAME=SYS1.LINKLIB,DISP=SHR        
002570 //   DD DSNAME=CEE.SCEELKED,DISP=SHR        
002580 //SYSLIN DD DSN=INVAT.OBJ(PROG5),DISP=SHR       
002590 //LKED.SYSLMOD DD DSN=INVAT.LOAD(PROG5),DISP=SHR      
002600 //SYSUT1 DD UNIT=SYSALLDA,SPACE=(TRK,(10,10))      
002700 //SYSPRINT DD SYSOUT=*             
002800 //* 
002900 //* EXECUTION STEP              
003000 //*                  
003100 //STEP3 EXEC PGM=PROG5            
003200 //STEPLIB DD DSN=INVAT.LOAD(PROG5),DISP=SHR        
003300 //SYSPRINT DD SYSOUT=*             
003400 //SYSIN DD *               
003800 /*                  
003900 //                  
+3

サイトでPL/Iプログラムをコンパイルするための標準手順を使用するのではなく、独自のJCLを作成するように求められましたか? '//PLI.SYSIN DD DSN = INVAT.SOURCE(PROG5)、DISP = SHR'それは何をするのですか?また、// STEPLIB DD DSN = INVAT.LOAD(PROG5)、DISP = SHR'。 JCLを使い始める場合、PROCを使用しないPROCを使用しているものをハッキングすることはお勧めしません。 –

+0

Billと同意する... PLIと呼ばれるPROCを実行していない場合は、PLI.SYSINはSYSINでなければなりません。あなたが持っている方法では、コンパイラへの入力がないので、出力オブジェクトコードとあなたが得ている異常終了コードはありません。簡単な修正は、PLI.SYSINとLKED.SYSLMODを変更して、procのステップ名(SYSINとSYSLMODだけ)を削除することです。 –

+0

...もう1つのことは、SYSLMOD DD DSN = dataset(member)に何も問題がなく、SYSLINをスキップすることです。デフォルトでは、ENTRYは入力オブジェクト・ファイルの最初のCSECTになり、SYSLMODにメンバー名を指定してからNAMEは必要ありません。 –

答えて

2

通常、(私が今まで見てきたコンパイルJCLのすべてに)SYSLMODは、メンバーが指定されていません。だから、その行は次のようになります。

//SYSLMOD DD DSN=INVAT.LOAD,DISP=SHR 

をし、その下に、あなたはSYSINにメンバーが含まれます:

//LKED.SYSIN DD * 
    ENTRY PROG5 
    NAME PROG5(R) 
/*     

一緒にあなたにこのような何かを与えることすべて:

000100 //IBMP5 JOB (COMPILE),USERID,MSGCLASS=H,REGION=0M,     
000200 //   MSGLEVEL=(1,1),CLASS=A,NOTIFY=&SYSUID      
000300 //******************************************************************* 
000400 //*                 * 
000401 //* THIS JCL WILL COMPILE, LINK-EDIT (BIND) AND RUN A PROGRAM  * 
000402 //*                 * 
000410 //******************************************************************* 
000420 //* COMPILATION STEP             
000430 //*                  
001100 //STEP1 EXEC PGM=IBMZPLI,REGION=1M,PARM=('MACRO,OBJECT,INSOURCE') 
001200 //STEPLIB DD DSNAME=IEL380.SIBMZPRC,DISP=SHR       
001201 //   DD DSNAME=IEL380.SIBMZCMP,DISP=SHR       
001204 //SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(2,1))        
002000 //SYSPRINT DD SYSOUT=*             
002010 //SYSOUT DD SYSOUT=*             
002100 //*                  
002510 //* SOURCE CODE MEMBER             
002520 //*                  
002530 //PLI.SYSIN DD DSN=INVAT.SOURCE(PROG5),DISP=SHR       
002531 //*                  
002532 //* TARGET FOR OBJECT FILE            
002535 //*                  
002536 //SYSLIN DD DSN=INVAT.OBJ(PROG5),DISP=(OLD,PASS),UNIT=SYSALLDA,  
002537 //    SPACE=(CYL,(1,1)),DCB=(LRECL=80,BLKSIZE=800)    
002540 //*                  
002541 //* LINKAGE (BIND) STEP            
002542 //*                  
002550 //STEP2 EXEC PGM=IEWL,REGION=0M          
002560 //SYSLIB DD DSNAME=SYS1.LINKLIB,DISP=SHR        
002570 //   DD DSNAME=CEE.SCEELKED,DISP=SHR        
002580 //SYSLIN DD DSN=INVAT.OBJ(PROG5),DISP=SHR       
002590 //SYSLMOD DD DSN=INVAT.LOAD,DISP=SHR      
002600 //SYSUT1 DD UNIT=SYSALLDA,SPACE=(TRK,(10,10))      
002700 //SYSPRINT DD SYSOUT=*   
     //LKED.SYSIN DD * 
      ENTRY PROG5 
      NAME PROG5(R) 
     /*           
002800 //* 
002900 //* EXECUTION STEP              
003000 //*                  
003100 //STEP3 EXEC PGM=PROG5            
003200 //STEPLIB DD DSN=INVAT.LOAD(PROG5),DISP=SHR        
003300 //SYSPRINT DD SYSOUT=*             
003400 //SYSIN DD *               
003800 /*                  
003900 //  

これが役立つかどうか試してみてください。

EDIT:

あなたが不足しているし、最終的にこのJCLを固定し、何が私がリンクエディット(LKED)ステップ(ENTRYおよびNAMEのための1行に1行)に追加SYSINラインでした。基本的にはリンク編集ステップ(コンパイルの最後のステップであり、コンパイルされたコードをloadlibにコピーする責任がある)がコンパイルしようとしていたプログラムのエントリ名や名前を知らなかった。 SYSINを指定しましたが、SYSINが空であったため、モジュールにテキストがないというエラーが表示されました。

+0

WOW!完璧に働いた。助けてくれてありがとう。私は現時点でトレーニング中であり、このJCLのものは私の頭痛です。 – Adi

+0

あなたは何を、なぜあなたがそれをしたのかについて細かいことを教えていただけたら、それは私のためにたくさんのことを意味するでしょう。 – Adi

+1

病気の編集私の答えは数分で詳細は – SaggingRufus