A fix is available
APAR status
Closed as program error.
Error description
A WebSphere MQ Managed File Transfer (MFT) protocol bridge agent is created and used with multiple FTP and/or FTPS file servers. The file servers in use have a different "List Format". For example: - FTP Server 1: unix - FTP Server 2: windows When multiple concurrent transfer requests are submitted to this WebSphere MQ MFT protocol bridge agent that use a mixture of the different FTP servers, then some of the requests can fail with the error BFGIO0110E.
Local fix
To use a protocol bridge agent with multiple FTP servers, make sure all the them have the same "List Format".
Problem summary
**************************************************************** USERS AFFECTED: This issue affects users of: - The WebSphere MQ V7.5 Managed File Transfer component - The WebSphere MQ V8.0 Managed File Transfer component who have configured a Protocol Bridge Agent to use a ProtocolBridgeProperties.xml file that contains entries for two or more FTP or FTPS servers, where: - The entry for at least one FTP or FTPS Server has the listFormat attribute set to "unix" - The entry for at least one FTP or FTPS Server has the listFormat attribute set to "windows" Platforms affected: MultiPlatform **************************************************************** PROBLEM DESCRIPTION: The Protocol Bridge Agent makes use of internal utility classes whenever it needs to create a connection to an FTP or FTPS Server. For every Protocol Bridge Agent, there is one instance of a utility class that handles connections to FTP Servers, and another instance of a utility class that is used whenever connections are made to FTPS Servers. When a connection needs to be created, the Protocol Bridge Agent used to perform the following steps: 1) Update the utility class with details of the properties of the FTP or FTPS Server it wants to connect to. These properties were read from the Protocol Bridge Agent's ProtocolBridgeProperties.xml file and included: - The connection timeout to use when connecting to the Server. - The maximum number of sessions that can be created to the Server. - The format of the data returned by the Server in response to LIST commands. The hostname and port for the Server are part of these properties, but are stored by the utility class. 2) Start a new internal thread. 3) The internal thread then used the open source Apache Commons Net library to establish a session with the FTP or FTPS Server. When the session was created, the Apache Commons Net library registered a parser with the session which would be used to process any responses sent back by the Server. The properties of the parser were determined by the properties of the Server that were stored in the utility class. If the ProtocolBridgeProperties.xml properties file being used by a Protocol Bridge Agent contained entries for multiple FTP or FTPS Servers, and the entries for the Servers in the properties file contained: - At least one entry for an FTP or FTPS Server that had the listFormat attribute set to "unix". - At least one entry for an FTP or FTPS Server that had the listFormat attribute set to "windows" then the following sequence of events could occur: 1) The Protocol Bridge Agent received a request to act as the Source Agent for a transfer involving FTP Server 1, where FTP Server 1 had the listFormat attribute set to "unix". 2) The Protocol Bridge Agent loaded up the utility class with the properties of this FTP Server. 3) The Protocol Bridge Agent then contacted a Destination Agent to check if the transfer could be performed. 4) While waiting for the Destination Agent to respond, the Protocol Bridge Agent received a request to act as a Destination Agent for a transfer involving FTP Server 2. The entry for FTP Server 2 in the ProtocolBridgeProperties.xml file used by the Agent had the listFormat attribute set to "windows". 5) The Protocol Bridge Agent stored the properties of this FTP Server (including the attribute "listFormat=windows") in the utility class. 6) The Procotol Bridge Agent then received a response from the Destination Agent, indicating that the transfer could proceed. 7) The Protocol Bridge Agent started a new internal thread. The thread used the Apache Commons Net library to open a session with FTP Server 1 and register a parser with the session using the properties stored in the utility class. However, these properties were the properties for FTP Server 2 and so the parser was set up to expect responses to a LIST command to be in a windows format. 8) After opening a session with FTP Server 1, the internal thread used the Apache Commons Net library to issue an FTP LIST command to check if the source file existed on FTP Server 1. 9) FTP Server 1 responded to the LIST command using a unix format. 10) The Apache Commons Net library tried to parse the response using a "windows" parser, as the "listFormat" attribute in the utility class had the value "windows" when the Protocol Bridge Agent connected to FTP Server 1. 11) As the Apache Commons Net library was unable to parse the response from FTP Server 1, it passed back information to the internal thread indicating that the source file could not be found on the FTP Server. This caused the transfer to fail with the error "BFGIO0110E File "" does not exist."
Problem conclusion
The Protocol Bridge Agent has been updated so that the internal utility class now maintains a data structure which contains entries for all of the FTP and FTPS Servers that have been defined in the Protocol Bridge Agent's ProtocolBridgeProperties.xml file. Each entry contains: - The name of the FTP or FTPS Server. - The properties associated with that Server, as specified in the ProtocolBridgeProperties.xml file. When the Protocol Bridge Agent needs to establish a session with an FTP or FTPS Server, it will: - Look up the entry for that Server in the data structure maintained by the utility class. - Get the properties of that Server. - Use the Apache Commons Net library to open a session with the Server, and register a parser with the session using the properties that have just been read out of the data structure. This ensures that the parser which is registered has the correct "listFormat" for the FTP or FTPS Server that the Protocol Bridge Agent is connecting to, and means that the Apache Commons Net library is able to correctly process the responses to any LIST commands that the Server sends back. --------------------------------------------------------------- The fix is targeted for delivery in the following PTFs: Version Maintenance Level v7.5 7.5.0.5 v8.0 8.0.0.2 The latest available FTE maintenance can be obtained from 'Fix List for WebSphere MQ File Transfer Edition 7.0' http://www-01.ibm.com/support/docview.wss?uid=swg27015313 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
IT04004
Reported component name
WMQ FTE
Reported component ID
5724H7242
Reported release
750
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2014-08-25
Closed date
2014-11-10
Last modified date
2014-11-10
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
WMQ FTE
Fixed component ID
5724H7242
Applicable component levels
R750 PSY
UP
[{"Line of Business":{"code":"LOB45","label":"Automation"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSFKSJ","label":"WebSphere MQ"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.5"}]
Document Information
Modified date:
23 September 2021