This preface contains:
The following are changes in Oracle Database JDBC Developer's Guide for Oracle Database 12c Release 1 (12.1).
The following features are new in this release:
Support for Row Count Per Iteration for Array DMLs
See "Row Count per Iteration for Array DMLs" section.
Support for Application Continuity
Support for Transaction Guard
Database Resident Connection Pooling
Support for Latest JDBC Standard
See "Support for JDBC 4.1 Standard" section.
Support for SHA-2 in Oracle Advanced Security
See "Support for Oracle Advanced Security" section.
Support for the O7L_MR
Client Ability
See "Support for Login Authentication" section.
Support for Implicit Results
See "Support for Implicit Results" section.
Support for Invisible Columns
See "Working with Invisible Columns" section.
Support for PL/SQL Package Types as Parameters
See "Using PL/SQL Types" section.
Support for Monitoring of Database Operations
See "Monitoring Database Operations" section.
Support for Promoting a Local Transaction to a Global Transaction
See "OracleXAResource Method Functionality and Input Parameters".
Support for the ?
character used in the MATCH_RECOGNIZE
clause
See "MATCH_RECOGNIZE Clause" section .
Support for specifying delay between connection retries
See "Support for Delay in Connection Retries" section.
Support for Increased Length Limit for Various Data Types
Starting from this release, there is an increase in the length limit for VARCHAR2, NVARCHAR2, and RAW data types in Oracle SQL to 32767 (32K) bytes. For NVARCHAR columns, the limit is 32766 bytes.
For using these data types with extended size, you must perform the following steps:
Set the COMPATIBLE
initialization parameter to 12.0.0.0.
Set the MAX_STRING_SIZE
initialization parameter to EXTENDED
.
Run the rdbms/admin/utl32k.sql
script.
See Also:
Oracle Database Reference for more information about using these data types with extended sizeTo enable sharing a common pool of connections across multiple PDBs (or tenants), Oracle JDBC and Universal Connection Pool (UCP) furnish the multitenant data source for Java. In Oracle Database 12c Release 1 (12.1), it is based on a combination of the following:
Global database user (with access privileges to any PDB)
UCP connection labeling
The new SET CONTAINER
statement within a callback function:
The advantage of the SET CONTAINER
statement is that the pool does not have to create a new connection to a PDB, if there is an existing connection to a different PDB. The pool can use the existing connection and can connect to the desired PDB through the SET CONTAINER
statement. Use the following command to achieve this:
ALTER SESSION SET CONTAINER=<PDB Name>
This feature avoids the need to create a new connection from scratch.
The UCP connection labeling callback interface.
Following steps describe how mutlitenant data source for Java works:
Suppose, you have Tenant1
, who calls the getConnection
method with the corresponding label (mapped to the database ID) for a connection to PDB1
.
UCP searches the pool for a free connection, tentatively with the specified label mapped to the database ID.
If for a connection Conn1
, the label reads PDB1
, then it is passed to JDBC, and consequently to Tenant1
for using the connection.
Otherwise, if no connection label reads PDB1
, then the following steps are performed:
UCP invokes the user-implemented configure
callback method to set the connection to PDB1
using the ALTER SESSION SET CONTAINER
command.
The SET CONTAINER
statement is passed to the server and parsed.
The server executes the SET CONTAINER
statement and assigns the PDB-specific role to Tenant1
Foot 1 .
The server then connects Conn1
to PDB1
, and returns the corresponding database ID (dbid
) and other properties to JDBC.
JDBC notifies UCP and passes Conn1
to Tenant1
for using the connection.
The following features are deprecated in this release, and may be desupported in a future release:
Concrete classes in the oracle.sql
package
The concrete classes in the oracle.sql
package are deprecated. Use the new JDBC interfaces instead of these classes.
See MoS Note 1364193.1 for more information about these interfaces.
defineColumnType
method
Most of the variants of the defineColumnType
method are deprecated. The supported variants are for:
LOB to LONG conversions
Configure the LOB prefetch size
See the JDBC Javadoc for more information.
CONNECTION_PROPERTY_STREAM_CHUNK_SIZE
property
See the JDBC Javadoc for more information.
Oracle Update Batching
Oracle update batching is deprecated from this release in favor of standard update batching.
See "Standard Update Batching" section for more information.
EndToEndMetrics
related APIs
EndToEndMetrics
related APIs are deprecated in this release.
See Chapter 33, "JDBC DMS Metrics" for more information.
The following features are no longer supported by Oracle. See Oracle Database Upgrade Guide for a complete list of desupported features in this release.
Implicit Connection Caching
See Also:
Oracle Database Upgrade Guide to see a list of all desupported features in this release of Oracle DatabaseThe following are additional changes in the release:
Run-Time Connection Load Balancing
The Run-Time Connection Load Balancing feature enables routing of work requests to an instance that offers the best performance, minimizing the need to relocate work. With the desupport of Implicit Connection Cache, Oracle recommends you to use this feature with Universal Connection Pool. So, the Run-Time Connection Load Balancing chapter is removed from the book from this release.
See Oracle Universal Connection Pool for JDBC Developer's Guide for more information about this feature.
Fast Connection Failover offers a driver-independent way for your Java Database Connectivity (JDBC) application to take advantage of the connection failover facilities offered by Oracle Database 12c Release 1 (12.1). With the desupport of Implicit Connection Cache, Oracle recommends you to use this feature with Universal Connection Pool. So, the Fast Connection Failover chapter is removed from the book from this release.
See Oracle Universal Connection Pool for JDBC Developer's Guide for more information about this feature.
Footnote Legend
Footnote 1: If you are a global user in a PDB, then you cannot perform many tasks without a password-protected role.