IBM Support

IT33175: Managed File Transfer protocol bridge agent generates an FDC when fteShowAgentDetails is run with the -d option

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

 

APAR status

  • Closed as program error.

Error description

  • An IBM MQ V9.1.0.4 protocol bridge agent has been configured
    with a scheduled transfer, which runs periodically to transfer
    files from the file server to a standard agent.
    
    If the:
    
      fteShowAgentDetails -d <agent_name>
    
    command is run for this agent, it returns the following warning
    message:
    
    BFGCL0634W: Diagnostics were requested, but agent '<agent name>'
    is either not running, not located on the local system, or you
    do not have sufficient privileges to run this command.
    
    and the agent generates an FDC containing the information shown
    below:
    
    ------------------------------------------------------------
    Class:      com.ibm.wmqfte.agent.AgentIPCListener
    ........
    Method:     performGetDiagnosticDataCommand
    Probe:      FFDC_003
    Cause:      java.lang.NullPointerException
    java.lang.NullPointerException
    	at
    com.ibm.wmqfte.bridge.authentication.DefaultCredentialExit.mapMQ
    UserId(DefaultCredentialExit.java:340)
    	at
    com.ibm.wmqfte.bridge.authentication.DefaultCredentialExit.invok
    eMapMQUserId(DefaultCredentialExit.java:689)
    	at
    com.ibm.wmqfte.bridge.Bridge.getCredentials(Bridge.java:472)
    	at
    com.ibm.wmqfte.bridge.Bridge.createSession(Bridge.java:343)
    	at
    com.ibm.wmqfte.bridge.utils.BridgeSessionContainer.getSession(Br
    idgeSessionContainer.java:130)
    	at
    com.ibm.wmqfte.bridge.session.BridgeSessionContainerManager.getS
    ession(BridgeSessionContainerManager.java:140)
    	at
    com.ibm.wmqfte.io.bridge.BridgeFileImpl.getSession(BridgeFileImp
    l.java:729)
    	at
    com.ibm.wmqfte.io.bridge.BridgeFileImpl.(BridgeFileImpl.java:141
    )
    	at
    com.ibm.wmqfte.io.bridge.BridgeFileFactoryHelperImpl.newFTEFile(
    BridgeFileFactoryHelperImpl.java:114)
    	at
    com.ibm.wmqfte.io.FTEFileFactory.newFTEFile(FTEFileFactory.java:
    244)
    	at
    com.ibm.wmqfte.cmdhandler.impl.FTETransferItemGenerator.generate
    TransferItemPairs(FTETransferItemGenerator.java:123)
    	at
    com.ibm.wmqfte.cmdhandler.impl.FTECommandHandlerSAXParser$FTEIte
    mHandler.generateItemListPairs(FTECommandHandlerSAXParser.java:9
    12)
    	at
    com.ibm.wmqfte.cmdhandler.impl.FTECommandHandlerSAXParser$FTEIte
    mHandler.endElement(FTECommandHandlerSAXParser.java:765)
    	at
    com.ibm.wmqfte.cmdhandler.impl.FTECommandHandlerSAXParser$FTETra
    nsferSetHandler.endElement(FTECommandHandlerSAXParser.java:537)
    	at
    com.ibm.wmqfte.cmdhandler.impl.FTECommandHandlerSAXParser$FTESAX
    Handler.endElement(FTECommandHandlerSAXParser.java:311)
    	at
    org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
    Source)
    	at
    org.apache.xerces.impl.xs.XMLSchemaValidator.endElement(Unknown
    Source)
    	at
    org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(U
    nknown Source)
    	at
    org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentCo
    ntentDispatcher.dispatch(Unknown Source)
    	at
    org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocume
    nt(Unknown Source)
    	at
    org.apache.xerces.parsers.XML11Configuration.parse(Unknown
    Source)
    	at
    org.apache.xerces.parsers.XML11Configuration.parse(Unknown
    Source)
    	at org.apache.xerces.parsers.XMLParser.parse(Unknown
    Source)
    	at
    org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
    Source)
    	at
    org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown
     Source)
    	at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown
    Source)
    	at
    com.ibm.wmqfte.cmdhandler.impl.FTECommandHandlerSAXParser.parser
    XML(FTECommandHandlerSAXParser.java:1744)
    	at
    com.ibm.wmqfte.scheduler.FTEScheduleData.putProperties(FTESchedu
    leData.java:1090)
    	at
    com.ibm.wmqfte.scheduler.SchedulerDiagnosticData.putProperties(S
    chedulerDiagnosticData.java:68)
    	at
    com.ibm.wmqfte.agent.AgentDiagnosticData.putScheduledTransferPro
    perties(AgentDiagnosticData.java:328)
    	at
    com.ibm.wmqfte.agent.AgentDiagnosticData.generate(AgentDiagnosti
    cData.java:139)
    	at
    com.ibm.wmqfte.agent.AgentIPCListener.performGetDiagnosticDataCo
    mmand(AgentIPCListener.java:167)
    	at
    com.ibm.wmqfte.ipc.AbstractIPCListener.onMessage(AbstractIPCList
    ener.java:62)
    	at
    com.ibm.wmqfte.ipc.IPCServer.onMessage(IPCServer.java:73)
    ------------------------------------------------------------
    

