APAR status
Closed as program error.
Error description
An IBM MQ Managed File Transfer agent has been configured with a number of resource monitors. Each monitor polls a different directory looking for files, and submits managed transfer requests to the agent to move the files that they find. Intermittently, the agent generates an FFDC containing the following information: **************************************************************** ******** Class: com.ibm.wmqfte.monitor.management.MonitorWork Method: generateFFDC Probe: FFDC_005 Cause: java.lang.NullPointerException java.lang.NullPointerException at com.ibm.wmqfte.monitor.persist.impl.MonitorPersistStoreImpl.getM onitorMatcherData(MonitorPersistStoreImpl.java:116) at com.ibm.wmqfte.monitor.management.MonitorWork.execute(MonitorWor k.java:340) at com.ibm.wmqfte.monitor.management.MonitorImpl.run(MonitorImpl.ja va:147) at com.ibm.wmqfte.monitor.management.MonitorTimerTask.run(MonitorTi merTask.java:78) at java.util.TimerThread.mainLoop(Timer.java:566) at java.util.TimerThread.run(Timer.java:516) **************************************************************** ******** After the FFDC had been generated, the monitors stop submitting managed transfer requests to the agent.
Local fix
The agent needs to be stopped and restarted once the issue has occurred,
Problem summary
**************************************************************** USERS AFFECTED: This issue affects users of IBM MQ Managed File Transfer, who have agents configured to use resource monitors. Platforms affected: MultiPlatform **************************************************************** PROBLEM DESCRIPTION: The configuration for a resource monitor, along with its history (the list of items it has seen before), are stored in messages on the SYSTEM.FTE.EVENT.<agent name> queue hosted on the agent queue manager. Whenever a monitor performs a poll, it connects to the queue manager and gets the message containing its history from this queue. During the poll, the monitor updates the history contained within the message. At the end of the poll, the monitor puts the message back onto the queue and disconnects from the agent queue manager. The design of the agent means that all resource monitors will use a singleton class when accessing the messages on the SYSTEM.FTE.EVENT.<agent name> queue. The methods on the class are synchronized, which means that only one monitor can access the SYSTEM.FTE.EVENT.<agent name> queue at a time. Now, if an agent lost connectivity to its agent queue manager, it would start "recovery processing". This involved putting all active managed transfers into recovery and stopping all resource monitors. As part of this processing, the agent would remove some internal state related to the connection to the agent queue manager within the singleton class used by resource monitors. If the state was cleared just before a resource monitor started a poll, then when the monitor tried to use it to get messages from the SYSTEM.FTE.EVENT.<agent name> queue, a NullPointerException would occur. The agent would catch the NullPointerException, and generate an FFDC containing the following information: **************************************************************** ******** Class: com.ibm.wmqfte.monitor.management.MonitorWork Method: generateFFDC Probe: FFDC_005 Cause: java.lang.NullPointerException java.lang.NullPointerException at com.ibm.wmqfte.monitor.persist.impl.MonitorPersistStoreImpl.getM onitorMatcherData(MonitorPersistStoreImpl.java:116) at com.ibm.wmqfte.monitor.management.MonitorWork.execute(MonitorWor k.java:340) at com.ibm.wmqfte.monitor.management.MonitorImpl.run(MonitorImpl.ja va:147) at com.ibm.wmqfte.monitor.management.MonitorTimerTask.run(MonitorTi merTask.java:78) at java.util.TimerThread.mainLoop(Timer.java:566) at java.util.TimerThread.run(Timer.java:516) **************************************************************** ******** The NullPointerException would cause the monitor to stop. If the agent subsequently reconnected to the agent queue manager, then the monitor would not be restarted and would no longer submit any managed transfer requests to the agent.
Problem conclusion
To resolve this issue, logic has been added to the singleton class used by resource monitors to ensure that the internal state is valid, and that the singleton class is still connected to the agent queue manager, before trying to use it. If the internal state is null, indicating that the singleton class is no longer connected to the agent queue manager, then an internal exception will be thrown. This causes the agent to go into "recovery processing", if it is not already doing so. --------------------------------------------------------------- The fix is targeted for delivery in the following PTFs: Version Maintenance Level v9.0 LTS 9.0.0.6 v9.1 CD 9.1.2 v9.1 LTS 9.1.0.2 The latest available 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
IT27120
Reported component name
IBM MQ BASE M/P
Reported component ID
5724H7261
Reported release
900
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2018-11-28
Closed date
2019-01-15
Last modified date
2019-01-30
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 BASE M/P
Fixed component ID
5724H7261
Applicable component levels
[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSYHRD","label":"IBM MQ"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"9.0","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]
Document Information
Modified date:
30 January 2019