Using Oracle12C Driver with Oracle 19c Database - database-migration

We are working on a product migration from jboss 7 running on jdk 7 to wildfly 15 running on jdk 11 and we wanted to do this activity in phases.
So as part of the initial phase release we are first migrating our product's database from oracle 12c to oracle 19c and in the later phase we shall be migrating the product from jboss 7 (running on jdk 7) to wildfly 15 (running on jdk11).
We are aware 19c only supports ojdbc8 and higher versions but to have ojdbc8 or higher we have to migrate jdk first but we see lot of complications as part of jdk migration and jboss migrations, so we wanted to give a initial release with only the database migrated.
so would jdbc7.jar work well with oracle 19c or will there be any complication? from our initial analysis we haven't seen any feature breaks in the product till now.

Oracle JDBC Driver are all backward compatible, only if you don't use new API JDBC functionnalities (you probably see as a compilation error in this case). Read this page https://www.oracle.com/fr/database/technologies/faq-jdbc.html, more precisely these topics :
Which version of JDBC drivers are supported ?
What is the JDBC and RDBMS interoperability matrix or the certification matrix?
What are the Oracle JDBC releases Vs JDK versions?
What are the Oracle JDBC releases Vs JDBC specifications?
You need to upgrade driver only if you want to use new functionnalities of the JDBC driver (see https://jcp.org/en/jsr/detail?id=221) or if you want to be JDK compatible regarding the matrix compatibility shown in the Oracle FAQ.

Though, the older drivers are forward compatible, it is a best practice to have the JDBC driver from the same version as that of the Database. If you have any tighter dependency on 12 driver then you could go with that combination. Otherwise, it is better to consider the latest version.

Related

AWS DocumentDb not support mongodb 4.0

I do not know why AWS DocumentDb does not support MongoDB version that above 3.6? Should I use mongo 3.6 or 4.0 above?
Amazon DocumentDB now supports MongoDB 4.0 compatibility including transactions: https://aws.amazon.com/about-aws/whats-new/2020/11/amazon-documentdb-with-mongodb-compatibility-adds-support-for-mongodb-4-and-transactions/
Document DB is compatible with only MongoDB 3.6.
See: https://aws.amazon.com/documentdb/features/
Whether you want to use 3.6 vs 4.0 or even 4.2 or 4.4 is very subjective to what you want to do with the DB.
The pros of using Document DB is that its a managed service and hence you dont have to worry a lot about setting it up.
The con is you will not get features present in version 3.6 onwards example multi document transactions, new operators in the agg pipeline, bug fixes etc.
To figure out the exact changes check - https://docs.mongodb.com/manual/release-notes/
You can install mongodb on EC2 instances, this will ensure you will get the latest and greatest mongodb. However this comes with the added work of managing the mongodb instance, its backups, High availability considerations etc.
Do note: No matter what you decide I would recommend that you try to use the latest drivers that are present today so that you have the freedom to go to the latest version of self installed mongo or even upgrade document db engine versions as they become available.
AWS DocumentDb uses its own database engine compatible with MongoDB 3.6 API.
MongoDB 4.0 API is not supported as of yet.
We have MongoDB Atlas available in AWS - AWS also supports fully managed database service - MongoDB Atlas - https://aws.amazon.com/de/quickstart/architecture/mongodb/
AWS enables to set up the infrastructure to support MongoDB deployment in a flexible, scalable, and cost-effective manner on the AWS Cloud.
https://aws.amazon.com/de/quickstart/architecture/mongodb/

How can i configure a database in the node.conf file using Corda RPC?

I am using Corda version 4 community edition and I am trying to use a database like MySQL instead of the traditional H2 database. Is there any way to achieve this?
Community (or Opensource) version only tested with H2, Postgres and SQLServer. If you want to use mySql you've to upgrade to Enterprise version.
Hope this help

DSS cannot connect to different Oracle database versions

I'm using the WSO2 Data Services (3.5.1) Server to connect with some Oracle 12c databases. However, to support the legacy, I also need to connect to different versions like 10g and 8i.
There's the problem, using the ojdbc14.jar driver, the datasources:
8i works
10g works
12c gives: ORA-28040: No matching authentication protocol (due the changes of SHA algorithm in the version 12)
Using the ojdbc6.jar or ojdbc7.jar:
10g works
12c works
8i gives:
org.wso2.carbon.ndatasource.common.DataSourceException: Error establishing data source connection: 4
...
Caused by: java.sql.SQLException: 4
at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:290)
at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:182)
at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:702)
...
Caused by: java.lang.ArrayIndexOutOfBoundsException: 4
at oracle.jdbc.driver.T4C8TTIdty.<init>(T4C8TTIdty.java:491)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1434)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:486)
...
Searching for solution, I've found some alternative, by setting the parameter SQLNET.ALLOWED_LOGON_VERSION=8 in the oracle/network/admin/sqlnet.ora file in the 12c database and using ojdbc14.jar, but due infrastructure restrictions, this approach is not acceptable.
I would like to know if there's a way to use simultaneously both drivers in DSS, maybe specifying some custom Java class extending the different OracleDriver class, and configuring the DSS class loader... or some different solution.
Any help would be appreciated.
This is a known backward compatibility limitation1, 2 in oracle drivers and there's no solution in wso2 DSS as a workaround. This has clearly stated in Oracle version compatibility matrix.
Have you tried different versions of older ojdbc drivers which might work on both oracle versions(eg: oracle driver 10). Of cause not all the features might work, but you might end up with connecting to all the databases and execute basics without issue.

How to get Sitecore Analytics data into new Sitecore instance

We have a Sitecore 8.0 instance that we want to replace by a fresh new Sitecore 8.1 instance. So I installed a new 8.1 instance, installed the necessary modules and TDS packages and the site is running fine.
However we have lots of Analytics data in the old 8.0 instance that we don't want to loose. Is there a way to get that Analytics data into the new 8.1 instance?
Can I just add the old 8.0 analytics database to the ConnectionString and remove the entry of the new 8.1 one?
You should check the Sitecore 8.1 upgrade guide (available on dev.sitecore.net). It has a section on how to upgrade the data by rebuilding the reporting database (this process might take a while). This way you should be able to continue with you old data.
Attach your new site to (a copy of) the reporting database, perform the upgrade steps for that database as described in the upgrade guide (running sql script) and follow the steps for rebuilding the database.

Sitecore instance upgradation from 6.6 to 7.2

I just want to get confirm that will i require another license.xml to upgrade my client sitecore instance from 6.6 to 7.2.
My understanding is sitecore version upgradation do not require any license update.
And, i think license is vendor based which depends upon number of installations and not sitecore version based.
Just want to confirm my self with community experts.
In most scenarios, licenses will apply across 6.6 to 7.2 (or further). However, the only sure way to know is to follow up with your Sitecore sales rep to have them check to see if there are any limits on your license that would prevent you from upgrading to 7.