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":"LOB45","label":"Automation"}}]
Document Information
Modified date:
30 July 2020