IBM Support

IT44567: MFT agents generate FFDCs containing a NullPointerException, and monitors stop triggering, after upgrading to 9.3.0.10

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 9.3 Managed File Transfer (MFT) agent has been
    configured with the agent property:
    
    monitorMaxResourcesInPoll
    
    set to the value of 10. A resource monitor defined on the agent
    has been configured to poll a directory every 30 seconds and
    trigger on:
    
    - Files that end in *.xml
    - And have a size that remains unchanged for 1 poll.
    
    When the agent is running MQ MFT 9.3.0.6, the monitor runs as
    expected and triggers on any XML files that it finds have
    remained unchanged for 1 poll.
    
    However, after the agent is upgraded to use MQ MFT 9.3.0.10, the
    monitor sometimes fails to trigger and generates an FFDC file
    containing a java.lang.NullPointerException. An example of the
    FFDC is shown below:
    
    ---------------------------------------------------------
    ..........
    Level:      p930-010-230816
    Time:       07/09/2023 14:42:32:756 EDT
    Thread:     43 (pool-4-thread-1)
    Class:      com.ibm.wmqfte.monitor.management.MonitorWork
    Method:     generateFFDC
    Probe:      FFDC_005
    Cause:      java.lang.NullPointerException
    java.lang.NullPointerException
      at
    com.ibm.wmqfte.monitor.resource.MonitorResourceItems.<init>(Moni
    torResourceItems.java:101)
      at
    com.ibm.wmqfte.monitor.matcher.MonitorMatcher.executeWorker(Moni
    torMatcher.java:484)
      at
    com.ibm.wmqfte.monitor.management.MonitorWork.buildListOfResourc
    esUsingWorkerThread(MonitorWork.java:753)
      at
    com.ibm.wmqfte.monitor.management.MonitorWork.buildListOfResourc
    es(MonitorWork.java:636)
      at
    com.ibm.wmqfte.monitor.management.MonitorWork.execute(MonitorWor
    k.java:387)
      at
    com.ibm.wmqfte.monitor.management.MonitorImpl.run(MonitorImpl.ja
    va:171)
      at
    com.ibm.wmqfte.monitor.management.MonitorTimerTask.run(MonitorTi
    merTask.java:78)
      at
    java.util.concurrent.Executors$RunnableAdapter.call(Executors.ja
    va:522)
      at
    java.util.concurrent.FutureTask.runAndReset(FutureTask.java:319)
      at
    java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFuture
    Task.access$301(ScheduledThreadPoolExecutor.java:191)
      at
    java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFuture
    Task.run(ScheduledThreadPoolExecutor.java:305)
      at
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExec
    utor.java:1160)
      at
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExe
    cutor.java:635)
      at java.lang.Thread.run(Thread.java:825)
    ..........
    ---------------------------------------------------------
    

Local fix

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    This issue affects two categories of user:
    
    Category 1:
    --------------
    Users of MQ 9.3.0.10  and 9.3.3 CD Managed File Transfer (MFT)
    who have an agent configured with the agent property:
    
    monitorMaxResourcesInPoll
    
    set in the agent.properties file.
    
    Category 2:
    --------------
    Users of MQ 9.3.0.10 and 9.3.3 CD MFT who have queue resource
    monitors defined on an agent, where the monitor is configured to
    trigger on complete message groups, or individual messages not
    in a group.
    
    
    Platforms affected:
    MultiPlatform
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    When an IBM MQ Managed File Transfer resource monitor performs a
    poll, it will collect a list of items that match its trigger
    condition using one of two methods:
    
    Method 1:
    --------------
    When an agent has the:
    
    moniorMaxResourcesInPoll
    
    property set, any directory resource monitors that are defined
    on it will use an internal Worker Thread to collect the list of
    items that match its trigger condition. Queue resource monitors
    that have been configured to trigger on complete message groups,
    or individual messages not in a group, will also use a Worker
    Thread.
    
    Method 2:
    --------------
    If an agent does not have the property:
    
    moniorMaxResourcesInPoll
    
    set, then any directory resource monitors running within it will
    collect the list of items that match the trigger condition on
    the monitor's main thread. The same mechanism is used by queue
    resource monitors that are configured to trigger on a non-empty
    queue.
    
    
    Now, as part of the work on APAR IT43806
    (https://www.ibm.com/support/pages/apar/IT43806), some
    additional trace statements were added to allow IBM Support to
    diagnose how a resource monitor was managing its history.
    Unfortunately, this inadvertently changed some of the logic in
    the Worker Thread (mentioned in Method 1 above) so that it could
    use an uninitialized variable when working out what to remove
    from a monitor's history. When this happened, the monitor would
    stop triggering 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.resource.MonitorResourceItems.<init>(Moni
    torResourceItems.java:101)
      at
    com.ibm.wmqfte.monitor.matcher.MonitorMatcher.executeWorker(Moni
    torMatcher.java:484)
      at
    com.ibm.wmqfte.monitor.management.MonitorWork.buildListOfResourc
    esUsingWorkerThread(MonitorWork.java:753)
      at
    com.ibm.wmqfte.monitor.management.MonitorWork.buildListOfResourc
    es(MonitorWork.java:636)
      at
    com.ibm.wmqfte.monitor.management.MonitorWork.execute(MonitorWor
    k.java:387)
      at
    com.ibm.wmqfte.monitor.management.MonitorImpl.run(MonitorImpl.ja
    va:171)
      at
    com.ibm.wmqfte.monitor.management.MonitorTimerTask.run(MonitorTi
    merTask.java:78)
      at
    java.util.concurrent.Executors$RunnableAdapter.call(Executors.ja
    va:522)
      at
    java.util.concurrent.FutureTask.runAndReset(FutureTask.java:319)
      at
    java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFuture
    Task.access$301(ScheduledThreadPoolExecutor.java:191)
      at
    java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFuture
    Task.run(ScheduledThreadPoolExecutor.java:305)
      at
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExec
    utor.java:1160)
      at
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExe
    cutor.java:635)
      at java.lang.Thread.run(Thread.java:825)
    ..........
    ---------------------------------------------------------
    

Problem conclusion

  • To resolve this issue, MQ Managed File Transfer (MFT) has been
    updated so that resource monitor Worker Threads use the correct
    internal variable when removing items from a monitor's history.
    This ensures that the history is updated correctly, and prevents
    the NullPointerException reported in this APAR from occurring.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v9.3 LTS   9.3.0.15
    v9.x CD    9.3.5
    
    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

    IT44567

  • Reported component name

    MQ BASE V9.3

  • Reported component ID

    5724H7291

  • Reported release

    930

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2023-09-19

  • Closed date

    2023-10-20

  • Last modified date

    2023-10-20

  • 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

    MQ BASE V9.3

  • Fixed component ID

    5724H7291

Applicable component levels

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSYHRD","label":"IBM MQ"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"9.3","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
21 October 2023