You are on page 1of 17

Oracle Application Server 10g

Release 3 (10.1.3) - Data Access


for the Agile Enterprise
An Oracle White Paper
August 2005
Oracle Application Server 10g Release 3 (10.1.3) -
Data Access for the Agile Enterprise

Introduction ....................................................................................................... 3
Oracle Application Server 10g release 3 (10.1.3) Data Access Features ... 3
Simplified data source classification for ease-of-development .............. 3
Scalable connection caching........................................................................ 4
High-availability with integrated RAC failover support.......................... 6
Comprehensive JDBC and datatype support ........................................... 7
Dynamic reconfiguration via JMX for manageability.............................. 8
Advanced transaction management for guarded data integrity.............. 9
Best Data Access Support for Oracle Databases ....................................... 10
Broadest, Most Flexible, Up-to-date Support for Oracle Data Access
Features ........................................................................................................ 10
Oracle Database 10g JDBC Overview................................................ 10
Oracle Database Web Services Overview .......................................... 11
Oracle TopLink Overview.................................................................... 11
Implicit Connection Caching .................................................................... 11
Fast Connection Failover .......................................................................... 13
Oracle Database Security - Proxy-authentication and Virtual Private
Database (VPD).......................................................................................... 14
End-to-End Tracing................................................................................... 15
SUMMARY...................................................................................................... 16

Oracle Application Server 10g Release 3 (10.1.3) - Data Access for the Agile Enterprise Page 2
Oracle Application Server 10g Release 3 (10.1.3) -
Data Access for the Agile Enterprise

INTRODUCTION
Enterprise data access is an indispensable part of almost every mission-critical
business application. Today’s Java applications and Web Services are calling for
data access performance, availability, ease-of-use, and security at an unprecedented
level.
Leveraging innovative features in Oracle Database 10g, Oracle Application Server
10g Release 3 (10.1.3) brings comprehensive data access support for today’s agile
enterprises. Integrated Implicit Connection Caching provides scalable and super-
fast connection virtualization; Fast Connection Failover works with Oracle Real
Application Clusters (RAC) to achieve high availability; simple data source
classification with dynamic reconfiguration capability via JMX offers great ease-of-
use and manageability; advanced transaction management features work together
to guarantee data integrity and consistency. Oracle Application Server 10g Release
3 (10.1.3) data access is not only feature-rich, but also provides the best integrated
support for Oracle databases, allowing applications and developers to fully take
advantage of the unparalleled performance, availability, ease-of-development,
manageability, and security features in Oracle databases.
This white paper provides a technical overview of Oracle Application Server 10g
Release 3 (10.1.3)’s data access features, and details how Oracle Application Server
10g Release 3 (10.1.3) provides the industry’s best support for Oracle databases
among all the application servers.

ORACLE APPLICATION SERVER 10G RELEASE 3 (10.1.3) DATA


ACCESS FEATURES
Oracle Application Server 10g Release 3 (10.1.3) brings comprehensive data access
support for today’s agile enterprises: from connection caching to fast failover, from
simple-and-clean configuration to dynamic reconfiguration, from complete
standard and datatype support to advanced transaction management.

Simplified data source classification for ease-of-development


Data sources encapsulate connectivity to resource managers including databases,
functioning as the front door to any data access capability. Oracle Application
Server 10g Release 3 (10.1.3) offers a clean and simple data source classification,

Oracle Application Server 10g Release 3 (10.1.3) - Data Access for the Agile Enterprise Page 3
providing great ease-of-development and enhanced usability. Oracle Application
Server 10g Release 3 (10.1.3) now supports two types of data sources: managed data
source and native data source, replacing the old data source types like non-emulated data
source and emulated data source.
Managed data sources are data sources that are managed by Oracle Application
Server Container for J2EE (OC4J). Specifically, a managed data source is an
OC4J-provided implementation of the java.sql.DataSource interface that acts as a
wrapper to a JDBC driver or data source. J2EE components access managed data
sources via JNDI with no knowledge that the data source implementation is a
wrapper. OC4J provides critical system infrastructure, such as global transaction
management, connection caching, dynamic configuration via JMX, and error
handling, for managed data sources.
Native data sources also implement the java.sql.DataSource interface, and are
provided by JDBC-driver vendors such as Oracle and Merant. Native data sources
are not wrapped by OC4J at all.
Key differences between managed and native data sources are shown in the
following table:

