JDBC pools error: no suitable driver

Hi,

I’m using webMethods 6.1. I just set-up a JDBC Adapter connection and it works fine. I tried to select something from our AS/400 and it worked fine. But now I’m trying to make a connection pool but I get following error:

“Test of ISCoreAudit Failed
No suitable driver”

The jt400.jar is in following directory:
XPI894\IntegrationServer\packages\WmJDBCAdapter\code\jars

Does anybody knows how I can solve this problem? I thought if the JDBC Adapter works fine that my driver is correct?

Here are the settings for the adapter, pool and driver:
Settings of the adapter:
Transaction Type: NO_TRANSACTION
DataSource Class: com.ibm.as400.access.AS400JDBCDataSource
serverName: LE170
user: Test
password: ******
databaseName: LE170
portNumber: 6009
networkProtocol: tcp
Other Properties: TranslateBinary=true
Enable Connection Pooling: true
Minimum Pool Size: 1
Maximum Pool Size: 10
Pool Increment Size: 1
Block Timeout (msec): 1000
Expire Timeout (msec): 1000
Startup Retry Count: 3
Startup Backoff Timeout (sec): 10

Settings of pool:
Alias Name: ERP 8.11 Pool
Alias Description: ERP 8.11 Pool
Associated Driver Alias: DataDirect Connect JDBC DB2 Driver
Database: URL jdbc:as400://ERP
User Id: PSFT
Password: *****
Minimum Connections: 0
Maximum Connections: 100
Idle Timeout: 60000 milliseconds

Settings of driver:
Alias Name: DataDirect Connect JDBC DB2 Driver
Alias Description: webMethods DataDirect Connect JDBC OEM driver
Driver Class Name: com.wm.dd.jdbc.db2.DB2Driver

When i get this error is it usually a typo in the URL name. I have had to check and recheck mine for colons, semicolons etc in the wrong place.

Thanks for your reply but the URL is correct.

Can it be a problem with the classpath? Do I have to specify something in the classpath?

Hi,
Have you verified that your driver jar is being loaded by IS?
Have a look at the Administrator About page
.
.
Server Environment
Java Classpath
.
/app/webmethods/wm61/IntegrationServer/lib/jars/ojdbc14.jar
.
You would expect your driver jar to be shown as loaded

If not, you also try copying the driver jar to
<webMethods_HOME>/IntegrationServer/lib/system
as this will then automatically get added to the server process classpath.

Regards
Danie

Hi,
I’ve just noticed that the jdbc connection you’re experiencing problems with is one of the JDBC Pools. I believe you need to use the provided Sequelink DataDirect Driver for these Pool connections and the URL is therefore different

Alias Name: OP_CORE_AUDIT_LOG
Alias Description: IS Core Audit
Associated Driver Alias: DataDirect Connect JDBC Oracle Driver
Database URL: jdbc:wm:oracle://host.domain.com:47630;SID=DWDOOP01
UserId: WM_OP_AUDIT
Password: *****
Minimum Connections: 1
Maximum Connections: 5
Idle Timeout: 6000 milliseconds

Regards
Danie

Yup, jt400.jar is IBM’s JDBC Driver for Db2 on AS/400… try moving that to lib/jars of the integration server, don’t use datadirect connect…, set up a new driver alias for your driver… and you should be ready to go…

Also check documentation… it may support use of data direct driver for db2 for jdbc pool on AS/400, which has a different set of URL…

Danie.malan and Chirag1.sanghavi thank you for helping me with my problem!

Copying the jt400.jar in the lib/jars directory solved the problem. I’m still using the datadirect connect JDBC DB2 Driver and it works.

Thanks again!

Hi All,

please don�t mix IS internal JDBC-Pools with JDBC-Adapter Connections.

The IS internal JDBC-Pools cannot be used for normal JDBC-Adapter Connections.
The JDBC-Adapter Connections can be configured to use pools in the Connection configuration screen.

The IS internal JDBC-Pools for Auditing and such MUST use the bundled DataDirect Driver to work.

The bundled DataDirect Driver cannot be used for normal JDBC-Adapter connections.

For the JDBC-Adapter you should place the driver jars under <IS_ROOT>/packages/WmJDBCAdapter/code/jars
instead of <IS_ROOT>/lib/jars

As Danie pointed out the DataDirect Drivers are using a customized URL-Format, which needs to be used starting from IS 6.1, but it worked already in IS 6.0.x, where the old URL-Format was also working.

Regards,
Holger

Hi,

I placed the driver jars (jt400.jar) under <IS_ROOT>/packages/WmJDBCAdapter/code/jars and then it didn’t work. So I placed the jar under <IS_ROOT>/lib/jars and it worked.

When placing the jar under <IS_ROOT>/packages/WmJDBCAdapter/code/jars directory I could not see the jar file in the server classpath. So it wasn’t loaded. Is there a way the load it?

I used the driver above (see first post) to start these functions:
DocumentHistory
ISCoreAudit
ProcessAudit
TN
Xref

Regards,
Vaast

As I told I copied the jt400.jar in the <IS_ROOT>/lib/jars directory and the driver is found.
But now I get following error in the administrator (logs -> audit): com.wm.app.audit.AuditException: [BAA.0002.0000] Wrapped Exception: java.sql.SQLException: [SQL0204] WMSESSION in JDE type *FILE not found.

Following error in logs -> error:
com.wm.app.audit.AuditException: [BAA.0002.0000] Wrapped Exception: java.sql.SQLException: [SQL0204] WMERROR in JDE type *FILE not found.

Following error in logs -> session:
com.wm.app.audit.AuditException: [BAA.0002.0000] Wrapped Exception: java.sql.SQLException: [SQL0204] WMSESSION in JDE type *FILE not found.

Following error in logs -> guaranteed delivery:
com.wm.app.audit.AuditException: [BAA.0002.0000] Wrapped Exception: java.sql.SQLException: [SQL0204] WMTXIN in JDE type *FILE not found.

When I delete the driver from <IS_ROOT>/lib/jars directory then I get now errors but I get the error of before no suitable drive found.

Does anybody knows a solution for this problem?

Hi Vaast,

this is because you are using a driver for these functions which is not supported by webMethods.

For the Auditing, DocumentHistory, XRef, … and so on you are bound the bundled DataDirect-Driver. If there are problems with this driver open a SR to webMethods and request a newer version of the driver.

The drivers delivered by the DB-Vendor can only be used with WmDB and WmJDBCAdapter packages.

To your first question about loading:
If the jar is placed under the package, then it will be loaded by the package classloader and therefor only be visible inside the package. This is the reason why it is not visible in the server classpath.

Regards,
Holger