Oracle8i Distributed Database Systems
Release 2 (8.1.6)







Title and Copyright Information

Send Us Your Comments


What's New in Oracle8i?
Release 8.1.6
Release 8.1.5
Changes to This Book
Knowledge Assumed of the Reader
How to Use This Guide
Conventions Used in This Guide
Your Comments Are Welcome

Part I Distributed Database Systems Concepts and Administration

1 Distributed Database Concepts

Distributed Database Architecture
Homogenous Distributed Database Systems
Heterogeneous Distributed Database Systems
Client/Server Database Architecture
Database Links
What Are Database Links?
Why Use Database Links?
Global Database Names in Database Links
Names for Database Links
Types of Database Links
Users of Database Links
Creation of Database Links: Examples
Schema Objects and Database Links
Database Link Restrictions
Distributed Database Administration
Site Autonomy
Distributed Database Security
Auditing Database Links
Administration Tools
Transaction Processing in a Distributed System
Remote SQL Statements
Distributed SQL Statements
Shared SQL for Remote and Distributed Statements
Remote Transactions
Distributed Transactions
Two-Phase Commit Mechanism
Database Link Name Resolution
Schema Object Name Resolution
Global Name Resolution in Views, Synonyms, and Procedures
Distributed Database Application Development
Transparency in a Distributed Database System
Remote Procedure Calls (RPCs)
Distributed Query Optimization
National Language Support
Client/Server Environment
Homogeneous Distributed Environment
Heterogeneous Distributed Environment

2 Managing a Distributed Database

Managing Global Names in a Distributed System
Understanding How Global Database Names Are Formed
Determining Whether Global Naming Is Enforced
Viewing a Global Database Name
Changing the Domain in a Global Database Name
Changing a Global Database Name: Scenario
Creating Database Links
Obtaining Privileges Necessary for Creating Database Links
Specifying Link Types
Specifying Link Users
Using Connection Qualifiers to Specify Service Names Within Link Names
Creating Shared Database Links
Determining Whether to Use Shared Database Links
Creating Shared Database Links
Configuring Shared Database Links
Managing Database Links
Closing Database Links
Dropping Database Links
Limiting the Number of Active Database Link Connections
Viewing Information About Database Links
Determining Which Links Are in the Database
Determining Which Link Connections Are Open
Creating Location Transparency
Using Views to Create Location Transparency
Using Synonyms to Create Location Transparency
Using Procedures to Create Location Transparency
Managing Statement Transparency
Understanding Transparency Restrictions
Managing a Distributed Database: Scenarios
Creating a Public Fixed User Database Link
Creating a Public Fixed User Shared Database Link
Creating a Public Connected User Database Link
Creating a Public Connected User Shared Database Link
Creating a Public Current User Database Link

3 Developing Applications for a Distributed Database System

Managing the Distribution of an Application's Data
Controlling Connections Established by Database Links
Maintaining Referential Integrity in a Distributed System
Tuning Distributed Queries
Using Collocated Inline Views
Using Cost-Based Optimization
Using Hints
Analyzing the Execution Plan
Handling Errors in Remote Procedures

Part II Distributed Transactions Concepts and Administration

4 Distributed Transactions Concepts

What Are Distributed Transactions?
Supported Types of Distributed Transactions
Session Trees for Distributed Transactions
Two-Phase Commit Mechanism
Session Trees for Distributed Transactions
Database Servers
Local Coordinators
Global Coordinator
Commit Point Site
Two-Phase Commit Mechanism
Prepare Phase
Commit Phase
Forget Phase
In-Doubt Transactions
Automatic Resolution of In-Doubt Transactions
Manual Resolution of In-Doubt Transactions
Relevance of System Change Numbers for In-Doubt Transactions
Distributed Transaction Processing: Case Study
Stage 1: Client Application Issues DML Statements
Stage 2: Oracle Determines Commit Point Site
Stage 3: Global Coordinator Sends Prepare Response
Stage 4: Commit Point Site Commits
Stage 5: Commit Point Site Informs Global Coordinator of Commit
Stage 6: Global and Local Coordinators Tell All Nodes to Commit
Stage 7: Global Coordinator and Commit Point Site Complete the Commit

5 Managing Distributed Transactions