Managed Native
Data Data
Source Source
Can the connections retrieved from a data source Yes No
participate in global transactions
Can a data source make use of OC4J’s connection Yes No
pool and statement caches
Is a connection returned from a data source Yes No
wrapped with an OC4J Connection Proxy

Oracle Application Server 10g Release 3 (10.1.3) supports the migration from old
data source types to the new types. Users and applications have the option of
either converting the data sources on the fly during runtime, or explicitly
generating data source configuration files that contain the new data source
definitions.

Scalable connection caching


One of the most time-consuming operations in J2EE applications is establishing a
connection to the database. Connection caching improves performance and
scalability by allowing multiple clients to share a small number of physical
connections. Oracle Application Server 10g Release 3 (10.1.3) integrates the new
Implicit Connection Caching features in Oracle Database 10g JDBC, minimizing

Oracle Application Server 10g Release 3 (10.1.3) - Data Access for the Agile Enterprise Page 4
database access time while allowing transparent access to rich cache management
functions.
Oracle Application Server 10g Release 3 (10.1.3) data sources transparently and
centrally manage connection caches. It utilizes the Connection Cache Manager for
both cache management and binding connection caches to data sources. There is
a single instance of Connection Cache Manager per Java Virtual Memory (JVM),
managing all connection caches located within that JVM. This instance of the
Connection Cache Manager is usually obtained transparently in the data sources
before any of the connection caching functionality is used.
Besides central cache management, the Implicit Connection Cache provides a rich
set of features including: transparent or implicit access to the connection cache,
support for heterogeneous authenticated connection, the ability to refresh or
recycle stale connections from the cache, connection retrieval based on user
defined attributes (connection striping), and connection retrieval based on user
defined weights.

Define or Leave
Empty to Enable
or
Disable
Connection
Caching

The primary tool for configuring Implicit Connection Caching in Oracle


Application Server 10g Release 3 (10.1.3) data sources is the user-friendly Oracle
Enterprise Manager (EM) 10g Application Server Control Console. Central
management of the data sources via the Console significantly lowers administrative
cost. Standard JMX-based management supports the dynamic creation, deletion,
and modification of both data source types, as well as the associated connection
caches, without application server restart.

Oracle Application Server 10g Release 3 (10.1.3) - Data Access for the Agile Enterprise Page 5
Alternatively, Implicit Connection Caching can be enabled or disabled declaratively
within the data-sources.xml configuration file for any Oracle Application Server
10g Release 3 (10.1.3) data source. This is detailed in a companion article on
configuring connection caching in Oracle Application Server 10g Release 3
(10.1.3):
http://www.oracle.com/technology/tech/java/newsletter/articles/oc4j_data_sou
rces/oc4j_ds.htm

<connection-pool name="myConnectionPool">
<connection-factory
factory-class="oracle.jdbc.pool.OracleDataSource"
user="scott"
password="tiger" Add or Remove this
url="jdbc:oracle:thin:@//dbhost:1521/oracle"> Attribute to Enable
</connection-factory> or
</connection-pool> Disable
<managed-data-source Connection
jndi-name="jdbc/ManagedDS" Caching
description="Managed DataSource">
connection-pool-name="myConnectionPool"/>

We will look into Oracle Application Server 10g Release 3 (10.1.3) connection
caching in more detail in the second half of this paper.

High-availability with integrated RAC failover support


