Using Microsoft Transaction Server with Oracle8 Release 8.1.6 for Windows NT Part Number A73029-01 |
|
This chapter provides Oracle Service for MTS performance tuning information:
Specific topics discussed are:
With release 8.1.5, the Oracle Service for MTS automatically shut down in the following situations:
With release 8.1.5, you needed to manually restart the Oracle Service for MTS. For these situations in releases 8.0.6 and 8.1.6, the Oracle Service for MTS automatically restarts and attempts to re-establish a connection to the Oracle database. Upon re-establishing the connection, all existing, active, enlisted transactions are aborted. Transactions prepared before the Oracle Service for MTS shut down are either committed or aborted, depending upon the outcome of the transaction (determined by the Microsoft Distributed Transaction Coordinator (MS DTC).
For example, if component A was enlisted in a transaction when the Oracle Service for MTS shut down, then:
However, if component A called the SetComplete() method on the Microsoft Transaction Server transaction context object, and the MS DTC successfully prepared the transaction before the Oracle Service for MTS shut down, the service on restart:
Users can check an entry in the Event Viewer to determine if the Oracle Service for MTS has been restarted. See "Using the Event Viewer" for instructions on using the Event User.
Attention: If Oracle Service for MTS does not restart, transactions remain "in-doubt" and must be manually committed or aborted. See Oracle8i Distributed Database Systems for information on manually committing or aborting these transactions. |
You can improve performance when you:
Optimize your network interconnects between the computer running the Component Object Model (COM) components and the computer running the Oracle Service for MTS (if they are different) and the interconnects between these computers and the computer running the Oracle8 database.
Placing all your code for a given transaction into one COM component means you do not need to mark that component as transactional. This eliminates the overhead of going through Microsoft Transaction Server and the Oracle Service for MTS. You can then use the Oracle commit or rollback functions to control that transaction in your component. If you are using OCI, you can still use ORAMTSSvcGet(), but you can also use the ORAMTS_CFLG_NOIMPLICIT flag. If you are updating across two or more Oracle8 databases, use database links and connect to one database from your COM component.
See "Integrating OCI with Microsoft Transaction Server" for more information on using ORAMTSSvcGet().
When a COM component ends a session with the Oracle8 database, the connection by default does not immediately terminate. Instead, the connection remains idle in a connection pool, where it is available for reuse by another COM component attempting a new connection to the Oracle8 database.
The idle period during which a connection can be reused 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 that you can modify on the computers on which the client Microsoft Transaction Server components and the Oracle Service for MTS are installed. The Oracle Service for MTS uses a similar connection pool. The connection pool is located in two places:
The following illustration identifies the connection pool locations and the registry parameters associated with each pool:
This table describes the client side registry parameters that you can modify to manage connection pooling:
This table describes the server side registry parameters that you can modify to manage connection pooling:
To edit the connection pool registry settings:
For... | Log on to the computer where... |
---|---|
Server side parameters |
Oracle Service for MTS is installed |
Client side parameters |
Client Microsoft Transaction Server components are installed |
C:\> REGEDT32
If your transaction requests are timing out before completing, it may be because the transaction timeout parameter is set too low. Increase the transaction timeout parameter to ensure that your transactions have sufficient time to complete.
To increase the transaction timeout parameter:
The Microsoft Management Console appears.
A menu appears with several options.
The My Computer Properties dialog box appears.
The transaction timeout value is increased. For most environments, 60 seconds may be sufficient. However, if your transaction is competing with numerous concurrent transactions, this value may be too low.
You may need to set several initialization parameters to the values described below in order to use your Oracle8 database with Microsoft Transaction Server. The values to which to set these parameters are based upon your database workload environment. See section "Verifying Initialization Parameter File Values" for information on determining proper parameter settings.
To set initialization parameters:
If Using An... | Go to... |
---|---|
8.1.x databases |
ORACLE_BASE\ADMIN\DB_NAME\PFILE\INIT.ORA |
8.0.6 databases |
ORACLE_HOME\DATABASE\INITSID.ORA |
C:\> SQLPLUS
ENTER USER-NAME: INTERNAL
SQL> SHUTDOWN
SQL> STARTUP
SQL> EXIT
|
![]() Copyright © 1996-2000, Oracle Corporation. All Rights Reserved. |
|