wM v10.15 first time installation of Integration Server/MWS and trying to run the DB configurator by
./dbConfigurator.sh -a catalog -d oracle -l “jdbc:wm:oracle://host:port;serviceName=xx” -u xxuser -p xxxx
but its erroring with invalid logon . the same account/password able to login successful on SQL developer.
Please do help to resolve this . any prerequisites to be done before running the command.
Error messages / full error message screenshot / log file:
user log: …/logs/dcc.log
developer log: …/logs/log-20240213184353.txt
dcc version: 10.15.0.0000-0018
you need to specify an additional dba account when you want to create tablesspaces and users in the database.
Use the parameters -au and -ap for this in addition to -u and -p, which represent the logical user which will contain the data.
Please refer to the webMethods Installation Guide for how to setup the database.
The catalog action will not create anything in the database.
For creating a schema use the create action.
Please be careful, when using DB Configurator from CommandLine, as not all characters might be possible there for the password, when they have a special meaning for the OS.
Back again. Able to run the scripts using the dbconfigurator. Now we come across with another issue whicle creating JDBC pool.
Tried from command central & IS .
Configured on IS and do connection test got the below error.
[SoftwareAG][Oracle JDBC Driver]ORA-12656: Cryptographic checksum mismatch
Configure on CC and test gives the below error.
Validation WARNING messages:
JDBC Driver cannot be loaded.
com.wm.dd.jdbc.oracle.OracleDriver cannot be found by com.softwareag.plm.spm.configuration_10.15.0.0000-0998
Have odbc7.jar placed on the default/lib/jars/cusom.
Am I missing any jars or anything after running the dbconfiguration.
ojdbc7.jar is fairly old as it was built on Java 7.
You should check on Oracle TechNet website for a newer version.
Latest version is a driver Oracle 23c with ojdbc8.jar for Java 8 up to Java 10 and ojdbc11.jar for Java 11 and newer.
Latest LTS version is driver Oracle 19c with the same jars as mentioned for Oracle 23c.
Place ojdbc.jars under the WmJDBCAdapter/code/jars/ folder and reload the WmJDBCAdapter package afterwards.
Remove the ojdbc7.jar from lib/jars/custom and restart IS.
The driver class you mentioned in your previous post is not an Oracle original, but a branded version of the DataDirect Driver for webMethods. You can find this class under common/lib/jars/ext in the dd-jdbc.jar.
Please provide more details where you try to create the pool config.
The IS internal database pools configuration can be found under config/jdbc/pools directory.
Thanks for your response. sorry going more on this topic as the issues is not resolved yet for creating JDBC pools on wM v10.15.
|OS name|Linux|
|OS release|4.18.0-513.9.1.el8_9.x86_64|
Java version
11.0.21 (55.0)
as advised download ojdbc11.jar because of java v11. I have copied the ojdbc11.jar in
/opt/sag/wm_10_15/IntegrationServer/instances/default/packages/WmJDBCAdapter/code/jars/
and also
/opt/sag/wm_10_15/IntegrationServer/instances/default/lib/jars/custom/
and restarted the IS …
still getting below error
2024-02-14 18:45:43 UTC
wm.server.jdbcpool:testPoolAlias
Could not initialize class oracle.jdbc.OracleDriver,Caused by: java.lang.reflect.InvocationTargetException: null,Caused by: java.lang.NoClassDefFoundError: Could not initialize class oracle.jdbc.OracleDriver
Not directly related but why are you trying to create DB tables on unix environment? Are you using linux PC or MAC? If using Windows as terminal, why not install the configurator on to that machine and create the tables from your local machine?
DB configuration is fine now, able to run all the required scripts from the DB configurator for IS. Using the linux OS
But when trying to configure the JDBC pool on Integration Server getting the error as “Could not initialize class oracle.jdbc.OracleDriver”
oracle driver ojdbc8.jar is placed on the server class path.
integration Server/instances/default/lib/custom/jars and restarted the server, still the getting the error class not found.
JDBC adapter connection works fine from JDBC adapter, but having problem with JDBC pool
internal IS pools should always be created using the DataDirect Driver bundled with the webMethods installation.
Only custom JDBC Connection Pools for the WmJDBCAdapter and/or the WmDB package should be created by using the Oracle driver. WmJDBCAdapter is using DataSource Class, btw.
Starting with the late wM 9.x releases, it is also allowed to use the DataDirect Driver for custom connections.
Please provide screenshots of your pool config for further analysis.
Additionally, check your config for any leading or trailing blanks (usually introduced by Copy&Paste actions).
Thanks Holger. I have attached the screen shot of JDBC pool configuration. Tried by recreating the pool getting the same error
Could not initialize class oracle.jdbc.OracleDriver,Caused by: java.lang.reflect.InvocationTargetException: null,Caused by: java.lang.NoClassDefFoundError: Could not initialize class oracle.jdbc.OracleDriver
–
Error log info.
Could not initialize class oracle.jdbc.OracleDriver
Caused by: java.lang.reflect.InvocationTargetException: null
Caused by: java.lang.NoClassDefFoundError: Could not initialize class oracle.jdbc.OracleDriver java.lang.NoClassDefFoundError: Could not initialize class oracle.jdbc.OracleDriver
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:398)
at java.sql/java.sql.DriverManager.isDriverAllowed(DriverManager.java:555)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:674)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228)
at com.wm.app.jdbc.JDBCConnectionUtil.getConnection(JDBCConnectionUtil.java:74)
at com.wm.app.jdbc.JDBCConnectionUtil.getConnection(JDBCConnectionUtil.java:57)
at wm.server.jdbcpool.testPoolAlias(jdbcpool.java:1872)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at com.wm.app.b2b.server.JavaService.baseInvoke(JavaService.java:415)
at com.wm.app.b2b.server.invoke.InvokeManager.process(InvokeManager.java:761)
at com.wm.app.b2b.server.util.tspace.ReservationProcessor.process(ReservationProcessor.java:39)
at com.wm.app.b2b.server.invoke.StatisticsProcessor.process(StatisticsProcessor.java:82)
at com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceCompletionImpl.java:243)
at com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcessor.java:49)
at com.wm.app.b2b.server.invoke.PipelineProcessor.process(PipelineProcessor.java:171)
at com.wm.app.b2b.server.ACLManager.process(ACLManager.java:339)
at com.wm.app.b2b.server.invoke.DispatchProcessor.process(DispatchProcessor.java:33)
at com.wm.app.b2b.server.invoke.ConcurrentRequestLimitProcessor.process(ConcurrentRequestLimitProcessor.java:67)
at com.wm.app.b2b.server.AuditLogManager.process(AuditLogManager.java:401)
at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:631)
at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:436)
at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:394)
at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:260)
at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:116)
at com.wm.app.b2b.server.ns.Namespace.invoke(Namespace.java:760)
at com.wm.util.template.Reporter.invoke(Reporter.java:921)
at com.wm.util.template.InvokeToken.eval(InvokeToken.java:69)
at com.wm.util.template.TemplateToken.evalChild(TemplateToken.java:196)
at com.wm.util.template.SwitchToken.evalChild(SwitchToken.java:78)
at com.wm.util.template.TemplateToken.eval(TemplateToken.java:166)
at com.wm.util.template.SwitchToken.eval(SwitchToken.java:51)
at com.wm.util.template.TemplateToken.evalChild(TemplateToken.java:196)
at com.wm.util.template.TemplateToken.eval(TemplateToken.java:166)
at com.wm.util.template.Reporter.reportNoReset(Reporter.java:1467)
at com.wm.util.template.Reporter.reportToOutput(Reporter.java:1443)
at com.wm.util.template.Reporter.reportIData(Reporter.java:1339)
at com.wm.app.b2b.server.HTTPDocHandler._process(HTTPDocHandler.java:640)
at com.wm.app.b2b.server.HTTPDocHandler.process(HTTPDocHandler.java:131)
at com.wm.app.b2b.server.HTTPDispatch.handleRequest(HTTPDispatch.java:227)
at com.wm.app.b2b.server.Dispatch.run(Dispatch.java:391)
at com.wm.util.pool.PooledThread.run(PooledThread.java:127)
at java.base/java.lang.Thread.run(Thread.java:829) wm.server.jdbcpool:testPoolAlias wm.server.jdbcpool:testPoolAlias
please move all the com.ibm.mq-jars to the default/packages/WmMQAdapter/code/jars directory.
Move all of the db related jars (i.e. db2jcc*.jar, iijdbc.jar, sqljdbc4.jar ojdbc8.jar, terajdbc4.jar, …) to the default/packages/WmJDBCAdapter/code/jars directory. When the jars require a so or sl native lib (usually in lib directory, like this is the case for the WmSAP Adapter), move the jars to the static subdirectory there.
Remember to replace the ojdbc8.jar with a corresponding ojdbc11.jar.
Avoid having to many jars under default/lib/jars/custom directory as these might get overlooked when updating versions.
Create Custom packages and put the jars under theirs code/jars directory to implement those apis for your requirements.
When you want to use the implementations in other packaes, mark the Packages using these to be depedent on them in the package properties.
This will guarantee, that the packages will get loaded in the correct order, first the implentations and then their usages.
By doing so, you can update the jars in the implementation packages and simply reload the affected implementations, which in turn will cause on reload on all affected dependent packages.
This is really critical not only for jar files or Java classes, but all packages.
Yes, it sometimes does create additional effort for enabling/disabling packages. And I am certainly guilty of having ignored this (although it was decades ago). But not having the dependencies set up correctly is recipe for disaster.
I have moved the jar files under adapter packages/jars.
But the JDBC pool issue still there with below error.
Test of Central Users failed [SoftwareAG][Oracle JDBC Driver]ORA-12656: Cryptographic checksum mismatch
Would like to update that the JDBC pool connections are working fine now. SAG suggested to add additional param to JDBC ulr which is " allowWeakCrypto=true " for checkSUM error . After adding the param another with logon timeout but not found any issue with network or DBA , So after analyzing further have uninstalled datadirect fix2 resolved the issue. Now we able to connect JDBC pool without additional param allowWeakCrypto=true even.
instead of removing the parameter completely you can just switch it from true to false so you know where to put it if you encounter a similar issue in the future.
Additionally, ask support to check this with DataDirect so they can provide a newer version of the driver in an upcoming fix, which will solve this issue.