In multi-tier applications with databases and application server middle tiers,
detection of failures and propagation of failure events to tiers that dispatch
requests is critical for end-to-end failover.
Oracle Application Server 10g Release 3 (10.1.3) data sources integrate Oracle
Database 10g JDBC’s Fast Connection Failover support for Oracle databases. It
provides the ability to failover connections in the connection cache as quickly and
efficiently as the database itself, which is achieved by listening to the Oracle
Database 10g Real Application Clusters (RAC) UP/DOWN failover events
generated by the database.
Fast Connection Failover works in conjunction with the Implicit Connection
Caching mechanism and a RAC database.
When a connection cache is setup for a multi-instance RAC database, database
connections may end up on any of the RAC instances, as distributed by the
database listener. When an instance goes down, due to an instance or host failure,
it brings down all the connections with it. For example, in a two node, two
instance RAC cluster, each of the instances has 50 connections each, for a
connection cache primed up to 100 connections in the cache. If one of the RAC
instances goes down, there would instantly be 50 bad connections in the cache.

Oracle Application Server 10g Release 3 (10.1.3) - Data Access for the Agile Enterprise Page 6
This could potentially result in multiple bad connections being returned from the
cache, which in turn could result in application or browser page errors.
The Fast Connection Failover support enables an automatic detect-and-fix
mechanism to handle any instance or host failures in a RAC environment. The
mechanism is enabled on a cache enabled data source, by simply flipping the
DataSource property fastConnectionFailoverEnabled to true. For example:

<managed-data-source
jndi-name="jdbc/ManagedDS"
description="Managed DataSource">
connection-pool-name="myConnectionPool"
name="ManagedDS"/>

<connection-pool
name="myConnectionPool"
min-connections="10"
max-connections="30"
inactivity-timeout="30">
<connection-factory
factory-class="oracle.jdbc.pool.OracleDataSource"
user="scott"
password="tiger"
url="jdbc:oracle:thin:@//dbhost:1521/oracle">
<property name="fastConnectionFailoverEnabled" value="true"/>
</connection-factory>
</connection-pool>

Alternatively, Fast Connection Failover can be enabled by setting the system


property “oracle.jdbc.FastConnectionFailover” to true. These are detailed in a
companion article on configuring Fast Connection Failover in Oracle Application
Server 10g Release 3 (10.1.3):
http://www.oracle.com/technology/tech/java/newsletter/articles/oc4j_data_sou
rces/oc4j_ds.htm
We will look into Fast Connection Failover in more detail in the second half of this
paper.

Comprehensive JDBC and datatype support


Oracle Application Server 10g Release 3 (10.1.3) data access offers comprehensive
JDBC 3.0 support, like transaction savepoints, switching between local and global
transactions on the same connection, reuse of PreparedStatements, named
parameters in CallableStatements, new Ref interface and Datalink/URLs.
Oracle Application Server 10g Release 3 (10.1.3) data access features dynamic
proxies like connection proxies, statement proxies, offering great ease-of-
development for applications to choose data access features offered by different

Oracle Application Server 10g Release 3 (10.1.3) - Data Access for the Agile Enterprise Page 7
JDBC drivers. It is very simple for applications to take advantage of the many
Oracle extension features provided by the Oracle Database 10g JDBC drivers, like
update batching, prefetching, define column types, etc.
Besides the standard JDBC datatypes, Oracle Application Server 10g Release 3
(10.1.3) also fully supports the following advanced datatypes or enhancements by
integrating with Oracle Database 10g JDBC drivers, resulting in faster application
development and execution.
Native IEEE DOUBLE and Native IEEE Float: the new SQL floating-point
number datatype support allows Java and J2EE applications to perform faster
arithmetic calculations without loss of information and with reduced storage.
Enhanced VARRAY support: the addition of aggregation functions (frequent item
set counting); using collections for in-lists; general set operations -- intersect;
union; member; equality; etc -- particularly useful for data mining applications.
LONG-to-LOB conversion: the addition of conversions functions for CLOBs and
BLOB so that they are compatible with LONG; RAW and LONG RAW,
simplifying their manipulation in Java applications and improve application
portability.
Unlimited size LOB: this feature removes the four Gigabyte length restriction for
LOBs; applications can now store/retrieve binary data bigger than the current four
Gigabyte limit.
INTERVAL DAY TO SECOND: applications can now use Oracle database’s
INTERVAL DAY TO SECOND datatype for improved time management.