Local fix

  • N/A
    

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    This issue affects users of MQ Managed File Transfer who:
    
    - Have protocol bridge agents configured with one or more
    scheduled transfers.
    - And run the "fteShowAgentDetails -d <agent_name>" to get
    information about that agent.
    
    
    Platforms affected:
    MultiPlatform
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    The fteShowAgentDetails command is used to get information about
    an agent. By default, this command gets the information from the
    coordination queue manager for the Managed File Transfer
    topology that the agent belongs to. However, if the command is
    run on the same machine as the agent and the -d parameter is
    specified, then the command uses interprocess communication
    (IPC) to connect directly to the agent process in order to get
    the information - that information is then written to two
    places:
    
    - The console where the command was run from.
    - A file called
    diagnostics.<yyyyMMdd>.<HHmmss>.<ssss>.<number>.properties in
    the agent's log directory
    (<MQ_DATA_PATH>\mqft\logs\<coordination_qmgr_name>\agents\<agent
    _name>\logs)
    
    More details on the command can be found in the:
    
      fteShowAgentDetails: display MFT agent details
    
    topic in the MQ section of IBM Knowledge Center. The URI for the
    topic in the MQ 9.1.x section of IBM Knowledge Center is:
    https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_9.1.0/com.
    ibm.mq.ref.adm.doc/show_agent_cmd_umb.htm
    
    
    Now, when the fteShowAgentDetails command was run with the -d
    parameter specified, and the specified agent had one or more
    scheduled transfers associated with it, the agent would parse
    the XML containing the scheduled transfer definitions and pick
    out various pieces of information to include in the output. One
    of these pieces of information was the list of transfer items
    that would be be included in the scheduled transfer.
    
    If the agent was a protocol bridge agent, then generating this
    list required it to connect to the file server involved in the
    scheduled transfer. In order to do this, the agent needed to
    work out which user id and password to use when logging in to
    the file server. This information was stored in the agent's
    ProtocolBridgeCredentials.xml file, in the following format:
    
    <tns:server name="<file_server_name>">
      <tns:user name="<MFT_user_id>"
          serverUserId="<file_server_user_id>"
          serverPassword="<file_server_password>">
      </tns:user>
    </tns:server>
    
    where:
    
    - <file_server_name> was the name of the file server, as
    specified in the ProtocolBridgeProperties.xml file for the
    protocol bridge agent.
    - <MFT_user_id> was the MQ user identifier for the user
    associated with the request.
    - <file_server_user_id> was the name of the user identifier on
    the file server which the protocol bridge agent should use when
    logging in.
    - <file_server_password> was the password for the file server
    user identifier.
    
    However, when processing the:
    
      fteShowAgentDetails -d <agent_name>
    
    command, the MQ user identifier was not available. As a result,
    a NullPointerException was generated, which caused:
    
    - The:
    
        fteShowAgentDetails -d <agent_name>
    
    command to fail with the message:
    
    BFGCL0634W: Diagnostics were requested, but agent '<agent_name>'
    is either not running, not located on the local system, or you
    do not have sufficient privileges to run this command.
    
    - An empty file called
    diagnostics.<yyyyMMdd>.<HHmmss>.<ssss>.<number>.properties to be
    created in the agent's log directory
    (<MQ_DATA_PATH>\mqft\logs\<coordination_qmgr_name>\agents\<agent
    _name>\logs)
    
    - An FDC to be generated in the
    <MQ_DATA_PATH>\mqft\logs\<coordination_qmgr_name>\agents\<agent_
    name>\logs\ffdc directory, which contained the following
    information:
    
    ------------------------------------------------------------
    ....
    Class:      com.ibm.wmqfte.agent.AgentIPCListener
    .....
    Method:     performGetDiagnosticDataCommand
    Probe:      FFDC_003
    Cause:      java.lang.NullPointerException
    java.lang.NullPointerException
      at
    com.ibm.wmqfte.bridge.authentication.DefaultCredentialExit.mapMQ
    UserId(DefaultCredentialExit.java:340)
      at
    com.ibm.wmqfte.bridge.authentication.DefaultCredentialExit.invok
    eMapMQUserId(DefaultCredentialExit.java:689)
      at
    com.ibm.wmqfte.bridge.Bridge.getCredentials(Bridge.java:472)
      at com.ibm.wmqfte.bridge.Bridge.createSession(Bridge.java:343)
      at
    com.ibm.wmqfte.bridge.utils.BridgeSessionContainer.getSession(Br
    idgeSessionContainer.java:130)
      at
    com.ibm.wmqfte.bridge.session.BridgeSessionContainerManager.getS
    ession(BridgeSessionContainerManager.java:140)
      at
    com.ibm.wmqfte.io.bridge.BridgeFileImpl.getSession(BridgeFileImp
    l.java:729)
      at
    com.ibm.wmqfte.io.bridge.BridgeFileImpl.<init>(BridgeFileImpl.ja
    va:141)
      at
    com.ibm.wmqfte.io.bridge.BridgeFileFactoryHelperImpl.newFTEFile(
    BridgeFileFactoryHelperImpl.java:114)
      at
    com.ibm.wmqfte.io.FTEFileFactory.newFTEFile(FTEFileFactory.java:
    244)
      at
    com.ibm.wmqfte.cmdhandler.impl.FTETransferItemGenerator.generate
    TransferItemPairs(FTETransferItemGenerator.java:123)
    ....
      at
    com.ibm.wmqfte.agent.AgentDiagnosticData.putScheduledTransferPro
    perties(AgentDiagnosticData.java:328)
      at
    com.ibm.wmqfte.agent.AgentDiagnosticData.generate(AgentDiagnosti
    cData.java:139)
      at
    com.ibm.wmqfte.agent.AgentIPCListener.performGetDiagnosticDataCo
    mmand(AgentIPCListener.java:167)
      at
    com.ibm.wmqfte.ipc.AbstractIPCListener.onMessage(AbstractIPCList
    ener.java:62)
      at com.ibm.wmqfte.ipc.IPCServer.onMessage(IPCServer.java:73)
    .........
    Arg[0]:     Agent threw exception generating diagnostic data
    Arg[1]:
    .........
    ------------------------------------------------------------
    

