Using Microsoft Transaction Server with Oracle8 Release 8.1.6 for Windows NT Part Number A73029-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 Oracle8 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 Oracle8 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 Oracle8 database, install the Windows NT 4.0 Service Pack 4 or greater (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 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 greater is not installed. |
Install Service Pack 4 or greater. When Service Pack 4 or greater is not 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 Event Viewer window appears.
The Application view displays the following information:
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:
The Event Detail dialog box appears with more information about the selected event:
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 Microsoft Management Console appears.
A menu appears with several options.
MS DTC starts.
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 Microsoft Management Console appears.
A menu appears with several options:
A message indicates that the Oracle Service for MTS has stopped.
A menu appears with several options.
The Properties dialog box appears.
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. |
Microsoft Transaction Server components are typically hosted within the Internet Information Server (IIS) or by a surrogate process (MTX.EXE). These processes typically log on to the operating system with their own user credentials. When a Microsoft Transaction Server component acquires an enlisted connection to an Oracle8 database, the component uses name pipe-based interprocess communication (IPC) to contact the Oracle Service for MTS for that database. To ensure that this pipe can be opened under all circumstances, perform the following tasks on the Windows NT computer on which the Oracle Service for MTS is located:
To ensure that the pipe can be opened:
C:\> NET SHARE IPC$
The User Properties dialog box appears.
C:\> SQLPLUS
SQL> CONNECT SYSTEM/PASSWORD
where PASSWORD is MANAGER by default, unless you changed it after installation.
SQL> SELECT PIPENAME FROM MTS_PROXY_INFO;
Your output is of the form PSIPEn, where n is some number.
C:\> REGEDT32
The parameter NullSessionPipes appears on the right side of the window. This parameter uses the data type REG_MULTI_SZ (for a list of strings).
The Multi-String Editor dialog box appears.
Packages that are activated as "server packages" and log on with the Windows NT System user account can have trouble enlisting in Microsoft Transaction Server transactions even when the Oracle Service for MTS and the Oracle database are up and running. This can be corrected by setting the package's identity in the Microsoft Transaction Server Explorer to a user account other than the Windows NT System account.
To set a package's identity to a different user account:
This section presents answers to common questions.
Question: How do I design an application when I have multiple Oracle8 databases?
Oracle Service for MTS does not support the use of database links between Oracle8 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 Oracle8 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 Oracle8 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 Oracle8 databases. It also allows for the multiplexing of multiple sessions to an Oracle8 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 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" |
|
![]() Copyright © 1996-2000, Oracle Corporation. All Rights Reserved. |
|