PK 3%@oa,mimetypeapplication/epub+zipPK3%@iTunesMetadata.plist| artistName Oracle Corporation book-info cover-image-hash 453142825 cover-image-path OEBPS/dcommon/oracle-small.JPG package-file-hash 328601467 publisher-unique-id E26104-01 unique-id 162629262 genre Oracle Documentation itemName Oracle® Services for Microsoft Transaction Server Developer's Guide for Microsoft Windows, 11g Release 2 (11.2.0.3) releaseDate 2011-10-13T14:54:59Z year 2011 PK2PK3%@META-INF/container.xml PKYuPK3%@OEBPS/index.htm~ Index

Index

A  C  D  E  F  G  I  J  L  M  N  O  P  R  S  T  U  V 

A

administrator username
dropping, 6.6
Microsoft Transaction Server, 3.3.2.2

C

Component Object Model (COM)
marking components as transactional, 1.2
programming with Oracle Call Interface and Microsoft Transaction Server, 4.3
registering in a Microsoft Transaction Server environment, 4.2.1
running in a Microsoft Transaction Server
coordinated transaction, 4.2.2
running in an MS DTC-coordinated transaction, 4.2.3
using with Microsoft Oracle ODBC Driver, 4.4.3
using with the Oracle ODBC Driver and Microsoft Transaction Server, 4.4.2
computer on which Microsoft Transaction Server is installed
installation requirements, 2.1.1
computer on which Oracle Database is installed
installation requirements, 2.1.2
configuration requirements
modifying for Oracle Fail Safe, 3.5
on client computer, 3.1
on computer on which Microsoft Transaction Server is installed, 3.1
on computer on which Oracle Database is installed, 3.1
connection
managing connection pooling, 5.2
connection attribute
setting with ODBC, 4.4.1
connection pooling
client side registry parameters, 5.2
emptying connection pools, 6.2
managing connections, 5.2
obtaining service handles, 4.3.3
releasing connections, 4.3.4
using OraMTSSvcGet() function, 4.3.3
CREATE SESSION role, 3.3.2.2

D

Data Manipulation Language (DML)
using in shared server configurations, 6.3
database job-queue processes
starting, 3.3.2.1
DBMS_JOBS package, 3.3.2.2
DBMS_TRANSACTION package, 3.3.2.2
DCOM. See Distributed Component Object Model (DCOM)
differences with OraMTSJoinTxn() function, 4.3.6
Distributed Component Object Model (DCOM), 1.1
distributed transactions
in-doubt, 6.5
RAC support, 1.2.2
support for serializable isolation level, 1.2.4
DML. See Data Manipulation Language (DML)

E

Enterprise Services, 1.2.1

F

FORCE_ANY_TRANSACTION privilege, 3.3.2.2

G

getting started
with Microsoft Transaction Server and an Oracle Database, 1.3

I

in-doubt transactions
JOB_QUEUE_PROCESSES initialization parameter, 3.3.2.1
resolving, 3.2
scheduling automatic recovery, 3.3
starting database job-queue processes, 3.3.2.1
viewing, 3.4
initialization parameters
JOB_QUEUE_PROCESSES, 3.3.2.1
PROCESSES, 5.4
SESSIONS, 5.4
installation
of Oracle MTS Recovery Service, 2.1
installation requirements
for computer on which Microsoft Transaction Server is installed, 2.1.1
for computer on which Oracle Database is installed, 2.1.2
for computer running Oracle Fail Safe, 2.1
Microsoft Transaction Server, 2.1
Oracle Database Client, 2.1.1.1
Oracle Objects for OLE, 2.1.1.1
Oracle ODBC Driver, 2.1.1.1
Oracle Services for Microsoft Transaction Server, 2.1.1.1
required RAM, 2.1
Service Pack 5.0 or greater, 2.1.1.2
SQL*Plus, 2.1.2.1

J

JOB_QUEUE_PROCESSES initialization parameter, 3.3.2.1

L

local transactions
promoting, 1.2.3

M

Microsoft Distributed Transaction Coordinator (DTC), 1.2.1
Microsoft Distributed Transaction Coordinator (MS DTC)
COM components running in an MS DTC-coordinated transaction, 4.2.3
in a cluster, 3.5
starting, 5.6
using with Oracle Service for MTS, 2.1
Microsoft Transaction Server
benefits, 1.1
changing the administrator username, 3.3.2.2
COM components running in a transaction, 4.2.2
components running in an MS DTC-coordinated transaction, 4.2.3
creating the administrator user account, 3.3.2.2
definition, 1.1
getting started with an Oracle Database, 1.3
installation requirements, 2.1
integration with an Oracle Database, 1.2
programming with Microsoft Oracle ODBC Driver, 4.4
programming with Oracle Call Interface, 4.3
programming with Oracle ODBC Driver, 4.4
registering COM components, 4.2.1
scheduling transaction recovery, 3.3
starting MS DTC, 5.6
using with Microsoft Oracle ODBC Driver, 4.4.3
using with the Oracle ODBC Driver, 4.4.2
MTSSamples.dsn file
using with the Oracle ODBC Driver, 4.4.2
mtssys username
changing the password, 3.3.2.2
default administrator user account, 3.3.2.2
mtxstop.exe file
running, 6.2

N

net service name
changes that impact connection pool, 6.2
changes that impact connection pooling, 6.2
.NET, Enterprise Services, 1.2.1
nonpooled Oracle Call Interface connection
OraMTSJoinTxn function, 4.3.9

O

OCI_THREADED flag
passing, 4.3
OCIInitialize function
calling, 4.3
ODBC. See Open Database Connectivity (ODBC)
omtssamp.sql script, 4.4.3
Open Database Connectivity (ODBC)
configuring Microsoft Oracle ODBC Driver with Microsoft Transaction Server, 4.4.3
configuring the Oracle ODBC Driver with Microsoft Transaction Server, 4.4.2
Oracle ODBC Driver installation requirements, 2.1.1.1
programming with Microsoft Transaction Server, 4.4
setting the connection attribute, 4.4.1
using Microsoft Oracle ODBC Driver with Microsoft Transaction Server, 4.4.3
using the MTSSamples.dsn file with the Oracle ODBC Driver, 4.4.2
using the Oracle ODBC Driver with Microsoft Transaction Server, 4.4.2
using the SQL_ATTR_ENLIST_IN_DTC parameter, 4.4.1
using the SQLSetConnectAttr function, 4.4.1
Oracle Call Interface (OCI)
enlisting an MS DTC-coordinated transaction, 4.3.5
obtaining pooled or standard Oracle Call Interface connections, 4.3.5
obtaining pooled Oracle Call Interface connections, 4.3.3
OraMTSEnlCtxGet() function, 4.3.7
OraMTSEnlCtxGet() function parameters, 4.3.7
OraMTSJoinTxn() function, 4.3.9
OraMTSOCIErrGet() function, 4.3.11
OraMTSOCIErrGet() function parameters, 4.3.11
OraMTSSvcEnlist() function, 4.3.5
OraMTSSvcEnlist() function parameters, 4.3.5
OraMTSSvcGet() function, 4.3.3
OraMTSSvcGet() function parameters, 4.3.3
OraMTSSvcRel() function, 4.3.4
programming with Microsoft Transaction Server, 4.3
releasing pooled Oracle Call Interface connections, 4.3.4
Oracle Database
changing init.ora file parameter settings, 5.4
integration with Microsoft Transaction server, 1.2
Oracle Database Client
installation requirements, 2.1.1.1
Oracle Fail Safe
installation requirements, 2.1
modifying registry parameters, 3.5
Oracle MTS Recovery Service
installation, 2.1
resolving in-doubt transactions, 3.2
trace file output, 6.1
Oracle Objects for OLE (OO4O)
installation requirements, 2.1.1.1
Oracle Service for MTS
using with MS DTC, 2.1
Oracle Services for Microsoft Transaction, 3.1
Oracle Services for Microsoft Transaction Server
installation requirements, 2.1.1.1
oramts_2pc_pending
views, 3.3.2.2.4
ORAMTS_ABORT_MODE, 5.5
ORAMTS_CFLG_ALLDEFAULT flag
description, 4.3.3
ORAMTS_CFLG_SYSDBALOGN flag
description, 4.3.3
using, 4.3.3
ORAMTS_CFLG_SYSOPRLOGN flag
description, 4.3.3
using, 4.3.3
ORAMTS_CONN_POOL_TIMEOUT registry parameter, 5.2.1
ORAMTS_ENFLG_DEFAULT flag
description, 4.3.5, 4.3.6
ORAMTS_NET_CACHE_MAXFREE registry parameter, 5.2.1
ORAMTS_NET_CACHE_TIMEOUT registry parameter, 5.2.1, 5.2.1
ORAMTS_OSCREDS_MATCH_LEVEL registry parameter, 5.2.1
oramtsadmin.sql script
creating the Microsoft Transaction Server administrator user account, 3.3.2.2
creating the PL/SQL package, 3.3.2.2
oramts.dll file
definition, 6.1
OraMTSEnlCtxGet() function
Oracle Call Interface function, 4.3.7
OraMTSEnlCtxRel() function
destroying a previously set up enlistment context, 4.3.8
parameters, 4.3.8
returning ORAMTSERR_NOERROR, 4.3.8
syntax, 4.3.8
ORAMTSERR_ILLEGAL_OPER
returning upon acquiring a connection, 4.3.6
ORAMTSERR_ILLEGAL_OPER returning upon acquiring a connection, 4.3.6
ORAMTSERR_NOERROR
returning upon acquiring a connection, 4.3.5, 4.3.9
returning upon obtaining a connection, 4.3.3
returning upon releasing a connection, 4.3.4
OraMTSJoinTxn() function
enlisting a nonpooled Oracle Call Interface connection, 4.3.9
Oracle Call Interface function, 4.3.9
returning ORAMTSERR_NOERROR upon acquiring a connection, 4.3.9
syntax, 4.3.9
OraMTSOCIErrGet() function
parameters, 4.3.11
retrieving the Oracle Call Interface error code, 4.3.11
syntax, 4.3.11
OraMTSSvcEnlist() function
enlisting pooled or standard Oracle Call Interface connections, 4.3.5
Oracle Call Interface function, 4.3.5
ORAMTS_ENFLG_DEFAULT flag, 4.3.5, 4.3.6
parameters, 4.3.5
restrictions on use, 4.3.5
returning ORAMTSERR_NOERROR upon acquiring a connection, 4.3.5
syntax, 4.3.5
OraMTSSvcEnlistEx() function
restrictions on use, 4.3.6
returning ORAMTSERR_ILLEGAL_OPER upon acquiring a connection, 4.3.6
syntax, 4.3.6
OraMTSSvcGet() function
Oracle Call Interface function, 4.3.3
ORAMTS_CFLG_ALLDEFAULT flag, 4.3.3
ORAMTS_CFLG_SYSDBALOGN flag, 4.3.3
ORAMTS_CFLG_SYSOPRLOGN flag, 4.3.3
overview, 4.3
parameters, 4.3.3
responsibilities, 4.3.3
returning a pooled connection, 4.3.3
returning ORAMTSERR_NOERROR upon acquiring a connection, 4.3.3
syntax, 4.3.3
OraMTSSvcRel() function
Oracle Call Interface function, 4.3.4
overview, 4.3
releasing a pooled connection, 4.3.4
returning ORAMTSERR_NOERROR upon releasing a connection, 4.3.4
syntax, 4.3.4
OraMTSTransTest() function
syntax, 4.3.10
ORAOCI registry parameter
setting, 4.4.3

P

packages
DBMS_JOBS, 3.3.2.2
DBMS_TRANSACTION, 3.3.2.2
passwords
changing for mtssys username, 3.3.2.2
pooled connection
releasing, 4.3.4
privileges
FORCE_ANY_TRANSACTION, 3.3.2.2
of administrator user account, 3.3.2.2
utl_oramts.sql script, 3.3.2.2
PROCESSES initialization parameter
changing the value, 5.4
programming methods
optimizing to improve performance, 5.1
promotable local transactions, 1.2.3
prvtoramts.plb file, 3.3.2
public procedures
exposing, 3.3.2.2
recover_automatic, 3.3.2.2.2
show_indoubt, 3.3.2.2.1
utl_oramts.forget_RMs, 3.3.2.2.3

R

Real Application Clusters (RAC), 1.2.2
recover_automatic
public procedure, 3.3.2.2.2
recovery
of in-doubt transactions, 3.2
registry
modifying values for Oracle Fail Safe configurations, 3.5
trace file settings, 6.1
registry parameters
modifying for Oracle Fail Safe, 3.5
ORAMTS_CONN_POOL_TIMEOUT, 5.2.1
ORAMTS_NET_CACHE_MAXFREE, 5.2.1
ORAMTS_NET_CACHE_TIMEOUT, 5.2.1, 5.2.1
ORAMTS_OSCREDS_MATCH_LEVEL, 5.2.1
registry variables
ORAMTS_ABORT_MODE, 5.5
roles
CREATE SESSION, 3.3.2.2
of administrator user account, 3.3.2.2
SELECT_CATALOG_ROLE, 3.3.2.2

S

SELECT_CATALOG_ROLE role, 3.3.2.2
serializable transactions, 1.2.4
service handles, 4.3.3
Service Pack 5.0 or greater
installation requirements, 2.1.1.2
SESSIONS initialization parameter
changing the value, 5.4
shared server configurations, 6.3
show_indoubt
public procedure, 3.3.2.2.1
SQL*Plus
installation requirements, 2.1.2.1

T

three-tiered architecture, 1.1
tnsnames.ora file
setting for shared server configurations, 6.3
trace files
filename conventions, 6.1
Oracle MTS Recovery Service, 6.1
oramts.dll, 6.1
registry settings, 6.1
using, 6.1
transaction recovery
JOB_QUEUE_PROCESSES initialization parameter, 3.3.2.1
Oracle Fail Safe environment, 3.2
overview, 3.2
scheduling, 3.3
starting database job-queue processes, 3.3.2.1
troubleshooting, 3.4
transactions
ensuring consistency across data resources, 1.2.1
transparent RAC support of distributed transactions, 1.2.2
troubleshooting
correcting Oracle Net changes that impact connection pooling, 6.2
dropping the administrator user account, 6.6
starting MS DTC, 5.6
transaction recovery, 3.4
using trace files, 6.1
tuning
change, 5.4
managing connection pooling, 5.2
two-phase commit protocol, 6.5

U

utl_oramts PL/SQL package
exposing public procedures, 3.3.2.2
utl_oramts.forget_RMs
public procedure, 3.3.2.2.3
utl_oramts.sql script, 3.3.2
privileges and roles granted, 3.3.2.2

V

