|
|
| Author |
Message |
dejunzhu
Active User
Joined: 08 May 2008 Posts: 268 Location: China
|
|
|
|
I submitted the following job:
| Code: |
//* -------------------------------------------------------------
//CRE01 EXEC PGM=IKJEFT01,DYNAMNBR=20
//STEPLIB DD DSN=DSN.DSNLOAD,DISP=SHR
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD DSN=EV6954.CTRL(SQLOUT),DISP=(MOD,CATLG)
//SYSUDUMP DD SYSOUT=*
//OUTPUT DD SYSOUT=*,RECFM=FBA,LRECL=133,BLKSIZE=665
//SYSTSIN DD *
DSN SYSTEM(DSN)
RUN PROGRAM(DSNTEP2) PLAN(DSNTEP2) LIB('DSN.RUNLIB.LOAD')
END
/*
//SYSIN DD DSN=EV6954.CTRL(SQL),DISP=SHR |
In the above job, input and output d/s is specified as
| Code: |
//SYSIN DD DSN=EV6954.CTRL(SQL),DISP=SHR
|
| Code: |
//SYSPRINT DD DSN=EV6954.CTRL(SQLOUT),DISP=(MOD,CATLG) |
After I run the job the first time, I can browse the output D/S smoothly, but when I want to browse the input d/s, "I/O ERROR" message appeared, and no matter how I try, I cannot access the D/S.
Can anybody please tell me how this happened, and how to resolve this problem? |
|
| Back to top |
|
 |
References
|
|
 |
enrico-sorichetti
Global Moderator
Joined: 14 Mar 2007 Posts: 5397 Location: italy
|
|
|
|
| Code: |
| //SYSPRINT DD DSN=EV6954.CTRL(SQLOUT),DISP=(MOD,CATLG) |
disp=mod for a PDS member might be the reason
run some tests to verify it |
|
| Back to top |
|
 |
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 4257 Location: Atlanta, GA
|
|
|
|
I don't do DB2, but I can read manuals. The z/OS UDB for DB2 manual, which I found via a Google search, says in the section on running DSNTEP2 and DSNTEP4:
| Quote: |
| Define all data sets as sequential data sets. |
I suspect the I/O error is occurring because the data set was accessed as a sequential file, which completely blows a PDS and causes I/O errors from then on. The only resolution I'm aware of is to restore from back up or rebuild from scratch. |
|
| Back to top |
|
 |
dejunzhu
Active User
Joined: 08 May 2008 Posts: 268 Location: China
|
|
|
|
I believe I have found the reason for it.
the input file is defined to a length of 80 bytes
| Code: |
| //SYSIN DD DSN=EV6954.CTRL(SQL),DISP=SHR |
but if SYSPRINT is defined to a D/S, the length of the D/S MUST be a length of 134 BYTES.
| Code: |
| //SYSPRINT DD DSN=EV6954.CTRL(SQLOUT),DISP=(MOD,CATLG) |
I checked the length of 'EV6954.CTRL' after the job submitted, and find the length has been changed from 80 bytes to 134 bytes.
And this is probably the reason for 'I/O ERROR'.
If I define the D/S: EV6954.CTR with a length of 134 Bytes, the error disappeared.
Thanks for your replys. |
|
| Back to top |
|
 |
|
|
|