Came across an interesting error last week, and spent a few hours trying to debug it before discovering the actual cause. Seems like a reasonably severe shortcoming in wM B2B v4.x to me, but I’m still fairly new and this stuff, and could definitely be doing something wrong.
We have a small custom Java Service, which basically tests a JDBC connection to an Oracle 8i database using Oracle’s thin JDBC drivers.
The relevant lines of code are:
try {
Connection connection = DriverManager.getConnection(
“jdbc:oracle:thin:@[SERVER]:[PORT]:[ORASID]”,
“[USERNAME]”,
“[PASSWORD]”
);
Once it’s established a connection to the database, it selects all of the records from a test table, adds them to a pipeline, and exits.
There tends to be, in our current environment, some confusion over whether our Oracle SIDs include the .world suffix or not, so the getConnection statement at one point in time, had a “server.world” SID instead of the correct “server” one.
Unfortunately, with a malformed thin JDBC driver connect string, the wM B2B server crashes returning the error:
server.sh CLASSPATH [CLASSPATH values here] is not an identifier.
We spent a significant amount of time trying different combinations of UNIX shells and environment variable setting schemes before we finally identified that the Oracle SID was incorrect.
Now, we’ve learned our lesson, and will always check our JDBC connect strings thoroughly before clicking the run button, but I’m concerned that this seems extraordinarily brittle. Is it possible that we’ve got something misconfigured?
Why wouldn’t the wM B2B server simply pass the ORA-xxxxx error back to the offending program?
Any ideas?
Thanks in advance for you help and/or commiseration.
Curtis