IBM Support

IT04004: WMQ MFT 7.5 PARALLEL TRANSFER REQUESTS FAIL, ERROR BFGIO0110E, PROTOCOL BRIDGE AGENT MULTIPLE FTP SERVERS DIFFERENT LIST FORMAT

Subscribe

You can track all active APARs for this component.

 

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