Skip to main content
Oracle Help Center

Sign Out

Sign In

  • Table of Contents
  • Search
  • Print
  • Download
  1. Database
  2. Oracle
  3. Oracle Database
  4. Release 19

JDBC Developer's Guide

  • Table of Contents
  • Search
  • Print
  • Download

Table of Contents

Expand AllCollapse All
  • 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 19c
      • New Features
      • Deprecated 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 Verifying JSON Data
      • 2.7 Support for Implicit Results
      • 2.8 Support for Lightweight Connection Validation
      • 2.9 Support for Deprioritization of Database Nodes
      • 2.10 Support for Oracle Connection Manager in Traffic Director Mode
        • 2.10.1 Modes of Running Oracle Connection Manager in Traffic Director Mode
        • 2.10.2 Benefits of Oracle Connection Manager in Traffic Director Mode
        • 2.10.3 Restrictions for Oracle Connection Manager in Traffic Director Mode
      • 2.11 Stored Procedure Calls in JDBC Programs
        • 2.11.1 PL/SQL Stored Procedures
        • 2.11.2 Java Stored Procedures
      • 2.12 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 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
    • 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
    • 6 Features Specific to JDBC OCI Driver
      • 6.1 OCI Connection Pooling
      • 6.2 Transparent Application Failover
      • 6.3 OCI Native XA
      • 6.4 OCI Instant Client
        • 6.4.1 Overview of Instant Client
        • 6.4.2 OCI Instant Client Shared Libraries
        • 6.4.3 Benefits of Instant Client
        • 6.4.4 JDBC OCI Instant Client Installation Process
        • 6.4.5 Usage of Instant Client
        • 6.4.6 About Patching Instant Client Shared Libraries
        • 6.4.7 Regeneration of Data Shared Library and ZIP files
        • 6.4.8 Database Connection Names for OCI Instant Client
        • 6.4.9 Environment Variables for OCI Instant Client
      • 6.5 About Instant Client Light (English)
        • 6.5.1 Data Shared Library for Instant Client Light (English)
        • 6.5.2 Globalization Settings
        • 6.5.3 Operation
        • 6.5.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 Support for HTTPS Proxy Configuration
        • 8.2.3 Database Specifiers
        • 8.2.4 Thin-style Service Name Syntax
        • 8.2.5 Support for Delay in Connection Retries
        • 8.2.6 TNSNames Alias Syntax
        • 8.2.7 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.5.5 Automatic SSL Connection Configuration
          • 9.5.5.1 Provider Resolution
          • 9.5.5.2 Automatic Key Store Type (KSS) Resolution
        • 9.5.6 Support for Default SSL Context
        • 9.5.7 Support for Key Store Service
      • 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-Side Result Set Cache
          • 20.4.2.1 Enabling the Client-Side Result Set Cache
          • 20.4.2.2 Benefits of Client-Side Result Set Cache
          • 20.4.2.3 Usage Guidelines in JDBC
            • 20.4.2.3.1 RESULT_CACHE_MODE Parameter
            • 20.4.2.3.2 Table Annotations
            • 20.4.2.3.3 SQL Hints
    • 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 Support for Reactive Streams Ingestion
      • 22.1 Overview of Java library for Reactive Streams Ingestion
      • 22.2 Architecture of Java Library for Reactive Streams Ingestion
      • 22.3 Limitations of Java library for Reactive Streams Ingestion
    • 23 OCI Connection Pooling
      • 23.1 Background of OCI Driver Connection Pooling
      • 23.2 Comparison Between OCI Driver Connection Pooling and Shared Servers
      • 23.3 About Defining an OCI Connection Pool
        • 23.3.1 Overview of Creating an OCI Connection Pool
        • 23.3.2 Importing the oracle.jdbc.pool and oracle.jdbc.oci Packages
        • 23.3.3 Creating an OCI Connection Pool
        • 23.3.4 Setting the OCI Connection Pool Parameters
        • 23.3.5 Checking the OCI Connection Pool Status
      • 23.4 About Connecting to an OCI Connection Pool
      • 23.5 Sample Code for OCI Connection Pooling
      • 23.6 Statement Handling and Caching
      • 23.7 JNDI and the OCI Connection Pool
    • 24 Database Resident Connection Pooling
      • 24.1 Overview of Database Resident Connection Pooling
      • 24.2 Enabling Database Resident Connection Pooling
        • 24.2.1 Enabling DRCP on the Server Side
        • 24.2.2 Enabling DRCP on the Client Side
      • 24.3 About Sharing Pooled Servers Across Multiple Connection Pools
      • 24.4 DRCP Tagging
      • 24.5 PL/SQL Callback for Session State Fix Up
      • 24.6 APIs for Using DRCP
    • 25 JDBC Support for Database Sharding
      • 25.1 Overview of Database Sharding for JDBC Users
      • 25.2 About Building the Sharding Key
      • 25.3 APIs for Database Sharding Support
        • 25.3.1 The OracleShardingKey Interface
        • 25.3.2 The OracleShardingKeyBuilder Interface
        • 25.3.3 The OracleConnectionBuilder Interface
        • 25.3.4 Other New Classes and Methods for Database Sharding Support
      • 25.4 JDBC Sharding Example
    • 26 Oracle Advanced Queuing
      • 26.1 Functionality and Framework of Oracle Advanced Queuing
      • 26.2 Making Changes to the Database
      • 26.3 AQ Asynchronous Event Notification
      • 26.4 About Creating Messages
        • 26.4.1 Creating Messages
        • 26.4.2 AQ Message Properties
        • 26.4.3 AQ Message Payload
      • 26.5 Example: Creating a Message and Setting a Payload
      • 26.6 Enqueuing Messages
      • 26.7 Dequeuing Messages
      • 26.8 Examples: Enqueuing and Dequeuing
    • 27 Continuous Query Notification
      • 27.1 Overview of Continuous Query Notification
      • 27.2 Creating a Registration
        • 27.2.1 Continuous Query Notification Registration Options
      • 27.3 Associating a Query with a Registration
      • 27.4 Notifying Database Change Events
      • 27.5 Deleting a Registration
  • Part VI High Availability
    • 28 Transaction Guard for Java
      • 28.1 Overview of Transaction Guard for Java
      • 28.2 Transaction Guard Support for XA Transactions
      • 28.3 How to Use Transaction Guard with XA
      • 28.4 Transaction Guard for Java APIs
        • 28.4.1 Retrieving the Logical Transaction Identifiers
        • 28.4.2 Retrieving the Updated Logical Transaction Identifiers
          • 28.4.2.1 Registering Event Listeners
          • 28.4.2.2 Unregistering Event Listeners
      • 28.5 Complete Example:Using Transaction Guard APIs
      • 28.6 About Using Server-Side Transaction Guard APIs
    • 29 Application Continuity for Java
      • 29.1 About Configuring Oracle JDBC for Application Continuity for Java
        • 29.1.1 Support for Concrete Classes with Application Continuity
      • 29.2 About Configuring Oracle Database for Application Continuity for Java
      • 29.3 Application Continuity with DRCP
      • 29.4 Application Continuity Support for XA Data Source
      • 29.5 About Identifying Request Boundaries in Application Continuity for Java
      • 29.6 Support for Transparent Application Continuity
      • 29.7 Establishing the Initial State Before Application Continuity Replays
        • 29.7.1 No Callback
        • 29.7.2 Connection Labeling
        • 29.7.3 Connection Initialization Callback
          • 29.7.3.1 Creating an Initialization Callback
          • 29.7.3.2 Registering an Initialization Callback
          • 29.7.3.3 Removing or Unregistering an Initialization Callback
        • 29.7.4 About Enabling FAILOVER_RESTORE
      • 29.8 About Delaying the Reconnection in Application Continuity for Java
        • 29.8.1 Configuration Examples Related to Application Continuity for Java
          • 29.8.1.1 Creating Services on Oracle RAC
          • 29.8.1.2 Modifying Services on Single-Instance Databases
      • 29.9 About Retaining Mutable Values in Application Continuity for Java
        • 29.9.1 Grant and Revoke Interface
          • 29.9.1.1 Dates and SYS_GUID Syntax
          • 29.9.1.2 Sequence Syntax
          • 29.9.1.3 GRANT ALL Statement
          • 29.9.1.4 Rules for Grants on Mutable Values
      • 29.10 Application Continuity Statistics
      • 29.11 About Disabling Replay in Application Continuity for Java
        • 29.11.1 How to Disable Replay
        • 29.11.2 When to Disable Replay
          • 29.11.2.1 Application Calls External Systems that Should not Be Repeated
          • 29.11.2.2 Application Synchronizes Independent Sessions
          • 29.11.2.3 Application Uses Time at the Middle-tier in the Execution Logic
          • 29.11.2.4 Application assumes that ROWIds do not change
          • 29.11.2.5 Application Assumes that Side Effects Execute Once
          • 29.11.2.6 Application Assumes that Location Values Do not Change
        • 29.11.3 Diagnostics and Tracing
          • 29.11.3.1 Writing Replay Trace to Console
          • 29.11.3.2 Writing Replay Trace to a File
    • 30 Oracle JDBC Support for FAN Events
      • 30.1 Overview of Oracle JDBC Support for FAN events
      • 30.2 Safe Draining APIs for Planned Maintenance
      • 30.3 Installation and Configuration of Oracle JDBC Driver for FAN Events Support
      • 30.4 Example of Oracle JDBC Driver FAN support for Planned Maintenance
    • 31 Transparent Application Failover
      • 31.1 Overview of Transparent Application Failover
      • 31.2 Failover Type Events
      • 31.3 TAF Callbacks
      • 31.4 Java TAF Callback Interface
      • 31.5 Comparison of TAF and Fast Connection Failover
    • 32 Single Client Access Name
      • 32.1 Overview of Single Client Access Name
      • 32.2 About Configuring the Database Using the SCAN
      • 32.3 How Connection Load Balancing Works Using the SCAN
      • 32.4 Version and Backward Compatibility
      • 32.5 Using the SCAN in a Maximum Availability Architecture Environment
      • 32.6 Using the SCAN With Oracle Connection Manager
  • Part VII Transaction Management
    • 33 Distributed Transactions
      • 33.1 About Distributed Transactions
        • 33.1.1 Overview of Distributed Transaction
        • 33.1.2 Distributed Transaction Components and Scenarios
        • 33.1.3 Distributed Transaction Concepts
        • 33.1.4 About Switching Between Global and Local Transactions
        • 33.1.5 Oracle XA Packages
      • 33.2 XA Components
        • 33.2.1 XADatasource Interface and Oracle Implementation
        • 33.2.2 XAConnection Interface and Oracle Implementation
        • 33.2.3 XAResource Interface and Oracle Implementation
        • 33.2.4 OracleXAResource Method Functionality and Input Parameters
        • 33.2.5 Xid Interface and Oracle Implementation
      • 33.3 Error Handling and Optimizations
        • 33.3.1 XAException Classes and Methods
        • 33.3.2 Mapping Between Oracle Errors and XA Errors
        • 33.3.3 XA Error Handling
        • 33.3.4 Oracle XA Optimizations
      • 33.4 About Implementing a Distributed Transaction
        • 33.4.1 Summary of Imports for Oracle XA
        • 33.4.2 Oracle XA Code Sample
      • 33.5 Native-XA in Oracle JDBC Drivers
        • 33.5.1 OCI Native XA
        • 33.5.2 Thin Native XA
  • Part VIII Manageability
    • 34 Database Administration
      • 34.1 Using the Database Administration Methods
      • 34.2 Using the startup Method
        • 34.2.1 Database Startup Options
      • 34.3 Using the shutdown Method
        • 34.3.1 Database Shutdown Options
        • 34.3.2 Standard Database Shutdown Process
      • 34.4 A Complete Example
    • 35 Diagnosability in JDBC
      • 35.1 About Logging Feature of Oracle JDBC Drivers
        • 35.1.1 Overview of Logging Feature of Oracle JDBC Drivers
        • 35.1.2 Enabling and Using JDBC Logging
          • 35.1.2.1 About Configuring the CLASSPATH
          • 35.1.2.2 Enabling Logging
          • 35.1.2.3 Configuring Logging
          • 35.1.2.4 Redirecting the Log Output to a File
          • 35.1.2.5 Using Loggers
          • 35.1.2.6 Logging Example
        • 35.1.3 Enabling or Disabling Feature-Specific Logging at Run Time
        • 35.1.4 Using the Logging Configuration File for Feature-Specific Logging
        • 35.1.5 Performance, Scalability, and Security Issues
      • 35.2 Diagnosability Management
    • 36 JDBC DMS Metrics
      • 36.1 Overview of JDBC DMS Metrics
      • 36.2 About Determining the Type of Metric to Be Generated
      • 36.3 About Generating the SQLText Metric
      • 36.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

Search

Print

Download

PDF for offline and print

  • Previous
  • Next
  1. JDBC Developer's Guide
  2. High Availability

Part VI High Availability

This section provides information about the high availability features of Oracle Database 12c Release 2 (12.2.0.1).

Part VI contains the following chapters:

  • Transaction Guard for Java

  • Application Continuity for Java

  • Oracle JDBC Support for FAN Events

  • Transparent Application Failover

  • Single Client Access Name

  • Previous
  • Next
Back to main content
  • About Oracle
  • Contact Us
  • Legal Notices
  • Terms of Use
  • Your Privacy Rights
Copyright © 1999, 2019, Oracle and/or its affiliates. All rights reserved.
  • Previous
  • Next
Video