views
oramts_2pc_pending, 3.3.2.2.4
PK~~~PK3%@ OEBPS/toc.htm(" Table of Contents

Contents

Title and Copyright Information

Preface

What's New in Oracle Services for Microsoft Transaction Server

1 Using Microsoft Transaction Server with Oracle Database

2 Installing and Migrating Oracle Products

3 Managing Recovery Scenarios

4 Programming with Microsoft Transaction Server and an Oracle Database

5 Tuning Microsoft Transaction Server Performance

6 Troubleshooting Oracle Microsoft Transaction Server

Glossary

Index

PK9-"("PK3%@OEBPS/img_text/ntmts012.htmR Description of the illustration ntmts012.eps

This illustration shows how, through Oracle Net, Microsoft Transaction Server-based COM components (not shown) can acquire connections to both dedicated and shared Oracle servers of database A. These components then attempt to perform distributed updates (data manipulation language) on database B using database links from database A to database B. While the distributed updates from the shared servers succeed, those from dedicated servers fail.

PK4WRPK3%@OEBPS/img_text/ntmts011.htm2 Description of the illustration ntmts011.eps

This illustration describes component integration in a transaction. The role of each component is described in the text immediately following the illustration.

PK2؅72PK3%@OEBPS/perftune.htm3= Tuning Microsoft Transaction Server Performance

5 Tuning Microsoft Transaction Server Performance

This chapter provides Microsoft Transaction Server performance tuning information.

This chapter contains these topics:

Improving Microsoft Transaction Server Application Performance

Optimizing the programming methods of your application improves its performance. For example, placing all code for a given transaction into one component object model (COM) component means you do not mark that component as transactional. This eliminates the overhead of going through Microsoft Transaction Server. You can subsequently use the Oracle commit or rollback functions to control that transaction in the component. If you are using the Oracle Call Interface (OCI), you can still use ORAMTSSvcGet(), but you can also use the ORAMTS_CFLG_NOIMPLICIT flag. If you are updating across two or more Oracle Database instances, use database links and connect to one database from the COM component.


See Also:

"OCI Integration with Microsoft Transaction Server" for more information on using ORAMTSSvcGet()

Managing Microsoft Transaction Server Connections

When a .NET or COM component ends a session with the Oracle Database, the connection does not immediately terminate. Instead, it remains idle in a connection pool, where it is available for reuse by another component attempting a new connection to the Oracle Database.

Connection Pooling Registry Parameters

The idle period during which a connection is reusable reduces the resource costs associated with opening a new connection. The amount of time that the connection remains idle and available in the connection pool is determined by several registry parameter settings. You can modify these parameters on the computers on which the client Microsoft Transaction Server components are installed, in the file HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEID:

ORAMTS_CONN_POOL_TIMEOUT The time, in seconds, that the connection remains idle and available for reuse in the client side connection pool, before timing out and being released. The default value of this parameter is 120 seconds.

ORAMTS_SESS_TXNTIMETOLIVE The time, in seconds, that the connection established using OraMTSSvcGet() remains alive in the client side connection pool after being released by an OraMTSSvcRel() call. The sum of the ORAMTS_CONN_POOL_TIMEOUT and ORAMTS_NET_CACHE_TIMEOUT values determines the actual time before a connection terminates completely. The default value of this parameter is 120 seconds.

ORAMTS_NET_CACHE_TIMEOUT The resource dispenser implemented inside Oracle Services for Microsoft Transaction Server establishes pooled connections to Oracle databases. When these connections are no longer in use, the user sessions are disconnected after the timeout specified by ORAMTS_CONN_POOL_TIMEOUT. However, the underlying Oracle Net connections are cached for the period specified by this parameter. After this time, expressed in milliseconds, a cached Oracle Net connection to the database will be terminated. The default value of this parameter is 120000 milliseconds. Oracle recommends setting this parameter to a higher value than the value for ORAMTS_CONN_POOL_TIMEOUT. The sum of the time periods specified for ORAMTS_CONN_POOL_TIMEOUT and ORAMTS_NET_CACHE_TIMEOUT determines the actual time before a connection terminates completely.

ORAMTS_NET_CACHE_MAXFREE The maximum number of free server connections that should be maintained in the client-side connection pool at a given time. The default value of this parameter is 5.

ORAMTS_OSCREDS_MATCH_LEVEL The level of Windows security checking implemented when the OS_ROLES initialization parameter in the init.ora file is true.

When a user establishes a connection to the Oracle Database using the CONNECT command, the Windows username is associated with specific database roles and privileges. When the user disconnects, this connection becomes idle and available in the pool. When another user enters the CONNECT command, if the Windows username is identical to the one used by the first user, the second user can receive the same database roles and privileges as the first user. This is a considerable security concern, especially if the second user possesses only the CREATE SESSION and RESOURCE database roles but receives the DBA privileges of the first user.

By default, the ORAMTS_OSCREDS_MATCH_LEVEL parameter value is OS_AUTH_LOGIN, and Windows security checking is performed only if the username and password are NULL.

The most secure setting for this parameter is ALWAYS, which ensures that Windows security checking is performed in all cases, and takes care of possible security breaches due to identical non-null Window usernames.

Because Windows security checking is a resource-intensive operation, you may wish to set the value of this parameter to NEVER. However, if you know that OS_ROLES is true, or if you use operating system-authenticated connections, you should avoid this option.

Increasing the Transaction Timeout Parameter

If transaction requests are timing out before completing, the transaction timeout parameter may be set too low. Increase the transaction timeout parameter to ensure that transactions have enough time to complete.

To increase the transaction timeout parameter:

  1. Go to the Windows computer on which Microsoft Transaction Server is installed.

  2. From the Start menu, select Programs, then Administrative Tools, then Component Services.

    The Component Services window appears.

  3. Double-click Console Root in the Component Services window so its tree structure expands.

  4. Double-click Component Services.

  5. Double-click Computers.

  6. Right-click My Computer.

    A menu appears with several options.

  7. Choose Properties.

    The My Computer Properties dialog box appears.

  8. Choose the Options tab.

  9. Enter a value in the Transaction Timeout field and click OK.

    The transaction timeout value is increased. For most environments, 60 seconds may be enough. However, if the transaction is competing with numerous concurrent transactions, this value may be too low.

Changing Initialization Parameter Settings

You may need to modify several initialization parameters to use the Oracle Database with Microsoft Transaction Server. The values you should set these parameters to are based on the database workload environment.

To verify initialization parameter file values, follow these steps:

  1. Ensure that you have SYSDBA privileges.

  2. Go to the computer on which the Oracle Database is installed.

  3. Start SQL*Plus:

    C:\> sqlplus /NOLOG
    
  4. Connect to the database as SYSDBA:

    SQL> CONNECT / AS SYSDBA
    
  5. Check the value for the SESSIONS parameter:

    SQL> SHOW PARAMETER SESSIONS
    
  6. Check the value for the PROCESSES parameter:

    SQL> SHOW PARAMETER PROCESSES
    

    The current settings for both SESSIONS and PROCESS parameters are typically appropriate for running the Microsoft application demo. For creating and deploying .NET or COM-based applications, the values for these parameters depend on the database environment's anticipated workload. For example, if you anticipate 100 concurrent connections to the Oracle Database, consider setting both values to 200 to accommodate a possible system overload. Ensure that you do not set these parameters too high, because they are resource-intensive.


    See Also:

    Oracle Database Reference for information about these parameters.

  7. Set the following initialization parameters to at least these values:

    • SESSIONS = 200 (or larger if anticipating heavier loads)

    • PROCESSES = 200 (or larger if anticipating heavier loads)

  8. Shut down the Oracle Database:

    SQL> SHUTDOWN
    
  9. Restart the Oracle Database:

    SQL> STARTUP
    
  10. Exit SQL*Plus:

    SQL> EXIT
    

Additional Parameters

Use the registry variable ORAMTS_ABORT_MODE to control whether a new connection always performs an abort or whether the originally enlisted connection can be used to perform the abort, that is, whether the abort is synchronous or asynchronous.

By default, the originally enlisted connection performs transaction aborts (whenever possible).

Registry variable: ORAMTS_ABORT_MODE

Values:

  • ORAMTS_ABORT_MODE_NEW_CONN_ONLY: Results in asynchronous aborts. A new connection to the database is opened for performing transaction aborts.

  • Any other value implies the default behavior.

Starting MSDTC

The Microsoft Distributed Transaction Coordinator (MS DTC) must be running to enable communication with Oracle Services for Microsoft Transaction Server.

To start MS DTC, follow these steps:

  1. On the computer where Microsoft Transaction Server is installed, from the Start menu, choose Programs, then Administrative Tools, then Component Services.

    The Component Services window appears.

  2. In the Component Services Window, expand Component Services under the Console Root.

  3. Expand Computers under Component Services.

  4. Right-click My Computer.

    A menu with several options appears.

  5. Choose Start MSDTC.

    MS DTC starts.

PKާ8=3=PK3%@OEBPS/prog.htm Programming with Microsoft Transaction Server and an Oracle Database

4 Programming with Microsoft Transaction Server and an Oracle Database

This chapter describes how to program with Microsoft Transaction Server and an Oracle Database.

This chapter contains these topics:

OraMTS also provides integration with OO4O, Oracle Provider for OLE DB, and Oracle Data Provider for .NET.


See Also:


COM Component Integration in a Transaction

The focal point of the transaction process is a component of Microsoft Transaction Server called Microsoft Distributed Transaction Coordinator (MS DTC). When a client computer starts a business method on a transactional component, Microsoft Transaction Server begins a transaction coordinated by the MS DTC. The Oracle connection pooling layer enables the database to act as a resource manager (RM) in the MS DTC-coordinated transaction. Figure 4-1 illustrates this transactional model.

Client Computer The client computer activates the application components on the MTS Application Server through a Web browser or through the component object model (COM) /distributed component object model (DCOM).

MTS Application Server The MTS application server consists of the services that the Windows operating service provides to host transactional application components that a client computer can activate, either indirectly through a Web browser or directly through the component object model (COM) /distributed component object model (DCOM). In response to client requests, the application server invokes the COM components. The invocations are performed within the scope of transactions where required

Transactional Application Logic COM Components Three primary responsibilities:

Oracle ODBC Driver, OO4O, Oracle Provider for OLE DB, and OCI Two primary responsibilities:

  • Obtain a service context to the Oracle Database through the OCI connection pooling component.

  • Provide connection pooling resources, if necessary (through Oracle Provider for OLE DB or Oracle ODBC Driver). The Oracle ODBC Driver provides pooled ODBC connections. Oracle Provider for OLE DB provides pooled data source objects. OO4O uses the OCI connection pool.

OCI Connection Pool Three primary responsibilities:

  • Enlists the RM (Oracle Database) in the component's Microsoft Transaction Server transaction.

  • Starts an Oracle global transaction corresponding to the Microsoft Transaction Server transaction of which the component is a part.

  • Acts as a resource dispenser to perform client-side connection pooling.

Oracle Net Provides connectivity in distributed, heterogeneous computing environments.

Oracle MTS Recovery Service Recovers in-doubt Oracle transactions that originated from the host computer and are related to the Microsoft Transaction Server.

Database Recovery Job Detects in-doubt DTC transactions. This job extracts the recovery service's endpoint address in the in-doubt transaction's XID and then requests the outcome of the Microsoft DTC transaction from the recovery service. Ultimately, the job will commit or terminate the in-doubt transaction when it receives the transaction's outcome.

Microsoft DTC Microsoft Distributed Transaction Coordinator is part of Microsoft Transaction Server and has two primary responsibilities:

  • Commits and terminates transactions using the two-phase commit protocol.

  • Monitors transactions that require recovery. Multiple MS DTCs can be involved in a single transaction. When a transactional Microsoft Transaction Server component on computer A invokes another transactional Microsoft Transaction Server component on computer B, a connection is opened between the MS DTC on computer A and the MS DTC on computer B. When the root MS DTC commits or terminates a transaction, it sends the request through all involved MS DTCs. The transaction request is then passed to the OCI connection pooling/Microsoft Transaction Server integration, which sends it to the database.

Oracle Database Acts as an RM for Microsoft Transaction Server. This is the database on which the client transaction request is performed.

Microsoft Transaction Server Application Development

OCI connection pooling is used to coordinate a transaction in nearly all application programming interfaces. This sections describes how transactions are registered and how OCI connection pooling coordinates them.

Microsoft Transaction Server Component Registration

Application components that run in the Microsoft Transaction Server environment are created as dynamic link libraries (DLLs). Application components are registered with Microsoft Transaction Server using the Microsoft Transaction Server Explorer graphical user interface (GUI) tool.

Microsoft DTC-Coordinated Component Transaction

This section describes how OCI connection pooling, Microsoft Transaction Server, and MS DTC operate with application components not running in a Microsoft Transaction Server-coordinated transaction, but using MS DTC.

  1. The client application starts an MS DTC transaction and connects to the Oracle Database. The connection protocol follows one of the following scenarios:

    • Nonpooled OCI connections are obtained through OCI logon calls such as OCIServerAttach() and OCISessionBegin(). For these connections, the application calls OraMTSEnlCtxGet() to associate the OCI service context with a Microsoft Transaction Server enlistment context.

    • A connection pool is obtained by calling OraMTSSvcGet(..,..,ORAMTS_CFLG_NOIMPLICIT).

  2. The client handles the context in one of the following scenarios:

    • For nonpooled connections, the client application passes in the enlistment context to OraMTSJoinTxn().

    • For pooled connections, the client application passes the OCI service context into OraMTSSvcEnlist().

  3. The OCI connection pooling component enlists the connection, either pooled or nonpooled, in the transaction coordinated by the MS DTC component of Microsoft Transaction Server.

  4. The client application then:

    • Performs database operations.

    • Calls OraMTSSvcEnlist() with a NULL transaction reference to de-enlist from an MS DTC coordinated transaction.

      For nonpooled connections, OraMTSTxnJoin() is invoked with a NULL transaction reference to perform the de-enlistment.

    • Calls OraMTSSvcRel() to release a pooled connection back to the pool.

      For nonpooled connections, the client calls OraMTSEnlCtxRel() to release the enlistment context and then logs off the database.

    • Calls the commit or terminate method on the MS DTC transaction object, such as pTransaction->Commit() or pTransaction->Abort().

  5. MS DTC performs the two-phase commit protocol to commit the transaction.

  6. OCI connection pooling is notified and performs the necessary steps to complete phase one, the prepare phase, and phase two, the commit or terminate phase.

OCI Integration with Microsoft Transaction Server

Example 4-1 illustrates how you can integrate the MTS sever with OCI. The only change in code you must make involves obtaining and releasing the OCI service context handle. Both OCI service context handle and environment handle are acquired when you obtain a pooled OCI connection to the database by calling OraMTSSvcGet(). Include the oramts.h header and link with the oramts.lib library. When you are finished, call OCI function OraMTSSvcRel() to release the service context handle and environment handle. Using OraMTSSvcGet() enables you to receive connection pooling and implicit transaction support if you registered the application component to run in a Microsoft Transaction Server transaction.

Ensure that for each process, you call OCIInitialize at least once before executing any other OCI calls. This initializes the OCI process environment. In addition, you must pass it the OCI_THREADED flag. If you are using Microsoft Internet Information Server (IIS) and the components are being called as in-process libraries, then OCIInitialize is already called for you. The registry key ORAMTS_OCI_OBJ_MODE has been added. Set the value to 1 to initialize OCI in Object mode; otherwise OCI will initialize in the threaded mode.

Example 4-1 Integration of MTS and OCI

#include <oci.h> 
#include  <oramts.h> 
#include  <xolehlp.h> 
// other MTS relevant includes ... 
 
// prototype for the error handler. 
BOOL Chekerr(sword swOCIStat, OCIError *OCIErrh); 
 
// MTS component method 
HRESULT OCITestMethod() 
{ 
 IObjectContext *pObjectContext = NULL; 
 OCIEnv    *myenvh = NULL; 
 OCISvcCtx *mysvch = NULL; 
 OCIError  *myerrh = NULL; 
 OCIStnt   *mystmh = NULL; 
 DWORD      dwStat; 
 HRESULT    hRes = S_OK; 
 sword      swOCIStat; 
 BOOL       bCommit = FALSE; 
 char      *lpzStmt = "UPDATE EMP SET SAL = SAL + 1000"; 
 
 // Initialize the OCI environment first -- request OCI_THREADED 
 OCIInitialize(OCI_THREADED, (dvoid*)NULL,NULL,NULL,NULL);  
 // attempt to get a connection to the database through the resource dispenser 
 OraMTSSvcGet( 
"hr","hr_password","finprod_db",&mysvch, &myenvh, ORAMTS_CFLG_ALLDEFAULT);  
 // validate return status 
 if(dwStat != ORAMTS_ERR_NOERROR) 
 { 
   printf("error: failed to obtain a connection to the database - %ld", 
dwStat); 
   goto cleanup; 
 } 
 // successful logon and enlistment in the MTS transaction. allocate statement 
 // handles and other handles using the OCI environment handle myenvh .... 
 swOCIStat = OCIHandleAlloc(myenvh, (void *)&myerrh,OCI_HTYPE_ERROR, 0 , NULL); 
 if (Checkerr(swOCIStat, myerrh)) goto cleanup; 
 swOCIStat = OCIHandleAlloc(myenvh, (dvoid *)&mystmh,OCI_HTYPE_STMT, 0,NULL); 
 if (Checkerr(swOCIStat, myerrh)) goto cleanup;
 // prepare a DML statement 
 OCIStmtPrepare(mystmh, myerrh, lpzStmt, lstrlen(lpzStmt), OCI_NTV_SYNTAX, 
OCI_DEFAULT) 
 Checkerr(swOCIStat, myerrh);  
 // execute the statement -- ensure that AUTOCOMMIT is not requested. 
 OCIStmtExecute(mysvch, mystmh, myerrh, 1, 0, NULL, NULL, OCI_DEFAULT); 
 if (Checkerr(swOCIStat, myerrh)) goto cleanup;  
 // all's well so far choose to go for a commit 
 bCommit = TRUE;  
cleanup: 
 if (mystmh) OCIHandleFree((void*)mystmh, OCI_HTYPE_STMT); 
 if (myerrh  OCIHandleFree((void*)myerrh, OCI_HTYPE_ERROR); 
 if (mysvch) OraMTSSvcRel(mysvch);  
 if (bCommit)  
     pObjectContext->SetComplete();  
 else 
     pObjectContext->Abort();   
 return(bCommit ? S_OK : E_FAIL); 
}

Integrating COM Components

There are several scenarios for integrating COM components. COM applications that are not hosted by the Microsoft Transaction Server environment, also known as standalone applications, cannot use declarative transactions through the Microsoft Transaction Server Explorer Microsoft Management Console, but they can use the last three of the scenario described.

OraMTSSvcGet()

Obtains a pooled connection, also known as an OCI service context, from the OCI connection pool. The pooled connection includes an OCI service context handle and an OCI environment handle.

Syntax

DWORD  OraMTSSvcGet( 
                 text*       lpUname,
                 text*       lpPsswd,
                 text*       lpDbnam,
                 OCISvcCtx** pOCISvc,
                 OCIEnv**    pOCIEnv,
                 ub4         dwConFlgs);

Parameters

Table 4-2 OraMTSSvcGet() Parameters

ParameterIN/OUTDescription

lpUname

IN

Username for connecting to the Oracle Database

lpPsswd

IN

Password for the username

lpDbnam

IN

The net service name for connecting to the database (created with Oracle Net Manager or Oracle Net Configuration Assistant)

pOCISvc

OUT

Pointer to the OCI service context handle

pOCIEnv

OUT

Pointer to the OCI environment handle

dwConFlgs

IN

Connection flags. Possible values are:


Returns

Returns ORAMTSERR_NOERROR upon successful acquisition of an OCI pooling connection (OCI service context).

Usage Notes

OraMTSSvcEnlist()

Enlists or de-enlists an OCI connection in a transaction coordinated by MS DTC. Use this call to explicitly enlist pooled connections. Nonpooled connections must enlist with OraMTSJoinTxn().

Syntax

DWORD OraMTSSvcEnlist(
                   OCISvcCtx*  OCISvc, 
                   OCIError*   OCIErr, 
                   void*       lpTrans, 
                   unsigned    dwFlags);

Parameters

Returns

Returns ORAMTSERR_NOERROR on success.

Usage Notes

  • Use this call to explicitly enlist or de-enlist a pooled connection. For enlisting and de-enlisting nonpooled connections, use OraMTSSvcRel().

  • OraMTSSvcEnlist() enlists (or de-enlists) pooled OCI connections obtained previously through OraMTSSvcGet() with the ORAMTS_CFLG_NOIMPLICIT flag and not yet released with OraMTSSvcRel(). The pooled OCI connections must be explicitly enlistable. When the transaction is complete, you must de-enlist OraMTSSvcEnlist(), passing NULL as the transaction pointer as follows:

    OraMTSSvcEnlist (OCISvc, OCIErr, NULL, ORAMTS_ENFLG_DEFAULT)
    

    You must use OraMTSSvcRel() to release the connection when done.

  • Callers must allocate a connection, enlist the connection, perform work, de-enlist the connection, release the connection, and then attempt to commit or terminate.

OraMTSEnlCtxGet()

Creates an enlistment context for a nonpooled OCI connection.

Syntax

DWORD OraMTSEnlCtxGet(
                     text*       lpUname,
                     text*       lpPsswd,
                     text*       lpDbnam,              
                     OCISvcCtx*  pOCISvc,
                     OCIError*   pOCIErr,
                     ub4         dwFlags,
                     void**      pCtxt);

Parameters

Returns

Returns ORAMTSERR_NOERROR on success.

Usage Notes

  • This call sets up an enlistment context for a nonpooled connection. This call must be started just after the caller establishes the OCI connection to the database. Once created, this context can be passed into OraMTSJoinTxn() calls. Prior to deleting the OCI connection, OraMTSEnlCtxRel() must be called to delete the enlistment context.

  • Callers must:

    • Allocate a nonpooled connection through OCI.

    • Create an enlistment context by calling OraMTSEnlCtxGet().

    • Enlist the connection by calling OraMTSJoinTxn().

    • Perform database work.

    • De-enlist the connection by calling OraMTSJoinTxn() with a NULL transaction pointer.

    • Attempt to commit or terminate work.

    • Release the enlistment context by calling OraMTSEnlCtxRel().

    • Release the nonpooled OCI connection and delete its associated OCI environment handle.

ODBC Integration with Microsoft Transaction Server Overview

This section describes how to use Oracle ODBC Driver with Microsoft Transaction Server and a Oracle Database. No changes to OCI code are necessary for ODBC to operate successfully.

Using Oracle ODBC Driver

The ODBC Driver Manager distributed with ODBC 3.0 is a Resource Dispenser that supports connection pooling. Oracle ODBC Driver release 11.1 integrates with the ODBC 3.0 Driver Manager by supporting the SQLSetConnectAttr(...,..., SQL_ATTR_ENLIST_IN_DTC) call to enlist or de-enlist the ODBC connection used in MS DTC-coordinated transactions.

Use the Oracle ODBC Driver 11.1 with:

  • Applications you develop

  • The sample banking application that Microsoft provides with Microsoft Transaction Server.

To configure Oracle ODBC Driver, follow these steps:

  1. Choose Start > Settings > Control Panel.

    The Control Panel window appears.

  2. Double-click ODBC.

    The ODBC Data Source Administrator dialog box appears.

  3. Choose the File DSN tab.

  4. To make Oracle ODBC Driver work with Microsoft sample banking application demo, follow these steps. Otherwise, skip this step.

    If you don't intend to use the demo, click Add to create a new File data source name (DSN).

    The Create New Data Source wizard appears.

  5. Select Oracle in HOME_NAME.

  6. Click Advanced.

  7. Add the following information in the keywords and values field:

    SERVER=database_alias
    USERNAME=hr 
    PASSWORD=hr_password
    

    where:

    • SERVER is the The database alias used by the demo to access the database mtsdemo.

    • USERNAME is the database username for this application, such as hr.

    • PASSWORD is the database password for username hr.

    Verify that the hr schema contains the account and receipt tables.

  8. Click OK.

  9. Click Next to continue with the Create New Data Source wizard.

  10. For the Microsoft sample application, enter mtssamples.dsn (Microsoft ODBC name). This name must exactly match the name you removed in Step 4.

    For applications you develop, enter the name of the DSN file that will be used.

  11. Complete the remaining Create New Data Source wizard pages.

  12. Click OK to exit the ODBC Data Source Administrator dialog box.

  13. Exit the Control Panel window.


See Also:

Microsoft Transaction Server SDK for information


PK9<PK3%@OEBPS/recovery.htmlV Managing Recovery Scenarios

3 Managing Recovery Scenarios

This chapter describes how to create and schedule Microsoft Transaction Server-related Oracle transaction recovery.

This chapter contains these topics:

Microsoft Transaction Server Configuration Requirements

You must configure the Microsoft Transaction Server and Oracle Database environments after installing or migrating Oracle Services for Microsoft Transaction Server (OraMTS).

Configuration is not required on the Windows computer if a Microsoft Transaction Server is installed on a computer.

To configure the Microsoft Transaction Server, perform the following tasks on the computer where the Oracle Database is installed:

  1. Run the oramtsadmin.sql script against the database to create the Microsoft Transaction Server administrative user account (the default username is mtssys).

  2. Schedule automatic transaction recovery.

    See "Scheduling Automatic Microsoft Transaction Server Transaction Recovery"

  3. If you have an Oracle Fail Safe configuration, modify the registry values before or after running the oramtsadmin.sql script.

    See "Modifying Registry Values for Oracle Fail Safe Configurations".

Microsoft Transaction Server Transaction Recovery Overview

Distributed transaction capabilities are required to use Microsoft Transaction Server with Oracle database. Microsoft Transaction Server-related Oracle transactions become in-doubt transactions when any of the following fail:

An Oracle MTS Recovery Service resolves in-doubt transactions on the computer that started the failed transaction.

Typically, an Oracle MTS Recovery Service is automatically created and started with Oracle Services For Microsoft Transaction Server. However, for Oracle Database releases 11.2.0.3 through 11.2.0.x, depending on the options you choose during the install, Oracle MTS Recovery Service may be created, but not started at the end of the installation. In this case, it must be started manually.

Only one Oracle MTS Recovery Service can be installed for each computer. A scheduled recovery job on each Microsoft Transaction Server-enabled database permits the Oracle MTS Recovery Service to resolve in-doubt transactions.

The Oracle MTS Recovery Service resolves an in-doubt Microsoft Transaction Server transaction in the following order:

  1. The DBMS recovery job detects an in-doubt MTS-related transaction.

  2. The DBMS recovery job extracts the recovery service's endpoint address from the XID of the in-doubt transaction and requests the recovery service for the outcome of the MTS/MS DTC transaction.

  3. The recovery service requests its MS DTC for transaction outcome.

  4. The recovery service reports transaction outcome to the DBMS job process.

  5. The DBMS recovery job commits or terminates the in-doubt transaction.

Scheduling Automatic Microsoft Transaction Server Transaction Recovery

OraMTS uses server-based recovery to resolve in-doubt transactions originated by MSDTC. To do this, the OraMTS administrator must be able to access the Windows middle-tier node through UTL_HTTP. oramtsadmin.sql grants execute privileges on UTL_HTTP to the OraMTS administrator, as shown in "Configuring Automatic Transaction Recovery"


Note:

Starting with Oracle version 11g, the DBA needs to create an access control list (ACL) as shown in "Creating an Access Control List (ACL)".

Configuring Automatic Transaction Recovery

Automatic transaction recovery is performed by scheduling a database job. A database job for in-doubt transactions must be scheduled for each database participating in Microsoft Transaction Server transactions.

Transaction recovery is configured by running the oramtsadmin.sql script, which triggers utl_oramts.sql and prvtoramts.plb scripts to create the PL/SQL package utl_oramts. The database view oramts_2pc_pending is also created to show in-doubt transactions related to Microsoft Transaction Server transactions.

The oramtsadmin.sql script:

Schedule automatic transaction recovery in the database by performing these tasks:

Creating and Scheduling Automatic Transaction Recovery

The oramtsadmin.sql script creates the Microsoft Transaction Server administrator user account with the default username mtssys. The Microsoft Transaction Server transaction recovery jobs run under the administrator user account.

The oramtsadmin.sql script runs the utl_oramts.sql script to grant the following privileges and roles to the administrator user account:

To create and schedule automatic transaction recovery:

  1. Ensure that you have SYSDBA privileges.

  2. Log on to the computer where the Oracle Database is installed.

  3. Start SQL*Plus:

    C:\> sqlplus /NOLOG 
    
  4. Connect to the database as SYSDBA:

    SQL> CONNECT / AS SYSDBA
    
  5. Run the oramtsadmin.sql script:

    SQL> @ORACLE_BASE\ORACLE_HOME\oramts\admin\oramtsadmin.sql;
    

    You are prompted for the Microsoft Transaction Server administrator username and password. You can accept the default username of mtssys and password of mtssys, or change them.

  6. If you did change the password in step 5, you can change it using this script:

    SQL> ALTER USER USERNAME IDENTIFIED BY new_password;
    

    To change the username after completing this task, drop the user, rerun the oramtsadmin.sql script, and specify a different username when prompted.

  7. Exit SQL*Plus:

    SQL> EXIT
    

A single PL/SQL package, utl_oramts, is created in the Microsoft Transaction Server administrator's schema. utl_oramts exposes these public procedures and creates this view:

oramts_2pc_pending View

The view oramts_2pc_pending is created by executing oramtsadmin.sql. oramts_2pc_pending shows in-doubt transactions in the database. This view consists of the following columns:

Formatid  This is the formatid of the global transaction in the database.

global_transaction_id  This is the transaction identifier of the Oracle global transaction corresponding to the Microsoft Transaction Server transaction. In fact, this is the globally unique identifier (GUID) of the Microsoft Transaction Server transaction.

branch_id This shows the branch identifier of the Oracle transaction. A single Microsoft Transaction Server transaction can have multiple Oracle global transactions. This depends on the number of Microsoft Transaction Server/COM+ components that span the same Microsoft Transaction Server transaction. All these transactions have the small global transaction identifier, but different branch identifiers.

local_tx_id A local Oracle transaction corresponds to each Microsoft Transaction Server transaction. This column shows the identifier corresponding to this local transaction.

state This shows the state of the transaction: pending, heuristically committed, heuristically terminated, and so on.

protocol This is the protocol that the transaction recovery job in the database uses to communicate with the Oracle MTS Recovery Service.

endpoint  This is the endpoint of the Windows computer on which the Microsoft Transaction Server transaction originated. For HTTP connections, this translates to a hostname and port number.

Viewing Microsoft Transaction Server In-Doubt Transactions

To view Microsoft Transaction Server–related in-doubt transactions in the database, use SQL*Plus to query the view oramts_2pc_pending:

  1. Start SQL*Plus with the Microsoft Transaction Server administrator user account:

    C:\> sqlplus mtsadmin_user/ mtsadmin_password
    
  2. Enter the following command:

    SQL> SELECT * FROM oramts_2pc_pending;
    

    This displays the computer on which the in-doubt transaction originated.

Modifying Registry Values for Oracle Fail Safe Configurations

In typical configurations, the MS DTC and Oracle MTS Recovery Service run on the same computer. This ensures that the required information for transaction recovery is available to the Oracle-Microsoft Transaction Server integration layer.

In configurations where the Microsoft Transaction Server application is part of a Windows cluster (for example, the application can fail over to another node or host in the cluster), the MS DTC runs as a cluster-wide resource. All cluster nodes use a single instance of the MS DTC running on any cluster node.

If you have an Oracle Fail Safe configuration, make sure the following registry information is replicated on all nodes in the cluster participating in Microsoft Transaction Server transactions:

To modify registry values for Oracle Fail Safe configurations:

  1. Go to the computer on which the MS DTC and Oracle MTS Recovery Service are installed.

  2. Start the registry from the command prompt:

    C:\> regedt32
    

    The Registry Editor window appears.

  3. Go to HKEY_LOCAL_MACHINE\Software\Oracle\OracleMTSRecoveryService.

  4. Copy the registry information appearing here to all nodes in the cluster.

  5. Reboot the computer on which you added the key.

PKE.qVlVPK3%@ OEBPS/toc.ncx 0 Oracle® Services for Microsoft Transaction Server Developer's Guide for Microsoft Windows, 11g Release 2 (11.2.0.3) Cover Table of Contents Oracle Services for Microsoft Transaction Server Developer's Guide, 11g Release 2 (11.2) for Microsoft Windows Preface What's New in Oracle Services for Microsoft Transaction Server Using Microsoft Transaction Server with Oracle Database Installing and Migrating Oracle Products Managing Recovery Scenarios Programming with Microsoft Transaction Server and an Oracle Database Tuning Microsoft Transaction Server Performance Troubleshooting Oracle Microsoft Transaction Server Glossary Index Copyright PKw PK3%@OEBPS/cover.htm Cover

Oracle Corporation

PKJPK3%@OEBPS/trouble.htm@- Troubleshooting Oracle Microsoft Transaction Server

6 Troubleshooting Oracle Microsoft Transaction Server

This chapter provides information on troubleshooting Oracle Microsoft Transaction Server.

This chapter contains these topics:

Tracking Oracle Services for Microsoft Transaction Server Performance

Trace files record information about Oracle Services for Microsoft Transaction Server performance. This information includes:

  • Any errors

  • Enlistment requests and outcomes

  • Prepare, commit, and terminate requests and their outcomes

Registry parameters handle tracing within oramts.dll, which performs the following tasks:

The MTS-based COM components can acquire connections to both dedicated and shared Oracle servers of a database. The components can then attempt to perform distributed updates, using data manipulation language, on another database using pre-existing database links between these databases. While the distributed updates from shared servers succeed, those from dedicated servers fail.

Registry parameters that handle tracing are automatically set in \\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEID during the installation of Oracle Services for Microsoft Transaction Server.

Restart all applications using Oracle Services for Microsoft Transaction Server. Further, if you have modified parameters related to the tracing of the OracleMTSRecoveryService, restart the Windows service.

Table 6-1 shows the range of ORAMTS_CP_TRACE_LEVEL trace values.


Note:

The Oracle MTS Recovery Service also generates trace file output in the ORACLE_BASE\ORACLE_HOME\oramts\trace directory.

Correcting Oracle Net Changes that Impact Connection Pooling

The connection pool provided by the OraMTS layer, oramts.dll, uses a connection's net service name to identify pooled connections for an application. If changes are made to the net service name, and pooled connections are available, the application using the connection pool must be stopped and restarted. These changes can include altering the host or the database system identifier (SID) for the net service name in the tnsnames.ora file.

These changes ensure that all currently pooled connections corresponding to the old net service name are destroyed and any new pooled connections use the changes made to the net service name. This includes any application hosting Microsoft Transaction Server components.

To empty connection pools, perform the following:

Designing an Application that Uses Multiple Databases

Oracle clients can establish connections to a database in two ways:

  • Typical Oracle clients establish connections to a database using a dedicated server configuration. In a dedicated server configuration, one client corresponds to one Oracle server process.

  • For scalability under heavy loads, Oracle clients have the option of using a shared server configuration. In a shared server configuration, a single Oracle server process can be shared by more than one client connection.

Microsoft Transaction Server communicates with the database through distributed transactions. In a dedicated server configuration, you cannot use distributed updates (data manipulation language statements across database links) from other databases. However, if the original connection to the database is established using shared server configurations, the distributed updates from other databases succeed.

To use data manipulation language statements in shared server configurations, set the following parameter in the tnsnames.ora file:

SERVER=dedicated

This forces the Oracle Net listener to provide a dedicated connection. Figure 6-1 shows this process.

Working with Different Types of Connection Pooling

Oracle Net Connection Pooling  Oracle Net connection pooling is a server-side feature that is implemented only if the Oracle Database is configured for shared server support. Oracle Net connection pooling enables you to minimize the number of physical network connections to a shared server. This is achieved by sharing a dispatcher's set of connections among multiple client processes.

Microsoft Transaction Server Connection Pooling Microsoft Transaction Server provides a resource pooling infrastructure that enables certain resources to be pooled, such as memory and database connections.

OCI Connection Pooling OCI connection pooling layer works with MTS resource pooling to provide pooled Oracle client/server sessions. The OCI connection pooling layer also caches Oracle Net connections to reduce client/server session setup time.

Working with In-Doubt Transactions

Oracle uses distributed transactions in the following configurations:

  • Distributed database configurations, such as distributed updates using database links

  • External transaction managers, such as Tuxedo and MS DTC, for coordinating transaction outcome

The two-phase commit protocol completes these transactions. During phase one, the transaction manager (TM) requests the various resource managers involved in the TM's transaction to prepare the underlying distributed transactions. In phase two, the TM determines whether it commits or terminates the transaction, and requests the resource managers to commit or terminate the underlying transaction. If a resource manager fails to receive the phase two notification, the underlying distributed transaction becomes in-doubt.

To integrate Oracle with Microsoft Transaction Server, distributed transactions are used in the database. Distributed transactions correspond to transactions coordinated by the MS DTC. A distributed transaction can become in-doubt when the transaction cannot commit or terminate (phase two of the two-phase commit). This occurs when the Microsoft Transaction Server application server process, database, or network fails.

Dropping the Microsoft Transaction Server Administrative User Account

The Microsoft Transaction Server administrative user account is created by running the oramtsadmin.sql script. If you later change the database with which Microsoft Transaction Server is coordinating transactions, you can drop the administrative user account schema from the previous database.

To drop the Microsoft Transaction Server administrative user account:

  1. Start SQL*Plus:

    c:\> sqlplus /NOLOG
    
  2. Connect to the database as SYSDBA:

    SQL> CONNECT / AS SYSDBA
    
  3. Enter the following command to drop administrative user account schema:

    SQL> DROP USER mtsadmin_username CASCADE;
    

    where mtsadmin_username is the Microsoft Transaction Server administrative user account (default is mtssys).


See Also:

See Chapter 3, "Managing Recovery Scenarios" for information on creating the Microsoft Transaction Server administrative user account for the new database

PK%$@@PK3%@OEBPS/img/ntmts012.gifF!GIF89alll666@@@999rrr ```000pppPPPᏏ???;;;Κvvv ˱***777ooo^^^(((:::dddggguuu,,,===___<<>>cccFFF... fffwww|||SSSLLLBBBYYYAAA !, H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cl88Pt`@̟/H ]ʴa&)M*M  JVG Am D08IUA  @RVsViM5xX0D0J&|* H}tW*ڳmO9 ,,ZiD*̀O<sk l킷Ru|N _+P@нWap|w.caV݉c7_9瀂wU] e|cM7Ma$N~CykaU bevۥUg%Є]_ \68 `uYq8B Ye<88 fP&g 8HE]h [OwY8jhPydbRݤy2Pe!= $Sbe]Jͨ#A٪T4AI"@+[6ȫf0N2+8M(N[pEqܩegxuD@羥)wH[5Wٺ&{pk[a Ik‵i~ ;|8\҄h@*qƙvr4[he9([ PB3,h!N*eBGӡe%9ьѢ?TÖeH'#iAP}z0T. [~'"|)A:)$IB"PщtFQR U9 G:U_z,F۾2@դrDfS%Ia8T*"j/wрuIOp(c.F1yE|WveQeqdK_}6tɀ䓷% ț>E&!mDB%lD8%bjc s})UToZVgJij3l^ymdt8F)P"֥ߍp!Rĥ=]*,w kXu&I܍h:ژl_ߜ'y/|7D!}~RyECq^֜8nXE 6ջ0LJLik#0DJaL_rC6Nd~x XY;X6x6> !N7e Oز~J&7t*<. evp\! ȴ7N{Ӡu@-ngΪXޝSZ gݸ:z隕:7Mbw m"0i -arf' Wl,f9shz6~"IC٭ZL@QяNѬY)vnhC1Ox| naϸƅ;|d ȩ,Wr3")Q266Qp7“u1ͤ}"j?XtA#Բ,`Yɇ(8b(Q(1rXe_s[4M@Of@?O pt= mn<ڔ+3XuG"qο~1a83thxDGt޷E,ska aj%QGW7[=*qA`2rȋiL~WA>w5^B#5QtqX!r4bgR%bpv FQ^AY!a[ђ`J{ws{/*^S]w8Ie$q懖am:.AXJ%'u SetEtj5tGaT% #q0 E{hfRWm#cWmV(KsT~ZY{p.=!{UF<&5*ie- H ^>85rc%f5fR`2aSzeAAٛiB챈X1p¸d)Yw&Q()FYkF5%iZvasͩs X/=6ĩ$T .–HRe|12֒?YW{cvh.1}!9k ZnI]pzDZFzHBU=,5w09 (5 Umf`6$'$kJr:g?s*؁$iAfvqSѧqQbzDIdi0ZzjR5<e=5.z&.B0A$(!*Y3z@ sHp q3AǓ!rikA)*enݺ@:Zh WR' D @jS㴬zJ ۰ *Ю70~rJ H*"; +KB ? J˯02;4[*p;"<۳>c K`H0k*P?DXZ\۵X[jњ,R;d4JJ^l'er?V{2|۷t܊;%᷆ KE$sgM;[{[{NkKg[{ S),G;}D;#>N)kc ;%ʱ:ۻOBM-˼RJb֛{jDQ["1{p+л#\ۭZ*6!Q"{n )[ !B AA<O;"@& .U 2e\8@+!M2,+4A$-L$Gl*mdZVMrap\ŔAOmLrDg]M ȧq~P]ֶ1 $؞," LٝaTDmжڪͶ?}Jڰۨ8]=4DF,&)Wpmŝ2J0Y߂A|VK~Q}NꍵQ c Y3,K,2L ץ2M=# ~= N ^"<~߷!qQ۽2&M@0>]#21xY$!9n0C<R4$r^;DNJ-+Nw1#~媢V\n,`~SBi>>*N)Rr3BρqQƂn+?r>⑞qBd>^n^">,I>bn̂n,(Fw^r^M>씨@^ѾN8„ퟮߞ.7d![~lDR>.6~ 4 4/l~a o)2r0>-O/$_&;=+9A3O!O+-$t퍅t-Io*.?g#M12鲛_?g1,k/*h_nq7>z.*LO=Bo?懏 'g>#(a98L_&*QX_?akY_>I.s"5tQyK s!?EPb؟ڏ_t "C_ڟ/Z/\cEpL0$XHא MXE5nG3LP"H0`L )"ٓ>% R 2S.xCEnu & #Y1i`W@Υ[xi֯bl3aEL` % *{ٳ\m` fzAE 5[cI̮]i$V hݜxN}wī'\ՃD`@SX("N[o]Ĭ|Ɂ pA/c5 KqXR@B'rO k(Z@"BĐhH@ L gjq1>-)`#{%," $.M.ʢ Ja0[F2ӑ !KK',?ӷ Г<&!c[qAdz?Xq ňMA9Oq81(Edς$SMCYlƺ$U"X'Q9&Ͷ#XӰ3[7U$~e/-IVKq|m[2 \u\8 [6}*UZ,W\z 3)Ag$ H1" =Xlf#`G݃  n Œ7xv(!8=X E BcM>0\"PY!D b@L`FhA` H5qXVi:9mPZ !Bi[ADl9B/K*{@1XDH|'!%LQY8ܮ-jH GJ?kmYܵ3rHä(n ʼn6'ʓjb]ڙL nأ{ ƙ9ǫwTrx/0A~~@e ZH@n_Ny/x DVlcv)" !HCML@` yD(FQSw-hA@EsBIhF0JPC+H!pD`X<'I B`+(A# 4̰Ke838'(\@88"1x8IPR$e)MyJT`[ B-rqC 0(@0!-@L@R=0 X QtDx<΁= [(A`-a` җ0P8Lɂgt4?q VǕ˃e8IK[b`6.H6`fS5(S@B I7p0D-zQnTAHIZғ3f&ɀ<EE3#E1Qz"%IQLhvabjiQsq:Hr>Pg T5HE)>T.@AP&K[B\W3ю~ԨeMjJӺOV{m)(׏N{JѾb HkV $@ (8.JNβXCkٮH LFsfLZviSMYr~,H]g.u'cT`G"VYVox՚Z M@z="ۻ3n[Tװl*q @P"T-s3b ֬D!U Vx3>*P+bʷA}S j Zk=dqҺ[.*dbFv)k,19#N- ҷ(>*WX~r5f߸:f,{يF%Yb 7眎XʹP\z fdtf8n.ig@M՛OmA2KѼ|g;!>r"` g?8Nߴ\mzv5kn'@] @ M.v E?icoS0x]E`7FP]>  v{[LLYf_X BܹH2'$T'UF"qpinԕ'.Fqt/v7q-]mqj+Wq!͔w[pmA$uQd?s5=$L?80_"H=_;4IC0LDjp - C@ :=|D npE )C-0% Oo'8P,@*Ya0>5cBa 2W0?ʳ% Ⴈ:.?5q/`@۵H<_K3ZOA 8 "؂%H#qp '0 \8%h%ȀC0㣈[TЫj q1 >DH#"3[0,X[,M)<.H?4)HK$l;(0,м<3= 샭bfh؂<Ep ,A%&P6 ]ABq]ؑB!`Lq8XqYWB%9 q,/ɅN0=5Į3?c:.** NJ( +  KJkeT͢܂Q8?8Dq:(PR|)]TTqAWE1(eD_ĂT(kqQ9-d-؃x4ǤGG`ӄ1"JbqP,M<NA .\O!)aE, 'U0 "0)BlJ3P1@rL4(NJÜD@s5X3 lJ8rRB) 7`H3>90VѐV|KK!pJ(R['h87g=2@eJ`!12mKwN/d[+ QXp(Թ67U8;1mC8-CO%ЁB{"h0i-5.r7zPyKzQ`U `hC )&V;8DJDS?q86PidlP,B:iUS6l(+VYVZAq9(W5 xV_Wz}Iq 9efGt+X3p!pxY4@jM $9`'Xx.5)_8g"K"V\5Z k08]EWpq؆DbA&\*H--?YR( '2 (9*O0+WbYG|VCPGxqn)Y"(假'@HiX(Uqi qHDQX1H\s;I[z0X:L$"$1ۆ8Єoq@ ``P%m܀ف%\-qO``9*@Q@EM " 6Jj ( Ȅ q`p LV ]?߸*]qMp*lJqH#,Ђ OXNXUBXl.YJl x#nh*cqU*̽_UMJf dLP  I HF=APP,p.)EqPXf[9X>WXBa1H&F|$>@;|;@(8G 8f.h+,];GJhe#4qp4&UWX^mg0Br /% ae^xKageT0C.Hq& u8@]d(6`,P ZqG(z+&eg5 0q:#)9 "Q xHg0I*HHxVc ;6GpBR$H-M^q=Wp_qMc% O.m>mNm^mnmƘTjCY2l* [Aj37ȄeaBL<cO1sm'[`;=|aPW pXo@azoooooR4`kձ{UN#2ŰCctuE ;fYrYA !h.ppqW,ga8H95;o59p-C Pp趻(ym'a9Dp 'q%_r&or7q|C\76RVXXeKD(&,+#V w1 @p's:H8ȏpsyMO"d pЁx1_ z'}x3mwgpOoK$FGzldWfHA.y7p״ҏrqGx$#;@‹'DbŊ!4  1bA1c :ըE 6la !2…Q%JRֈ1ǸJ2mqRN-*֬Zr}@b DxbÇ'QcG6B#yʖ&^ʜi' =}f &NQ'2n1q $iB B BH"F=I$J,]”IoΝ=RB 1>D*pz/q>`6ZlRB.].Sߛ9wpK0o>dqu(`NÈ+^̸G!TI)wO"85pZe! B\~Mu؍wz^M !`Q@[=xr$Ǚ~' ݵ6S  (,0LA fW &)O(Q"H١֢K/F:t  2 ` :Jȩ(t1Pxr~| iѦTtv!%Ѯttl+EjRtTDi4Rt&iBm|8L{z s?FWJԢT)SԨ̩lLIJՆYuXVڮ XEV*uhM:ŶZpe\ըlʫ :Ѿ5L-`JLB9| d'kqLͬf]6 m,QzEmqFl;G[vmvkhkJ2O.2'@Oq8 =Өγzڵ;uEug ^t15PK C |˚\3Coo+{6bg=̡73dR彫210aE'=a L3ɬh٥B,9 JPk&~3-AЄg(,Ў~4oȵ4@±pӞ4C-QQB8@@&J-YNM e鹄@8>6e@8aV `6d1zM_>7`Kծ&@-4ඐ} lsϻ^wnǷliXnR8pW| 8%.p{:~"w7[+d r<9ǹH|;_iŋoY$}t&=f:Tn}[]Siջn/ ЀNC\;Ih3Դv=aΦ:yd揁: 0$08)(DZx|>+{#m8Do4VNr@J}SN_EJ=0Ji‹q P<A&@|ʾ=cBH[GA390@/_ _2?It^;!!H[`S0>p`^-TWC-9$_"9%E^|hId3Uߑ N&)}91>߭= 9݅@  T`h!= Ҟ Ba`c8 31՞S^RdU, 6c&dFdN&e:f4ZU&gvgFf &a*bd0 Ekf%ׇhcPk&o5]Yn2*eA%r$ZfCjn2 -ArvrMf֝RءTn5!y-@'NEA(%88梜4|8u. Y~C&Y&D@NAE@V^hVcV7%(4ڗe .':BaIy.?>8c (g^f)Xl{ lSE+N9lB,{U }ir`@ 2KbG%]^1 ,V?>+iŊƚ_"Rdڭ٘5iȂj!V4Rpo Q!aV/ adi /q(,2q R<0@S,2q8| `d*EGF%-S\ g/8 %"WL<T,V@1,qqxdX!*,r?j 1%d0a2pfB~)NI2nTYLSyE6!#/"> Ρ2|P52KS1dH,T.Iɀ%8`g1El& $x[77"U[ 4AA4B'BtIqVqM6;ae6BwG4BZ#bJ&6U(6nMGx:M'H4%"XHr}1$tPSP4B,^5VgVo5WwW_*eP8ZZ5[ Qtյ]5^^?H5[6a8Lu>3^/6c7]ceYߴ8@eWe_6fg6@\5 :6hh}_5f6kSagbwh6mLaJumCggK6pw`S47b*-7s7.pL(EMuCgw*tAuw7xx7yv@MgufrUOGQ7`׷\v,}7QV4C+%L+Tz#q6o 7:?߳7}Si9Y3֗yv7CڙVUSU_iKK:8y9[TO:~TWO:>ח[9_9էGyOӨoyթ3y7Ӫ[yoիy#ӬGySm:u:czBgZGխ yӮ3y3ղxҳyմxҵ y @7;d9չZ;{{O;ٰԻ{I:Զxҷ8TRT£RT_t]|@;\8@ɯ@#TC+u{oH<&U< [Ϗ8y};>H['#[TROT R7PoT>_>si}>G~C+TQw8Y6u8mi@`D)`ہDg8NS~8q?}q 4xaB 6t0q(VxcF9Z#A D#I4yXtfL3iPeN;OhЙ 4ziR*6uZRSK|zk8Tv:iVB~5X4u%ֵ{o^{ڍn`6|xo768rdɓ)W|3后9Tthјt6}ujիYvvlٳi׶}wn0ctI6Ёq l9aq<3.0w .%4 {z .,` Bq7;"@h[@s`+7&I@缁2 P!ę㎁`R[`EH<AKQ+Flx@q|=ʐo  ;JI,(A$Ҕq0q$x`?!|A); $! `һ=Uss#TN 7ZGq<= ,4@$s.$o H Ȑq>Hj;ȀQ834A `YH'@Em5pP ᫎ #ǁ XR\n3i73eBz;C]BR;o} %&b @?x WicSX\=hXemgTs-~ZW^R.: K4 d R2XQY;PK75AFFPK3%@OEBPS/img/ntmts011.gifTGIF89a???@@@lll666///___rrrߟϏooo999OOO ```ppp000PPP333ذ벲ȱ---;;;888ッŽsssyyyJJJUUUgggmmm '''DDD>>>[[[aaa~~~!!!}}}vvv777wwwGGG,,, ***)))QQQ...444kkk+++(((zzzCCC:::===555nnn###222{{{<<<^^^111þ|||ǤjjjHHHiiiuuuSSSɆXXX TTTKKK ccceeeFFFLLLRRRBBBtttYYYxxx]]]qqqEEEbbbZZZdddfff\\\%%%VVVAAANNNIII MMMhhh&&&"""WWW!, Hp *\ȰÇ#2dQŋ3Z!G&(fIɓ(S\ɲ˗0c¤a͛8sɳϟ@q+ sG *]ʴӧP:gիXjʵkLz8tE ]˶۷p㾥wݻxݛ,_epÈǐ#[+j༃D-Oe\EV8Ptװc.HyvKzr>q7}aNK*:XN=}FK!\pi(;kK.A $ށOԶT['<[Zu 0P]\EbLFml_pAFRo,Fi@O}xjep@BU\ "@LhVXX$(AH\z & Rh!r!"h"*"2hcг{c@`פI=3B姠Ʀ@,P  @O@Q0@'jʪJ@^d (ho*^~%-5ƬiAJj,T]66@ UJA,il=p@Ppf U1kL9|di6fFHکm j.j񘯧= P\*v IA=L=:LMAH4ARSm@Xk͵ \Ѳj>N+uf'{~맸ƹ;Pdڣ>GD]I3X+Q0&A |9@R 9@ dET:%;k)Y-޹.8) Gc// @>A4ZZ_U>/?XoNjW3=/gBt#UoRfN 4ɿ"@V 5D@~aH>C oʍ6;2eK׼%1MT $tRHFj' J~Z'Cp ,X]=FQky@!Me{#< y6;d2Z;@2+]#XqJɶn~sm@,4 T1R2I3JPESit3L:"ҀDb#&J|O|Sd ̿DJ %y@b&ё L'IHj .!@ YE.RBiE,PHPR(C+`q 4!eFqHZ+TS=HL1fcUT'AZҘSZ=JUSl216qhв89i^\O^A%ګL_U-aETc_JQ~lHc4IAjXםINhD\k@hqE =6rMz ]]]C ´4+A8G!{q\{DzGнv`c D@"{ q\3Y+(> ٘Zԟ̼M%.ʸeA}HsIHV3a.j @ *[YW$ 1{bv$di å[cSGbU>a<<$/Y_d,a.G bڶh[^@R0U7[XLq :ZGӎ^F,|u%EBąl[B>\u[i}^ZѫXVV|SkL\Q2%@r׆TI+_Lu7{K >{Z >_J'-77,+Fx>|&9`P>_^8љܷʼΗNej ZBF[7&^sܫ6}~33X `VwЧ[Xxb.dO'7MMX>cQLnRBL`/XX;s]U]/$&PjKip~[a~r7&(mgPRF+vI3C30?VG$4T*]a +vz]e ;{2'{!l 's}I6Vz:]m7?>kk  ]yqx547JX~[rebUp(\}fT@c5t+G|ksm m0,X5PB1}[!t>8Xxh0Z\{kg `y/0c*!8!c"oV1uv*)${e1䈈xtWq` 8'>#@9Yyb舏*Ȏd!XK4[Đ ɈsYҎ\q0$Y&y(*ꨑ_ !@ p8:<ٓ>$ F.0)CDNHJLٔNPõ XIQ"CIif9dYfQeYnpr9tu_EY9YyiUbapjQPQH^&ؗٙ PkÐBOӒ{IYy]q~U@Yʹٜٜ, ڹٝɝY=)ttttI}0$)yv" aɟY0a0{sj)IN_^*ܗ jx s3Иolh&hj 00*zv,q5ٛU}na ` 0:BGNPP o@*@ 7:JsL*oEH 0@NT7:.ץv7:aKz&YH~ y hwgp*kZz6ZzJ]ghᨫzZj:ګ*kĊdZZǚ Uڬ:PzIZBךZqڭL/Zsߚ9ڮ**Z/뚯 گk+R[ {x۰{r+q[ K۱ $;$ &{*,۲0 2; [68< >BD[Y(3pE`$N\UE *W40P"@)&Q#)a"COUbKf˫@$P#)4A$!p o)qA)Br#P8sU]T&1\S*\{*E$P~{[׺|(cYkNQ$#{)&m1Br!0A/[454A#kKы>e[kk0{$;[H[G2t/3N׶q/#.chdEm{<dkp) Fõeq)" a{) pjzw;7hTg3yXq5yK jbV3%G"PT\U`h:eŀ{4xM\5TA P $oô;T$<6vq_<J$+=Q< )<#g\fLWʌKl$RRm \dKG3CCN'g&@W<8Ǯ{K{WKFR\<Y´%Rlȶ)Kܶ܏ZdRʢX9?AyK<] y]}k|" FЋ97v)ʋ7b|C@k;n08E& !B@مC^q:R*2v9so85zrnIDȥ\Ra-d( m PJc+85J*mTS7A7)PS 06sh>j^ 4t*ٶ6x|g6@%N}v+B1fNCEheB+4z^6^x^P.nB;MBna0n6# &64NsHQS}'7Cg_aˎ|#k^>m4R.C"HčxS* 2+] 25xN+%064|{NC)ό 03)D#h$AQ/N0Jp؍=CAU +@?"h;N,xy C@>Cr,/:hNYʹO2J$DnJPkڧkvot;~0 C,o`YslJ%2vz5y+*O1~CT~uȌbod9ݿވk3&#hg+Z_Hx7mgD 7< .dp!=%NXѢD $!^zhH` e)pSI .UA ,&)`=C;[!Qz>j'PPYjq=\),mT [ #i7={9]/fX! "V<`A-w`a:8<@/v B= X׼if۹nuwH,cCjWuB:f.sATkH1MT G\SBWoZz8K5ꀕYٻD9xg(c룏oAp+B 8)" ^K2@#@͡HDXӀ )`.ݎͷ^Ts.z2`k(0l,:(!T(Ap˫{#pz'Љf돬WRK>ޢ$Tb %ͤM X+:̞ 04xkz# dIPC/jD2Vth6 t6x3H(qD%e{@)bID& BHRd%8W'I' 28P: pJ58P?£ " )LEWÝ( "Hp ; { /> iKn=TdաE[/f "O:5?H`s) -IfZ6mWl$R ` *^Sh<4`6[Fn$8o 2 .&@ki\p8wX|?) ʴȶzv-!TQ—]J! S`R@b)+] _û~30ʩ}vOc7=79Nj}(zYQ| ^ )@/RSUk`o bHIGJ pB^d[H= L1B63VC1C$B$qZ("i JYV kX k1 F`PlB!rqVTc%#Ån $/6^4kAm-MdX9DҒLڃ~?RZ $ز(1fأ(KGW2'vR+ e(JAIlhLLF0AW Pb$Đ"")i.%obM  Ae)̊|ɘ@2(!|w`I |\ %>8pRP4 D^(X+EQL4,'Sc$ A'=H҉LiMm'ۣ` gYzZ+0P"NXiMXĔ:J*4ig*"Ӆ\k-@*VUsk]zW浮9* + O88}?UК#^~q1AO_=+NQ'*F$5Ɣ@9emk]ZV]g(cjϧ\)kV"[$Ƥtt&ofӎvmp[&w}nt[fw]aH}5ÓfEMMo\'x&v!R!4fڶ}q8/qqwρ8i*ۻ.~Hf1)o%;OK#:in['ͨ/i+MDA%uZ'ݳIoHUm!wD_U3(C ~:>=QҎ!3۹wI2=C^4(< .o&F I6}~d@?GWC '$eEB!WD4D2}y7hyj]84?at%xԏV}!琇)ߛ6" 9[- Ɇ?c_~?(wtP 2戀W\ @Q鋞  LzPQē l <"$b8 IY$'!I/m&Q G$>o>BƢKRaFK#DP [xNjGH, ɰ< ҽ6kiٯ+&#bJԌI d2ʆPL=̬=nsUjCzL;j{8K|"HKM%8Ndr<6ElŠN"C`b Xc  ,OL XP XĝX|0HK`<]5}}N%BP b@7bYN,TN5 `z8W, e+-])eHm#=Ue0RiGS r&͠'}()U*ŝ+O=LN-I$4MD3ӄX+ҨS; @+Ok zSvS:+|ՈНLӈ8>BR6mʐkUo GpkAWmUfbnYURYIo+pq[M] [OD[@U="SuEHV658jVkVllE;Q)-=z0= RgQ=5`W\ 9`7zW{W|W}W~</z}Wup iVO5>tQLcVCmQPFUQ,z YxڢTQ:XXN,\ Ң?z?B=l1UXXY}--E`YK\ Pz0w"ڣZJڥUYrÖPZ Z<=<9tJeչ ZZTTۚۧ}[[ ۽%LTHLXp\ƨ[#ڵ]\U8> ?)+e 5QA\ R I {ojݮzň]sb=]ݽ x¢( B6[֍[ 3ޕ]]0`ؘW[u%*-[ƀm ZxR\SmLŰ_͸5`^r^^ ]7=HMZ`4߈G]wNu)Tf (T>dӅLaQam .Đ3 pJ;*ʵa\ܔ vc;Vv;!ʳtT b'y ))*^-a`9s ݳ0jB~|IwZdkd̰IvTK$i4&"Eev"e\ ҁ[e7 f bLつfdi2j!ʈJ[m AބCi=S" j&=[}?{FU huc +cLޮEVOq#,92 O$>zXЄ@e eh }pܝ=)5W5ϡ6х<q%5Ri!84us@ߐАib#w G67qP'4;Q:!@W i^4witF_.gIO:_9rMQ^u_u`va_ϳ1\ Эpq5XGP']OV[wNv\Vs"cwZƺY`ywunrf( Y4ڡ;g<4u]3PWf؎}Dy7){z#l ^' ]?>VRVrw'So. pk7_U3ˤ"BYLI ߴvwN Vۣ.KzWuVtz}_٬z36"61/\.Gc iW$F [ơ..\W4ww}__g1G:ɗ 9Dz|~ЧS7板Z (> @veQ_Pˇ9cn+z~_G`}ha|q@0`Bz ($X 0!F8/#Ȑ"G,Y*Wl%̘2gX@&͜9)LJ(-j%93G&RXH06`2@`C 4$  0P`rǏU.pĊW6P_FlyrRzK6 Tâ ` [8Doz $pPw]rʗgw9oF'9;}FDž WKb>PB_BXW]ڲApD]xQp@WyHAy]vah!G``hIP Оn%ACPn'o9q#"砉J$s"ZazTBTH$^II h @~ D E0_ Hpb$ ͉FhT wOjZݢF%adhbZR%郍V'A R饥NuHV]:کU٪ѪwKج6 t9묀I;*+RfdfHx{F*&5&.U{-ni:F@#;y)l'm[/a/t y[r+qHM Hb :Tɦ8,AR \$M\DEPEo #\U D;qu;+yL[Fek@  `ee#lB)@OH/9 1[:[]=%w>Y<~ɲx0A 9A@_=4/>D{aI_nWVuk_дŋt|V*[ĽJ7-j Yӛa?ow݊W?/n+,!!ZqA4Iǁ#Qpǁh0v-yG~d 7s|[2MV YaV9dt)e `G6v&O8J"ݓRx|OBok;=>a=|@^q xs񊷺Cx~!z~uQ31/=5oaUNV˯:ӣ^_>5l? $7_h_ ׯ@k䵫!fr;n!^ʯG;.@I䟐y@=@ՃZ_PWn|A`Fh A4 pD_nK U=T@xD]:  A@` ~Q z ZC nD bj`@& 8O v@ݠMՃ ,[@d :!ڡ!>a NUH"ʗ"KE`=a:D h߱ 8+V,,ZE- *2/_acA!FlFe@Rb5ڱS6J6ļ} $a8a <`ڡ\\n3 ߽Bx+5~ݟ`QZ -[ &.FC\#2@d; cd }Hn.-PޔydA R&:5%yH@e@]>Zeoh'OJ`=\\I6JAAdY&YOS@CsDbdԑ@9&PO_E6 &Y]4 %2#F dH A\@fck::n`]@bfr_>1-"!,=@~..bDlFll&no&&EE^C%#A1@@9B'Q'ON!"fw*gJ6Bq: :n&j" L$LJ'/6~j:#xgWx^M667B8."V\z0Ng?(()b VN@,h=g{( c=(AT'(A@Z a<))Ʃ)֩)橞)$i0$pdB&)d]@$@ri~0nh^t**@5%`OZ@[b"m!O$L d[0kJ .+6>럱@5eS)@n+vʙapD4++ƫ++櫾++V(+$Z*,%zgbV,t{b],ǎÅ^Y)C(~!&VEn8,ܸNM,ђB&|-mx:HRmeaT\M-CΆHa@˚nкmjXngݚD/RGؼml߂ .M& .|ͤVe%%V^.fnD]`T@kF.a쑦nyR!d>`VE.˒1 &@L"ACX12_®!&dJ-{*^dVj*/>F4C̮9Z@"z!*{RlF@~n >l2t߂/*gڅ@ڥ p!fNpNW_./N!Eą DhnHv PЗ\ظs.*Z " s0a@舛Ԝ,DC (_ѵ{|- 1v^jD_H\ $hN1CŇ\1T \͜0@ĈB4UupoUDCm4Վ#0yN^aR%3%ciCeQ{ B,.s@<\ߵK,,fh|DHh'B 72FF D6S23%#-RztmȜx1n3?G2F`kkitDz;;H\1=0zV 6,oEüGz9P=8W{34sy  *fFnՊ,‘)<5 ur6;`X3JQu%V?z5Ɂ&$"DY{oZ Hn LYuHp5AH@ϴTѠðԉJcaLItβ`WasRͰ ~(PPU>gMk\q5fGGgT[<2I_ބcv vm3mdċhCH8#J7+w2ws+s{ G?3SB  :/=*sA]kvx7Tׅ!r =,\DC'oEl5~hvQ?N 83^ׂTxkV=TGm_I|LG4T8<l׳ĄLuŁD%6u-6쐣u+P 3zG`Ǹt1h+r9Pslhl.9b9VBc@S\YmYOj =Xk`ڸxZxqAMO1ߡy8{zߖVv^yC+:]O,=||@H$/;8l~(:lEilIYH-A,p4;@T嵚ic9+CǸjX@݄;G<Aձ{V0:= m#ğ<7TMi|H uH<ஓB<-̃c! _҃'/>7'>$=}_;[|>臾>闾_C Ǿ>׾>׾"==`CߪK @BT_?go?wGx9UG<p}+{CB!A|@8 4x@'JͫbD)VxcF땘dH#I4yeʔYt,QygyhҋC5jC+?6uѣNS|zkֈ3l5'>V$@/Qk Bas^ oޜuIӫ^"Œ{vϏ#~)W,qe͛r <t(гq?ۥ$ !γi7@/Dmݻ%z[4e"> -wtG1f߿?pn(P%I}(H13+4FD8yS`\cOF%ӉnpH  LPYa"VCUA|!ւ|<ٛ0-Kg9tje`AWGaQ8&u^\^R5؋ExYGNi` ajeXP p b0 h!h$,^yO~Viv m`i} .褗n騧ꬷd;\Y䊶<@mf<.In6{oViGjZk:ey1ӂ|ܾ~`w4|ίgGhN=ppٽ^v%G3 yyZF['ûVmwWD>&zH_Nh,0+Iݞ?o ;m[{8ɀ'WP1 iXCƲEgJ7 V~h?`( sB*J+E/~aE?tVC7]pz A1Nl,XELbYHCT"Hk[+XD R~f='c +dERֆ+CXJW,iJ;jG:]R`w))dJfr+U:|9@42Y} !8jPt\b'C@x&~9p&T, 2i,"DIl4؃%G?t&js'A <`OӣOt Nj<<`uhIJ2SFT"uыC5:ƉPBp`$z8 NQ`_! Hʗ<"A<>+n >:h| ԈUt`|@.8Pꠇq Y#,PU >DEUM,BOY)CV^xjW.U-[c| ;wk;An XX[Xz +BQz(葇Np'κ=D/oVu@f8p:"˥s G~A U"8EӻUD%SXb1i\c9;߫O瀉6nw`*  27@aVu=M <$E\f3dQ>} MsP>28pA9<9UGh W8-/6@L2(|\@s9iOKu25`2#q ]6OtV('`:Xh Q\osď)/a@ i4 ^`܎ * ,!(8a B  |,P $4'8Z!H#O]`3  ` P7"$0&f (@   E  V@nShA*!DdJL(`@ (j4X๎aA~ 2pP >!ƀ`o T-+XJj1iꎤS<aa  ~`br$A f`` @ j@ l 2@!%LT$b %SR%숮(0i`J'l%Uj(eZ2SjT&7F.a'+N2(),R,ǒ,(}Y^MNΒn&= p+3ni+)&0S00'2Ҳ֒)g2ޮɢ(p 3aB+`4CS4G4Ks&d҈h2l2*_#` ^ 3sSH3>8S88383&.2e^t;3b3{;) F) R66n~@=b;S>Q;u&<ũ9_1s3'U`, ޓ@7AYR5%59Y?q# Z@34>C^5c3Br6 C tC;Csn5GBNB2=aEEaAe+D@9CAm-$Shov H@F*(GAْ<26=Qteځ`h KsH;*VsLDqDt2%v b NsN7)* \Ar<6!sB ;QQ52?I4JW48r@U7EuTT)L-u?sD `:5JWsuKwU>{*XR0`RFMlAY+UZC+LMbaU<4:#&M V57u]S7a9( P^SF!~c DVQ5a9^@G H4g fa`_y `ERhi; j l FB`h m aV2J \P"\!Xs s ,V`k~wb`]WCqUr7#dj, '.` vMl v+HeWz] jyW>wvz{p{{|QIv×Ʒ|W;}}CwzWzUV}W}Iuwܷ 8:}׀X3x=#2~+dW3xWV?8K"}I؄KWW)؂gx0o'Zx{_#Xg{xqX 8SxX'+w/:vX{C؈x}Xn7X?ٸXX֎y Xa y ICX3y8+<`&)G(=AQ I[^9e]o?Y`yg`ǎalٙYi>y#By<F ^Bcٟʇ>C90ٮk9A@C :,Bd}s,F .H`:Pz -蚸`LD`f* &Kf` G8gM{S:{XU݀A.)ux:&{X>@ƤwۢMr,t{纫 f>";D#²\/;PKUTPK3%@OEBPS/using.htm-K Using Microsoft Transaction Server with Oracle Database

1 Using Microsoft Transaction Server with Oracle Database

This chapter describes Microsoft Transaction Server and Oracle Database integration.

This chapter contains these topics:

Microsoft Transaction Server Overview

Microsoft Transaction Server is a proprietary component object model (COM) transaction processing system that runs on an Internet or network server. Microsoft Transaction Server deploys and manages application and database transaction requests on behalf of a client computer. Microsoft Transaction Server provides:

Microsoft Transaction Server is a component of the three-tiered, server-centric architecture model. This model lets you separate the presentation, business logic, and data elements of applications onto different computers connected in a network. Microsoft Transaction Server functionality is also implemented in COM+ and Enterprise Services. Oracle Services for Microsoft Transaction Server, or OraMTS, support Microsoft Transaction Server, COM+, and Enterprise Services.


See Also:

Microsoft documentation for additional information about Microsoft Transaction Server

Microsoft Transaction Server and Oracle Integration Overview

Without any special integration, you can deploy applications that were created using Win32, Win64, COM, or Microsoft .NET with a Microsoft Transaction Server that connects to an Oracle Database. To use either of the following features, however, you must install Oracle Services for Microsoft Transaction Server (OraMTS):

After you have installed Oracle Services for Microsoft Transaction Server, an Oracle MTS Recovery Service is also automatically installed on the same computer. The Oracle MTS Recovery Service helps in the recovery of in-doubt transactions left in Oracle Database instances that originated from this computer. On each connected database:

This enables the database to participate in Microsoft Transaction Server-started transactions.

Create the COM component with any of the following Oracle products:

Getting Started with Microsoft Transaction Server and Oracle

You are now ready to use Microsoft Transaction Server with a database. To get started quickly, follow these steps:

  1. Install the Oracle and Microsoft products required for Microsoft Transaction Server and database integration.

    See Chapter 2, "Installing and Migrating Oracle Products".

  2. Create the Microsoft Transaction Server administrator user account.

    See Chapter 3, "Managing Recovery Scenarios".

  3. Schedule a Microsoft Transaction Server transaction recovery job.

    See Chapter 3, "Managing Recovery Scenarios".

  4. Create Microsoft Transaction Server-hosted applications.

    See Chapter 4, "Programming with Microsoft Transaction Server and an Oracle Database" for instructions on using OCI, OO4O, Oracle ODBC Driver, or Oracle Provider for OLE DB with COM-based applications.

  5. Learn about using Microsoft Transaction Server on the different Windows operating systems.

PK:--PK3%@OEBPS/title.htmn Oracle Services for Microsoft Transaction Server Developer's Guide, 11g Release 2 (11.2) for Microsoft Windows

Oracle® Services for Microsoft Transaction Server

Developer's Guide

11g Release 2 (11.2) for Microsoft Windows

E26104-01

October 2011


Oracle Services for Microsoft Transaction Server Developer's Guide, 11g Release 2 (11.2) for Microsoft Windows

E26104-01

Copyright © 1996, 2011, Oracle and/or its affiliates. All rights reserved.

Contributing Authors: Janis Greenberg, Patricia Huey, Mark Kennedy, Roza Leyderman, Janelle Simmons

Contributors:  Alex Keh, Valarie Moore, Vivek Raja, Eric Wang, Yong Hu

This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.

The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.

If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable:

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle USA, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

This software or hardware is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications.

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

This software and documentation may provide access to or information on content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services.

PK1%*snPK3%@OEBPS/preface.htm/ Preface

Preface

This manual explains how to install, configure, use, and administer Oracle Services for Microsoft Transaction Server that apply to operating systems. It covers the features of Oracle Database software that apply to the Windows 2000, Windows XP, and Windows Server 2003 operating systems.

This preface contains these topics:

Audience

This guide is intended for anyone who performs the following tasks:

Documentation Accessibility

For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program website at http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc.

Access to Oracle Support

Oracle customers have access to electronic support through My Oracle Support. For information, visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info or visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs if you are hearing impaired.

Related Documents

For more information, see these Oracle resources:

For information about Oracle error messages, see Oracle Database Error Messages. Oracle error message documentation is available only in HTML. If you only have access to the Oracle Documentation CD, you can browse the error messages by range. Once you find the specific range, use your browser's "find in page" feature to locate the specific message. When connected to the Internet, you can search for a specific error message using the error message search feature of the Oracle online documentation.

Many of the examples in this book use the sample schemas of the seed database, which is installed by default when you install Oracle. Refer to Oracle Database Sample Schemas for information on how these schemas were created and how you can use them yourself.

To download free release notes, installation documentation, white papers, or other collateral, please visit the Oracle Technology Network (OTN). You must register online before using OTN; registration is free and can be done at

http://www.oracle.com/technology/membership/

If you already have a username and password for OTN, then you can go directly to the documentation section of the OTN Web site at

http://www.oracle.com/technology/documentation/

Conventions

The following text conventions are used in this document:

ConventionMeaning
boldfaceBoldface type indicates graphical user interface elements associated with an action, or terms defined in text or the glossary.
italicItalic type indicates book titles, emphasis, or placeholder variables for which you supply particular values.
monospaceMonospace type indicates commands within a paragraph, URLs, code in examples, text that appears on the screen, or text that you enter.

PKgPK3%@OEBPS/content.opfT Oracle® Services for Microsoft Transaction Server Developer's Guide for Microsoft Windows, 11g Release 2 (11.2.0.3) en-us E26104-01 Oracle Corporation Oracle Corporation Oracle® Services for Microsoft Transaction Server Developer's Guide for Microsoft Windows, 11g Release 2 (11.2.0.3) 2011-10-13T14:54:59Z Describes Oracle Services for Microsoft Transaction Server, which allows Oracle databases to be used as resource managers in distributed transactions. The guide describes its usage and configuration in a Microsoft Distributed Transaction Coordinator environment. PKEYTPK3%@OEBPS/install.htmC Installing and Migrating Oracle Products

2 Installing and Migrating Oracle Products

This chapter describes installation and migration requirements for the Microsoft Transaction Server and Oracle Database environment.

This chapter contains these topics:

Installing Oracle Services for Microsoft Transaction Server

You can install OraMTS by choosing the Custom installation type when you install Oracle Database.

This section describes the Oracle and non-Oracle products you must install for OraMTS. Additional installation requirements include:

PK^ j;PK3%@OEBPS/glossary.htmx, Glossary

Glossary

Atomicity, Consistency, Isolation, and Durability (ACID)

ACID consists of the four primary attributes provided to any transaction by a transaction manager (also called a transaction manager).

component object model (COM)

A binary standard that enables objects to interact with other objects, regardless of the programming language in which each object was written.

distributed component object model (DCOM)

An extension of COM that enables objects to interact with other objects across a network.

data manipulation language

The category of SQL statements that query and update database data. Common DML statements are SELECT, INSERT, UPDATE, and DELETE.

JOB_QUEUE_PROCESSES

This initialization parameter specifies the maximum number of DBMS_JOB jobs and Oracle Scheduler (DBMS_SCHEDULER) jobs running concurrently on an instance. This parameter must be set to at least 1 to run Oracle Scheduler or DBMS_JOB jobs and to use database features that depend on these jobs

listener.ora

A listener configuration file that identifies the following for a listener:

  • Unique name

  • Protocol addresses on which it accepts connection requests

  • Services for which it is listening

Microsoft .NET

Microsoft .NET is a set of Microsoft software technologies used to connect information, people, systems, and devices through web services to each other and to larger applications over the Internet.

Microsoft application demo

An Oracle Call Interface (OCI) implementation of the Visual C++ Sample Bank package that ships with Microsoft Transaction Server on Windows.

Microsoft Distributed Transaction Coordinator (MS DTC)

The focal point of the transaction process is a component of Microsoft Transaction Server called Microsoft Distributed Transaction Coordinator (MS DTC).

Microsoft Transaction Server

A COM-based transaction processing system that runs on an Internet or network server.

mtssys

The default Microsoft Transaction Server administrator username. In releases prior to Oracle9i Database release 1 (9.0.1), this was the username for the OraMTS.

net service name

The name used by clients to identify an Oracle Net server and the specific system identifier (SID) or database for the Oracle Net connection. A net service name is mapped to a port number and protocol. A net service name is also known as a connect string, database alias, host string, or service name.

This also identifies the specific SID or database to which the connection is attaching, and not just the Oracle Net server.

OraMTS

Abbreviation for "Oracle Services for Microsoft Transaction Server".

Oracle Call Interface (OCI)

An application programming interface that enables you to manipulate data and schemas in a database. You compile and link an OCI program in the same way that you compile and link a nondatabase application. There is no requirement for a separate preprocessing or precompilation step.

Oracle Data Provider for .NET (ODP.NET)

Oracle Data Provider for .NET (ODP.NET) features optimized data access to the Oracle Database from a .NET environment. ODP.NET includes support for connection pooling, PL/SQL, LOBs, RefCursors, globalization/localization, proxy user authentication/ parameter array binding, named parameters, and safe type mapping between Oracle types and .NET types.

Oracle Fail Safe

Ensures that if a failure occurs on one cluster node, then the databases and applications running on that node fail over (move) automatically and quickly to a surviving node.

Oracle MTS Recovery Service

The Oracle MTS Recovery Service resolves in-doubt transactions on the computer that started the failed transaction. A scheduled recovery job for each Microsoft Transaction Server-enabled database lets the Oracle MTS Recovery Service resolve in-doubt transactions.

Oracle Objects for OLE (OO4O)

Oracle Objects for OLE (OO4O) is a COM-based database connectivity tool that combines seamless and optimized access to Oracle Database instances with easy to use interfaces.

Oracle Open Database Connectivity (ODBC) Driver

Oracle ODBC Driver provides a standard interface that allows one application to access many different data sources. The application's source code does not have to be recompiled for each data source. A database driver links the application to a specific data source. A database driver is a dynamic link library that an application can invoke on demand to gain access to a particular data source. Therefore, the application can access any data source for which a database driver exists.

Oracle Provider for OLE DB

Interfaces that offer high performance and efficient access to Oracle data by applications, compilers, and other database components.

Oracle Services for Microsoft Transaction Server (OraMTS)

A component that provides full integration of the Oracle Database with Microsoft Transaction Server. This component enables you to develop and deploy COM-based applications using Microsoft Transaction Server.

Optimal Flexible Architecture (OFA)

A set of file naming and placement guidelines for Oracle software and databases.

resource manager (RM)

Microsoft Transaction Server enlists the database to act as a resource manager (RM) in the transaction process.

SYSDBA

A special database administration role that contains all system privileges with the ADMIN OPTION and the SYSOPER system privilege. SYSDBA also permits CREATE DATABASE actions and time-based recovery.

SYSOPER

A special database administration role that permits a database administrator to perform STARTUP, SHUTDOWN, ALTER DATABASE OPEN/MOUNT, ALTER DATABASE BACKUP, ARCHIVE LOG, and RECOVER, and includes the RESTRICTED SESSION privilege.

tnsnames.ora

A file that contains connect descriptors mapped to net service names. The file can be maintained centrally or locally for use by all or individual clients.

transaction identifiers (XIDs)

Identifies the client computer from which a transaction originated.

PKL6 },x,PK3%@!OEBPS/dcommon/O_signature_clr.JPG"(JFIF``C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (?O '~MQ$Vz;OlJi8L%\]UFjޙ%ԯS;rA]5ފ<׈]j7Ouyq$z'TQuw7Ŀ KX߁M2=S'TQt?.5w'97;~pq=" ~k?`'9q6 E|yayM^Om'fkC&<5x' ?A?Zx'jß={=SßM gVC.5+Hd֪xc^)Җufz{Cީ|D Vkznq|+Xa+{50rx{|OG.OϞ~f/ xxX[2H )c+#jpUOZYX\=SG ߨC|K@;_߆'e?LT?]:?>w ڔ`D^So~xo[Ӡ3i7B:Q8 Vc-ďoi:FM292~y_*_闱YN\Fr=xZ3鳎OwW_QEzW~c]REeaSM}}Hӏ4&.E]u=gMѠ+mF`rNn$w9gMa꺢nTuhf2Xv>އ a(Û6߭?<=>z'TQuw7Ŀ KX߁M2=S'TQt?.5Kko\.8S$TOX߀Gw?Zx汴X)C7~.i6(Щ=+4{mGӭ¸-]&'t_kV*I<1)4thtIsqpQJ+> \m^[aJ5)ny:4o&QEnyAEPEEss 72,PDۢ׃K W{Wjr+wگ iM/;pd?~&?@;7E4gv8 $l'z'TQuw7Ŀ Gֱ=ɿ&G?. iR(5W*$|?w᫼gkmIbHe/_t>tg%y.l}N5[]+Mk0ĠeHdPrsst'UiC,y8`V%9ZIia|ܪvi מYG,o}+kk{YbyIeb*sAtի82zWoEK5z*o-eo;n(P u-I)4Š(HQEQEQEQEhz(X/Đ?}Bk˩ ݏrk0]4>8XzV? }6$}d^F>nU K ?Bտk_9׾x~w'ߞ  uDŽtL ؈5c-E/"|_Oo.IH쐍=i*Iw5(ںw?t5s.)+tQ2dUt5Vĺ.jZ"@IRrZƅY4ߡ_;}ų(KyQf1Aǵt?sZg+?F5_oQR&Dg߿]6FuRD u>ڿxl7?IT8'shj^=.=J1rj1Wl$얲cPx;E,p$֟ˏkw qg"45(ǛkV/=+ũ)bYl~K#˝J_כ5&\F'I#8/|wʾ_Xj Q:os^T1.M_|TO.;?_  jF?g N 8nA2F%i =qW,G=5OU u8]Rq?wr'˻S+۾.ܼ 87Q^elo/T*?L|ۚ<%<,/v_OKs B5f/29n0=zqQq(ª=VX@*J(э(f5qJN_EVǞQEOuoѕOuoa5}gO?:߂8Wא|cڽ~]N&O( (<]>͠@VQ=^~U ̴m&\խ5i:}|}r~9՝f}_>'vVֲ$~^f30^in{\_.O F8to}?${φ|#x^#^n~w=~k~?'KRtO.㌡h![3Zu*ٷճ(ԟ]z_/W1(ԟ]v~g|Yq<ז0 ; b8֮s,w9\?uEyStKaª@\,)) (!EPEPEPEPEPzѧts{v>C/"N6`d*J2gGӧWqBq_1ZuΓ\X]r?=Ey88Mp&pKtO-"wR2 K^-Z< \c>V0^@O7x2WFjs<׻kZ(<Т(OFw/6$1[:ޯԯ#q~4|,LVPem=@=YLUxӃV}AUbcUB.Ds5*kٸAeG>PJxt͝ b88?*$~@ׯD VkraiJs}Q.20x&mXξ,Z]“A-J#`+-E/"<]\a'tZGy.(|lދ~gMK OZdxDŽU9T6ϯ^<Ϡt5CZ]].t۫S=s`ڳ%8iVK:nqe+#<.T6U>zWoy3^I {F?J~=G}k)K$$;$de8*G Uӟ4Ocºw}|]4=ݣ\x$ʠms?q^ipw\"ȿPs^Z Q_0GڼU.t}ROM[G#]8wٞ ӫ87}Cgw vHȩBM55vof =A_٭`Ygx[6 P,5}>蚊(0(+?>+?> k|TuXq6_ +szk :u_ Z߶Ak_U}Jc2u/1[_»ݸG41-bሬ۴}}Eȹפ_c?5gi @cL\L<68hF_Ih>X4K7UТ sMj =J7CKo>Օ5s:߀t ~ηaٿ?|gdL8+gG%o?x`دOqȱwc¨&TW_V_aI=dpG!wu۞սZ1yL50$(l3(:~'ַo A}a3N*[0ǭ HKQV}G@֜$ 9of$ArNqUOgË05#m?D)^_h//5_/<?4}Jį+G"p`ƒFF "a"E|ժOC&xCRz OBtX>XE*O>tdqAJ +,WxP!CYpQ HQzDHP)T njJM2ꔀJ2T0d#+I:<жk 'ꤱF AB @@nh Wz' H|-7f\A#yNR5 /PM09u UjćT|q~Yq@&0YZAPa`EzI /$AD Al!AAal 2H@$ PVAB&c*ؠ p @% p-`@b`uBa l&`3Ap8槖X~ vX$Eh`.JhAepA\"Bl, :Hk;PKx[?:PK3%@OEBPS/dcommon/oracle-logo.jpgJFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222'7" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE!KEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEzE7V%ȣOΏ9??:a"\fSrğjAsKJ:nOzO=}E1-I)3(QEQEQEQEQEQEQE֝Hza<["2"pO#f8M[RL(,?g93QSZ uy"lx4h`O!LŏʨXZvq& c՚]+: ǵ@+J]tQ]~[[eϸ (]6A&>ܫ~+כzmZ^(<57KsHf妬Ϧmnẁ&F!:-`b\/(tF*Bֳ ~V{WxxfCnMvF=;5_,6%S>}cQQjsOO5=)Ot [W9 /{^tyNg#ЄGsֿ1-4ooTZ?K Gc+oyڙoNuh^iSo5{\ܹ3Yos}$.nQ-~n,-zr~-|K4R"8a{]^;I<ȤL5"EԤP7_j>OoK;*U.at*K[fym3ii^#wcC'IIkIp$󿉵|CtĈpW¹l{9>⪦׺*ͯj.LfGߍԁw] |WW18>w.ӯ! VӃ :#1~ +މ=;5c__b@W@ +^]ևՃ7 n&g2I8Lw7uҭ$"&"b eZ":8)D'%{}5{; w]iu;_dLʳ4R-,2H6>½HLKܹR ~foZKZ࿷1[oZ7׫Z7R¢?«'y?A}C_iG5s_~^ J5?œ tp]X/c'r%eܺA|4ծ-Ե+ْe1M38Ǯ `|Kյ OVڅu;"d56, X5kYR<̭CiطXԮ];Oy)OcWj֩}=܅s۸QZ*<~%뺃ȶp f~Bðzb\ݳzW*y{=[ C/Ak oXCkt_s}{'y?AmCjޓ{ WRV7r. g~Q"7&͹+c<=,dJ1V߁=T)TR՜*N4 ^Bڥ%B+=@fE5ka}ędܤFH^i1k\Sgdk> ֤aOM\_\T)8靠㡮3ģR: jj,pk/K!t,=ϯZ6(((((((49 xn_kLk&f9sK`zx{{y8H 8b4>ÇНE|7v(z/]k7IxM}8!ycZRQ pKVr(RPEr?^}'ðh{x+ՀLW154cK@Ng C)rr9+c:׹b Жf*s^ fKS7^} *{zq_@8# pF~ [VPe(nw0MW=3#kȵz晨cy PpG#W:%drMh]3HH<\]ԁ|_W HHҡb}P>k {ZErxMX@8C&qskLۙOnO^sCk7ql2XCw5VG.S~H8=(s1~cV5z %v|U2QF=NoW]ո?<`~׮}=ӬfԵ,=;"~Iy7K#g{ñJ?5$y` zz@-~m7mG宝Gٱ>G&K#]؃y1$$t>wqjstX.b̐{Wej)Dxfc:8)=$y|L`xV8ߙ~E)HkwW$J0uʟk>6Sgp~;4֌W+חc"=|ř9bc5> *rg {~cj1rnI#G|8v4wĿhFb><^ pJLm[Dl1;Vx5IZ:1*p)إ1ZbAK(1ׅ|S&5{^ KG^5r>;X׻K^? s fk^8O/"J)3K]N)iL?5!ƾq:G_=X- i,vi2N3 |03Qas ! 7}kZU781M,->e;@Qz T(GK(ah(((((((Y[×j2F}o־oYYq $+]%$ v^rϭ`nax,ZEuWSܽ,g%~"MrsrY~Ҿ"Fت;8{ѰxYEfP^;WPwqbB:c?zp<7;SBfZ)dϛ; 7s^>}⍱x?Bix^#hf,*P9S{w[]GF?1Z_nG~]kk)9Sc5Ո<<6J-ϛ}xUi>ux#ţc'{ᛲq?Oo?x&mѱ'#^t)ϲbb0 F«kIVmVsv@}kҡ!ˍUTtxO̧]ORb|2yԵk܊{sPIc_?ħ:Ig)=Z~' "\M2VSSMyLsl⺿U~"C7\hz_ Rs$~? TAi<lO*>U}+'f>7_K N s8g1^CeКÿE ;{+Y\ O5|Y{/o+ LVcO;7Zx-Ek&dpzbӱ+TaB0gNy׭ 3^c T\$⫫?F33?t._Q~Nln:U/Ceb1-im WʸQM+VpafR3d׫é|Aү-q*I P7:y&]hX^Fbtpܩ?|Wu󭏤ʫxJ3ߴm"(uqA}j.+?S wV ~ [B&<^U?rϜ_OH\'.;|.%pw/ZZG'1j(#0UT` Wzw}>_*9m>󑓀F?EL3"zpubzΕ$+0܉&3zڶ+jyr1QE ( ( ( ( ( ( ( (UIdC0EZm+]Y6^![ ԯsmܶ捆?+me+ZE29)B[;я*wGxsK7;5w)}gH~.Ɣx?X\ߚ}A@tQ(:ͧ|Iq(CT?v[sKG+*רqҍck <#Ljα5݈`8cXP6T5i.K!xX*p&ќZǓϘ7 *oƽ:wlຈ:Q5yIEA/2*2jAҐe}k%K$N9R2?7ýKMV!{W9\PA+c4w` Wx=Ze\X{}yXI Ү!aOÎ{]Qx)#D@9E:*NJ}b|Z>_k7:d$z >&Vv󃏽WlR:RqJfGإd9Tm(ҝEtO}1O[xxEYt8,3v bFF )ǙrPNE8=O#V*Cc𹾾&l&cmCh<.P{ʦ&ۣY+Gxs~k5$> ӥPquŽўZt~Tl>Q.g> %k#ú:Kn'&{[yWQGqF}AЅ׮/}<;VYZa$wQg!$;_ $NKS}“_{MY|w7G!"\JtRy+贾d|o/;5jz_6fHwk<ѰJ#]kAȎ J =YNu%dxRwwbEQEQEQEQEQEQEQEQEQE'fLQZ(1F)hQ@X1KEQE-Q@ 1KE3h=iPb(((1GjZ(-ʹRPbR@ 1KE7`bڒyS0(-&)P+ ڎԴP11F)h&:LRmQ@Q@Š((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( |DiM} 7W{ŭ#ʀIf<*'p qpFl6;m 2j"= [ Kw ɸ+ʧn:c€ ( ( ( (?xg/MWo۳o1׮=((((((5? o][P0%y Ip•=E{zOÿxYw.#[kro۹)ÿPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP4߈~-Ε"(3#BnSr31}/:?o' 8#&櫥X]ƙGsgp%0`&M܆;FѶ`H,Pa}X'>m_WʷUswcH- F~k]"yi^60w'#ϊ%_ㅔ> E!%%d󘯛wToZ FZ uae`cْ߂Hצxc_8u}"6N[TqنG$OGx?1 V?Oay:EMuK$is 9 s 7o+h}+f͟6sۥeK_R8}7'*Xd܍?keo{5Ɨ#HʷfscYMt Sò[jUu&Kv/+ *y3VڇuF}.ଘe K,A<=Xu_P K@ Ǎrzc8 >+;=#͘?w۰J||M /%oٳg \?+k>'~\r)0FӖ2z1zWV@@WVf] NֵuCk E;Ǣsិ?t,I $c,C؁\ OP@f)$r0rx܅@9 G XIknE劎Xuko-ıH^I$`I$椯5<5hy,be ZEnOm)}g^s^Ʈ\,oҧL|o"ى-uZ{),} qLC?hvZE%Kf[Y 'Mr/\xvx~,"ywraf\@r G[֤ KT Zf$UԱy s^g XI>knc#un|j~I]\%[ƛ`r9;pMqݤi5ϕf9Ҳ_ ڥŏ|/xZ>˛@RvG, 2@nFs\52 xcKA[3r{M7Yqo[Iг(%@9U((((((((((((((((((((( }C~5aV67B%%bXyFӌ#:  !y$($sY^5&a]GER4rF8l@`@$n"3E%a\NЊ<-_Elѭw$rYܳ$'EON4_gkcE9R#@QC {f#Z-vRX,z xt_XYvrYAwk&78TlRX> yoc\ #DVtb8<|gr[}/C >`89>w* O2FrkC;ZKY?i# 1 g$!f QRHVv"eqTI@歮iz PK_e 1;MYX#u#өxC:[_V:mݡ*a8+2U:&5i)M֬c.cXt*ASd#5ξ YRY,QFU?tn}Ic%xĚ^uwqtI$S0`go#iMlc_bŘ,Icd@|ON_o_@W8G-/7}^LpːȻRO$q@|x~|RcӴ/is~|Ս>`a$]Ş мk-i[#aUprp(bL KXi2ǁ@kǏ~4j<{9mirQ,O @ E+38fK¸ӂVcvfml$NI'I'$_+ѯ+Í?osns[;a@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@ƺohuMR mmQYf1=*OxKƇ qAo:u'2Ql8̿(:_Z( x,#;[ud9Ozby?|޻}>_΀; ( ( ( ( ( ( ( ('?-vOMPj7 1.]pB%T0s@Ep~ 'ﵙxZ==Ż\{j#r7{ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (<yV?-s/|A+'>lmZEd n;|#DQ]$O*Z9[^xW>Β&9 U 1ԍъm8%c#$t`|2^57։ ;Yyt8ĻdtoviVح/-~+rzHIٓ]կ5&xȕnc˃ 'zu_Ht/x҉+CgKf?ӏj%$B(nυ}\7~> E{G6S# PqCk xjJK{Qbߴ*pp7>Mpjb, lJ|cw$܀p:|E = ?*8xwe>Odvnq֋xZXլ;=LqvB`7dhzƷG(+ʀ`Fgkk9<[h_i*pyu 4]Kwm5j˻؄y!7qrǖ E{G6S# PqCh-]kFhέu;C[J'>l:xNԬQo L%ITЀTi>P8$0 ^.w$y-9lpoc't;Ú6ڶX5fO)L{`s>lg38~ҮͩjRNW[%zĎF@ASNI rMAV1`AʞGhxow4=^ #hp[c~`7c8kG ~]G:_"e\T|@'O%[Z̈́ql?/ظQ@kzޝ}[V=|v3G <8Mn{nQWjH(ix7}^f]~ݻ7}s{א|klik<#kiq3~0oTo;;+>ooGۿn1g+?g G$ҬoykIvg7t&xGVn>c>.]SG EhU{ =2;; H--c`FIŽI'QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEw?±kv-*k͂kMȤw7d`9Y|x¶^=3z NʥB:mV9ˎ޵PFx^q$}BDrj0WU̧g1 3Ʊoop[$qơUOq߅>NjnG`ݐ#mOL ;ևO xa$]y[v!QHSڀ1 !пJ$??^w&VnCWq@=v_Ʊ f-Ƿn߽P?Hחz›l%+Jy6\ $r9{C}K*dW=UH A*MWJ43S6Ka +x 8㴙/o~*WiG|(Wk"5?x [=,Sj\oFSac)FCw0|8> cd?[mV46+G[KnIZEVR81gotzciwfm͝l'#@#PP:5n,F+` 5=?Ν3jR`3Nv$gֱEY/Ɛ.0vGe۸U6o>Z > Mp1(I.6lnnBH+9^_.lbiybw Kd7qv_iw "{o%$dC^W7ŭC~&@9'.|Av5_}SR8r2U$ly pH+KiKh~EĶŤUe#c6y:<k޳g3ӦJXⷌFb =?K?W&S,wr &ֵCGףA  |@I<|%fҾ~v(IevG s>ּg/JҾ/_ÍcßC˛Ծ |E 88' e?}^'|A ~N7!k{ذPvR3@EcZ]%W]h>]^t?ؠ(((((((((((((((((((((((ßƞĺ43$K ס*: +51M7Vuv K4,$g{EPEPEPEPEPEPEPEPEPEkڌucq}:y#v#sQ@Q@Q@Q@V~'ypo3g=EhQT[MmK-/W(Z̲lTq*QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEp< 77uu+3qؒ2I^1>w?}nq־ih’yBN<7m:t-d漙r'.I(DWgjP|1w&mxIQV2@`A?(mB5 MYT)ݭnFP6Z(7OMSƞ#Ve}ǤQNXwV/#y?? WJ \ k1j=A^!WX\]MIG?lqڼC:7wZ&[j+qp}/Ex(׿iWR#Lh[ _0~謿gwڵܗ#y.X ."dM;W6>c@Exj?ImBWy.cE SG!G]J+k7ܠK"+p2d19ǯSր=yrLէծ߾|.3c u=+uk0Uޗ5C\fC@Mn>9Q^o|5wsXԡ47ʤ;J"q#g#+>mJI&{74Bsv䜚J+"x]"y૏]B\pQ]NUP1*Tkκ f5fPGD1bsW9X{%y## [X&HQčαX9֥(Wz=wRn#0¦3J[p@' +<G?^,tߴ2B$o.uw >?@qsZ,oR|t1 @Ix+Zoi.{YUڪ1k߿( +0DmORg6ro`cMϖzF~$u ^]i0m">0@c|Ww:/НV}cº^$ %;w0lX{xW_)dMgxVÚܚ&/^YqD x*s #2GG;?x_Xa7-V)ݗ^m@C\ïx^..#tfT8]Er|Cq_Ʊf ݖ5~Ai`#cy_g><[ n{ue!×q=>u%] Wk)2>KZ>ڴA{ EA P:6_q+*E5|AOTy GgP|@@>W-McI}uusw1IIU* 22~o:E+euJmc?4lGU\t(Z̖Q^$%WD1X;G\zwV >gT:Eql^|n#1OzvW*kk2Xڷ2Հ HPbW^:դZ -~bHRՙQ\xW_)珅Z|ek ϨJ=ݖ =Ə77}>ٻګ=(((((((((((V_@W9__?i>nϕh(e?}^~$šυ-lh/H,\˹#pMgakԿWٟwo߽^PW ?|koVxm XFJMɺv9=C>qdz²xdddx,9A>(7I[t|pĨ?v1Pǎls+y]Ҏ d\}|RYc5l/1s7*(re$v{R`- mn <1+_n jzЫv8+:e*=z̺۵=K{Pݵysv77xw?*zCm.Ԯ/"vIeLCc Jg/JҽsZkh3pklTIߒ)=sþ1uVBVi|q)$l@'%H8_z炼IxFTޅ:\4Kmt[sU;SXy3mk?|]iW3ɹ97\.# 1P? nqbd̿,ce3Ǐ2Z q&>gbv܎ 3ʞ>Wĝ#o;vud#Q g$ s Ptv1;jab1{nOֿHg$E*y1\=MkV4} idoo9Bp>Uw/x {xyt˔8Գ;xy$P**>6!J#ZNxTgmNGXh A5~S[ZOwu'#2;bxŽN' _WWL[YOiu1yʞFA x!(T)$r(eu#x 1Y~) yWd>6IՙW8'|FҞk=k>|8H"T2(c$79 O O&#ޕxq) /prGxn5̓Kiys's2{x{?u9X y[*@c!e ??ju \x~{hO8@q(!Jx>ҵM7△oi5& _+)\UO_/kyvg3U}*OW%>iImw"' -pL$? oW5!\rwnH@@ˎHЀzxW_)g'dQWx {xyt˔8Գ;xpKF-ڜB1_*!3h+O=uO ->\0Kw} Dc%sї g_AζHA 4EPEPEPEPEPEPEPEPEPEPEPEPEPEP}յ-7^wc;jqIk3D|N R2ǰ= ៌5i-=rZEsffٽmϜ38G<+O<5`_z~+I.5=zGo6HH91 (;-Re ).v_|a_eŁhF@ ôM`q_^:IF8=deg ?~9wyy*& -Ey3xQ58|I2buWJ FNx H\;xß`o41_1pLj~@E|m/|Jפ]Cw78aaݹ|ϙU0ðHQ^w߉3hZ|1g⛷P% Sd31 Ij6ih%Ųƀ1.߻1+g8W|n?V񝏎5c W8 0 rSW[U=WUOS7+Q'$kOC=ėKM-)k6U9~U >e,h(?-5Ʒ76HX|T iT2`ҵ[sK˘l|RFr<8".Q_>[|`F/Z\z\\e&T/_vϨߞ㮡o.!eXٔ̎22c䎀(7a=i-揬X6;h6Td %I UC'KYiiC}@X'hvrsY|u1.d"1nd=g/t9%0Sڗ;lt'[kpNF9qExOx?;1ɻo77OZk?%I `X*Fg__L"#dfYGn2A`tr|1<7/˻˴|yzEPǦ_|w497rG<|/$)=EQ^?xD}N<2hɍdoapE{J5_i59&xbEfPÏZME I?ɏ}<Ͽw篷J>)kz>jڶq{<.]wLx`AȠ ZƉ ;_~\.̿3 Ts]q uG4[VEw.Mfu(pW7O: o|>Sp B;Aᘐ=RY' _~Ҵ1+ˍ+֩BI|DhKaJ7rqr&~6xK9-L2PN:}Er:֗= ߟ6L6a#-=Xӿ`Դ/΋M+U08_Ffpl+IwYcM5TUR2sB%QEQEQEQEQEQEQEQEQEQEQEQEx$O*Z<RןO4 M3Z̟duC z|Oii$oټ曅o,msq{s]&@z֩:nhVO|*22H>>Ӯ/8?^oi~d4h<eN {$ <=óٛM^w0@HmC2Fq4/ |D<^.2^}?,bFb7,gXI̊Nh#![G2T#zOů#={۫3/ yh=9t*/wM;>[|3g`@#*/ZۥMHn+(Nr6UPrx̟;+bu,^#,jOV\4a=Zѷba^\>䟲"@TP0%돎'cKsEB,AL0Pl$ ?4?X;xemGu-Y_Y2>@=_<ڤR6sL9(P_xݿ-$w7 "ÐX'zW7ON_o^?^6h+|D F~n6rG5|n?V~ c 6GwE h;+=>dSǧkqco56q n'/"# |G ~dk0ƦD?mذ8j]~8I^7ǟťrbKGqa23͎ ]m<ϻΎdg6:cZsG,m5MB#K K_,s;%u 1j-$py+yO쨎 qB ʓ\n>0'T!w\@_M̭oF!($ qUE81^M̭oFzuͅ~eO ɸzU^Mh׶^Ooo$G2!9$cY?]&i? /2ØGڣ$ey c_|wq`MնҸesP @$W~<ݥ9Qգ/x83o-?:dž4n-W.*&1bv}EPϚ܍ڮ 3H^gxKL1b"V >YnXn9 v[7Muޙ@ݘ;Kn,BFϺŠShKu5 pAG_7u/xVT x^VTDl9sҹ|c=+ ZK)m-eRYԠ9u''8"K/xGO/>uTAAQ#13y=Ҹ}'ׄuy=KwDbkiV7N|ۤ3p8OAZP~h'Xy>noqg=}MhQE|Nƿi^Ҿi~gc;zZZ=>gXOιI7͹5@Q@ާy%1i죑#'U7ItkvK˴vJ[dg Egz_U/v.83VPEP^Y[SDoT]Z$${cagYgaiy rI8Q$5b(*ͺ} ;VU 23F}\1|'2;VQdYGA FA#(ym"h%BG"WR0AkAѮK4 48%@8µ( -c_*O~ΞwקbS Y1#`2*^L KX#pIh䳿LoxĈ  Egy:U3gqkh:co}>:tI$w6'$sօV^Y[SDoT]Z$${Ԣ3 G<*ǙKt~38kB(((((((((((((lj?^-b21G˹89qy)㯈~5-<޻*/%QT=rN6>?xt²KMxWW-6k@JD,+*E5yŸZ|K>[i[g-vR7&fJ7?m%RO"M* ocx-h%@WR2#4p3˘-c|~f2 ;U\kk~ydG\31޲%k7~8uP$Tnӧf_kP|MW<37?sOmٷY~&¹Gylg;WPEy~5heдkXGX6K`_z*8^q XIknE劎XuЀ{xB_>nS`ӵpqw4+G#e'b;%UsC\xRF5 thPwȧ?\2X >дeTŔ@\rAR((>-fZdGq.A;YJ#k x-h%@WR2#4%~-cK;FԵyXZDž$Kr |àOJ]ftX/#@̦g`N@7O`T?d|@|=i~!©( 1g\ 䂤PQ^?Gx|[W@Ȏ]ϒ v!*dG׮A<7V\[J6 dGh/] U%e ++WĐ7 )SU'ߎ?DV ~a_hO;yӚЯ?0?{Mrw{ywOν0@$](_Ht/x҉(Sn7뚍筿G!iF0/:/DNnm>q$0cT-Հ(:cy<7<,#֥O儼xbAԫa#9~5߆}_1%B,F<{+?x^Qh>7حai2aw )lr5~%{A<jd/u.z CRTAT֙=扪JV<7U;|e#k)8P_ xlZm|svsA-q[A- ubά+nx`ug>:h ǥ_"Ɍ`D(E2Wv?1_oyoFchF 9K:!Ӿ\I++* u` 3xw5Q_WҢ!avUY ̊c'n_?>gWӮ;)s̄yyBԀzg4H|GKF ynxĂ6#}VG r+fnk j4c%KYAsǯxV~ ޣ,}o[Htd(R.k1qJWx&eCɀ_2]H9 ?8_ۏ}_?SW[ x/?U&+Ve*5?ߕ-`}@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@)ݟ9w*;i5ܩ[ˇ+q vrFkմuKi y-h ԩ# Es~ V=m/Kh%kkV`Up6aoZ( i:5p,[ѐ+RFA5r#MI䵵߱`\vsXZ}iV7mnfG=rb20I# hQ@qq?Mnϵ66n6|j(?_4`ֹ>gGEo]P߅~ķj"SG(.YIanyUs.{0Op J"x#P?|7g]wOkꣵݟ|9iI<< r@ձE?my';CUUwPj)y*j[0VU  E]1ʐNAPw/&{+fa*!A's CڢjPwwҫXgUUX`J(? -kϷ_=@" =G8+#j-I+w*.qï 760Nj?8&oy~g7cUzvPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP|GOCzhHWl8A5W=CWvw)Ɇ nI`O [cHU I9q|Om!OZuA;X 4bE'!@+&|AsOswxfcs8g/ ? }I"g(s ۸obr2 u@ G?ٯwn}޿q$o>9 ]\-VX&2qߓWioX~U%]ǵvV~յk̗c>pY 7+jGKGq0h¥UV|'@)ak="M$L0]V?|UxR]kQIy0@;Pep3g{/|Uxl}n H]^'~ U-|P/>gZ_;s7LwPf_kWO<6\K0DF dOhJ+?k`F^7(;iI2 = F4_{j|$Ul8#<Т}{o ϫG]P[n(e`g@tQ\/(Ld.42D\wp tfsy'kk3'j(%'bߊtoi_wkS ?8ΰ/^Ү ;^q9hՀz]U{s~w=ŚT^Iޫ~4RokŸy&yR ʶ1\$1A8 8bmY0Q*S'QӠ?>|7y€=ow:|;toiXiH r6>6!J# ?J?CA|+^iΗge"Yћ-A$9sz׮hZ[3_??wm>}y$O*Z,,n5?VqW^HaMnvFO$ OZ/[a8,/d `6Tl$!GوFO>j-H'6L|''5x7VY3uHOʏ9ɍ/q^)j/|8i>rrdlpB22y@3Oj5?j/QԼ%ä.8$?/?<k3=$]c׹JO¿)iz:"^,4xW.%r V>=k XKGga6hc$qFs@>h!Ǎ$a5"?ƱfjBrSr\m_@*?zᖪcSг(S%I2GN5ͮ|!]Nhw.Ɗ2XmE1X&?Kj)iJ4SI+h]}tţG X*2HPtU$0i/HgVa ;cSu'ڤP0Cf2qP]Sq,b}8 ?Û çjZ3kଣR6y~Q|vAc<WM~?{^Er<7yjZGuuly؄eG9 Oj>n>t; 1(wJ0HQ@şj^<𭮗i ^5ӲPUr㷭ufѼ+iw Oee %K"$dAZP?M+?Z5ԹY-&LB߷ i;H$ |G⋈5 pcӬ9 *)†~Pq|?ֹGGv39ܫ=ׁthfyWnr{U8^@# coD v4zw( zwhisG- JTc6C5~$kktv牴;X*`LJrя^Ey)sF-.'ym"h%BG"WR0A%SմuKi y-h ԩ# M/ n|X] P69湏|5м VԵ B}W:d3yPs+e88#q֋Aտxjq szJvs^^ 6oBO)?a mQoGpT ' ?cq(!ˑyRID_Eo]|2nZ>(((((((i5j K%-p 3N=Gk>d7N<ϲ\$3gi8_C^oӮ'o>Q^i vr`W/Kutuwng$Gq&G$ogOb`(o>%5ۋxGG%w#3q3fJ*z]Ƨmgn(d5r?YG<;xW7ȓN2'o X?u$*Fh4JgF-E;@u #8>TpA VG  HB(q>/ڼa>ᣱ!<(d#h䃍`o/.lỂK]h$2r3Oj ugc} >U:@dQsՎt:46^#gV,-ʰ}%HSfZ]7zŕ;PHQ$=(+uԵ=k" wr``o.r@:H]%IJCzxX-Z_fyə!1gШqEPYztmMoM:ut1\3koƧo b@@W7_C}"PBp-XU[I?pqbxV[{9/VF[ +b ặXTeu# 8 s^w +?f˟򼿵O3v1n?wn{c<u+.t[fdyj8`9 C_DXEY]q@H88ZO ռW4x䍃+sV:qjv&b~? 90EykE>j3%tgyrv rXp2XQEQEQEQEQEQEQEQEQEQEw?±jO |c>]"V,c;YK T.r1j?;IaXT|;>V1y[.HcSHwgsA|A67>?.dkp@;QqN7ChڥY[q"b gW%>8(/2WZecs.[pBt NPNp1E[UucG^B巆9J:`0<wO G?5V >#4J|ՕdT+1V h,v:̉wO;a}9}# OSgWV|TfT)$r$` 1]Ï¿Ɠ:|#Qn773Š(?G%{пM rz`ɽ+(sƞ6Ե7< qڑ-*C($>p|)x].8,`k\jN ꩕@p03@5<+ x_N[|v/<'.$s8(3Oڞaݷ~-881?ٳM/ :}u$m R8s+gçTeƧr?2Oh(dּo.ngMM 7*Q$u`}Ҁ=(f_kW3Oj /J޾)+ ( (_^:IF8=deg   6_b/A~RG'k ?xY$y_9@ʫ<2 Ď;sQEߴ㳑4mV{#f# XK-b&ZVyeUdTʹ; =NK;H.dgHʞ5wEAi<QYcDCr7)p8 (?)Xx/p"pH${qT->sj<ȖE %L|((((((((((>:[}/Ou8ݣ`T$(' gWq&/"-HR"PAAEy_xG_D_?yP$7@aܘ.'XcsxgNw/chcSX2t9(Ǐ~7sfH|5<˖Tg`HA+s(c.Ѭ]KdiDh/m/Z (%51=mug*rx Mxk'$Uo/vy3Š Xj:=vp@P]JH n>lnWĝ#o;vud#Q g$ s WQ@Yk3IxFM EKvU7L{^X2\?ĿE YI~TJDE|22>\t<ƿ|YZ/į UU jY 8n9C՗>xPφ/2fTTBNC.ݒ1*O 9kxDaޏihgVf_g T >i=|<Դoѡv(ޠ"8=$PxIt.u,aS@x~%Ҽr8 pn ƳT0 ,F`1q_O@wxYT>@*F5!'>,~+Ҽ+k?}AQ$ἭNT`n ==k9wM6ĩ:jO%p@>P^1.cVL>~3qGؑ b>/u|8KBi-n kpG4"$ r| >S4Ђ"S 1%R:ȝ 8;PKPz PK3%@OEBPS/dcommon/rightnav.gif&GIF89a1ֽ筽ޭƔkZZk{Bc{,@ ) l)- $CҠҀ ! D1 #:aS( c4B0 AC8 ְ9!%MLj Z * ctypJBa H t>#Sb(clhU!/;xP` (Jj"M6 ;PK枰pkPK3%@OEBPS/dcommon/larrow.gif#GIF87a絵ƌֵƽ{{ss֜ƔZZ{{{{ZZssZZccJJJJRRBBJJJJ991111))!!{,@pH,Ȥrl:ШtpHc`  өb[.64*1$#"%+ ( E' n7Ȇ(,҅(L@(Q$\x 8=6 'נ9tJ&"[Epljt p#ѣHb :f F`A =l|;&9lDP2ncH R `qtp!dȐYH›+?$4mBA9 i@@ ]@ꃤFxAD*^Ŵ#,(ε  $H}F.xf,BD Z;PK1FAPK3%@OEBPS/dcommon/conticon.gif^GIF87a!!!)))111999BBBJJJRRRZZZccckkksss{{{ZRR޽{{ssskkkcccZ991ccRZZBBJJZck)19ZcsBJZ19J!k{k)Z1RZs1!B)!J91{k{)J!B!B911)k{cs!1s!9)s!9!B!k)k1c!)Z!R{9BJcckZZcBBJ99B119{{!!)BBRBBZ!))999R99Z!!999c1!9!)19B1)!B9R,  oua\h2SYPa aowwxYi 9SwyyxxyYSd $'^qYȵYvh ч,/?g{н.J5fe{ڶyY#%/}‚e,Z|pAܠ `KYx,ĉ&@iX9|`p ]lR1khٜ'E 6ÅB0J;t X b RP(*MÄ!2cLhPC <0Ⴁ  $4!B 6lHC%<1e H 4p" L`P!/,m*1F`#D0D^!AO@..(``_؅QWK>_*OY0J@pw'tVh;PKp*c^PK3%@OEBPS/dcommon/feedback.gif7GIF89a'%(hp|fdx?AN5:dfeDGHɾTdQc`g*6DC\?ؘ||{;=E6JUՄfeA= >@,4`H.|`a (Q 9:&[|ځ,4p Y&BDb,!2@, $wPA'ܠǃ@CO~/d.`I @8ArHx9H75j L 3B/` P#qD*s 3A:3,H70P,R@ p!(F oԥ D;"0 ,6QBRɄHhI@@VDLCk8@NBBL2&pClA?DAk%$`I2 #Q+l7 "=&dL&PRSLIP)PɼirqМ'N8[_}w;PK-PK3%@OEBPS/dcommon/oracle-small.JPG8JFIF``ExifII*C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222'7" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE!KEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEzE7Ԃ̗4DztSԙ9ZQҀEPEPEPEPEPEPEPM=iԍP Gii c*yF 1׆@\&o!QY00_rlgV;)DGhCq7~..p&1c:u֫{fI>fJL$}BBP?JRWc<^j+χ5b[hֿ- 5_j?POkeQ^hֿ1L^ H ?Qi?z?+_xɔŪ\썽O]χ>)xxV/s)e6MI7*ߊޛv֗2J,;~E4yi3[nI`Ѱe9@zXF*W +]7QJ$$=&`a۾?]N T䏟'X)Ɣkf:j |>NBWzYx0t!* _KkoTZ?K Gc+UyڹgNuh^iSo5{\ܹ3Yos}.>if FqR5\/TӮ#]HS0DKu{($"2xִ{SBJ8=}Y=.|Tsц2UЫ%.InaegKo z ݎ3ֹxxwM&2S%';+I',kW&-"_¿_ Vq^ܫ6pfT2RV A^6RKetto^[{w\jPZ@ޢN4/XN#\42j\(z'j =~-I#:q[Eh|X:sp* bifp$TspZ-}NM*B-bb&*xUr#*$M|QWY ~p~- fTED6O.#$m+t$˙H"Gk=t9r娮Y? CzE[/*-{c*[w~o_?%ƔxZ:/5𨴟q}/]22p qD\H"K]ZMKR&\C3zĽ[PJm]AS)Ia^km M@dК)fT[ijW*hnu Ͳiw/bkExG£@f?Zu.s0(<`0ֹoxOaDx\zT-^ѧʧ_1+CP/p[w 9~U^[U<[tĽwPv[yzD1W='u$Oeak[^ |Gk2xv#2?¹TkSݕ| rݞ[Vi _Kz*{\c(Ck_܏|?u jVڔ6f t?3nmZ6f%QAjJf9Rq _j7Z-y.pG$Xb]0')[_k;$̭?&"0FOew7 z-cIX岛;$u=\an$ zmrILu uٞ% _1xcUW%dtÀx885Y^gn;}ӭ)場QEQ@Q@Q@Q@Q@Q@!4xPm3w*]b`F_931˜[ן+(> E ly;<;MF-qst+}DH @YKlLmؤciN<|]IU)Lw(8t9FS(=>og<\Z~u_+X1ylsj'eՃ*U3`C!N9Q_WܱhKc93^ua>H ƕGk=8~e#_?{ǀe-[2ٔ7;=&K挑5zsLdx(e8#{1wS+ΝVkXq9>&yஏh$zq^0~/j@:/«Vnce$$uoPp}MC{$-akH@ɫ1O !8R9s5ԦYmϧ'OUṡ5T,!Ԛ+s#1Veo=[)g>#< s)ƽُA^䠮ωFUj(ǩ|N3Jڷ睁ϱuږZYGOTsI<&drav?A^_f׻B$,O__ԿC`it{6>G׈C~&$y؎v1q9Sc1fH[ѽ>,gG'0'@Vw,BO [#>ﱺg5ΒFVD%Yr:O5 Tu+O멃]ی38Ze}R&ѝ_xzc1DXgس;<,_,{ƽY'AS#oF.M#~cBuEx7G+Y)(5q+GCV;qF+CLQ)qEC&6z𿊘z}?&w=+)??&\g{;V??׻xGœdٿ׼-Nc')3K]N)iLTӿCdb7Q^a N sd>Fz[0S^s'Zi 77D}kWus ab~~H(>.fif9,~|Jk;YN3H8Y(t6Q݉k͇_÷Z+2߄&[ +Tr^藺97~c܎=[f1RrBǓ^kEMhxYVm<[џ6| kqbѱ| YA{G8p?\UM7Z66 g1U1igU69 u5Pƪ:VVZC=[@ҹ¨$kSmɳО\vFz~i3^a Osŧυ9Q}_3 όO{/wgoet39 vO2ea;Ύ7$U#?k+Ek&dpzbӱ+TaB0gN{[N7Gי}U7&@?>Fz~E!a@s ?'67XxO*!?qi]֏TQN@tI+\^s8l0)2k!!iW8F$(yOּT.k,/#1:}8uT˾+5=O/`IW G֯b.-<= HOm;~so~hW5+kS8s.zwE| ?4ӿw/K N 9?j(#0UT` Wzw}:_*9m>󑓀F?ELzv=8q:=WgJ`nDr Zе<ֹ](Q@Q@Q@Q@Q@Q@Q@Q@ 'IdC0EYJVcMty_~u+Sw-aO n<[YJgL#6i g5ЖDZ14cʝ!!\/M}/_AYR__>oC? _?7_G#RERW쏞KB}JxGSkǕA pƱơP m]hwB7U$Zq M95"3q1ioATߚ{g.t uu2k=;h#YB= fgS :TdLԃ!44mFK{Hrd^7oz|BVr<{)6AXգV»|>*/hS܏z͆OM=Εq (s|s׊LKQI :9NJ)P+!ʣoAF>+=@I}"x/}۠1aנc¹4emC:>p_xWKX` >R3_S½èųp3޺u3N e یbmͺ<_ mnݮ1Op?Gm)Qb%N585'%Ahs\6yw!"&Ɨ._wk)}GP;Z!#\"< *oƾ\)}N>"լ/~]Lg}pBG X?<zZ#x69S=6) jzx=y9O&>+e!!? ?s~k5Gʏ)?*ce7Ox~k5􇔾Q/e7/Ԑ#3OgNC0] ;_FiRl>Q.g>!%k#ú:Kn'&}?U@\pџPtp)v<{_i}Oվֲ3XIYIx~b<D?(=_JXH=bbi=Oh?_ C_O)}oW쏜? %Ƶ;-RYFi`wۭ{ϖZMtQ$"c_+ԃx1*0b;ԕ݋ESQEQEQEQEQEQEQEQEQEQZ(1F)h1K@XLRE&9P (bf{RӨ&)PEPEPbԴPGKZ(iإbn(:A%S0(-&)P+ ڎԴP11F)h&:LRmQ@Q@Š(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((PKje88PK3%@OEBPS/dcommon/cpyr.htm Oracle Legal Notices

Oracle Legal Notices

Copyright Notice

Copyright © 1994-2010, Oracle and/or its affiliates. All rights reserved.

License Restrictions Warranty/Consequential Damages Disclaimer

This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.

Warranty Disclaimer

The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.

Restricted Rights Notice

If this software or related documentation is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable:

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle USA, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

Hazardous Applications Notice

This software is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications which may create a risk of personal injury. If you use this software in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure the safe use of this software. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software in dangerous applications.

Trademark Notice

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

Third-Party Content, Products, and Services Disclaimer

This software and documentation may provide access to or information on content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services.

Oracle Logo

PK?PK3%@OEBPS/dcommon/contbig.gif`GIF87a!!!111999BBBJJJRRRccckkksss{{{skk{{ZRRRJJƽ{sZRJRJB91)kcZB9)sskZRJ1޽ƽ{{ssskkkcƵZZRccZRRJJJB{BB9991ssckkZccR))!RRB!!JJ1))99!11ƌ)1R)k֔)s1RZJR{BJs9R1J!11J1J9k{csZk!1J!)cBR9J1B)91B!cRs{!)s!){1B!k!s!{ksksckckZc9B)1!)!)BJ9B1919έƌ!!)JJcZZ{!!!1RR{JJsBBkJJ{!!9BB{1!!J9)!!Z!!c1!!kR!!s9Z!BckJs)19!!c!!ZRZ,H rrxB(Kh" DժuICiи@S z$G3TTʖ&7!f b`D 0!A  k,>SO[!\ *_t  Exr%*_}!#U #4 & ֩3|b]L ]t b+Da&R_2lEٱZ`aC)/яmvUkS r(-iPE Vv_{z GLt\2s!F A#葡JY r|AA,hB}q|B`du }00(䡆<pb,G+oB C0p/x$…– ]7 @2HFc ) @AD \0 LHG',(A` `@SC)_" PH`}Y+_|1.K8pAKMA @?3҄$[JPA)+NH I ,@8G0/@R T,`pF8Ѓ)$^$ DDTDlA@ s;PKPK3%@OEBPS/dcommon/bp_layout.css# @charset "utf-8"; /* bp_layout.css Copyright 2007, Oracle and/or its affiliates. All rights reserved. */ body { margin: 0ex; padding: 0ex; } h1 { display: none; } #FOOTER { border-top: #0d4988 solid 10px; background-color: inherit; color: #e4edf3; clear: both; } #FOOTER p { font-size: 80%; margin-top: 0em; margin-left: 1em; } #FOOTER a { background-color: inherit; color: gray; } #LEFTCOLUMN { float: left; width: 50%; } #RIGHTCOLUMN { float: right; width: 50%; clear: right; /* IE hack */ } #LEFTCOLUMN div.portlet { margin-left: 2ex; margin-right: 1ex; } #RIGHTCOLUMN div.portlet { margin-left: 1ex; margin-right: 2ex; } div.portlet { margin: 2ex 1ex; padding-left: 0.5em; padding-right: 0.5em; border: 1px #bcc solid; background-color: #f6f6ff; color: black; } div.portlet h2 { margin-top: 0.5ex; margin-bottom: 0ex; font-size: 110%; } div.portlet p { margin-top: 0ex; } div.portlet ul { list-style-type: none; padding-left: 0em; margin-left: 0em; /* IE Hack */ } div.portlet li { text-align: right; } div.portlet li cite { font-style: normal; float: left; } div.portlet li a { margin: 0px 0.2ex; padding: 0px 0.2ex; font-size: 95%; } #NAME { margin: 0em; padding: 0em; position: relative; top: 0.6ex; left: 10px; width: 80%; } #PRODUCT { font-size: 180%; } #LIBRARY { color: #0b3d73; background: inherit; font-size: 180%; font-family: serif; } #RELEASE { position: absolute; top: 28px; font-size: 80%; font-weight: bold; } #TOOLS { list-style-type: none; position: absolute; top: 1ex; right: 2em; margin: 0em; padding: 0em; background: inherit; color: black; } #TOOLS a { background: inherit; color: black; } #NAV { float: left; width: 96%; margin: 3ex 0em 0ex 0em; padding: 2ex 0em 0ex 4%; /* Avoiding horizontal scroll bars. */ list-style-type: none; background: transparent url(../gifs/nav_bg.gif) repeat-x bottom; } #NAV li { float: left; margin: 0ex 0.1em 0ex 0em; padding: 0ex 0em 0ex 0em; } #NAV li a { display: block; margin: 0em; padding: 3px 0.7em; border-top: 1px solid gray; border-right: 1px solid gray; border-bottom: none; border-left: 1px solid gray; background-color: #a6b3c8; color: #333; } #SUBNAV { float: right; width: 96%; margin: 0ex 0em 0ex 0em; padding: 0.1ex 4% 0.2ex 0em; /* Avoiding horizontal scroll bars. */ list-style-type: none; background-color: #0d4988; color: #e4edf3; } #SUBNAV li { float: right; } #SUBNAV li a { display: block; margin: 0em; padding: 0ex 0.5em; background-color: inherit; color: #e4edf3; } #SIMPLESEARCH { position: absolute; top: 5ex; right: 1em; } #CONTENT { clear: both; } #NAV a:hover, #PORTAL_1 #OVERVIEW a, #PORTAL_2 #OVERVIEW a, #PORTAL_3 #OVERVIEW a, #PORTAL_4 #ADMINISTRATION a, #PORTAL_5 #DEVELOPMENT a, #PORTAL_6 #DEVELOPMENT a, #PORTAL_7 #DEVELOPMENT a, #PORTAL_11 #INSTALLATION a, #PORTAL_15 #ADMINISTRATION a, #PORTAL_16 #ADMINISTRATION a { background-color: #0d4988; color: #e4edf3; padding-bottom: 4px; border-color: gray; } #SUBNAV a:hover, #PORTAL_2 #SEARCH a, #PORTAL_3 #BOOKS a, #PORTAL_6 #WAREHOUSING a, #PORTAL_7 #UNSTRUCTURED a, #PORTAL_15 #INTEGRATION a, #PORTAL_16 #GRID a { position: relative; top: 2px; background-color: white; color: #0a4e89; } PK3( # PK3%@OEBPS/dcommon/rarrow.gif/GIF87a絵ƌֵƽ{{ss֜ƔZZ{{{{ZZssZZccJJJJRRBBJJJJ991111))!!{,@pH,Ȥrl:ШLlԸ NCqWEd)#34vwwpN|0yhX!'+-[F 'n5 H $/14w3% C .90" qF 7&E "D mnB|,c96) I @0BW{ᢦdN p!5"D`0 T 0-]ʜ$;PKJV^PK3%@OEBPS/dcommon/prodbig.gif GIF87a!!!)))111BBBZZZsss{{ZRRcZZ!!1!91)JB9B9)kkcJJB991ssc絽Zcc!!{祽BZc!9B!c{!)c{9{Z{{cZB1)sJk{{Z{kBsZJ91)Z{!{BcsRsBc{9ZZk甽kBkR!BZ9c)JJc{!))BZks{BcR{JsBk9k)Zck!!BZ1k!ZcRBZcZJkBk1Z9c!R!c9kZRZRBZ9{99!R1{99R{1!1)c1J)1B!BJRkk{ƽ絵ތkk絵RRs{{{{JJsssBBkkk!!9ss{{ZZssccJJZZRRccRRZZ))cBBJJ99JJ!!c11991199Z11!c!!))Z!!!1BRck{)!cJBkZRZ,HP)XRÇEZ֬4jJ0 @ "8pYҴESY3CƊ@*U:lY0_0#  5tX1E: C_xޘeKT p { display: none; } /* Class Selectors */ .ProductTitle { font-family: sans-serif; } .BookTitle { font-family: sans-serif; } .VersionNumber { font-family: sans-serif; } .PrintDate { font-family: sans-serif; font-size: small; } .PartNumber { font-family: sans-serif; font-size: small; } PKeӺ1,PK3%@OEBPS/dcommon/indxicon.gifGIF87a!!!)))111999BBBJJJRRRZZZccckkksss{{{{s{sks,@pH,Ȥrl:Ш@Tx0CѠThDL q@(4L8C IrF   rM Dd aa CśfiiB PC9PA`S=gH B QDp1Ap)R"X3aƒC<₋0po 4P iU$4<… fe@kAC(oBݻL;PK#PK3%@OEBPS/dcommon/doclib.gif GIF89a1֭Μ{kc{JsBc9Zs1Jk,@Iv 5a-5-vasEnq0& ҈VF[|O @@48۪pM(7*X(ƙjo0Fq|uHu9(dK@ @Y ! mFt,gNh% NN@ F˿lN du_g%;PKY@ PK3%@OEBPS/dcommon/help.gif!GIF89a1εֵ֜֜{kZsBc{,@ )sƠTQ$8(4ʔ%ŌCK$A HP`$h8ŒSd+ɡ\ H@%' 6M HO3SJM /:Zi[7 \( R9r ERI%  N=aq   qƦs *q-n/Sqj D XZ;PKއ{&!PK3%@OEBPS/dcommon/uarrow.gif/GIF89aJJss{{{ތJJﭭ{{BB{{ZZJJ11RR1199ΥJJssƵ!!ZZƽ޽Όcc))ZZֵƥ!% Imported from GIF image: arrtop.gif,JJss{{{ތJJﭭ{{BB{{ZZJJ11RR1199ΥJJssƵ!!ZZƽ޽Όcc))ZZֵƥ@pH,Ȥrl: "bJ56avEz5ᡠRYc`%))'5Vq &zq 25p]i +3-]s *,0}K )8N){N )2Kà);JéoFԴJܽҔėzI $7oFt2(0b  l< ꑈ53=Z]'yuLG*)g^!8C?-6(29K"Ĩ0Яl;U+K9^u2,@@ (\Ȱ Ë $P`lj 8x I$4H *(@͉0dа8tA  DсSP v"TUH PhP"Y1bxDǕ̧_=$I /& .)+ 60D)bB~=0#'& *D+l1MG CL1&+D`.1qVG ( "D2QL,p.;u. |r$p+5qBNl<TzB"\9e0u )@D,¹ 2@C~KU 'L6a9 /;<`P!D#Tal6XTYhn[p]݅ 7}B a&AƮe{EɲƮiEp#G}D#xTIzGFǂEc^q}) Y# (tۮNeGL*@/%UB:&k0{ &SdDnBQ^("@q #` @1B4i@ aNȅ@[\B >e007V[N(vpyFe Gb/&|aHZj@""~ӎ)t ? $ EQ.սJ$C,l]A `8A o B C?8cyA @Nz|`:`~7-G|yQ AqA6OzPbZ`>~#8=./edGA2nrBYR@ W h'j4p'!k 00 MT RNF6̙ m` (7%ꑀ;PKl-OJPK3%@OEBPS/dcommon/index.gifGIF89a1޵ΥΥ{sc{BZs,@IM" AD B0 3.R~[D"0, ]ШpRNC  /& H&[%7TM/`vS+-+ q D go@" 4o'Uxcxcc&k/ qp zUm(UHDDJBGMԃ;PK(PK3%@OEBPS/dcommon/bookbig.gif +GIF89a$!!!)))111999BBBJJJRRRZZZccckkksss{{{skkB991)))!!B11))1!JB9B9!!cZ9ƭƽssk{ZZRccZRRJJJBBB9c!!ν)1)k{s絽ƌkssֽZccJRRBJJ{9BB)11)99!!))11!!k!JZ!)RcJccBcs)1c)JZ!BR!)BZ)99J!Rk9!c11B)Z{)9Bkc1kB9BZ!Z{9Rs)Jkksk9kB1s1Jk9Rƥc{k9s)Z{1k91)s1Rk)Jc1J!))BZ!1k{csc{)19B!)Bcsc{ksc{kZs!RkJkJkքc{9Zks{ck9R)Bks9R9R1J!)Z1B!)c)9)99BR19kksBBJcc{ccBBZ))9kk!!199c11ZBB{9!!R!!Z!!c))!!kR!!s!!BcksRZ1c9B)R91c1)Z!R9B9k1)RcZ{)!1B9JB9B)!)J9B!& Imported from GIF image: bookbig.gif,$!!!)))111999BBBJJJRRRZZZccckkksss{{{skkB991)))!!B11))1!JB9B9!!cZ9ƭƽssk{ZZRccZRRJJJBBB9c!!ν)1)k{s絽ƌkssֽZccJRRBJJ{9BB)11)99!!))11!!k!JZ!)RcJccBcs)1c)JZ!BR!)BZ)99J!Rk9!c11B)Z{)9Bkc1kB9BZ!Z{9Rs)Jkksk9kB1s1Jk9Rƥc{k9s)Z{1k91)s1Rk)Jc1J!))BZ!1k{csc{)19B!)Bcsc{ksc{kZs!RkJkJkքc{9Zks{ck9R)Bks9R9R1J!)Z1B!)c)9)99BR19kksBBJcc{ccBBZ))9kk!!199c11ZBB{9!!R!!Z!!c))!!kR!!s!!BcksRZ1c9B)R91c1)Z!R9B9k1)RcZ{)!1B9JB9B)!)J9BH`\Ȑ:pظа"A6DBH,V@Dڹ'G"v Æ ܥ;n;!;>xAܽ[G.\rQC wr}BŊQ A9ᾑ#5Y0VȒj0l-GqF>ZpM rb ;=.ސW-WѻWo ha!}~ْ ; t 53 :\ 4PcD,0 4*_l0K3-`l.j!c Aa|2L4/1C`@@md;(H*80L0L(h*҇҆o#N84pC (xO@ A)J6rVlF r  fry†$r_pl5xhA+@A=F rGU a 1х4s&H Bdzt x#H%Rr (Ѐ7P`#Rщ'x" #0`@~i `HA'Tk?3!$`-A@1l"P LhʖRG&8A`0DcBH sq@AXB4@&yQhPAppxCQ(rBW00@DP1E?@lP1%T` 0 WB~nQ@;PKGC PK3%@OEBPS/dcommon/darbbook.cssPKPK3%@OEBPS/dcommon/booklist.gifGIF89a1޵֥΄kZ{Jk1Rs!BZ)B),@I9Z͓Ca % Dz8Ȁ0FZЌ0P !x8!eL8aWȠFD(~@p+rMS|ӛR$ v "Z:]ZJJEc{*=AP  BiA ']j4$*   & 9q sMiO?jQ = , YFg4.778c&$c%9;PKː5PK3%@OEBPS/whatsnew.htmQ What's New in Oracle Services for Microsoft Transaction Server
PKh+V Q PK 3%@oa,mimetypePK3%@2:iTunesMetadata.plistPK3%@YuMETA-INF/container.xmlPK3%@~~~/OEBPS/index.htmPK3%@9-"(" OEBPS/toc.htmPK3%@4WROEBPS/img_text/ntmts012.htmPK3%@2؅72OEBPS/img_text/ntmts011.htmPK3%@ާ8=3= OEBPS/perftune.htmPK3%@9<OEBPS/prog.htmPK3%@E.qVlVOEBPS/recovery.htmPK3%@w D^OEBPS/toc.ncxPK3%@JSjOEBPS/cover.htmPK3%@%$@@lOEBPS/trouble.htmPK3%@75AFFOEBPS/img/ntmts012.gifPK3%@UTOEBPS/img/ntmts011.gifPK3%@:--JOEBPS/using.htmPK3%@1%*snxOEBPS/title.htmPK3%@gOEBPS/preface.htmPK3%@EYT˪OEBPS/content.opfPK3%@^ j;cOEBPS/install.htmPK3%@L6 },x,cOEBPS/glossary.htmPK3%@Mά""! OEBPS/dcommon/O_signature_clr.JPGPK3%@ r~$K.OEBPS/dcommon/topnav.gifPK3%@x[?:/OEBPS/dcommon/bookicon.gifPK3%@y <5OEBPS/dcommon/oracle-logo.jpgPK3%@Pz 'OEBPS/dcommon/feedbck2.gifPK3%@+&OEBPS/dcommon/rightnav.gifPK3%@枰pkOEBPS/dcommon/mix.gifPK3%@7 OEBPS/dcommon/larrow.gifPK3%@1FAOEBPS/dcommon/prodicon.gifPK3%@p*c^ZOEBPS/dcommon/conticon.gifPK3%@-OEBPS/dcommon/feedback.gifPK3%@je88OEBPS/dcommon/oracle-small.JPGPK3%@?[0OEBPS/dcommon/cpyr.htmPK3%@>OEBPS/dcommon/contbig.gifPK3%@3( # DOEBPS/dcommon/bp_layout.cssPK3%@JV^ROEBPS/dcommon/rarrow.gifPK3%@_ 2TOEBPS/dcommon/prodbig.gifPK3%@eӺ1,ZOEBPS/dcommon/doccd.cssPK3%@#\OEBPS/dcommon/indxicon.gifPK3%@Y@ h_OEBPS/dcommon/doclib.gifPK3%@އ{&!`OEBPS/dcommon/help.gifPK3%@hu,'bOEBPS/dcommon/uarrow.gifPK3%@v I BeOEBPS/dcommon/toc.gifPK3%@!:3.fOEBPS/dcommon/masterix.gifPK3%@H7 hOEBPS/dcommon/blafdoc.cssPK3%@S'" OEBPS/dcommon/leftnav.gifPK3%@l-OJwOEBPS/dcommon/oracle.gifPK3%@( OEBPS/dcommon/index.gifPK3%@GC ROEBPS/dcommon/bookbig.gifPK3%@rOEBPS/dcommon/darbbook.cssPK3%@ː5OEBPS/dcommon/booklist.gifPK3%@h+V Q "OEBPS/whatsnew.htmPK55

What's New in Oracle Services for Microsoft Transaction Server

This section describes new features of Oracle Database 11g Release 2 (11.2) and provides pointers to additional information.

The following sections describe the new features in Oracle Services for Microsoft Transaction Server.

Oracle Database 11g Release 2 (11.2) New Features

  • Support for Promotable Single Phase Enlistment

    Oracle database now allows all transactions to remain local until more than one database is brought into the transaction, at which point, they are promoted to distributed transactions.

  • Transparent Distributed Transactions on Real Applications Clusters

    The database now redirects all the branches of a distributed transaction to a single Oracle RAC instance automatically.