Dynamic reconfiguration via JMX for manageability


Oracle Application Server 10g Release 3 (10.1.3) data access allows users and
applications to dynamically reconfigure the data sources during runtime, without
having to reboot the application server instances. This adds great management
flexibility for applications.
The primary tool to create, delete, and modify data sources in Oracle Application
Server 10g Release 3 (10.1.3) is the Oracle Enterprise Manager 10g Application
Server Control Console (Application Server Control Console). Through the
Application Server Control Console, Oracle Application Server 10g Release 3
(10.1.3) provides full Java Management Extensions (JMX) support for managing
data sources including operations to create data sources and connection pools,
remove data sources and connection pools, and modify existing data sources and
connection pools. When the data sources are modified in the Application Server
Control Console the data sources are immediately persisted to the datasources
configuration file (data-sources.xml) for that application.
Dynamic data source reconfiguration also leverages the capabilities of the Implicit
Connection Cache, which allows dynamic reconfiguration of the cache properties
by reinitializing the cache using the specified new set of cache properties. The new

Oracle Application Server 10g Release 3 (10.1.3) - Data Access for the Agile Enterprise Page 8
properties take effect on all PooledConnections newly created as well as
PooledConnections that are not in use. For connections that are in use, the new
properties take effect only after they are returned to the cache.

Advanced transaction management for guarded data integrity


Transactions offer clean and simple failure recovery semantics for applications.
Oracle Application Server 10g Release 3 (10.1.3) data access also showcases
advanced transaction management features that safeguard data integrity and
consistency.
Oracle Application Server 10g Release 3 (10.1.3) now offers enhanced support for
the Java Transaction API (JTA) with: (1) a brand-new middle-tier transaction
coordinator that supports all XA-compatible resources, (2) enriched JTA
administration functions such as JMX controls, (3) transaction propagation across
OC4J instances, and (4) file and database based transaction logging.
Prior to Oracle Application Server 10g Release 3 (10.1.3), OC4J employed the
transaction coordinator inside Oracle database for global commit control, which
required complex configuration effort. The new middle-tier commit coordinator
greatly simplifies the configuration task, while offering faster performance at the
same time.
The primary tool for configuring the Transaction Manager is the Oracle Enterprise
Manager 10g Application Server Control Console. The Console provides two
tools for JTA configuration and management:
• The Transaction Manager (JTA) page: presents the JTA statistics and details
of all the transactions that are currently running or being recovered, allows
for JTA reconfiguration and administration of those transactions.
• The JTAResource Mbean: for configuring transaction coordinator type,
logging type (none, file-based, or database-based), transaction timeout,
maximum concurrent transactions, etc.
Transaction context propagation makes it possible for multiple OC4J instances to
participate in a single global transaction. Multiple OC4J instances need to
participate in the same transaction if an OC4J instance makes a remote call into
another OC4J instance in the scope of an existing transaction, assuming the EJB
semantics for the method support scoping work in a client's transaction. An
example of this is a servlet in OC4J instance 1 obtaining a reference to an EJB
residing in OC4J instance 2, starting a transaction and making a method call on the
remote EJB in the scope of the transaction. When multiple OC4J instances
participate in a single transaction, all work done by the participating OC4J
instances as part of the global transaction is guaranteed to be atomic.

Oracle Application Server 10g Release 3 (10.1.3) - Data Access for the Agile Enterprise Page 9
BEST DATA ACCESS SUPPORT FOR ORACLE DATABASES
Oracle Application Server 10g Release 3 (10.1.3) data access provides integrated
support for up-to-date Oracle database features, offering broad and flexible
support for data applications via J2EE, JDBC, TopLink, and Database Web
Services. It enhances application scalability and availability with Implicit
Connection Caching and Fast Connection Failover. It supports proxy
authentication and secures business data with Virtual Private Database. It
facilitates management flexibility and diagnosability with end-to-end tracing.
Oracle Application Sever 10g Release 3 (10.1.3) is the only application server in the
market that can leverage all these data access features and provide end-to-end
scalability, high availability, security, and management features out-of-box at the
application level.

