APAR status
Closed as program error.
Error description
An IBM MQ Managed File Transfer (MFT) for z/OS agent is acting as the destination agent for managed transfers. While trying to write data to a sequential data set, the agent ABENDs unexpectedly with a B37-04 condition.
Local fix
Problem summary
**************************************************************** USERS AFFECTED: This issue affects users of: - IBM MQ 9.1 Managed File Transfer for z/OS - IBM MQ 9.2 Managed File Transfer for z/OS - IBM MQ 9.3 Managed File Transfer for z/OS who have MQ Managed File Transfer (MFT) destination agents running on z/OS that are writing data into sequential data sets. Platforms affected: z/OS **************************************************************** PROBLEM DESCRIPTION: MQ Managed File Transfer (MFT) agents running on z/OS use the JZOS Toolkit to access data sets. The toolkit itself acts as a thin layer between Java applications and the underlying z/OS Language Environment (LE) which interacts with the mainframe's file system - when the agent calls a method on a class provided by the toolkit, such as ZFile.write(byte[]), it delegates that call down to the LE for processing. Here is a simple diagram that shows this relationship: MQ Managed File Transfer agent on z/OS |-----> JZOS Toolkit |-----> Language Environment (LE) |-----> Data set Now, when the issue reported in this APAR occurred, the following sequence of events had taken place: - An MFT agent running on the mainframe had received a request for it to act as the destination agent for a managed transfer to a sequential data set. - In order to access the data set, the agent created a new JZOS ZFile object passing in an options string similar to the example below: "wb,recfm=FB,blksize=27840,lrecl=320,noseek" - When constructing the ZFile object, the JZOS Toolkit called the LE function fopen() passing in the options string. - The LE opened the data set using the specified options, and returned a handle to it to the JZOS toolkit. - JZOS stored the handle in the ZFile object, and then returned that object back to the agent. - After writing some data to the data set using the ZFile object, the agent then called the JZOS method com.ibm.jzos.ZFile.close(). - This resulted in the JZOS Toolkit calling the LE function fclose(). - While processing the fclose() function, the LE determined that there was some buffered data stored in control blocks which needed to be written to the data set. - However, the LE was unable to write the data because the sequential data set was out of extents. - Because the data set was not opened with the: "abend=recover" option specified, the LE generated an ABEND with a B37-04 condition - this was the expected behaviour, as documented in the "fopen() and freopen() parameters" topic in the z/OS 2.x sections of the IBM Documentation site. The URI for this topic in the z/OS 2.3.0 section of the IBM Documentation site is https://www.ibm.com/docs/en/zos/2.3.0?topic=files-fopen-freopen- parameters. - As a result, the MFT agent process stopped unexpectedly.
Problem conclusion
To resolve this issue, MQ Managed File Transfer agents running on z/OS have been updated so that: - If the agent is acting as the destination agent for a managed transfer - And it needs to write data to a data set then it will include the option: "abend=recover" when the data set is opened. This means that the Language Environment (LE) will try to handle any out of space conditions that might occur when writing data to the data set (such as a lack of extents) gracefully and return an error back to the JZOS Toolkit, which in turn will pass an exception back to the agent. As a result, the agent will mark managed transfers as "Failed" with supplementary information similar to the example shown below if an out of space condition occurs: BFGTR0072E: The transfer failed to complete due to the exception : <data set name>: BFGIO0069E: A write failed. The data set may be out of space fwrite() failed; EDC5065I A write system error was detected.; errno=65 errno2=0xc03e0002 last_op=151 errorCode=0xb370004; EDC5065I A write system error was detected.; errno=65 errno2=0xc03e0002 last_op=151 errorCode=0xb370004 abend(syscode=0xb37 rc=0x4) --------------------------------------------------------------- The fix is targeted for delivery in the following PTFs: Version Maintenance Level v9.1 LTS 9.1.0.15 v9.2 LTS 9.2.0.10 v9.3 LTS 9.3.0.5 v9.x CD 9.3.3 The latest available MQ maintenance can be obtained from 'WebSphere MQ Recommended Fixes' http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg27006037 If the maintenance level is not yet available information on its planned availability can be found in 'WebSphere MQ Planned Maintenance Release Dates' http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg27006309 ---------------------------------------------------------------
Temporary fix
Comments
APAR Information
APAR number
PH51546
Reported component name
IBM MQ MFT Z/OS
Reported component ID
5655MF900
Reported release
910
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2022-12-18
Closed date
2023-01-17
Last modified date
2023-01-17
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
IBM MQ MFT Z/OS
Fixed component ID
5655MF900
Applicable component levels
[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSYHRD","label":"IBM MQ"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"910","Line of Business":{"code":"LOB45","label":"Automation"}}]
Document Information
Modified date:
18 January 2023