Setting Distributed Transaction Initialization Parameters
Limiting the Number of Distributed Transactions
Specifying the Lock Timeout Interval
Specifying the Interval for Holding Open Connections
Specifying the Commit Point Strength of a Node
Viewing Information About Distributed Transactions
Determining the ID Number and Status of Prepared Transactions
Tracing the Session Tree of In-Doubt Transactions
Deciding How to Handle In-Doubt Transactions
Discovering Problems with a Two-Phase Commit
Determining Whether to Perform a Manual Override
Analyzing the Transaction Data
Manually Overriding In-Doubt Transactions
Manually Committing an In-Doubt Transaction
Manually Rolling Back an In-Doubt Transaction
Purging Pending Rows from the Data Dictionary
Executing the PURGE_LOST_DB_ENTRY Procedure
Determining When to Use DBMS_TRANSACTION
Manually Committing an In-Doubt Transaction: Example
Step 1: Record User Feedback
Step 2: Query DBA_2PC_PENDING
Step 3: Query DBA_2PC_NEIGHBORS on Local Node
Step 4: Querying Data Dictionary Views on All Nodes
Step 5: Commit the In-Doubt Transaction
Step 6: Check for Mixed Outcome Using DBA_2PC_PENDING
Simulating Distributed Transaction Failure
Forcing a Distributed Transaction to Fail
Disabling and Enabling RECO
Managing Read Consistency

Part III Heterogeneous Services Concepts and Administration

6 Oracle Heterogeneous Services Concepts

What is Heterogeneous Services?
Database Links to a Non-Oracle System
Heterogeneous Services Agents
Types of Heterogeneous Services
Transaction Service
SQL Service
Heterogeneous Services Process Architecture
Transparent Gateways
Generic Connectivity
Architecture of the Heterogeneous Services Data Dictionary
Classes and Instances
Data Dictionary Views

7 Managing Oracle Heterogeneous Services Using Transparent Gateways

Setting Up Access to Non-Oracle Systems
Step 1: Install the Heterogeneous Services Data Dictionary
Step 2: Set Up the Environment to Access Heterogeneous Services Agents
Step 3: Create the Database Link to the Non-Oracle System
Step 4: Test the Connection
Registering Agents
Enabling Agent Self-Registration
Disabling Agent Self-Registration
Using the Heterogeneous Services Data Dictionary Views
Understanding the Types of Views
Understanding the Sources of Data Dictionary Information
Using the General Views
Using the Transaction Service Views
Using the SQL Service Views
Using the Heterogeneous Services Dynamic Performance Views
Determining Which Agents Are Running on a Host
Determining the Open HS Sessions
Determining the HS Parameters
Using the DBMS_HS Package
Specifying Initialization Parameters
Unspecifying Initialization Parameters

8 Managing Heterogeneous Services Using Generic Connectivity

What Is Generic Connectivity?
Types of Agents
Generic Connectivity Architecture
SQL Execution
Datatype Mapping
Generic Connectivity Restrictions
Supported Oracle SQL Statements
Functions Supported by Generic Connectivity
Configuring Generic Connectivity Agents
Creating the Initialization File
Editing the Initialization File
Setting Initialization Parameters for an ODBC-based Data Source
Setting Initialization Parameters for an OLE DB-based Data Source
ODBC Connectivity Requirements
OLE DB (SQL) Connectivity Requirements
Data Provider Requirements
OLE DB (FS) Connectivity Requirements
OLE DB Interfaces
Data Source Properties

9 Developing Applications with Heterogeneous Services

Developing Applications with Heterogeneous Services: Overview
Developing Using Pass-Through SQL
Using the DBMS_HS_PASSTHROUGH package
Considering the Implications of Using Pass-Through SQL
Executing Pass-Through SQL Statements
Optimizing Data Transfers Using Bulk Fetch
Using OCI, an Oracle Precompiler, or Another Tool for Array Fetches
Controlling the Array Fetch Between Oracle Database Server and Agent
Controlling the Array Fetch Between Agent and Non-Oracle Server
Controlling the Reblocking of Array Fetches
Researching the Locking Behavior of Non-Oracle Systems

A Heterogeneous Services Initialization Parameters


B Data Dictionary Views Available Through Heterogeneous Services

C Data Dictionary Translation for Generic Connectivity

Data Dictionary Translation Support
Accessing the Non-Oracle Data Dictionary
Supported Views and Tables
Data Dictionary Mapping
Default Column Values
Generic Connectivity Data Dictionary Descriptions

D Datatype Mapping

Mapping ODBC Datatypes to Oracle Datatypes
Mapping OLE DB Datatypes to Oracle Datatypes


Copyright © 1999 Oracle Corporation.

All Rights Reserved.