Broadest, Most Flexible, Up-to-date Support for Oracle Data Access


Features
Besides the data access features in Oracle Application Server Containers for J2EE
(OC4J) core components, Oracle Application Server 10g Release 3 (10.1.3) offers
broad and flexible support for data applications via JDBC, TopLink, and Database
Web Services.

Oracle Database 10g JDBC Overview

Oracle Database 10g JDBC is best-of-the-breed JDBC driver on the market. It is


the best integrated driver with Oracle databases in terms of performance,
availability, manageability, ease-of-use, flexibility, and security.
Oracle Database 10g JDBC has been rearchitected from previous releases. The
performance optimizations in Oracle Database 10g JDBC include the optimization
of Java to SQL data conversion, the reduction of the drivers code path (i.e., the
reduction of the number of Java methods called to satisfy a request), the reduction
of data movement to/from the database and reusing Java objects. With these
effort plus the Implicit Connection Caching and Fast Connection Failover support
for high availability, the outcome is faster and reliable SQL/XML data
query/retrieval, best performing custom Java/J2SE/J2EE applications as well as
best standard SPECJApp200x benchmarks results.
For faster Java/J2EE application development, Oracle Database 10g JDBC offers:
(1) comprehensive support for JDBC 3.0 APIs including transaction savepoints,
switching between local and global transactions on the same connection, reuse of
PreparedStatements, named parameters, new Ref interface and Datalink/URLs,
and JDBC RowSets; (2) comprehensive data access support allowing customers to
fully utilize the features offered by Oracle Database 10g, including INTERVAL
DAY TO SECOND type support, new IEEE native database types support,
unlimited LOB size, VARRAY enhancements, and LONG-to-LOB conversions,
proxy authentication, advanced encryption algorithms, binding variables by names.
For simplified Java application deployment, Oracle Database 10g JDBC offers:

Oracle Application Server 10g Release 3 (10.1.3) - Data Access for the Agile Enterprise Page 10
new hassle-free OCI drivers install, hassle-free upgrade, easy migration, and greater
compatibility with different versions of Oracle databases. Finally, reducing the
functional gap between type-2 and type-4 JDBC drivers, Oracle Database 10g
JDBC includes: support for PL/SQL index tables, passing, retrieving, and
registering parameters by name, and support for RAC/HA – allows flexibility of
using different flavor of JDBC drivers for development and deployment.

Oracle Database Web Services Overview

There are lots of applications written in PL/SQL and running on Oracle Database.
Increasingly customers leverage these assets by exposing these artifacts as web
services. Oracle Application Server 10g Release 3 (10.1.3) is the only application
server that can seamlessly expose Oracle database artifacts (packages, stored
procedures, functions, Java stored procedures, and Oracle AQ queues and topics)
as standard based web services. It requires no coding in the middle tier to expose
these artifacts as web services. A web service end point is created for every
exposed service by the Oracle Application Server runtime. No other application
server vendor provides such functionality out-of-box for Oracle Database
applications.

Oracle TopLink Overview

Oracle TopLink is an industry leading OR mapping framework that addresses the


disparity between Java objects and Oracle databases. Oracle TopLink enables
developers to: (i) Persist Java objects in virtually any relational database supported
by a JDBC driver; (ii) Map any object model to any relational schema, using the
Oracle TopLink Mapping Workbench graphical mapping tool; (iii) Use Oracle
TopLink successfully, even if they are unfamiliar with SQL or JDBC, because
Oracle TopLink provides a clean, object-oriented view of relational databases; (iv)
TopLink provides mapping of complex SQL Types (specific to Oracle database) to
Java, thus leveraging the advanced features of the Oracle database within a J2EE
application without custom coding.

Implicit Connection Caching


