Using
Microsoft Transaction Server with Oracle8i
A68065-01 |
|
This chapter provides Oracle Service for MTS troubleshooting
information.
Specific topics discussed are:
Trace files record information on Oracle Service for MTS performance. The information provided includes:
Use the Advanced tab of the Oracle Service for MTS Properties
dialog box to specify trace levels and the output file name. You access
this dialog box through the Oracle Manager for MTS Services snap-in of
the Microsoft Management Console Explorer. See section "Modifying
Oracle Service for MTS Trace File and MS DTC Information" for instructions.
In addition, there are two registry parameters to handle tracing within ORAMTS.DLL. ORAMTS.DLL implements the API for integrating the Oracle8i database with Microsoft Transaction Server. ORAMTS.DLL is a resource dispenser providing pooled OCI connections. ORAMTS.DLL also allows clients with non-pooled OCI connections to enlist in MS DTC-initiated transactions. The ORAMTS.DLL communicates with the Oracle Service for MTS to enlist the Oracle8i database in MS DTC-initiated transactions.
This table describes the range of trace values:
Level | Description |
---|---|
0 |
No tracing1 |
1 |
Traces errors only |
2 |
Traces important events in addition to errors |
4 |
Traces function entry/exit, important events, and errors |
Set these parameters either as environmental variables for
in- or out-of-process Microsoft Transaction Server components at the MS-DOS
command prompt or in the registry:
Oracle Service for MTS tracing is controlled through the
Oracle Manager for MTS Services snap-in.
If you experience Windows NT Explorer crashes or other unexpected
Windows NT problems when using Microsoft Transaction Server with an Oracle8i
database, install the Windows NT 4.0 Service Pack 4 available from Microsoft.
When the Oracle Service for MTS is correctly configured and running properly, the trace file displays the following message:
============================================ OracleMTSService0 9/11/1998 19:58:09 -------------------------------------------- ... 530515: [273] Oracle MTS Service - Accepting new enlistment requests. ...
If this message is not present and the Oracle Service for
MTS is running (that is, the process has not exited), then the Oracle Service
for MTS cannot complete the startup process. These are the most common
causes for this problem:
Cause | Solution |
---|---|
The database has not been started or the account information
of the service is incorrect.
|
Try connecting with SQL*Plus using the user name and database
alias (net service name) that the Oracle Service for MTS is configured
to use. If SQL*Plus fails to connect, the Oracle Service for MTS also fails.
To correct this problem, start up the database and/or correct the login
information of the Oracle Service for MTS. See Appendix
B, "Deleting or Modifying an Existing Oracle Service for MTS" for information.
|
MS DTC is not running. |
Using the Microsoft Transaction Server Explorer, verify that MS DTC is running. If MS DTC is not running, see section "Starting MS DTC" for startup instructions. |
Recovery is being performed or cannot complete. |
The Oracle Service for MTS does not start new transactions before all active transactions from an older run of the service are aborted. The following message is written to the trace file when recovery starts: 529765: [273] Recovery - Starting. In-doubt: number, Active: number. The number following "Active:" indicates the number of active transactions to abort. If the trace file shows that active transactions cannot be aborted during recovery, do the following: |
Windows NT 4.0 Service Pack 4 or the special downloadable MS DTC patch is not installed. |
Install either product (Service Pack 4 is recommended). When neither product is installed, the following message is written to the trace file: 790172218: [135] DTCMgr::Initialize - Error: QueryInterface(IID_IResourceManager2) failed with error -2147467262. Retrying. 790172218: [135] DTCMgr::Initialize - Error: please make sure MS DTC is running. 790172718: [299] OracleMTSService0 is exiting. |
Oracle Service for MTS problems and other significant occurrences are recorded as events. These events are recorded in an application event log. View and manage these recorded events in the Event Viewer. The types of events displayed include:
To access the Event Viewer:
The icons beside each event determine the type of event:
The Oracle Service for MTS events display with a source of
Oracle Service for MTS. Oracle Service for MTS consists of the following
event IDs:
To use the Event Viewer:
Additional
Information:
See your Microsoft Windows NT documentation for more information on using the Windows NT Event Viewer. |
If the Oracle Service for MTS is running, but you do not
receive a message in your trace file indicating that it is accepting new
enlistment requests, ensure that the Microsoft Transaction Server's MS
DTC component is started. MS DTC must be running to enable communication
with the Oracle Service for MTS.
To start MS DTC:
The Oracle Manager for MTS Services snap-in includes an Identification
tab in the Oracle Service for MTS Properties dialog box that enables
you to view information that can be useful when debugging problems with
Oracle Support Services. Note that none of the information in the Identification
tab can be changed.
To view configuration information:
The connection pool provided by the ORAMTS layer (that is,
ORAMTS.DLL) uses a connection's Net8 net service name to identify pooled
connections for an application. If changes are made to the Net8 net service
name (for example, altering the host or the database system identifier
(SID) for the Net8 net service name in TNSNAMES.ORA), and there are currently
pooled connections, the application using the connection pool must be stopped
and restarted.
This ensures that all currently pooled connections corresponding
to the old Net8 net service name are destroyed and any new pooled connections
use the changes made to the Net8 net service name. This includes both the
Oracle Service for MTS and any application hosting Microsoft Transaction
Server components.
Note: It is not recommended that you change the Net8 net service name that the Oracle Service for MTS uses to connect to a different database. If you must do this, follow the procedures in section "Preparing to Modify or Delete an Existing Oracle Service for MTS" before changing the Net8 net service name. |
To empty connection pools:
Note: See the table in section "Using Trace Files" for definitions of out-of-process and in-process Microsoft Transaction Server components. |
This section presents answers to common questions you may
have when using Microsoft Transaction Server with an Oracle8i database.
Question: How do I design an application when I have multiple
Oracle8i databases?
This release of the Oracle Service for MTS does not support
the use of database links between Oracle8i databases running in
dedicated
server configurations. As alternatives, the Oracle Service for MTS
supports using database links in a multi-threaded server environment or
providing each Oracle8i database with its own Oracle Service for
MTS in a dedicated server environment. This figure illustrates these alternatives:
Question: What are the differences between Oracle's Net8
connection pooling, OCI connection pooling, and Microsoft Transaction Server
connection pooling?
Net8 connection pooling is a server-side feature that is
implemented only if your Oracle8i database is configured for multi-threaded
server support. Net8 connection pooling enables you to minimize the number
of physical network connections to a multi-threaded server. This is achieved
by sharing a dispatcher's set of connections among multiple client processes.
OCI connection pooling is a client-side feature that allows
for the caching of Net8 connections to Oracle8i databases. It also
allows for the multiplexing of multiple sessions to an Oracle8i
database over a single Net8 connection. This second feature is not supported
in ORAMTS.DLL for this release because of potential deadlock issues.
Microsoft Transaction Server connection pooling maintains
a pool of Net8 connections and only uses one OCI session per Net8 connection.
Question: Can you use operating system authentication with
your Oracle Service for MTS user name?
Yes, but only on Windows NT. Operating system authentication
is not supported when connecting to databases on other platforms. See the
Getting
Started guide included with your Oracle8i database on Windows
NT. See the following sections in this guide for instructions on creating
an operating system-authenticated Oracle Service for MTS user:
To Enable Operating System Authentication For... | See... |
---|---|
A new Oracle Service for MTS |
"Creating a New Operating System Authenticated Oracle Service for MTS" |
An existing Oracle Service for MTS |
"Enabling an Existing Oracle Service for MTS to be Operating System Authenticated" |