IBM Support

IT33915: INTEGRATION API APPLICATIONS RUNNING IN AN INTEGRATION SERVER RETURN NULL FOR BROKERPROXY.GETEXECUTIONGROUPBYNAME()

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

  • When running an Integration API (IAPI) application inside an
    Integration Server, the
    BrokerProexy.getExecutionGroupByName(String name) method will
    return null for all ExecutionGroups except the one running the
    IAPI application.
    
    The root cause is a regression introduced by
    APAR IT32733 which introduced a performance optimisation for
    Integration Nodes with a large number of Integration Servers.
    This performance optimisation is only valid when the execution
    group being searched for is the local execution group.
    
    The
    failure can be demonstrated with simple IAPI code such
    as:
    
    ExecutionGroupProxy eg1 = BrokerProxy.getLocalInstance().ge
    tExecutionGroupByName("EG1");
    			ExecutionGroupProxy eg2 = Broke
    rProxy.getLocalInstance().getExecutionGroupByName("EG2");
    			Exe
    cutionGroupProxy eg3 = BrokerProxy.getLocalInstance().getExecuti
    onGroupByName("EG3");
    			ExecutionGroupProxy eg4 = BrokerProxy.g
    etLocalInstance().getExecutionGroupByName("EG4");
    
    			System.
    out.println("EGs" + eg1 + "-" + eg2 + "-" + eg3 + "-"
    +eg4);
    
    On 10.0.0.21 this returns:
    
    2020-08-14 09:43:23.829 58
    EGsEG1-null-null-null
    One 10.0.0.18 this returns:
    
    2020-08-14
    09:46:41.668 53 EGsEG1-EG2-EG3-EG4
    

Local fix

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    All users of IBM Integration Bus version 10.0.0.21 and 10.0.0.22
    running Integration API (IAPI) code inside Java Compute Nodes
    that accessed non-local Integration Servers.
    
    
    Platforms affected:
    MultiPlatform
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    <span style="background-color:rgb(255, 255, 255)">When running
    an Integration API (IAPI) application inside an </span><span
    style="background-color:rgb(255, 255, 255)">Integration Server,
    the </span><span style="background-color:rgb(255, 255,
    255)">BrokerProxy.getExecutionGroupByName(String name) method
    will </span><span style="background-color:rgb(255, 255,
    255)">return null for all ExecutionGroups except the one running
    the </span><span style="background-color:rgb(255, 255,
    255)">IAPI application.
                                                 </span>
    <span style="background-color:rgb(255, 255, 255)">
    
    </span>
    <span style="background-color:rgb(255, 255, 255)">The root cause
    is a regression introduced by </span><span
    style="background-color:rgb(255, 255, 255)">APAR IT32733 which
    introduced a performance optimisation for </span><span
    style="background-color:rgb(255, 255, 255)">Integration Nodes
    with a large number of Integration Servers.  </span>
    <span style="background-color:rgb(255, 255, 255)">This
    performance optimisation is only valid when the execution
    </span><span style="background-color:rgb(255, 255, 255)">group
    being searched for is the local execution group.         </span>
    <span style="background-color:rgb(255, 255, 255)">
    
    </span>
    <span style="background-color:rgb(255, 255, 255)">The
    </span><span style="background-color:rgb(255, 255, 255)">failure
    can be demonstrated with simple IAPI code such </span><span
    style="background-color:rgb(255, 255, 255)">as:
    
    </span>
    <span style="background-color:rgb(255, 255, 255)">
    
    </span>
    <span style="background-color:rgb(255, 255,
    255)">ExecutionGroupProxy eg1 =
    BrokerProxy.getLocalInstance().ge</span><span
    style="background-color:rgb(255, 255,
    255)">tExecutionGroupByName("EG1");
         </span>
    <span style="background-color:rgb(255, 255,
    255)">ExecutionGroupProxy eg2 = Broke</span><span
    style="background-color:rgb(255, 255,
    255)">rProxy.getLocalInstance().getExecutionGroupByName("EG2");
         </span>
    <span style="background-color:rgb(255, 255,
    255)">Exe</span><span style="background-color:rgb(255, 255,
    255)">cutionGroupProxy eg3 =
    BrokerProxy.getLocalInstance().getExecuti</span><span
    style="background-color:rgb(255, 255,
    255)">onGroupByName("EG3");
         </span>
    <span style="background-color:rgb(255, 255,
    255)">ExecutionGroupProxy eg4 = BrokerProxy.g</span><span
    style="background-color:rgb(255, 255,
    255)">etLocalInstance().getExecutionGroupByName("EG4");
         </span>
    <span style="background-color:rgb(255, 255, 255)">
    
    </span>
    <span style="background-color:rgb(255, 255,
    255)">System.</span><span style="background-color:rgb(255, 255,
    255)">out.println("EGs: " + eg1 + "-" + eg2 + "-" + eg3 + "-"
    </span><span style="background-color:rgb(255, 255, 255)">+eg4);
                                                            </span>
    <span style="background-color:rgb(255, 255, 255)">
    
    </span>
    <span style="background-color:rgb(255, 255, 255)">On 10.0.0.21
    this outputs:                                     </span><span
    style="background-color:rgb(255, 255, 255)">
                                    </span>
    <span style="background-color:rgb(255, 255, 255)">EGs:
    EG1-null-null-null
    </span>
    
    <span style="background-color:rgb(255, 255, 255)">On 10.0.0.20
    this outputs:                                    </span>
    <span style="background-color:rgb(255, 255, 255)">EGs:
    EG1-EG2-EG3-EG4       </span>
    

Problem conclusion

  • The BrokerProxy.getExecutionGroupByName() method now returns
    ExecutionGroupProxy objects even if they are not the local
    Integration Server, restoring functional behaviour in line with
    10.0.0.21 and retaining the performance optimisation for the
    local Integration Server.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v10.0      10.0.0.23
    
    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

    IT33915

  • 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-08-14

  • Closed date

    2021-01-18

  • Last modified date

    2021-01-18

  • 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

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

Document Information

Modified date:
19 January 2021