We gave an overview of the Implicit Connection Caching features in the first part
of this paper. In this section, we look more closely at some of the key Oracle
Database 10g features that have been integrated into Oracle Application Server
10g Release 3 (10.1.3).
Oracle Application Server 10g Release 3 (10.1.3) data sources transparently and
centrally manage connection caches. It utilizes the Connection Cache Manager for
both cache management and binding connection caches to data sources. Besides
central cache management, the Implicit Connection Cache provides a rich set of
features including: transparent or implicit access to the connection cache, support
for heterogeneous authenticated connection, the ability to refresh or recycle stale

Oracle Application Server 10g Release 3 (10.1.3) - Data Access for the Agile Enterprise Page 11
connections from the cache, connection retrieval based on user defined attributes
and weights (connection striping).
Cache Management and Maintenance
The Connection Cache Manager is responsible for creating, destroying connection
caches, as well as maintaining the sanity of each cache. A connection cache is
usually created transparently during the data source access. The first connection
request on a data source attempts to create the cache; but if it already exists, then
the cache creation is skipped and the connection request is simply routed to the
cache, which retrieves a connection.
Binding a Connection Cache to the Data Source
The Connection Cache Manager associates a connection cache with its data source,
during the creation and re-initialization of the cache. The association ends when
the cache is removed/destroyed. This ensures an efficient access and connection
retrieval when getConnection() request is invoked on the DataSource object.
Multi-cache Support
Oracle Application Server 10g Release 3 (10.1.3) utilizes the Connection Cache
Manager to support the coexistence of more than one caches. Each cache,
identified by a unique name, is tightly bound to a data source. Each cache is either
created transparently when getConnection() requests are made on a cache enabled
data source or is created explicitly in the middle tier via the Connection Cache
Manager API.
There are no limits imposed by the Connection Cache Manager on the number of
caches that can be created. This number is limited by the resources available in the
JVM and the Oracle database server.
Once a cache is created, it may either be explicitly removed via the Connection
Cache Manager, or is removed when the DataSource is closed after use, via the
DataSource close() API.
Connection Recycling Support
Over a period of time, connection cache accumulates stale connections. There are
two modes for recycling or refreshing stale connections in the cache:
REFRESH_INVALID_CONNECTIONS and
REFRESH_ALL_CONNECTIONS.
• With REFRESH_INVALID_CONNECTIONS, each PooledConnection in
the cache is checked; if invalid, the connection’s resources are removed and
replaced with a new PooledConnection.
• With REFRESH_ALL_CONNECTIONS, all the available connections in
the cache are closed and replaced with new valid physical connections.
Connection Cache Properties

Oracle Application Server 10g Release 3 (10.1.3) - Data Access for the Agile Enterprise Page 12
The Implicit Connection Cache furnishes a range of connection cache properties
that govern the characteristics of a connection cache. These are seamlessly
integrated in Oracle Application Server 10g Release 3 (10.1.3) data sources as
declaratively configurable connection pool XML attributes. Cache properties are
set either while creating the cache for the first time, on the DataSource, or when
re-initializing the cache via the Connection Cache Manager. Typical properties
include: the minimum, maximum, and initial number of connections to be kept in
a cache, statement cache size, different connection timeouts for maintaining cache
sanity, properties controlling connection validation, etc.
Dynamic Reconfiguration Support
Implicit Connection Cache allows dynamic reconfiguration of the cache properties
by reinitializing the cache using the specified new set of cache properties. The new
properties take effect on all PooledConnections newly created as well as
PooledConnections that are not in use. For connections that are in use, the new
properties take effect only after they are returned to the cache.
Abandoned Connection Support
Abandoned or orphaned connections are those that have been checked out of the
connection cache, but never returned to the cache. Implicit Connection Cache
automatically detects and reclaims these connections back to the cache, based on
the AbandonedConnectionTimeout property on the connection cache. Setting this
property to a valid timeout value starts a heartbeat monitoring process on this
connection that is checked out. When a heartbeat is not registered on the
connection for the specified period of time, the connection is considered
abandoned and is automatically reclaimed and put back into the cache.
Statement Caching Support
The MaxStatementsLimit connection cache property sets the maximum statements
to keep open for a connection cache. If a cache is reinitialized with this property
and if more cursors are cached than specified, the extra cursors are closed.

