IBM Support

IT27120: MFT Agent generates an FFDC from MonitorWork indicating that a NullPointerException occurred.

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 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":"BU050","label":"BU NOT IDENTIFIED"},"Product":{"code":"SSYHRD","label":"IBM MQ"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"9.0","Edition":""}]

Document Information

Modified date:
30 January 2019