ZFileException fopen failed ERRNO=92 ERRNO2=0xc00b0163

General discussion on the JZOS batch launcher and toolkit
Post Reply
bilbozos
Posts: 18
Joined: Wed Jan 18, 2006 5:53 am

ZFileException fopen failed ERRNO=92 ERRNO2=0xc00b0163

Post by bilbozos »

Hello,

I'm running a Java class with JZOS 1.2.3 (yes a bit old, but we're planning to upgrade). Until that happens, while running my Java class with that version on SDK 1.4.2 I get the following exception:

Code: Select all

com.dovetail.jzos.ZFileException: //DD:MSGFILE: fopen failed - EDC5092I An I/O abend was trapped. ERRNO=92 ERRNO2=0xc00b0163 LAST_OP=43 ABEND_CODE=0x13 ABEND_RC=225
The Java class tries to open for append a dataset where it saves the data received. That dataset already exists before the Java program starts.

This is how the dataset is declared in the MSGFILE DD:

Code: Select all

//MSGFILE  DD DSN=my.data.set,DISP=(MOD,KEEP),
//            VOL=SER=WEBPRO,UNIT=SYSDA,
//            DCB=(LRECL=8644,BLKSIZE=43224,RECFM=VB),
//            SPACE=(CYL,(1,1),RLSE)
This is how the Java class tries to open the dataset:

Code: Select all

OutputFileFactory.newBufferedWriter(filename, true);
I've looked up that error in the USS reason codes but I don't understand the explanation that goes with reason code 0x0163.

I've also looked up the error EDC5092I in "z/OS XL C/C++ Programming Guide", but I haven't been able to find exactly the meaning of those ERRNO and ERRNO2 codes.

Please, anybody out there can give me a hint?

Thanks in advance.
dovetail
Site Admin
Posts: 2022
Joined: Thu Jul 29, 2004 12:12 pm

Post by dovetail »

Errno/Errno2 codes are a complete mess in z/OS.

In this case, the key information is probably the abend 0X13 with RC=225 (0xE0).

If you trace this down in z/OS Messages and Codes, it says that there was an OPEN error with this reason:

=============================================
E1
A magnetic tape data set with a block size greater than 32 760 is being opened for input or output extend processing, but the large block interface is not being used.
==============================================

You don't seem to be using a tape, but I do notice that your blocksize is > 32K. You might try a block size under 32K, like 27998.

If you think that this is a defect, then your only choice would be to open a problem with IBM: the JZOS library uses the IBM C library fopen() call for this function.

It could be that the C library doesn't support blocks larger than 32K.
According to the C/C++ Programmer's Guide, CH 10 : "fopen()/freopen() parameters":

"Sequential disk files for any format have a maximum BLKSIZE of 32760"
bilbozos
Posts: 18
Joined: Wed Jan 18, 2006 5:53 am

ZFileException fopen failed ERRNO=92 ERRNO2=0xc00b0163

Post by bilbozos »

"Sequential disk files for any format have a maximum BLKSIZE of 32760"
Yes, you were right. I've used a lower value for BLKSIZE (25936) and now it works.

Thanks a lot.
Post Reply