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