IBM Support

IT31950: ISSUES WITH MBBROKEREXCEPTIONS AND THE USE OF MBROUTE

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

  • The propagate() method on MbRoute in the Java plugin API allows
    a customer to propagate a message assembly to a label node in
    their flow. If an exception occurs downstream of this label
    node then an MbException should be thrown from the propagate()
    method, these exceptions can and should be handled by the
    user's flows. However the MbRoute.propagate() method will
    always throw an MbBrokerException, which represents fatal
    exceptions, instead.
    
    
    
    Additionally, if the
    MbBrokerException.getNestedException() method is called
    multiple times then native heap corruption abends can occur.
    The abends will either indicate that a Java finalizer thread is
    the currently active thread and that it is trying to finalize
    an MbException:
    
    
    
    Thread 128734bb8 (current thread), name =
    "Finalizer thread", daemon = true, priority = 5, state =
    [alive, runnable]:
    
    #0
    com.ibm.broker.plugin.MbException.freeNativeException(J)V @
    MbException.java:<native method>
    
    #1
    com.ibm.broker.plugin.MbException.finalize()V @
    MbException.java:645
    
    #2
    java.lang.J9VMInternals.runFinalize(Ljava/lang/Object;)V @
    J9VMInternals.java:285
    
    
    
    or a non-finalizer Java thread will
    abend when getting nested exceptions:
    
    
    
    Thread 11171aaf0
    (current thread), name = "Thread-28", daemon = false, priority
    = 5, state = [alive, runnable]:
    
    #0 com.ibm.broker.plugin.MbExce
    ption._getNestedExceptions(JLjava/lang/ClassLoader;)[Lcom/ibm/br
    oker/plugin/MbException; @ MbException.java:<native method>
    
    #1
    com.ibm.broker.plugin.MbException.getNestedExceptions()[Lcom/ibm
    /broker/plugin/MbException; @ MbException.java:502
    

Local fix

  • N/A
    

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    All users of IBM Integration Bus v10 and App Connect Enterprise
    v11 who propagate to label nodes from Java nodes using MbRoute,
    or handle MbBrokerExceptions from a Java node.&#09;
    
    
    Platforms affected:
    MultiPlatform, z/OS
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    The propagate() method on MbRoute in the Java plugin API allows
    a customer to propagate a message assembly to a label node in
    their flow. If an exception occurs downstream of this label node
    then an MbException should be thrown from the propagate()
    method, these exceptions can and should be handled by the user's
    flows. However the MbRoute.propagate() method will always throw
    an MbBrokerException, which represents fatal
    exceptions, instead.
    
    Additionally, if the MbBrokerException.getNestedException()
    method is called multiple times then native heap corruption
    abends can occur. The abends will either indicate that a Java
    finalizer thread is the currently active thread and that it is
    trying to finalize an MbException:
    
    Thread 128734bb8 (current thread), name = "Finalizer thread",
    daemon = true, priority = 5, state = [alive, runnable]:
    #0 com.ibm.broker.plugin.MbException.freeNativeException(J)V
    @MbException.java:<native method>
    #1 com.ibm.broker.plugin.MbException.finalize()V @
    MbException.java:645
    #2 java.lang.J9VMInternals.runFinalize(Ljava/lang/Object;)V
    @J9VMInternals.java:285
    
    or a non-finalizer Java thread will abend when getting nested
    exceptions:
    
    Thread 11171aaf0 (current thread), name = "Thread-28", daemon =
    false, priority = 5, state = [alive, runnable]:
    #0
    com.ibm.broker.plugin.MbException._getNestedExceptions(JLjava/la
    ng/ClassLoader;)[Lcom/ibm/broker/plugin/MbException; @
    MbException.java:<native method>
    #1
    com.ibm.broker.plugin.MbException.getNestedExceptions()[Lcom/ibm
    /broker/plugin/MbException; @ MbException.java:502
    

Problem conclusion

  • MbRoute now correctly throws an MbException when a recoverable
    exception reaches the label node, and MbBrokerException will now
    no longer produce multiple MbExceptions that reference the same
    native exception.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v10.0      10.0.0.21
    v11.0      11.0.0.9
    
    The latest available maintenance can be obtained from:
    http://www-01.ibm.com/support/docview.wss?rs=849&uid=swg27006041
    
    If the maintenance level is not yet available,information on
    its planned availability can be found on:
    http://www-1.ibm.com/support/docview.wss?rs=849&uid=swg27006308
    ---------------------------------------------------------------
    

Temporary fix

Comments

APAR Information

  • APAR number

    IT31950

  • Reported component name

    INTEGRATION BUS

  • Reported component ID

    5724J0540

  • Reported release

    A00

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2020-02-21

  • Closed date

    2020-06-08

  • Last modified date

    2020-06-08

  • 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

    INTEGRATION BUS

  • Fixed component ID

    5724J0540

Applicable component levels

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSNQK6","label":"IBM Integration Bus"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Line of Business":{"code":"LOB36","label":"IBM Automation"}}]

Document Information

Modified date:
10 June 2020