- Windows 2008 SP2
- TeamSite 8.2.0.1
- Oracle 12c databases for webservers & teamsite internal DB.
We recently upgraded our oracle installations from 10 to 12c. The previous 10 installation worked, and the Internal teamsite DBs connect fine to the 12c DBs using the ojdbc6.jar file. But trying to connect to the web databases via datadeploy is another matter.
Database is up and running, and accessible. It can be reached via sqldeveloper from the TeamSite machine with no issues.
Database.xml set up:
<database name="previewDB" jdbc-driver="oracle.jdbc.driver.OracleDriver"
protocol-url="dbc:oracle:thin" db="@<server>:<port>:<db>"
user="<username>" password="<password>" vendor="oracle" real-update="no" (also tried this with vendor="rdbms" but that didn't change anything.)
max-id-length="128" />
dd.cfg:
<?xml version="1.0" encoding="UTF-8"?>
<data-deploy-configuration>
<data-deploy-elements filepath="E:/od-home/OpenDeployNG/etc/database.xml"/>
<client>
<deployment name="eafile_s0_p0">
<source>
<xml-formatted-data encoding="utf-8" file="$eafile_0"/>
</source>
<destinations>
<database update-type="standalone" use="previewDB">
etc etc...
</destinations>
</deployment>
<deployment name="master">
<exec-deployment use="eafile_s0_p0"/>
</deployment>
</client>
</data-deploy-configuration>
Error using odbjc14.jar:
During deployment, everything looks fine until it tries to connect to the 12c database, which produces the following error, which according to google means it's using an out of date driver (the ojdbc14.jar):
DBD: ERROR:ERROR: Could not connect to [dbc:oracle:thin://@<database>:<port><db>]
DBD:
DBD: *******************************************************
DBD: SQLException occured in JdbcCheckup:MakeConnection()
DBD: Exception Message: ORA-28040: No matching authentication protocol
DBD: Vendor Error Code: 28040
DBD: SQL state: 99999
DBD: *******************************************************
DBD:
DBD: *******STACK TRACE*************
DBD: ERROR:
java.sql.SQLException: ORA-28040: No matching authentication protocol
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:283)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:278)
at oracle.jdbc.driver.T4CTTIoauthenticate.receiveOsesskey(T4CTTIoauthenticate.java:294)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:371)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:468)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:839)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:208)
at com.interwoven.dd100.dd.JdbcCheckup.MakeConnection(JdbcCheckup.java:447)
at com.interwoven.dd100.dd.JdbcCheckup.TryConnect(JdbcCheckup.java:523)
at com.interwoven.dd100.dd.TDbConnectionManager.GetConnection(TDbConnectionManager.java:78)
at com.interwoven.dd100.dd.TDbAgent.EstablishConnection(TDbAgent.java:550)
at com.interwoven.dd100.dd.TDbAgent.<init>(TDbAgent.java:272)
at com.interwoven.dd100.dd.TDbSchemaAgent.<init>(TDbSchemaAgent.java:64)
at com.interwoven.dd100.dd.TConsumerManager.getDbAgentBasedOnGroupUpdate(TConsumerManager.java:514)
at com.interwoven.dd100.dd.TConsumerManager.SetupConsumer(TConsumerManager.java:587)
at com.interwoven.dd100.dd.TConsumerManager.SetupConsumersForOneDeployment(TConsumerManager.java:192)
at com.interwoven.dd100.dd.TConsumerManager.SetupConsumersForMultiDeployment(TConsumerManager.java:150)
at com.interwoven.dd100.dd.TConsumerManager.SetupConsumers(TConsumerManager.java:129)
at com.interwoven.dd100.dd.TAgentClient.Go(TAgentClient.java:108)
at com.interwoven.dd100.dd.IWDataDeploy.Go(IWDataDeploy.java:601)
at com.interwoven.dd100.dd.TDASThread.ProcessItem(TDASThread.java:203)
at com.interwoven.dd100.dd.TDASThread.run(TDASThread.java:128)
DBD: ERROR:Could not connect to [@<database>:<port><db>]
DBD: ERROR:Unable to connect to @<database>:<port><db>
DBD: ERROR:TDbAgent constructor failed.
DBD: Error occured in TDbSchemaAgent
Removing ojdbc14.jar or creating a "fake" odjbc14.jar using ojdbc6.jar.
I tried a few suggested workarounds, including removing the ojdbc14.jar completely, and also creating a copy of ojdbc6.jar called ojdbc14.jar. Both workarounds resulted in the following error:
DBD: [Mon Jun 25 13:21:46 EDT 2018] Begin executing master
DBD: Begin Set up the publisher thread
DBD: End Set up the publisher thread
DBD: Setting up TDbSchemaAgent.
DBD: Loading oracle.jdbc.driver.OracleDriver
DBD: url : dbc:oracle:thin://@<database>:<port><db>
DBD: login : <login>
DBD: login timeout=3
DBD: Connecting to the database...
DBD: Try connecting using dbc:oracle:thin://@<database>:<port><db>...
DBD: SQL failure
DBD: ERROR:ERROR: Could not connect to [dbc:oracle:thin://@<database>:<port><db>]
DBD:
DBD: *******************************************************
DBD: SQLException occured in JdbcCheckup:MakeConnection()
DBD: Exception Message: No suitable driver found for dbc:oracle:thin://@<database>:<port><db>
DBD: Vendor Error Code: 0
DBD: SQL state: 08001
DBD: *******************************************************
DBD:
DBD: *******STACK TRACE*************
DBD: ERROR:
java.sql.SQLException: No suitable driver found for dbc:oracle:thin://@agonottsklxd011.cfia-acia.inspection.gc.ca:1540:DWCMS111
at java.sql.DriverManager.getConnection(DriverManager.java:689)
at java.sql.DriverManager.getConnection(DriverManager.java:208)
at com.interwoven.dd100.dd.JdbcCheckup.MakeConnection(JdbcCheckup.java:447)
at com.interwoven.dd100.dd.JdbcCheckup.TryConnect(JdbcCheckup.java:523)
at com.interwoven.dd100.dd.TDbConnectionManager.GetConnection(TDbConnectionManager.java:78)
at com.interwoven.dd100.dd.TDbAgent.EstablishConnection(TDbAgent.java:550)
at com.interwoven.dd100.dd.TDbAgent.<init>(TDbAgent.java:272)
at com.interwoven.dd100.dd.TDbSchemaAgent.<init>(TDbSchemaAgent.java:64)
at com.interwoven.dd100.dd.TConsumerManager.getDbAgentBasedOnGroupUpdate(TConsumerManager.java:514)
at com.interwoven.dd100.dd.TConsumerManager.SetupConsumer(TConsumerManager.java:587)
at com.interwoven.dd100.dd.TConsumerManager.SetupConsumersForOneDeployment(TConsumerManager.java:192)
at com.interwoven.dd100.dd.TConsumerManager.SetupConsumersForMultiDeployment(TConsumerManager.java:150)
at com.interwoven.dd100.dd.TConsumerManager.SetupConsumers(TConsumerManager.java:129)
at com.interwoven.dd100.dd.TAgentClient.Go(TAgentClient.java:108)
at com.interwoven.dd100.dd.IWDataDeploy.Go(IWDataDeploy.java:601)
at com.interwoven.dd100.dd.TDASThread.ProcessItem(TDASThread.java:203)
at com.interwoven.dd100.dd.TDASThread.run(TDASThread.java:128)
DBD: ERROR:Could not connect to [@<database>:<port><db>]
DBD: ERROR:Unable to connect to @<database>:<port><db>
DBD: ERROR:TDbAgent constructor failed.
DBD: Error occured in TDbSchemaAgent
There doesn't seem to be any way to force the datadeploy connection to use the appropriate ojdbc driver that I can find. I've looked through everything in OD and TS, and everything is referencing the correct jar.
I'm opening a ticket with support, but thought I'd see if anyone here had seen anything like this and knew how to force dd to use the proper connector.