Problem conclusion

  • To resolve this issue, MQ Managed File Transfer protocol bridge
    agents have been updated so that the information regarding
    scheduled transfers that is generated as a result of the:
    
      fteShowAgentDetails -d <agent_name>
    
    command includes the transfer specifications for the scheduled
    transfers. Because this information is stored within the
    scheduled transfer definition, the protocol bridge agent does
    not need to contact the file server while processing the:
    
      fteShowAgentDetails -d <agent_name>
    
    command, which prevents the NullPointerException mentioned in
    this APAR from occurring.
    
    An example of the output that will be written to the console
    when the:
    
      fteShowAgentDetails -d <agent_name>
    
    command is run for a protocol bridge agent that has scheduled
    transfers associated with it is shown below:
    
    ------------------------------------------------------------
    Schedule 0 Diagnostics:
      Id:                                6
      Job Name:
      Next Trigger Time:                 2020-07-20T16:00+0100
      Occurrences So Far:                0
      Expiry Time:                       2020-07-31T16:00+0100
      Max Occurrences:                   No maximum
      Repeat Interval:                   weeks
      Repeat Frequency:                  1
      Source Agent:                      V91LTSPBA
      Destination Agent:                 V91LTSAGENT1
      Source File:                       FileServer:*.config
      Destination File:                  C:\MFTFiles\Output\
    
    Schedule 1 Diagnostics:
      Id:                                3
      Job Name:
      Next Trigger Time:                 2020-08-15T08:00+0100
      Occurrences So Far:                2
      Expiry Time:                       2022-06-15T08:00+0100
      Max Occurrences:                   No maximum
      Repeat Interval:                   months
      Repeat Frequency:                  1
      Source Agent:                      V91LTSPBA
      Destination Agent:                 V91LTSAGENT1
      Source File:                       FileServer:file1.txt
      Destination File:
    C:\MFTFiles\Output\file1.txt
    
    ------------------------------------------------------------
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v9.1 LTS   9.1.0.7
    v9.2 LTS   9.2.0.1
    
    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

    IT33175

  • Reported component name

    IBM MQ MFT V9.1

  • Reported component ID

    5724H7272

  • Reported release

    910

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2020-06-12

  • Closed date

    2020-07-29

  • Last modified date

    2020-07-29

  • 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 V9.1

  • Fixed component ID

    5724H7272

Applicable component levels

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSYHRD","label":"IBM MQ"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"910","Line of Business":{"code":"LOB36","label":"IBM Automation"}}]

Document Information

Modified date:
30 July 2020