Skip Headers
Oracle® Database Advanced Application Developer's Guide
11g Release 1 (11.1)
Part Number B28424-01
Home
Book List
Index
Master Index
Contact Us
Next
View PDF
Contents
Title and Copyright Information
Preface
Audience
Documentation Accessibility
Related Documents
Conventions
What's New in Application Development?
Oracle Database 11
g
Release 1 (11.1) New Features
1
Introduction to Oracle Programmatic Environments
Overview of Oracle Application Development
Client/Server Model
Server-Side Coding
Two-Tier and Three-Tier Models
User Interface
Stateful and Stateless User Interfaces
Overview of PL/SQL
What Is PL/SQL?
Advantages of PL/SQL
Integration with Oracle Database
High Performance
High Productivity
Scalability
Manageability
Object-Oriented Programming Support
Portability
Security
Packages
PL/SQL Web Development Tools
Overview of Java Support Built into the Database
Overview of Oracle JVM
Overview of Oracle Extensions to JDBC
JDBC Thin Driver
JDBC OCI Driver
JDBC Server-Side Internal Driver
Oracle Database Extensions to JDBC Standards
Sample JDBC 2.0 Program
Sample Pre-2.0 JDBC Program
JDBC in SQLJ Applications
Overview of Oracle SQLJ
Benefits of SQLJ
Comparing SQLJ to JDBC
SQLJ Stored Subprograms in the Server
Overview of Oracle JPublisher
Overview of Java Stored Subprograms
Overview of Oracle Database Web Services
Overview of Writing Subprograms in Java
Overview of Writing Database Triggers in Java
Why Use Java for Stored Subprograms and Triggers?
Overview of Pro*C/C++
Implementing a Pro*C/C++ Application
Highlights of Pro*C/C++ Features
Overview of Pro*COBOL
Implementing a Pro*COBOL Application
Highlights of Pro*COBOL Features
Overview of OCI and OCCI
Advantages of OCI and OCCI
OCI and OCCI Functions
Procedural and Nonprocedural Elements of OCI and OCCI Applications
Building an OCI or OCCI Application
Overview of Oracle Data Provider for .NET (ODP.NET)
Overview of Oracle Objects for OLE (OO4O)
OO4O Automation Server
OO4O Object Model
OraSession
OraServer
OraDatabase
OraDynaset
OraField
OraMetaData and OraMDAttribute
OraParameter and OraParameters
OraParamArray
OraSQLStmt
OraAQ
OraAQMsg
OraAQAgent
Support for Oracle LOB and Object Datatypes
OraBLOB and OraCLOB
OraBFILE
Oracle Data Control
Oracle Objects for OLE C++ Class Library
Additional Sources of Information
Choosing a Programming Environment
Choosing a Precompiler or OCI
Choosing PL/SQL or Java
Part I SQL for Application Developers
2
SQL Processing for Application Developers
Grouping Operations into Transactions
Deciding How to Group Operations in Transactions
Improving Transaction Performance
Committing Transactions
Managing Commit Redo Action
Rolling Back Transactions
Defining Transaction Savepoints
Ensuring Repeatable Reads with Read-Only Transactions
Using Cursors
How Many Cursors Can a Session Have?
Using a Cursor to Re-Execute a Statement
Closing a Cursor
Canceling a Cursor
Locking Tables Explicitly
Privileges Required
Choosing a Locking Strategy
When to Lock with ROW SHARE MODE and ROW EXCLUSIVE MODE
When to Lock with SHARE MODE
When to Lock with SHARE ROW EXCLUSIVE MODE
When to Lock with EXCLUSIVE MODE
Letting Oracle Database Control Table Locking
Explicitly Acquiring Row Locks
Using Oracle Lock Management Services
When to Use User Locks
Example of a User Lock
Viewing and Monitoring Locks
Using Serializable Transactions for Concurrency Control
How Serializable Transactions Interact
Setting the Isolation Level of a Serializable Transaction
Referential Integrity and Serializable Transactions
READ COMMITTED and SERIALIZABLE Isolation
Transaction Set Consistency
Comparison of READ COMMITTED and SERIALIZABLE Transactions
Choosing an Isolation Level for Transactions
Application Tips for Transactions
Autonomous Transactions
Examples of Autonomous Transactions
Ordering a Product
Withdrawing Money from a Bank Account
Defining Autonomous Transactions
Restrictions on Autonomous Transactions
Resuming Execution After Storage Allocation Error
What Operations Can Be Resumed After an Error Condition?
Handling Suspended Storage Allocation
3
Using SQL Datatypes in Database Applications
Overview of SQL Datatypes
Representing Character Data
Overview of Character Datatypes
Specifying Column Lengths as Bytes or Characters
Choosing Between CHAR and VARCHAR2 Datatypes
Using Character Literals in SQL Statements
Representing Numeric Data
Overview of Numeric Datatypes
Floating-Point Number Formats
Using a Floating-Point Binary Format
Representing Special Values with Native Floating-Point Formats
Comparison Operators for Native Floating-Point Datatypes
Arithmetic Operations with Native Floating-Point Datatypes
Conversion Functions for Native Floating-Point Datatypes
Client Interfaces for Native Floating-Point Datatypes
OCI Native Floating-Point Datatypes SQLT_BFLOAT and SQLT_BDOUBLE
Native Floating-Point Datatypes Supported in Oracle OBJECT Types
Pro*C/C++ Support for Native Floating-Point Datatypes
Representing Date and Time Data
Overview of Date and Time Datatypes
Displaying Current Date and Time
Changing the Default Date Format
Changing the Default Time Format
Arithmetic Operations with Date and Time Datatypes
Converting Between Date and Time Types
Importing and Exporting Date and Time Types
Representing Specialized Data
Representing Geographic Data
Representing Multimedia Data
Representing Large Amounts of Data
Representing Searchable Text
Representing XML
Representing Dynamically Typed Data
Representing Data with ANSI/ISO, DB2, and SQL/DS Datatypes
Representing Conditional Expressions as Data
Identifying Rows by Address
Querying the ROWID Pseudocolumn
Accessing the ROWID Datatype
Restricted ROWID
Extended ROWID
External Binary ROWID
Accessing the UROWID Datatype
How Oracle Database Converts Datatypes
Datatype Conversion During Assignments
Datatype Conversion During Expression Evaluation
Metadata for SQL Built-In Functions
4
Using Regular Expressions in Database Applications
Overview of Regular Expressions
What Are Regular Expressions?
How Are Regular Expressions Useful?
Oracle Database Implementation of Regular Expressions
Oracle Database Support for the POSIX Regular Expression Standard
Metacharacters in Regular Expressions
POSIX Metacharacters in Oracle Database Regular Expressions
Multilingual Extensions to POSIX Regular Expression Standard
Perl-Influenced Extensions to POSIX Regular Expression Standard
Using Regular Expressions in SQL Statements: Scenarios
Using a Constraint to Enforce a Phone Number Format
Using Back References to Reposition Characters
5
Using Indexes in Database Applications
Privileges Needed to Create Indexes
Guidelines for Application-Specific Indexes
Which Come First, Data or Indexes?
Create a New Temporary Table Space Before Creating Indexes
Index the Correct Tables and Columns
Limit the Number of Indexes for Each Table
Choose Column Order in Composite Indexes
Gather Index Statistics
Drop Unused Indexes
Examples of Creating Basic Indexes
When to Use Domain Indexes
When to Use Function-Based Indexes
Advantages of Function-Based Indexes
Restrictions on Function-Based Indexes
Examples of Function-Based Indexes
Function-Based Index for Case-Insensitive Searches
Precomputing Arithmetic Expressions with a Function-Based Index
Function-Based Index for Language-Dependent Sorting
6
Maintaining Data Integrity in Database Applications
Overview of Constraints
Enforcing Business Rules with Constraints
Enforcing Business Rules with Application Logic
Creating Indexes for Use with Constraints
When to Use NOT NULL Constraints
When to Use Default Column Values
Setting Default Column Values
Choosing a Primary Key for a Table
When to Use UNIQUE Constraints
When to Use Constraints On Views
Enforcing Referential Integrity with Constraints
FOREIGN KEY Constraints and NULL Values
Defining Relationships Between Parent and Child Tables
Rules for Multiple FOREIGN KEY Constraints
Deferring Constraint Checks
Minimizing Space and Time Overhead for Indexes Associated with Constraints
Guidelines for Indexing Foreign Keys
Referential Integrity in a Distributed Database
When to Use CHECK Constraints
Restrictions on CHECK Constraints
Designing CHECK Constraints
Rules for Multiple CHECK Constraints
Choosing Between CHECK and NOT NULL Constraints
Examples of Defining Constraints
Example: Defining Constraints with the CREATE TABLE Statement
Example: Defining Constraints with the ALTER TABLE Statement
Privileges Needed to Define Constraints
Naming Constraints
Enabling and Disabling Constraints
Why Disable Constraints?
Creating Enabling Constraints (Default)
Creating Disabled Constraints
Enabling Existing Constraints
Disabling Existing Constraints
Guidelines for Enabling and Disabling Key Constraints
Fixing Constraint Exceptions
Altering Constraints
Renaming Constraints
Dropping Constraints
Managing FOREIGN KEY Constraints
Datatypes and Names for Foreign Key Columns
Limit on Columns in Composite Foreign Keys
Foreign Key References Primary Key by Default
Privileges Required to Create FOREIGN KEY Constraints
Choosing How Foreign Keys Enforce Referential Integrity
Viewing Definitions of Constraints
Examples of Defining and Viewing Constraints
Example 1: Listing All of Your Accessible Constraints
Example 2: Distinguishing NOT NULL Constraints from CHECK Constraints
Example 3: Listing Column Names that Constitute an Integrity Constraint
Part II PL/SQL for Application Developers
7
Coding PL/SQL Subprograms and Packages
Overview of PL/SQL Program Units
Anonymous Blocks
Stored PL/SQL Program Units
Naming Subprograms
Subprogram Parameters
Creating Subprograms
Altering Subprograms
Dropping Subprograms and Packages
External Subprograms
Cross-Session PL/SQL Function Result Cache
PL/SQL Packages
PL/SQL Object Size Limits
Creating Packages
Naming Packages and Package Objects
Package Invalidations and Session State
Packages Supplied with Oracle Database
Overview of Bulk Binding
When to Use Bulk Binds
Triggers
Compiling PL/SQL Subprograms for Native Execution
Cursor Variables
Declaring and Opening Cursor Variables
Examples of Cursor Variables
Handling PL/SQL Compile-Time Errors
Handling Run-Time PL/SQL Errors
Declaring Exceptions and Exception Handling Routines
Unhandled Exceptions
Handling Errors in Distributed Queries
Handling Errors in Remote Subprograms
Debugging Stored Subprograms
PL/Scope
PL/SQL Hierarchical Profiler
Oracle JDeveloper
DBMS_OUTPUT Package
Privileges for Debugging PL/SQL and Java Stored Subprograms
Writing Low-Level Debugging Code
DBMS_DEBUG_JDWP Package
DBMS_DEBUG Package
Invoking Stored Subprograms
Privileges Required to Execute a Subprogram
Invoking a Subprogram from a Trigger or Another Subprogram
Invoking a Subprogram Interactively from Oracle Database Tools
Invoking a Subprogram from a 3GL Application
Invoking Remote Subprograms
Remote Subprogram Invocations and Parameter Values
Referencing Remote Objects
Synonyms for Subprograms and Packages
Invoking Stored PL/SQL Functions from SQL Statements
Why Invoke Stored PL/SQL Subprograms from SQL Statements?
Where PL/SQL Functions Can Appear in SQL Statements
When PL/SQL Functions Can Appear in SQL Expressions
Controlling Side Effects
Restrictions
Declaring a Function
Parallel Query and Parallel DML
PRAGMA RESTRICT_REFERENCES for Backward Compatibility
Serially Reusable PL/SQL Packages
Package States
Why Serially Reusable Packages?
Syntax of Serially Reusable Packages
Semantics of Serially Reusable Packages
Examples of Serially Reusable Packages
Returning Large Amounts of Data from a Function
Coding Your Own Aggregate Functions
8
Using PL/Scope
Specifying Identifier Collection
How Much Space is PL/Scope Data Using?
Viewing PL/Scope Data
Static Data Dictionary Views
Unique Keys
Context
Signature
Demo Tool
SQL Developer
Identifier Types that PL/Scope Collects
Usages that PL/Scope Reports
Sample PL/Scope Session
9
Using the PL/SQL Hierarchical Profiler
Overview of PL/SQL Hierarchical Profiler
Collecting Profile Data
Understanding Raw Profiler Output
Namespaces of Tracked Subprograms
Special Function Names
Analyzing Profile Data
Creating Hierarchical Profiler Tables
Understanding Hierarchical Profiler Tables
Hierarchical Profiler Database Table Columns
Distinguishing Between Overloaded Subprograms
Hierarchical Profiler Tables for Sample PL/SQL Procedure
Examples of Calls to DBMS_HPROF.analyze with Options
plshprof Utility
plshprof Options
HTML Report from a Single Raw Profiler Output File
First Page of Report
Function-Level Reports
Module-Level Reports
Namespace-Level Reports
Parents and Children Report for a Function
HTML Difference Report from Two Raw Profiler Output Files
Difference Report Conventions
First Page of Difference Report
Function-Level Difference Reports
Module-Level Difference Reports
Namespace-Level Difference Reports
Parents and Children Difference Report for a Function
10
Developing PL/SQL Web Applications
Overview of PL/SQL Web Applications
Implementing PL/SQL Web Applications
PL/SQL Gateway
mod_plsql
Embedded PL/SQL Gateway
PL/SQL Web Toolkit
Using mod_plsql Gateway to Map Client Requests to a PL/SQL Web Application
Using Embedded PL/SQL Gateway
How Embedded PL/SQL Gateway Processes Client Requests
Installing Embedded PL/SQL Gateway
Configuring Embedded PL/SQL Gateway
Configuring Embedded PL/SQL Gateway: Overview
Configuring User Authentication for Embedded PL/SQL Gateway
Invoking PL/SQL Stored Subprograms Through Embedded PL/SQL Gateway
Securing Application Access with Embedded PL/SQL Gateway
Restrictions in Embedded PL/SQL Gateway
Using Embedded PL/SQL Gateway: Scenario
Generating HTML Output with PL/SQL
Passing Parameters to PL/SQL Web Applications
Passing List and Dropdown-List Parameters from an HTML Form
Passing Radio Button and Checkbox Parameters from an HTML Form
Passing Entry-Field Parameters from an HTML Form
Passing Hidden Parameters from an HTML Form
Uploading a File from an HTML Form
Submitting a Completed HTML Form
Handling Missing Input from an HTML Form
Maintaining State Information Between Web Pages
Performing Network Operations in PL/SQL Stored Subprograms
Sending E-Mail from PL/SQL
Getting a Host Name or Address from PL/SQL
Using TCP/IP Connections from PL/SQL
Retrieving HTTP URL Contents from PL/SQL
Using Tables, Image Maps, Cookies, and CGI Variables from PL/SQL
11
Developing PL/SQL Server Pages
What Are PL/SQL Server Pages and Why Use Them?
Prerequisites for Developing and Deploying PL/SQL Server Pages
PL/SQL Server Pages and the HTP Package
PL/SQL Server Pages and Other Scripting Solutions
Developing PL/SQL Server Pages
Specifying Basic Server Page Characteristics
Specifying the Scripting Language
Returning Data to the Client Browser
Handling Script Errors
Accepting User Input
Naming the PL/SQL Stored Procedure
Including the Contents of Other Files
Declaring Global Variables in a PSP Script
Specifying Executable Statements in a PSP Script
Substituting Expression Values in a PSP Script
Quoting and Escaping Strings in a PSP Script
Including Comments in a PSP Script
Loading PL/SQL Server Pages into the Database
Querying PL/SQL Server Pages Source Code
Executing PL/SQL Server Pages Through URLs
Examples of PL/SQL Server Pages
Setup for PL/SQL Server Pages Examples
Printing the Sample Table with a Loop
Allowing a User Selection
Using an HTML Form to Invoke a PL/SQL Server Page
Including JavaScript in a PSP File
Debugging PL/SQL Server Pages
Putting PL/SQL Server Pages into Production
12
Using Continuous Query Notification
Object Change Notification (OCN)
Query Result Change Notification (QRCN)
Guaranteed Mode
Best-Effort Mode
Events that Generate Notifications
Committed DML Transactions
Committed DDL Statements
Deregistration
Global Events
Notification Contents
Good Candidates for CQN
Creating CQN Registrations
PL/SQL CQN Registration Interface
CQN Registration Options
Notification Type Option
QRCN Mode (QRCN Notification Type Only)
ROWID Option
Operations Filter Option (OCN Notification Type Only)
Transaction Lag Option (OCN Notification Type Only)
Notification Grouping Options
Reliable Option
Purge-on-Notify and Timeout Options
Prerequisites for Creating CQN Registrations
Queries that Can Be Registered for Object Change Notification (OCN)
Queries that Can Be Registered for Query Result Change Notification (QRCN)
Queries that Can Be Registered for QRCN in Guaranteed Mode
Queries that Can Be Registered for QRCN Only in Best-Effort Mode
Queries that Cannot Be Registered for QRCN in Either Mode
Using PL/SQL to Register Queries for CQN
Creating a PL/SQL Notification Handler
Creating a CQ_NOTIFICATION$_REG_INFO Object
Identifying Individual Queries in a Notification
Adding Queries to an Existing Registration
Best Practices for CQN Registrations
Troubleshooting CQN Registrations
Querying CQN Registrations
Interpreting Notifications
Interpreting a CQ_NOTIFICATION$_DESCRIPTOR Object
Interpreting a CQ_NOTIFICATION$_TABLE Object
Interpreting a CQ_NOTIFICATION$_QUERY Object
Interpreting a CQ_NOTIFICATION$_ROW Object
Deleting Registrations
Configuring CQN: Scenario
Creating a PL/SQL Notification Handler
Registering the Queries
Part III Advanced Topics for Application Developers
13
Using Flashback Technology
Overview of Flashback Technology
Application Development Features
Database Administration Features
Configuring Your Database for Flashback Technology
Configuring Your Database for Automatic Undo Management
Configuring Your Database for Flashback Transaction Query
Configuring Your Database for Flashback Transaction Backout
Enabling Flashback Operations on Specific LOB Columns
Granting Necessary Privileges
Using Flashback Query (SELECT AS OF)
Example of Examining and Restoring Past Data
Guidelines for Flashback Query
Using Flashback Version Query
Using Flashback Transaction Query
Using Flashback Transaction Query with Flashback Version Query
Using ORA_ROWSCN
Using DBMS_FLASHBACK Package
Using Flashback Transaction Backout
TRANSACTION_BACKOUT Parameters
TRANSACTION_BACKOUT Reports
*_FLASHBACK_TXN_STATE
*_FLASHBACK_TXN_REPORT
Using Flashback Data Archives
Creating a Flashback Data Archive
Altering a Flashback Data Archive
Dropping a Flashback Data Archive
Specifying the Default Flashback Data Archive
Enabling and Disabling Flashback Data Archive
DDL Statements Not Allowed on Tables Enabled for Flashback Data Archive
Viewing Flashback Data Archive Data
Flashback Data Archive Scenarios
Scenario: Using Flashback Data Archive to Enforce Digital Shredding
Scenario: Using Flashback Data Archive to Access Historical Data
Scenario: Using Flashback Data Archive to Generate Reports
Scenario: Using Flashback Data Archive for Auditing
Scenario: Using Flashback Data Archive to Recover Data
General Guidelines for Flashback Technology
Performance Guidelines for Flashback Technology
14
Developing Applications Using Multiple Programming Languages
Overview of Multilanguage Programs
What Is an External Procedure?
Overview of Call Specification for External Procedures
Loading External Procedures
Loading Java Class Methods
Loading External C Procedures
Define the C Procedures
Set Up the Environment
Identify the DLL
Publish the External Procedures
Publishing External Procedures
AS LANGUAGE Clause for Java Class Methods
AS LANGUAGE Clause for External C Procedures
LIBRARY
NAME
LANGUAGE
CALLING STANDARD
WITH CONTEXT
PARAMETERS
AGENT IN
Publishing Java Class Methods
Publishing External C Procedures
Locations of Call Specifications
Example: Locating a Call Specification in a PL/SQL Package
Example: Locating a Call Specification in a PL/SQL Package Body
Example: Locating a Call Specification in an Object Type Specification
Example: Locating a Call Specification in an Object Type Body
Example: Java with AUTHID
Example: C with Optional AUTHID
Example: Mixing Call Specifications in a Package
Passing Parameters to External C Procedures with Call Specifications
Specifying Datatypes
External Datatype Mappings
Passing Parameters BY VALUE or BY REFERENCE
Declaring Formal Parameters
Overriding Default Datatype Mapping
Specifying Properties
INDICATOR
LENGTH and MAXLEN
CHARSETID and CHARSETFORM
Repositioning Parameters
SELF
BY REFERENCE
WITH CONTEXT
Interlanguage Parameter Mode Mappings
Executing External Procedures with CALL Statements
Preconditions for External Procedures
Privileges of External Procedures
Managing Permissions
Creating Synonyms for External Procedures
CALL Statement Syntax
Calling Java Class Methods
Calling External C Procedures
Handling Errors and Exceptions in Multilanguage Programs
Using Service Routines with External C Procedures
OCIExtProcAllocCallMemory
OCIExtProcRaiseExcp
OCIExtProcRaiseExcpWithMsg
Doing Callbacks with External C Procedures
OCIExtProcGetEnv
Object Support for OCI Callbacks
Restrictions on Callbacks
Debugging External Procedures
Example: Calling an External Procedure
Global Variables in External C Procedures
Static Variables in External C Procedures
Restrictions on External C Procedures
15
Developing Applications with Oracle XA
X/Open Distributed Transaction Processing (DTP)
DTP Terminology
Required Public Information
Oracle XA Library Subroutines
Oracle XA Library Subroutines
Oracle XA Interface Extensions
Developing and Installing XA Applications
DBA or System Administrator Responsibilities
Application Developer Responsibilities
Defining the xa_open String
Syntax of the xa_open String
Required Fields for the xa_open String
Optional Fields for the xa_open String
Using Oracle XA with Precompilers
Using Precompilers with the Default Database
Using Precompilers with a Named Database
Using Oracle XA with OCI
Managing Transaction Control with Oracle XA
Examples of Precompiler Applications
Migrating Precompiler or OCI Applications to TPM Applications
Managing Oracle XA Library Thread Safety
Specifying Threading in the Open String
Restrictions on Threading in Oracle XA
Using the DBMS_XA Package
Troubleshooting XA Applications
Accessing Oracle XA Trace Files
xa_open String DbgFl
Trace File Locations
Managing In-Doubt or Pending Oracle XA Transactions
Using SYS Account Tables to Monitor Oracle XA Transactions
Oracle XA Issues and Restrictions
Using Database Links in Oracle XA Applications
Managing Transaction Branches in Oracle XA Applications
Using Oracle XA with Oracle Real Application Clusters (Oracle RAC)
GLOBAL_TXN_PROCESSES Initialization Parameter
Managing Transaction Branches on Oracle RAC
Managing Instance Recovery in Oracle RAC with DTP Services (10.2)
Global Uniqueness of XIDs in Oracle RAC
Tight and Loose Coupling
SQL-Based Oracle XA Restrictions
Rollbacks and Commits
DDL Statements
Session State
EXEC SQL
Miscellaneous Restrictions
16
Developing Applications on the Publish-Subscribe Model
Introduction to the Publish-Subscribe Model
Publish-Subscribe Architecture
Database Events
Oracle Advanced Queuing
Client Notification
Publish-Subscribe Concepts
Examples of a Publish-Subscribe Mechanism
17
Using the Identity Code Package
Identity Concepts
What is the Identity Code Package?
Using the Identity Code Package
Storing RFID Tags in Oracle Database Using MGD_ID Object Type
Creating a Table with MGD_ID Column Type and Storing EPC Tag Encodings in the Column
Constructing MGD_ID Objects to Represent RFID Tags
Inserting an MGD_ID Object into a Database Table
Querying MGD_ID Column Type
Creating Indexes on the MGD_ID Column Type
Building a Function-Based Index Using the Member Functions of the MGD_ID Column Type
Using MGD_ID Object Type Functions
Using the get_component Function with the MGD_ID Object
Parsing Tag Data from Standard Representations
Reconstructing Tag Representations from Fields
Translating Between Tag Representations
Defining a New Category of Identity Codes and Adding Encoding Schemes to an Existing Category
Creating a New Category of Identity Codes
Adding Two New Metadata Schemes to a Newly Created Category
Identity Code Package Types
DBMS_MGD_ID_UTL Package
Identity Code Metadata Tables and Views
Metadata View Definitions
Electronic Product Code (EPC) Concepts
RFID Technology and EPC v1.1 Coding Schemes
Product Code Concepts and Their Current Use
Electronic Product Code (EPC)
Global Trade Identification Number (GTIN) and Serializable Global Trade Identification Number (SGTIN)
Serial Shipping Container Code (SSCC)
Global Location Number (GLN) and Serializable Global Location Number (SGLN)
Global Returnable Asset Identifier (GRAI)
Global Individual Asset Identifier (GIAI)
RFID EPC Network
Oracle Tag Data Translation Schema
A
Multithreaded extproc Agent
Why Use the Multithreaded extproc Agent?
The Challenge of Dedicated Agent Architecture
The Advantage of Multithreading
Multithreaded extproc Agent Architecture
Monitor Thread
Dispatcher Threads
Task Threads
Administering the Multithreaded extproc Agent
Agent Control Utility (agtctl) Commands
Using agtctl in Single-Line Command Mode
Setting Configuration Parameters for a Multithreaded extproc Agent
Starting a Multithreaded extproc Agent
Shutting Down a Multithreaded extproc Agent
Examining the Value of Configuration Parameters
Resetting a Configuration Parameter to Its Default Value
Deleting an Entry for a Specific SID from the Control File
Requesting Help
Using Shell Mode Commands
Example: Setting a Configuration Parameter
Example: Starting a Multithreaded extproc Agent
Configuration Parameters for Multithreaded extproc Agent Control
Index