IBM Support

PH19731: Managed File Transfer source agent abends after a managed transfer resumes after coming out of recovery

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as duplicate of another APAR.

Error description

  • An IBM MQ Managed File Transfer V9.1.0.0 agent is acting as the
    source agent for managed transfers. After a managed transfer
    comes out of recovery and restarts, the agent abends and
    generates an ABEND file containing information similar to the
    information shown below:
    
    Filename:
    /SYSTEM/var/mqmfte/mqft/logs/MFT/agents/AGENT1/logs/ffdc/ABEND.F
    TE.20190409111213969.7128783014550594708.log
    Level:      MQMFT 9.1.0.0 V910-GA910-L180705
    Time:       09/04/2019 11:12:13:969 GMT
    Thread:     37 (ReplyProcessor)
    Class:      com.ibm.wmqfte.thread.FTEThread
    Instance:   f75cd29e
    Method:     uncaughtException
    Probe:      ABEND_001
    Cause:      java.lang.NullPointerException
    java.lang.NullPointerException
    	at
    com.ibm.wmqfte.transfer.frame.impl.TransferFrameSenderImpl.updat
    e(TransferFrameSenderImpl.java:861)
    	at
    com.ibm.wmqfte.transfer.impl.TransferSenderRunnable.processAckno
    wledgement(TransferSenderRunnable.java:1406)
    	at
    com.ibm.wmqfte.transfer.impl.TransferSenderImpl.processAcknowled
    gement(TransferSenderImpl.java:172)
    	at
    com.ibm.wmqfte.statestore.impl.FTEStateStoreImpl.notifyAcknowled
    gement(FTEStateStoreImpl.java:803)
    	at
    com.ibm.wmqfte.transfer.impl.ReplyProcessorRunnable.run(ReplyPro
    cessorRunnable.java:258)
    	at java.lang.Thread.run(Thread.java:812)
    	at com.ibm.wmqfte.thread.FTEThread.run(FTEThread.java:70)
    

Local fix

  • N/A
    

Problem summary

  • This issue affects users of IBM MQ Managed File Transfer.
    
    When performing a managed transfer, a source agent maintains a
    list of:
    - The source items (files or messages) for the managed transfer.
    - And the file channels associated with each source item.
    
    The list is initialized when a managed transfer starts, and the
    source items added to it. However, the file channels associated
    with the source items are only added to the list when the source
    agent starts processing that particular item.
    
    The following sequence of events led up to the issue reported in
    this APAR:
    
    - The source agent started processing a managed transfer
    containing multiple transfer items.
    - The source agent opened a source file for the first transfer
    item (for example, "source-file-1"), read file data from it
    and sent it to the destination agent. At this point, the source
    agent's internal list for the managed transfer looked like this:
    
    Items List:
    Item 1:  source-file-1], Channel channel1]
    Item 2:  source-file-2], Channel null]
    Item 3:  source-file-3], Channel null]
    ...
    - After waiting 5 minutes, the source agent hadn't had an
    acknowledgement from the destination agent indicating that it
    had received the file data, and so it put the managed transfer
    into recovery. As part of this processing, the channel to
    "source-file-1" was closed.
    - Some time later, the source agent received a internal message
    from the destination agent indicating that it was OK to resume
    the managed transfer. This caused the source agent to bring
    the managed transfer out of recovery, and build a new internal
    list of transfer items and channels, which looked like this:
    
    Items List:
    Item 1:  source-file-1], Channel null]
    Item 2:  source-file-2], Channel null]
    Item 3:  source-file-3], Channel null]
    ...
    - Shortly afterwards, the source agent received an internal
    Acknowledgement message from the destination agent, indicating
    that it had received the file data that was sent before the
    managed transfer went into recovery. This message also
    indicated that the first transfer item failed due to an issue
    writing the destination file.  As a result, the source agent
    got the channel for this item from the its internal list,
    and then tried to use it to get the name of the source file to
    include in the supplementary message:
    
    "BFGTR0012E: The transfer of <source_file> has failed because of
    a problem at the destination."
    
    for the managed transfer. However, there wasn't a channel for
    this transfer item, as the source file had not been opened
    since the managed transfer restarted, and so the attempt to get
    the source file name from it failed with a NullPointerException
    - As the NullPointerException was unexpected, the agent
    generated an FDC containing the following information:
    Thread:     <number> (ReplyProcessor)
    Class:      com.ibm.wmqfte.thread.FTEThread
    Method:     uncaughtException
    Probe:      ABEND_001
    Cause:      java.lang.NullPointerException
    java.lang.NullPointerException
     at com.ibm.wmqfte.transfer.frame.impl.TransferFrameSenderImpl.
    update()
     at com.ibm.wmqfte.transfer.impl.TransferSenderRunnable.process
    Acknowledgement()
     at com.ibm.wmqfte.transfer.impl.TransferSenderImpl.processAckn
    owledgement()
     at com.ibm.wmqfte.statestore.impl.FTEStateStoreImpl.notifyAckn
    owledgement()
     at com.ibm.wmqfte.transfer.impl.ReplyProcessorRunnable.run()
     at java.lang.Thread.run(Thread.java:812)
     at com.ibm.wmqfte.thread.FTEThread.run(FTEThread.java:70)
    
    and shut itself down.
    

Problem conclusion

  • To resolve this issue, the agent has been modified to check if
    there is a channel associated with a transfer item, before
    trying to use that channel to get the source file name to
    include in the supplementary message:
    
    "BFGTR0012E: The transfer of <source_file> has failed because
    of a problem at the destination."
    
    for a failed managed transfer. If the item does not have an
    associated channel, then the agent will use a different
    mechanism to get the source file name. In the event that the
    agent is still unable to determine the source file name,
    the following supplementary message will be logged for the
    transfer item:
    
    "BFGTR0083E: The transfer has failed because of a problem at
    the destination."
    
    The fix is included in fix pack 9.1.0.6, APAR PH26933,
    and fix pack 9.0.0.10, APAR PH25070.
    

Temporary fix

Comments

  •  The fix is included in fix pack 9.1.0.6, APAR PH26933,
    and fix pack 9.0.0.10, APAR PH25070.
    

APAR Information

  • APAR number

    PH19731

  • Reported component name

    IBM MQ MFT Z/OS

  • Reported component ID

    5655MF900

  • Reported release

    910

  • Status

    CLOSED DUA

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2019-11-27

  • Closed date

    2020-08-24

  • Last modified date

    2021-12-23

  • 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 Z/OS

  • Fixed component ID

    5655MF900

Applicable component levels

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

Document Information

Modified date:
24 December 2021