IBM Support

The B2Bi REST API user login is failing with "Invalid username/password combination error." after upgrading Sterling B2B Integrator to version 6000300 (603).

Troubleshooting


Problem

The B2Bi REST API user login is failing with "Invalid username/password combination error." after upgrading Sterling B2B Integrator to version 6000300 (603).
The user interface for the B2Bi REST APIs comes up and you can enter the user credentials that contain the APIUser permission.
However, when they click on Submit, the UI responds with:
"Invalid username/password combination error."
This is only occurring on node1 of the 3 node SBI cluster.
The same credentials work fine when they log in to the REST APIs via SBI node2, node3, and node4.
The other User Interfaces for SBI are working on all nodes.

Symptom

The SBI instances were recently upgraded from SBI 5263_11.
In this upgrade, the Oracle Database was also upgraded.

Cause

It is unclear on why the jdbc driver was not present in the Liberty node folder for node1 only.
The upgrade was tested in the IBM Labs and this was not a problem in house.

Environment

Sterling B2B Integrator 4 node cluster running SBI version 603 with Oracle Database.

Diagnosing The Problem

1. The ops_node_info table did not have the liberty node entry for node1.
It only had the entries for node2, node3, and node4.
2. The B2Bi REST API console.log had this exception at startup (not at the time when the user was attempting to log in):
2020-03-26 12:47:03.785  INFO 17049 --- [ecutor-thread-5] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@7adc138c: startup date [Thu Mar 26 12:47:03 CDT 2020]; root of context hierarchy
CustomPropertyManager : getUserDefinedProperties() : Exception occurred while loading the custom properties
[err] java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver
[err]     at java.lang.Class.forNameImpl(Native Method)
[err]     at java.lang.Class.forName(Class.java:333)
[err]     at com.sterlingcommerce.db.DBUtil.getConnection(DBUtil.java:339)
[err]     at com.sterlingcommerce.db.DBUtil.returnConnection(DBUtil.java:282)
[err]     at com.sterlingcommerce.woodstock.util.frame.CustomPropertyManager.getUserDefinedProperties(CustomPropertyManager.java:75)
[err]     at com.sterlingcommerce.woodstock.util.frame.Manager.loadUserDefinedProperties(Manager.java:507)
[err]     at com.sterlingcommerce.woodstock.util.frame.Manager.loadUserDefinedProperties(Manager.java:528)
[err]     at com.sterlingcommerce.woodstock.util.frame.Manager.loadUserDefinedProperties(Manager.java:533)
[err]     at com.sterlingcommerce.woodstock.util.frame.Manager.doStaticInit(Manager.java:395)
[err]     at com.sterlingcommerce.woodstock.util.frame.Manager.<clinit>(Manager.java:167)
[err]     at com.sterlingcommerce.woodstock.util.frame.log.LogService.refreshLogger(LogService.java:192)
[err]     at com.sterlingcommerce.woodstock.util.frame.log.LogService.getLogger(LogService.java:241)
[err]     at com.ibm.scbn.cfx.cfgapi.config.WebServletConfiguration.<clinit>(WebServletConfiguration.java:39)
[err]     at java.lang.Class.forNameImpl(Native Method)
[err]     at java.lang.Class.forName(Class.java:403)
[err]     at com.ibm.ws.webcontainer.osgi.webapp.WebApp.addClassToHandlesTypesStartupSet(WebApp.java:1114)
[err]     at [internal classes]
[err]     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1160)
[err]     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[err]     at java.lang.Thread.run(Thread.java:818)
There was no other exception that was noticed at login time when the issue was encountered.

Resolving The Problem

The Liberty node on node1 was missing the jdbc jar in the <sbi install>/liberty/wlp/usr/servers/SIServer/apps/APIjarsLib/ folder.
The Liberty node needs to use the same jdbc jar as the SBI install uses.
The jdbc jar SBI uses is referenced in dynamicclasspath.cfg which should contain the path to the jdbc jar.
Copy the jar to the Liberty server location:
<sbi install>/liberty/wlp/usr/servers/SIServer/apps/APIjarsLib/ folder.
Stop SBI and start SBI for the change to take effect.
Verify that the entry for the node1_libertyNode server is in the ops_node_info table.
 

Document Location

Worldwide

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SS3JSW","label":"IBM Sterling B2B Integrator"},"Component":"Liberty REST APIs","Platform":[{"code":"PF016","label":"Linux"}],"Version":"603","Edition":"","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]

Document Information

Modified date:
31 March 2020

UID

ibm16147963