Fast Connection Failover


In multi-tier applications with databases and application server middle tiers,
detection of failures and propagation of failure events to tiers that dispatch
requests is critical for end-to-end failover.
In Oracle Database 10g RAC (Real Application Cluster) or CFC (Cold Fail-over
Cluster), instance failures cause stale connections in the pool. Application retries
and fails if stale connections are not cleaned up. Application code, running on an
application server has to detect if SQLException was caused due to a Fatal Error
on the connection by explicitly calling Connection Error Detection API and is
responsible for closing the connection pool and requesting for new connection
pool. Additionally, some failures involving the complete loss of a database node
(such as a halt or simply a loss of network connection) usually require a complete

Oracle Application Server 10g Release 3 (10.1.3) - Data Access for the Agile Enterprise Page 13
network timeout cycle to expire before the failure is actually detected and the
corresponding failover takes place.
Oracle Database 10g JDBC offers the high availability solution Fast Connection
Failover. Oracle Application Server 10g Release 3 (10.1.3) fully integrates this
solution, while no other application server provides this functionality. When the
backend database is RAC, Oracle Application Server 10g Release 3 (10.1.3)
subscribes to the RAC node failure/failover events that get propagated to ONS
(Oracle Notification Service). ONS in turn propagates these failure events to the
JDBC layer in Oracle Application Server, and the JDBC layer transparently cleans
up the existing stale connection pool for the failed RAC node and creates another
connection pool for a live RAC node.
More specifically, the Fast Connection Failover mechanism handles Service
DOWN or UP events and Host DOWN events. The DOWN event processing
always cleans up the bad connections from the cache. The UP event processing
does Load Balancing of connections in the cache.
As we have mentioned in the first half of this paper, Fast Connection Failover is
easily configured in Oracle Application Server 10g Release 3 (10.1.3)’s component
configuration file, for example, Oracle Application Server Containers for J2EE
(OC4J) data-sources.xml without requiring any code changes.
By fully integrating the Fast Connection Failover functionality, Oracle Application
Server 10g Release 3 (10.1.3) provides the following advantages:
• Fast shutdown of connections in the connection cache, when RAC
instance/node failures are detected. This prevents bad or invalid
connections being handed out to application connection requests. For an
application that depends on the Implicit Connection Cache for total
connection management, the Fast Connection Failover mechanism provides
maximum connection availability.
• Load Balancing of connections when a RAC UP event is generated: in this
model, connections are established and load balanced to all active RAC
instances, without waiting for application connection retries/requests. Note
that for RAC setups, the service is almost always instantly available, except
when the entire service is down.

Oracle Database Security - Proxy-authentication and Virtual Private


Database (VPD)
Oracle Application Server 10g Release 3 (10.1.3) provides end-to-end integrated
security for both Application Server users and Oracle Database users, supporting
advanced security features in Oracle Database 10g, such as proxy-authentication
and Virtual Private Database (VPD).
Proxy-authentication support in Oracle databases allows a client user to connect to
the database through an application server, as a proxy user. The client user

Oracle Application Server 10g Release 3 (10.1.3) - Data Access for the Agile Enterprise Page 14
authenticates itself with the application server, while the application server
authenticates itself as the proxy user with the Oracle database. The client user's
name is maintained all the way to the database on any proxy connection opened
this way.
Oracle Application Server 10g Release 3 (10.1.3) supports proxy-authentication
with Oracle native data sources, leveraging the proxy-authentication functionality
in Oracle Database 10g JDBC drivers.
Virtual Private Database (VPD) is the aggregation of server-enforced, fine-grained
access control, together with a secure application context in the Oracle Database.
It provides a flexible mechanism for building applications that enforce the security
policies customers designate, only where such control is necessary. By dynamically
appending SQL statements with a predicate, VPD limits access to data at the row
level and ties the security policy to the table (or view or synonym) itself.
Virtual Private Database is enforced at the database layer and takes into account
application-specific logic used to limit data access within the database. Both
commercial off-the-shelf applications and custom-built applications can take
advantage of its granular access control, without the need to change any lines of
application code.
Oracle Application Server 10g Release 3 (10.1.3) fully supports VPD in any data
source type, as well as in TopLink, taking advantage of VPD’s application
transparency benefit. Users and applications can use data source/JDBC or
TopLink to define security policies as stored PL/SQL procedures in Oracle
databases.

