When I try to precompile my COBOL application, using by running SUB on a JCL file, I get this error:
19.30.05 JOB08639 $HASP165 ZUSER13A ENDED AT SVSCJES2 - JCL ERROR CN(INTERNAL)
I've tried looking online with no success. Does anyone know what this is referring to?
Here is my JCL file
000001 //ZUSER13A JOB NOTIFY=&SYSUID
000002 //*--------------------------------------------------------------------*
000003 //* PRECOMP - PRECOMPILE THE COBOL PROGRAM *
000004 //* YOU SHOULD CHANGE ZUSER26 TO YOUR OWN TSO USERID *
000005 //* YOU SHOULD CUSTOMIZE THE FOLLOWING LIBRARIES WITH HELP OF TEACHER *
000006 //*--------------------------------------------------------------------*
000007 //*--------------------------------------------------------------------*
000008 //* THE FOLLOWING 8 SYMBOLIC PARAMETERS SHOULD BE SET BY YOURSELF *
000009 //* ? (1) DB2LOAD - THE DB2 LOAD LIBRARY *
000010 //* ? (2) WSPC - THE SIZE FOR TEMPARARY DATA SET *
000011 //* ? (3) DASD - THE UNIT VALUE FOR DASD *
000012 //* ? (4) SRC - THE COBOL SOURCE PROGRAM LIBRARY *
000013 //* ? (5) CPY - THE COBOL COPYBOOK LIBRARY *
000014 //* ? (6) DBRM - THE DBRM LIBRARY FOR DB2 BIND PROCESS *
000015 //* ? (7) MID - THE MODIFIED COBOL SOURCE CODE LIBRARY *
000016 //* ? (8) TRAN - THE TRANSACTION/FUNCTION MODULE NAME *
000017 //*--------------------------------------------------------------------*
000018 // SET DB2LOAD=ZUSER13.DB2.LOAD
000019 // SET WSPC=500
000020 // SET DASD=SYSDA
000021 // SET SRC=ZUSER13.DB2.SRC
000022 // SET CPY=ZUSER13.DB2.CPY
000023 // SET DBRM=ZUSER13.DB2.DBRM
000024 // SET MID=ZUSER13.DB2.MID
000025 // SET TRAN=OPACCT
000026 //*------------------------------------------------------------------*
000027 //* PRECOMPILE THE COBOL PROGRAM *
000028 //* RETURN CODE SHOULD BE 4 OR LESS *
000029 //*------------------------------------------------------------------*
000030 //PC EXEC PGM=DSNHPC,REGION=4096K,
000031 // PARM=('HOST(IBMCOB)',APOST,APOSTSQL,SOURCE,XREF,'STDSQL(NO)')
000032 //STEPLIB DD DISP=SHR,DSN=&DB2LOAD
000033 //SYSCIN DD DISP=SHR,DSN=&MID(&TRAN)
000034 //SYSPRINT DD SYSOUT=*
000035 //SYSTERM DD SYSOUT=*
000036 //SYSUDUMP DD SYSOUT=*
000037 //SYSUT1 DD SPACE=(800,(&WSPC,&WSPC),,,ROUND),UNIT=&DASD
000038 //SYSUT2 DD SPACE=(800,(&WSPC,&WSPC),,,ROUND),UNIT=&DASD
000039 //SYSIN DD DISP=SHR,DSN=&SRC(&TRAN)
000040 //SYSLIB DD DISP=SHR,DSN=&CPY
000041 //DBRMLIB DD DISP=SHR,DSN=&DBRM(&TRAN)
000042 //
I am wondering if your JOB card is valid. You have:
//ZUSER13A JOB NOTIFY=&SYSUID
the JCL Job card format is:
//jobname JOB (accounting-info),name,keyword-parameters
The jobname is required, you have that: ZUSER13A
The keyword JOB is where it should be. So far so good...
You do not have any accounting-info. Depending on your installation this may or may not be required (it often is). The format for accounting-info is installantion defined so you will have to ask someone about it. Note the parenthesis are optional only if the accounting-info does not contain an imbedded comma or other special characters.
Next there must be a comma if there is anything else specified on the job card. This is not optional and may be the cause of your problem.
Following the comma should be some sort name enclosed in quotes. For example 'PRECOMP'. There may be installation specific rules for this too.
Next there must be another comma if any keyword-parameters are to be included on the job card.
Finally, you may specify keyword parameters such as NOTIFY=. I am unsure whether substitution parameters such as &USERID would be valid here unless the job were submitted under a started task. Since you are using SUB to submit the job (under TSO?) the &USERID may not work for you either. Try hardcoding your user-id.
Often the quickest way to work out what a job card must contain is to look at a piece of JCL that actually did work when submitted under TSO - then copy the job card!