Go to main content
1/55
Contents
List of Tables
Title and Copyright Information
Preface
Audience
Documentation Accessibility
Related Documents
Conventions
Changes in This Release for Oracle Database JDBC Developer's Guide
Changes in Oracle Database 12
c
Release 2 (12.2)
New Features
Deprecated Features
Desupported Features
Part I Overview
1
Introducing JDBC
1.1
Overview of Oracle JDBC Drivers
1.2
Choosing the Appropriate Driver
1.3
Feature Differences Between JDBC OCI and Thin Drivers
1.4
Environments and Support
1.4.1
Supported JDK and JDBC Versions
1.4.2
JNI and Java Environments
1.4.3
JDBC and IDEs
1.5
Feature List
2
Getting Started
2.1
Version Compatibility for Oracle JDBC Drivers
2.2
Verifying a JDBC Client Installation
2.2.1
Checking the Installed Directories and Files
2.2.2
Checking the Environment Variables
2.2.3
Ensuring that the Java Code Can Be Compiled and Run
2.2.4
Determining the Version of the JDBC Driver
2.2.5
Testing the JDBC and Database Connection
2.3
Basic Steps in JDBC
2.3.1
Importing Packages
2.3.2
Opening a Connection to a Database
2.3.3
Creating a Statement Object
2.3.4
Running a Query and Retrieving a Result Set Object
2.3.5
Processing the Result Set Object
2.3.6
Closing the Result Set and Statement Objects
2.3.7
Making Changes to the Database
2.3.8
About Committing Changes
2.3.8.1
Changing Commit Behavior
2.3.9
Closing the Connection
2.4
Sample: Connecting, Querying, and Processing the Results
2.5
Support for Invisible Columns
2.6
Support for Implicit Results
2.7
Support for Deprioritization of Database Nodes
2.8
Stored Procedure Calls in JDBC Programs
2.8.1
PL/SQL Stored Procedures
2.8.2
Java Stored Procedures
2.9
About Processing SQL Exceptions
Part II Oracle JDBC
3
JDBC Standards Support
3.1
Support for JDBC 2.0 Standard
3.1.1
Data Type Support
3.1.2
Standard Feature Support
3.1.3
Extended Feature Support
3.1.4
Standard versus Oracle Performance Enhancement APIs
3.2
Support for JDBC 3.0 Standard
3.2.1
Overview of Transaction Savepoints
3.2.1.1
About Creating a Savepoint
3.2.1.2
About Rolling Back to a Savepoint
3.2.1.3
About Releasing a Savepoint
3.2.1.4
About Checking Savepoint Support
3.2.1.5
Savepoint Notes
3.2.2
Retrieval of Auto-Generated Keys
3.2.2.1
java.sql.Statement
3.2.2.2
Sample Code
3.2.2.3
Limitations of Auto-Generated Keys
3.2.3
JDBC 3.0 LOB Interface Methods
3.2.4
Result Set Holdability
3.3
Support for JDBC 4.0 Standard
3.3.1
Wrapper Pattern Support
3.3.2
SQLXML Type
3.3.3
Enhanced Exception Hierarchy and SQLException
3.3.4
The RowId Data Type
3.3.5
LOB Creation
3.3.6
National Language Character Set Support
3.4
Support for JDBC 4.1 Standard
3.4.1
setClientInfo Method
3.4.2
getObject Method
3.5
Support for JDBC 4.2 Standard
4
Oracle Extensions
4.1
Overview of Oracle Extensions
4.2
Features of the Oracle Extensions
4.2.1
Database Management Using JDBC
4.2.2
Support for Oracle Data Types
4.2.3
Support for Oracle Objects
4.2.4
Support for Schema Naming
4.2.5
DML Returning
4.2.6
About Accessing PL/SQL Associative Arrays
4.3
Oracle JDBC Packages
4.3.1
Package oracle.sql
4.3.2
Package oracle.jdbc
4.4
Oracle Character Data Types Support
4.4.1
SQL CHAR Data Types
4.4.2
SQL NCHAR Data Types
4.4.3
Class oracle.sql.CHAR
4.5
Additional Oracle Type Extensions
4.5.1
Oracle ROWID Type
4.5.2
Oracle REF CURSOR Type Category
4.5.3
Oracle BINARY_FLOAT and BINARY_DOUBLE Types
4.5.4
Oracle SYS.ANYTYPE and SYS.ANYDATA Types
4.5.5
The oracle.jdbc Package
4.5.5.1
Interface oracle.jdbc.OracleConnection
4.5.5.2
Interface oracle.jdbc.OracleStatement
4.5.5.3
Interface oracle.jdbc.OraclePreparedStatement
4.5.5.4
Interface oracle.jdbc.OracleCallableStatement
4.5.5.5
Interface oracle.jdbc.OracleResultSet
4.5.5.6
Interface oracle.jdbc.OracleResultSetMetaData
4.5.5.7
Class oracle.jdbc.OracleTypes
4.6
DML Returning
4.6.1
Oracle-Specific APIs
4.6.2
About Running DML Returning Statements
4.6.3
Example of DML Returning
4.6.4
Limitations of DML Returning
4.7
Accessing PL/SQL Associative Arrays
4.7.1
Overview of PL/SQL Associative Arrays
4.7.2
Binding IN Parameters in PL/SQL Associative Arrays
4.7.3
Receiving OUT Parameters in PL/SQL Associative Arrays
4.7.4
Type Mappings in PL/SQL Associative Arrays
5
Features Specific to JDBC Thin
5.1
Overview of JDBC Thin Client
5.2
Additional Features Supported
5.2.1
Default Support for Native XA
5.2.2
Support for Transaction Guard
5.2.3
Support for Application Continuity
5.2.4
Support for Applets
5.3
JDBC in Applets
5.3.1
About Connecting to the Database Through the Applet
5.3.2
Connecting to a Database on a Different Host Than the Web Server
5.3.2.1
Using the Oracle Connection Manager
5.3.2.1.1
Overview of Using the Connection Manager
5.3.2.1.2
Installing and Running the Oracle Connection Manager
5.3.2.1.3
Writing the URL that Targets the Connection Manager
5.3.2.1.4
Connecting Through Multiple Connection Managers
5.3.2.2
Using Signed Applets
5.3.3
Overview of Using Applets with Firewalls
5.3.3.1
Configuring a Firewall for Applets that use the JDBC Thin Driver
5.3.3.2
Writing a URL to Connect Through a Firewall
5.3.4
Packaging Applets
5.3.5
Overview of Specifying an Applet in an HTML Page
5.3.5.1
CODE, HEIGHT, and WIDTH
5.3.5.2
CODEBASE
5.3.5.3
ARCHIVE
6
Features Specific to JDBC OCI Driver
6.1
OCI Connection Pooling
6.2
Client Result Cache
6.2.1
Benefits of Client Result Cache
6.2.2
Usage Guidelines in JDBC
6.2.2.1
RESULT_CACHE_MODE Parameter
6.2.2.2
Table Annotations
6.2.2.3
SQL Hints
6.3
Transparent Application Failover
6.4
OCI Native XA
6.5
OCI Instant Client
6.5.1
Overview of Instant Client
6.5.2
OCI Instant Client Shared Libraries
6.5.3
Benefits of Instant Client
6.5.4
JDBC OCI Instant Client Installation Process
6.5.5
Usage of Instant Client
6.5.6
About Patching Instant Client Shared Libraries
6.5.7
Regeneration of Data Shared Library and ZIP files
6.5.8
Database Connection Names for OCI Instant Client
6.5.9
Environment Variables for OCI Instant Client
6.6
About Instant Client Light (English)
6.6.1
Data Shared Library for Instant Client Light (English)
6.6.2
Globalization Settings
6.6.3
Operation
6.6.4
Installing Instant Client Light (English)
7
Server-Side Internal Driver
7.1
Overview of the Server-Side Internal Driver
7.2
Connecting to the Database
7.3
About Session and Transaction Context
7.4
Testing JDBC on the Server
7.5
Loading an Application into the Server
7.5.1
Using the Loadjava Utility
7.5.2
Using the JVM Command Line
Part III Connection and Security
8
Data Sources and URLs
8.1
About Data Sources
8.1.1
Overview of Oracle Data Source Support for JNDI
8.1.2
Features and Properties of Data Sources
8.1.3
Creating a Data Source Instance and Connecting
8.1.4
Creating a Data Source Instance, Registering with JNDI, and Connecting
8.1.5
Supported Connection Properties
8.1.6
About Using Roles for SYS Login
8.1.7
Configuring Database Remote Login
8.1.8
Using Bequeath Connection and SYS Logon
8.1.9
Setting Properties for Oracle Performance Extensions
8.1.10
Support for Network Data Compression
8.2
Database URLs and Database Specifiers
8.2.1
Support for Internet Protocol Version 6
8.2.2
Database Specifiers
8.2.3
Thin-style Service Name Syntax
8.2.4
Support for Delay in Connection Retries
8.2.5
TNSNames Alias Syntax
8.2.6
LDAP Syntax
9
JDBC Client-Side Security Features
9.1
Support for Oracle Advanced Security
9.1.1
Overview of Oracle Advanced Security
9.1.2
JDBC OCI Driver Support for Oracle Advanced Security
9.1.3
JDBC Thin Driver Support for Oracle Advanced Security
9.2
Support for Login Authentication
9.3
Support for Strong Authentication
9.4
Support for Data Encryption and Integrity
9.4.1
Overview of JDBC Support for Data Encryption and Integrity
9.4.2
JDBC OCI Driver Support for Encryption and Integrity
9.4.3
JDBC Thin Driver Support for Encryption and Integrity
9.4.4
Setting Encryption and Integrity Parameters in Java
9.5
Support for SSL
9.5.1
Overview of JDBC Support for SSL
9.5.2
About Managing Certificates and Wallets
9.5.3
About Keys and certificates containers
9.5.4
Database Connectivity Over TLS Version 1.2 Using JDBC Thin and JKS
9.6
Support for Kerberos
9.6.1
Overview of JDBC Support for Kerberos
9.6.2
Configuring Windows to Use Kerberos
9.6.3
Configuring Oracle Database to Use Kerberos
9.6.4
Code Example for Using Kerberos
9.7
Support for RADIUS
9.7.1
Overview of JDBC Support for RADIUS
9.7.2
Configuring Oracle Database to Use RADIUS
9.7.3
Code Example for Using RADIUS
9.8
About Secure External Password Store
10
Proxy Authentication
10.1
About Proxy Authentication
10.2
Types of Proxy Connections
10.3
Creating Proxy Connections
10.4
Closing a Proxy Session
10.5
Caching Proxy Connections
10.6
Limitations of Proxy Connections
Part IV Data Access and Manipulation
11
Accessing and Manipulating Oracle Data
11.1
Data Type Mappings
11.1.1
Table of Mappings
11.1.2
Notes Regarding Mappings
11.2
Data Conversion Considerations
11.2.1
Standard Types Versus Oracle Types
11.2.2
About Converting SQL NULL Data
11.2.3
About Testing for NULLs
11.3
Result Set and Statement Extensions
11.4
Comparison of Oracle get and set Methods to Standard JDBC
11.4.1
Standard getObject Method
11.4.2
Oracle getOracleObject Method
11.4.3
Summary of getObject and getOracleObject Return Types
11.4.4
Other getXXX Methods
11.4.4.1
Return Types of getXXX Methods
11.4.4.2
Special Notes about getXXX Methods
11.4.5
Data Types For Returned Objects from getObject and getXXX
11.4.6
The setObject and setOracleObject Methods
11.4.7
Other setXXX Methods
11.4.7.1
Input Data Binding
11.4.7.2
Method setFixedCHAR for Binding CHAR Data into WHERE Clauses
11.5
Using Result Set Metadata Extensions
11.6
About Using SQL CALL and CALL INTO Statements
12
Java Streams in JDBC
12.1
Overview of Java Streams
12.2
About Streaming LONG or LONG RAW Columns
12.2.1
Overview of Streaming LONG or LONG RAW Columns
12.2.2
LONG RAW Data Conversions
12.2.3
LONG Data Conversions
12.2.4
Examples:Streaming LONG RAW Data
12.2.5
About Avoiding Streaming for LONG or LONG RAW
12.3
About Streaming CHAR, VARCHAR, or RAW Columns
12.4
About Streaming LOBs and External Files
12.5
Relation Between Data Streaming and Multiple Columns
12.6
Closing a Stream
12.7
Notes and Precautions on Streams
12.7.1
About Streaming Data Precautions
12.7.2
About Using Streams to Avoid Limits on setBytes and setString
12.7.3
Relation Between Streaming and Row Prefetching
13
Working with Oracle Object Types
13.1
About Mapping Oracle Objects
13.2
About Using the Default STRUCT Class for Oracle Objects
13.2.1
Overview of Using the Struct Class
13.2.2
Retrieving STRUCT Objects and Attributes
13.2.3
About Creating STRUCT Objects
13.2.4
Binding STRUCT Objects into Statements
13.2.5
STRUCT Automatic Attribute Buffering
13.3
About Creating and Using Custom Object Classes for Oracle Objects
13.3.1
Overview of Creating and Using Custom Object Classes
13.3.2
Relative Advantages of OracleData versus SQLData
13.3.3
About Type Maps for SQLData Implementations
13.3.4
About Creating Type Map and Defining Mappings for a SQLData Implementation
13.3.4.1
Overview of Creating a Type Map and Defining Mappings
13.3.4.2
Adding Entries to an Existing Type Map
13.3.4.3
Creating a New Type Map
13.3.4.4
About Materializing Object Types not Specified in the Type Map
13.3.5
About Reading and Writing Data with a SQLData Implementation
13.3.6
About the OracleData Interface
13.3.7
About Reading and Writing Data with an OracleData Implementation
13.3.8
Additional Uses of OracleData
13.4
Object-Type Inheritance
13.4.1
About Creating Subtypes
13.4.2
About Implementing Customized Classes for Subtypes
13.4.2.1
About Using OracleData for Type Inheritance Hierarchy
13.4.2.2
About UsingSQLData for Type Inheritance Hierarchy
13.4.3
About Retrieving Subtype Objects
13.4.4
Creating Subtype Objects
13.4.5
Sending Subtype Objects
13.4.6
Accessing Subtype Data Fields
13.4.7
Inheritance Metadata Methods
13.5
About Describing an Object Type
13.5.1
Functionality for Getting Object Metadata
13.5.2
Retrieving Object Metadata
14
Working with LOBs and BFILEs
14.1
The LOB Data Types
14.2
Oracle SecureFiles
14.3
Data Interface for LOBs
14.3.1
Streamlined Mechanism
14.3.2
Input
14.3.3
Output
14.3.4
CallableSatement and IN OUT Parameter
14.3.5
Size Limitations
14.4
LOB Locator Interface
14.5
About Working With Temporary LOBs
14.6
About Opening Persistent LOBs with the Open and Close Methods
14.7
About Working with BFILEs
15
Using Oracle Object References
15.1
Oracle Extensions for Object References
15.2
Retrieving and Passing an Object Reference
15.2.1
Retrieving an Object Reference from a Result Set
15.2.2
Retrieving an Object Reference from a Callable Statement
15.2.3
Passing an Object Reference to a Prepared Statement
15.3
Accessing and Updating Object Values Through an Object Reference
16
Working with Oracle Collections
16.1
Oracle Extensions for Collections
16.1.1
Overview of Oracle Collections
16.1.2
Choices in Materializing Collections
16.1.3
Creating Collections
16.1.4
Creating Multilevel Collection Types
16.2
Overview of Collection Functionality
16.3
ARRAY Performance Extension Methods
16.3.1
About Accessing oracle.sql.ARRAY Elements as Arrays of Java Primitive Types
16.3.2
ARRAY Automatic Element Buffering
16.3.3
ARRAY Automatic Indexing
16.4
Creating and Using Arrays
16.4.1
Creating ARRAY Objects
16.4.2
Retrieving an Array and Its Elements
16.4.2.1
About Retrieving the Array
16.4.2.2
Data Retrieval Methods
16.4.2.3
Comparing the Data Retrieval Methods
16.4.2.4
Retrieving Elements of a Structured Object Array According to a Type Map
16.4.2.5
Retrieving a Subset of Array Elements
16.4.2.6
Retrieving Array Elements into an oracle.sql.Datum Array
16.4.2.7
About Accessing Multilevel Collection Elements
16.4.3
Passing Arrays to Statement Objects
16.5
Using a Type Map to Map Array Elements
17
Result Set
17.1
Oracle JDBC Implementation Overview for Result Set Support
17.2
Resultset Limitations and Downgrade Rules
17.3
About Avoiding Update Conflicts
17.4
Row Fetch Size
17.4.1
Setting the Fetch Size
17.4.2
Presetting the Fetch Direction
17.5
About Refetching Rows
17.6
About Viewing Database Changes Made Internally and Externally
17.6.1
Visibility versus Detection of External Changes
17.6.2
Summary of Visibility of Internal and External Changes
17.6.3
Oracle Implementation of Scroll-Sensitive Result Sets
18
JDBC RowSets
18.1
Overview of JDBC RowSets
18.1.1
RowSet Properties
18.1.2
Events and Event Listeners
18.1.3
Command Parameters and Command Execution
18.1.4
About Traversing RowSets
18.2
About CachedRowSet
18.3
About JdbcRowSet
18.4
About WebRowSet
18.5
About FilteredRowSet
18.6
About JoinRowSet
19
Globalization Support
19.1
About Providing Globalization Support
19.2
NCHAR, NVARCHAR2, NCLOB and the defaultNChar Property
19.3
New Methods for National Character Set Type Data in JDK 6
Part V Performance and Scalability
20
Statement and Result Set Caching
20.1
About Statement Caching
20.1.1
Basics of Statement Caching
20.1.2
Implicit Statement Caching
20.1.3
Explicit Statement Caching
20.2
About Using Statement Caching
20.2.1
About Enabling and Disabling Statement Caching
20.2.2
About Closing a Cached Statement
20.2.3
About Using Implicit Statement Caching
20.2.3.1
Methods Used in Statement Allocation and Implicit Statement Caching
20.2.4
About Using Explicit Statement Caching
20.2.4.1
Methods Used to Retrieve Explicitly Cached Statements
20.3
About Reusing Statements Objects
20.3.1
About Using a Pooled Statement
20.3.2
About Closing a Pooled Statement
20.4
About Result Set Caching
20.4.1
Server-Side Result Set Cache
20.4.2
Client Result Set Cache
21
Performance Extensions
21.1
Update Batching
21.1.1
Overview of Update Batching
21.1.2
Standard Update Batching
21.1.2.1
Limitations in the Oracle Implementation of Standard Batching
21.1.2.2
About Adding Operations to the Batch
21.1.2.3
About Processing the Batch
21.1.2.4
Row Count per Iteration for Array DMLs
21.1.2.5
About Committing the Changes in the Oracle Implementation of Standard Batching
21.1.2.6
About Clearing the Batch
21.1.2.7
Update Counts in the Oracle Implementation of Standard Batching
21.1.2.8
Error Handling in the Oracle Implementation of Standard Batching
21.1.2.9
About Intermixing Batched Statements and Nonbatched Statements
21.1.3
Premature Batch Flush
21.2
Additional Oracle Performance Extensions
21.2.1
About Prefetching LOB Data
21.2.2
Oracle Row-Prefetching Limitations
21.2.3
About Defining Column Types
21.2.4
About Reporting DatabaseMetaData TABLE_REMARKS
22
OCI Connection Pooling
22.1
Background of OCI Driver Connection Pooling
22.2
Comparison Between OCI Driver Connection Pooling and Shared Servers
22.3
About Defining an OCI Connection Pool
22.3.1
Overview of Creating an OCI Connection Pool
22.3.2
Importing the oracle.jdbc.pool and oracle.jdbc.oci Packages
22.3.3
Creating an OCI Connection Pool
22.3.4
Setting the OCI Connection Pool Parameters
22.3.5
Checking the OCI Connection Pool Status
22.4
About Connecting to an OCI Connection Pool
22.5
Sample Code for OCI Connection Pooling
22.6
Statement Handling and Caching
22.7
JNDI and the OCI Connection Pool
23
Database Resident Connection Pooling
23.1
Overview of Database Resident Connection Pooling
23.2
Enabling Database Resident Connection Pooling
23.2.1
Enabling DRCP on the Server Side
23.2.2
Enabling DRCP on the Client Side
23.3
About Sharing Pooled Servers Across Multiple Connection Pools
23.4
DRCP Tagging
23.5
PL/SQL Session State Fix-Up Callback
23.6
APIs for Using DRCP
24
JDBC Support for Database Sharding
24.1
Overview of Database Sharding for JDBC Users
24.2
About Building the Sharding Key
24.3
APIs for Database Sharding Support
24.3.1
The OracleShardingKey Interface
24.3.2
The OracleShardingKeyBuilder Interface
24.3.3
The OracleConnectionBuilder Interface
24.3.4
Other New Classes and Methods for Database Sharding Support
24.4
JDBC Sharding Example
25
Oracle Advanced Queuing
25.1
Functionality and Framework of Oracle Advanced Queuing
25.2
Making Changes to the Database
25.3
AQ Asynchronous Event Notification
25.4
About Creating Messages
25.4.1
Creating Messages
25.4.2
AQ Message Properties
25.4.3
AQ Message Payload
25.5
Example: Creating a Message and Setting a Payload
25.6
Enqueuing Messages
25.7
Dequeuing Messages
25.8
Examples: Enqueuing and Dequeuing
26
Continuous Query Notification
26.1
Overview of Continuos Query Notification
26.2
Creating a Registration
26.2.1
Continuous Query Notification Registration Options
26.3
Associating a Query with a Registration
26.4
Notifying Database Change Events
26.5
Deleting a Registration
Part VI High Availability
27
Transaction Guard for Java
27.1
Overview of Transaction Guard for Java
27.2
Transaction Guard Support for XA Transactions
27.3
How to Use Transaction Guard with XA
27.4
Transaction Guard for Java APIs
27.4.1
Retrieving the Logical Transaction Identifiers
27.4.2
Retrieving the Updated Logical Transaction Identifiers
27.4.2.1
Registering Event Listeners
27.4.2.2
Unregistering Event Listeners
27.5
Complete Example:Using Transaction Guard APIs
27.6
About Using Server-Side Transaction Guard APIs
28
Application Continuity for Java
28.1
About Configuring Oracle JDBC for Application Continuity for Java
28.2
About Configuring Oracle Database for Application Continuity for Java
28.3
Application Continuity Support for XA Data Source
28.4
About Identifying Request Boundaries in Application Continuity for Java
28.5
Establishing the Initial State Before Application Continuity Replays
28.5.1
No Callback
28.5.2
Connection Labeling
28.5.3
Connection Initialization Callback
28.5.3.1
Creating an Initialization Callback
28.5.3.2
Registering an Initialization Callback
28.5.3.3
Removing or Unregistering an Initialization Callback
28.5.4
About Enabling FAILOVER_RESTORE
28.6
About Delaying the Reconnection in Application Continuity for Java
28.6.1
Configuration Examples Related to Application Continuity for Java
28.6.1.1
Creating Services on Oracle RAC
28.6.1.2
Modifying Services on Single-Instance Databases
28.7
About Retaining Mutable Values in Application Continuity for Java
28.7.1
Grant and Revoke Interface
28.7.1.1
Dates and SYS_GUID Syntax
28.7.1.2
Sequence Syntax
28.7.1.3
GRANT ALL Statement
28.7.1.4
Rules for Grants on Mutable Values
28.8
Application Continuity Statistics
28.9
About Disabling Replay in Application Continuity for Java
28.9.1
How to Disable Replay
28.9.2
When to Disable Replay
28.9.2.1
Application Calls External PL/SQL Actions that Should not Be Repeated
28.9.2.2
Application Synchronizes Independent Sessions
28.9.2.3
Application Uses Time at the Middle-tier in the Execution Logic
28.9.2.4
Application assumes that ROWIds do not change
28.9.2.5
Application Assumes that Side Effects Execute Once
28.9.2.6
Application Assumes that Location Values Do not Change
28.9.3
Diagnostics and Tracing
28.9.3.1
Writing Replay Trace to Console
28.9.3.2
Writing Replay Trace to a File
29
Oracle JDBC Support for FAN Events
29.1
Overview of Oracle JDBC Support for FAN events
29.2
Safe Draining APIs for Planned Maintenance
29.3
Installation and Configuration of Oracle JDBC Driver for FAN Events Support
29.4
Example of Oracle JDBC Driver FAN support for Planned Maintenance
30
Transparent Application Failover
30.1
Overview of Transparent Application Failover
30.2
Failover Type Events
30.3
TAF Callbacks
30.4
Java TAF Callback Interface
30.5
Comparison of TAF and Fast Connection Failover
31
Single Client Access Name
31.1
Overview of Single Client Access Name
31.2
About Configuring the Database Using the SCAN
31.3
How Connection Load Balancing Works Using the SCAN
31.4
Version and Backward Compatibility
31.5
Using the SCAN in a Maximum Availability Architecture Environment
31.6
Using the SCAN With Oracle Connection Manager
Part VII Transaction Management
32
Distributed Transactions
32.1
About Distributed Transactions
32.1.1
Overview of Distributed Transaction
32.1.2
Distributed Transaction Components and Scenarios
32.1.3
Distributed Transaction Concepts
32.1.4
About Switching Between Global and Local Transactions
32.1.5
Oracle XA Packages
32.2
XA Components
32.2.1
XADatasource Interface and Oracle Implementation
32.2.2
XAConnection Interface and Oracle Implementation
32.2.3
XAResource Interface and Oracle Implementation
32.2.4
OracleXAResource Method Functionality and Input Parameters
32.2.5
Xid Interface and Oracle Implementation
32.3
Error Handling and Optimizations
32.3.1
XAException Classes and Methods
32.3.2
Mapping Between Oracle Errors and XA Errors
32.3.3
XA Error Handling
32.3.4
Oracle XA Optimizations
32.4
About Implementing a Distributed Transaction
32.4.1
Summary of Imports for Oracle XA
32.4.2
Oracle XA Code Sample
32.5
Native-XA in Oracle JDBC Drivers
32.5.1
OCI Native XA
32.5.2
Thin Native XA
Part VIII Manageability
33
Database Administration
33.1
Using the Database Administration Methods
33.2
Using the startup Method
33.2.1
Database Startup Options
33.3
Using the shutdown Method
33.3.1
Database Shutdown Options
33.3.2
Standard Database Shutdown Process
33.4
A Complete Example
34
Diagnosability in JDBC
34.1
About Logging Feature of Oracle JDBC Drivers
34.1.1
Overview of Logging Feature of Oracle JDBC Drivers
34.1.2
Enabling and Using JDBC Logging
34.1.2.1
About Configuring the CLASSPATH
34.1.2.2
Enabling Logging
34.1.2.3
Configuring Logging
34.1.2.4
Redirecting the Log Output to a File
34.1.2.5
Using Loggers
34.1.2.6
Logging Example
34.1.3
Enabling or Disabling Feature-Specific Logging at Run Time
34.1.4
Using the Logging Configuration File for Feature-Specific Logging
34.1.5
Performance, Scalability, and Security Issues
34.2
Diagnosability Management
35
JDBC DMS Metrics
35.1
Overview of JDBC DMS Metrics
35.2
About Determining the Type of Metric to Be Generated
35.3
About Generating the SQLText Metric
35.4
About Accessing DMS Metrics Using JMX
Appendixes
A
JDBC Reference Information
A.1
Supported SQL-JDBC Data Type Mappings
A.2
Supported SQL and PL/SQL Data Types
A.3
About Using PL/SQL Types
A.4
Using Embedded JDBC Escape Syntax
A.4.1
Time and Date Literals
A.4.1.1
Date Literals
A.4.1.2
Time Literals
A.4.1.3
Timestamp Literals
A.4.2
Scalar Functions
A.4.3
LIKE Escape Characters
A.4.4
MATCH_RECOGNIZE Clause
A.4.5
Outer Joins
A.4.6
Function Call Syntax
A.4.7
JDBC Escape Syntax to Oracle SQL Syntax Example
A.5
Oracle JDBC Notes and Limitations
A.5.1
CursorName
A.5.2
JDBC Outer Join Escapes
A.5.3
IEEE 754 Floating Point Compliance
A.5.4
Catalog Arguments to DatabaseMetaData Calls
A.5.5
SQLWarning Class
A.5.6
Executing DDL Statements
A.5.7
Binding Named Parameters
B
Oracle RAC Fast Application Notification
B.1
Overview of Oracle RAC Fast Application Notification
B.2
Installing and Configuring Oracle RAC Fast Application Notification
B.3
Using Oracle RAC Fast Application Notification
B.4
Implementing a Connection Pool
C
JDBC Coding Tips
C.1
JDBC and Multithreading
C.2
Performance Optimization of JDBC Programs
C.2.1
Disabling Auto-Commit Mode
C.2.2
Standard Fetch Size and Oracle Row Prefetching
C.2.3
About Setting the Session Data Unit Size
C.2.3.1
About Setting the SDU Size for the Database Server
C.2.3.2
About Setting the SDU Size for JDBC OCI Client
C.2.3.3
About Setting the SDU Size for JDBC Thin Client
C.2.4
JDBC Update Batching
C.2.5
Statement Caching
C.2.6
Mapping Between Built-in SQL and Java Types
C.3
Transaction Isolation Levels and Access Modes in JDBC
D
JDBC Error Messages
D.1
General Structure of JDBC Error Messages
D.2
General JDBC Messages
D.2.1
JDBC Messages Sorted by ORA Number
D.2.2
JDBC Messages Sorted in Alphabetic Order
D.3
Native XA Messages
D.3.1
Native XA Messages Sorted by ORA Number
D.3.2
Native XA Messages Sorted in Alphabetic Order
D.4
TTC Messages
D.4.1
TTC Messages Sorted by ORA Number
D.4.2
TTC Messages Sorted in Alphabetic Order
E
Troubleshooting
E.1
Common Problems
E.1.1
Memory Consumption for CHAR Columns Defined as OUT or IN/OUT Variables
E.1.2
Memory Leaks and Running Out of Cursors
E.1.3
Opening More than 16 OCI Connections for a Process
E.1.4
Using statement.cancel
E.1.5
Using JDBC with Firewalls
E.1.6
Frequent Abrupt Disconnection from Server
E.1.7
Network Adapter Cannot Establish Connection
E.1.7.1
Oracle Instance Configured with MTS Server Uses Shared Server
E.1.7.2
JDBC Thin Driver with NIC Card Supporting Both IPv4 and IPv6
E.1.7.3
Sample Application
E.2
Basic Debugging Procedures
E.2.1
Oracle Net Tracing to Trap Network Events
E.2.1.1
Client-Side Tracing
E.2.1.1.1
TRACE_LEVEL_CLIENT
E.2.1.1.2
TRACE_DIRECTORY_CLIENT
E.2.1.1.3
TRACE_FILE_CLIENT
E.2.1.1.4
TRACE_UNIQUE_CLIENT
E.2.1.2
Server-Side Tracing
E.2.1.2.1
TRACE_LEVEL_SERVER
E.2.1.2.2
TRACE_DIRECTORY_SERVER
E.2.1.2.3
TRACE_FILE_SERVER
E.2.2
Third Party Debugging Tools
Index
Scripting on this page enhances content navigation, but does not change the content in any way.