End-to-End Tracing
End-to-end tracing in Oracle Database 10g JDBC and Oracle Database 10g greatly
improves multi-tier application diagnosability by allowing the propagation of
application metrics from the Web-tier to the database server so that resource
consumption can be measured and monitored throughout all the involved tiers.
Oracle Application Server 10g Release 3 (10.1.3) offers Oracle Enterprise Manager
EM 10g’s Application Service Level Management solution, providing end-to-end
performance diagnostics that trace transactions and individual page requests
through the Oracle Application Server stack and Oracle database.
The Interactive Transaction Trace feature enables administrators to trace a web
application transaction on an on-demand basis from the client browser, through
the middle tier components and database. The transaction trace provides detailed
diagnostics including: total transaction time, network time, server time (servlet /
JSP, EJB times) and database time (JDBC time / SQL statement performance) for
each and every URL accessed in the transaction. In addition, the invocation paths
for every JSP/ servlet, EJB, and SQL statement are traced, enabling administrators
to quickly and intuitively isolate the performance bottlenecks for any transaction.

Oracle Application Server 10g Release 3 (10.1.3) - Data Access for the Agile Enterprise Page 15
Similarly, the Middle Tier Page Performance feature traces individual URL requests
historically through the middle tier (JSP, servlet, EJB time) down to the database
(JDBC time / SQL statement) level. URL processing call stack details enable
administrators to view all JSP, servlet, EJB and SQL statement invocation paths,
and to rapidly pinpoint exactly where application bottlenecks lie. Furthermore, the
Application Performance Correlation feature enables administrators to correlate
application performance metrics over time with various system component
(including host, application server, database, etc.) metrics. This enables
administrators to identify system-related factors that could have potentially
impacted the performance of their application.
In addition, ASLM is fully integrated with the Oracle Enterprise Manager 10g
system monitoring and management framework. This integration provides for a
full end-to-end perspective and consolidated administration of an application’s
infrastructure. Administrators can monitor and manage all application
components, including the hosts, and application server, and databases from a
single view.

SUMMARY
Enterprise data access is an indispensable part of almost every mission-critical
business application. Oracle Application Server 10g Release 3 (10.1.3) brings
comprehensive data access support for today’s agile enterprises: from connection
caching to failover, from simple-and-clean configuration to dynamic
reconfiguration, from complete standard and datatype support to advanced
transaction management. At the same time, Oracle Application Server 10g Release
3 (10.1.3) continue to provide the industry’s best integrated support for Oracle
databases, allowing applications and developers to fully take advantage of the
unparalleled Oracle data access features in terms of performance, availability, ease-
of-development, manageability, and security.

Oracle Application Server 10g Release 3 (10.1.3) - Data Access for the Agile Enterprise Page 16
Oracle Application Server 10g Release 3 (10.1.3) - Data Access for the Agile Enterprise
August 2005
Author: Frances Zhao

Oracle Corporation
World Headquarters
500 Oracle Parkway
Redwood Shores, CA 94065
U.S.A.

Worldwide Inquiries:
Phone: +1.650.506.7000
Fax: +1.650.506.7200
www.oracle.com

Copyright © 2005, Oracle. All rights reserved.


This document is provided for information purposes only
and the contents hereof are subject to change without notice.
This document is not warranted to be error-free, nor subject to
any other warranties or conditions, whether expressed orally
or implied in law, including implied warranties and conditions of
merchantability or fitness for a particular purpose. We specifically
disclaim any liability with respect to this document and no
contractual obligations are formed either directly or indirectly
by this document. This document may not be reproduced or
transmitted in any form or by any means, electronic or mechanical,
for any purpose, without our prior written permission.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective owners.

You might also like