Part 1 - 12c Database and WLS - Overview
By Steve Felts on Jul 02, 2013
The download of Oracle 12c database became available on June 25, 2013. There are some big new features in 12c database and WebLogic Server will take advantage of them. Immediately, we will support using 12c database and drivers with WLS 10.3.6 and 12.1.1. With WLS 12.1.2, available July 11, 2013 (join the Online Launch Event on July 31st), additional functionality is supported (those rows in the table below with all "No" values will get a "Yes). The following table maps the Oracle 12c Database features supported with various combinations of currently available WLS releases, 11g and 12c Drivers, and 11g and 12c Databases.
|Feature||WebLogic Server 10.3.6/12.1.1 with 11g drivers and 11gR2 DB||WebLogic Server 10.3.6/12.1.1 with 11g drivers and 12c DB||WebLogic Server 10.3.6/12.1.1 with 12c drivers and 11gR2 DB||WebLogic Server 10.3.6/12.1.1 with 12c drivers and 12c DB|
|JDBC replay||No||No||No||Yes (Active GridLink only in 10.3.6, add generic in 12.1.1)|
|Multi Tenant Database||No||Yes (except set container)||No||Yes (except set container)|
|Dynamic switching between Tenants||No||No||No||No|
|Database Resident Connection pooling (DRCP)||No||No||No||No|
|Oracle Notification Service (ONS) auto configuration||No||No||No||No|
|Global Database Services (GDS)||No||Yes (Active GridLink only)||No||Yes (Active GridLink only)|
|JDBC 4.1 (using ojdbc7.jar files & JDK 7)||No||No||Yes||Yes|
The My Oracle Support (MOS) document covering this is "WebLogic Server 12.1.1 and 10.3.6 Support for Oracle 12c Database [ID 1564509.1]" at the link https://support.oracle.com/epmos/faces/DocumentDisplay?id=1564509.1.
The following documents are also key references:
12c Oracle Database Developer Guide http://docs.oracle.com/cd/E16655_01/appdev.121/e17620/toc.htm
12c Oracle Database Administrator's Guide http://docs.oracle.com/cd/E16655_01/server.121/e17636/toc.htm .
I plan to write some related blog articles not to duplicate existing product documentation but to introduce the features, provide some examples, and tie together some information to make it easier to understand.
How do you get started with 12c? The easiest way is to point your data source at a 12c database. The only change on the WLS side is to update the URL in your data source (assuming that you are not just upgrading your database). You can continue to use the 184.108.40.206 driver jar files that shipped with WLS 10.3.6 or 12.1.1. You shouldn't see any changes in your application. You can take advantage of enhancements on the database side that don't affect the mid-tier. On the WLS side, you can take advantage of using Global Data Service or connecting to a tenant in a multi-tenant database transparently.
If you want to use the 12c client jar files, it's a bit of work because they aren't shipped with WLS and you can't just drop in ojdbc6.jar as in the old days. You need to use a matched set of jar files and they need to come before existing jar files in the CLASSPATH. The MOS article is written from the standpoint that you need to get the jar files directly - download almost 1G and install over 600M footprint to get 15 jar files. Assuming that you have the database installed and you can get access to the installation (or ask the DBA), you need to copy the 15 jar files to each machine with a WLS installation and get them in your CLASSPATH. You can play with setting the PRE_CLASSPATH but the more practical approach may be to just update WL_HOME/common/bin/commEnv.sh directly. There's a change in the transaction completion behavior (read the MOS) so if you think you might run into that, you will want to set -Doracle.jdbc.autoCommitSpecCompliant=false. Also if you are running with Active GridLink, you must set -Doracle.ucp.PreWLS1212Compatible=true (how's that for telling you that this is fixed in WLS 12.1.2).
Once you get the configuration out of the way, you can start using the new ojdbc7.jar in place of the ojdbc6.jar to get the new JDBC 4.1 API's. You can also start using Application Continuity. This feature is also known as JDBC Replay because when a connection fails you get a new one with all JDBC operations up to the failure point automatically replayed. As you might expect, there are some limitations but it's an interesting feature.
Obviously I'm going to focus on the 12c database features that we can leverage in WLS data source. You will need to read other sources or the product documentation to get all of the new features.