INFO: Using Oracle Databases with Microsoft Transaction Server
ID: Q193893
|
The information in this article applies to:
-
Microsoft Transaction Server 2.0
SUMMARY
This article describes how to use Oracle databases with Microsoft
Transaction Server (MTS).
This information replaces earlier documentation that described how
to use Oracle with Microsoft Transaction Server (MTS) including the
documentation that accompanied the Microsoft Transaction Server 2.0
release.
Microsoft Transaction Server components can access both Oracle 7 and Oracle
8 database servers. MTS components may access Oracle database servers on
Windows NT, Unix, and other systems. MTS components can also access Oracle
Workgroup Servers, Oracle Enterprise Servers, and Oracle Parallel Servers.
MORE INFORMATION
The following software is required to access an Oracle database from MTS
components.
Oracle 7.3
Component Version
---------------------------------------------------------------
Oracle Server on Windows NT 7.3.3.5.2 or later
Oracle SQL*Net 2.3.3.0.4 or later
Oracle Ociw32.dll 1.0.0.5 or later
Oracle Sqllib18.dll 1.8.3.0.4 or later
Oracle Xa73.dll 7.3.3.5.2 or later
Oracle Server on UNIX 7.3.3 or later with patches
Oracle 8
Component Version
---------------------------------------------------------------
Oracle Server on Windows NT 8.0.4.1.1c or later
Oracle Net8
Oracle Ociw32.dll 8.0.4.0.0 or later
Oracle Sqllib80.dll 8.0.4.1.0 or later
Oracle Xa80.dll 8.0.4.1.0 or later
Oracle Server on UNIX 8.0 or later
Microsoft
Microsoft Transaction Server 2.0 MTS 2.0 or later on Intel x86
MTS 2.0 and Windows NT4 Service Pack 4
or later on Compaq Alpha
Microsoft ODBC Driver for 02.73.7283.03 or later on Intel x86
Oracle (Msorcl32.dll) 2.573.2927 or later on Compaq Alpha
ActiveX Data Objects (ADO)*
(Msado15.dll) 1.50.2.2404 (MDAC 1.5c) or later NOTE: Earlier versions of the software may not work properly. Microsoft strongly suggests that you install the most recent patch release available from Oracle. The Oracle software versions in the preceding list are the minimum versions required, but please use the most recent version of Oracle software available. Failing to do this is by far the most common source of problems when trying to use Microsoft Transaction Server with Oracle.
Oracle 7.3 Database Server on Windows NT
Your transactional Microsoft Transaction Server components may access an
Oracle 7.3.3 or later database server on Windows NT. You can use either the
Oracle 7.3.3 Workgroup Server release for Windows NT or the Oracle 7.3.3
Enterprise Server release for Windows NT.
Microsoft does not recommend using Oracle 7.3.2 or earlier versions of Oracle with Microsoft Transaction Server. Oracle first supported XA transactions on Windows NT in the Oracle 7.3.3 release; therefore, you cannot use Oracle 7.3.2 or earlier releases when transactions require Microsoft Transaction Server. In the Oracle 7.3.3.5.0 and higher releases Oracle works much more reliably on multiprocessor computers and in highly multi-threaded applications such as Internet Information Server (IIS) or Microsoft Transaction Server.
Oracle 8 Database Server on Windows NT
Your transactional Microsoft Transaction Server components can access an
Oracle 8 database server on Windows NT.
Oracle 7 Database Server on UNIX
Your transactional Microsoft Transaction Server components can access an
Oracle 7.3 database server on UNIX.
You must install the Oracle 7.3.3 release (or later) for that UNIX
platform. In most cases, you also must install an Oracle 7.3.3 patch
release for Oracle on UNIX.
Check with the Oracle Customer Support to determine if an Oracle 7.3.3
patch release is required for your UNIX platform. Explain that you are
going to access your Oracle database on UNIX using the XA transaction
support that is included in the Oracle 7.3.3 release on Windows NT.
Oracle 8 Database Server on UNIX
Your transactional Microsoft Transaction Server components can access an
Oracle 8 database server on UNIX.
Oracle Client Software on Intel x86
Transactional Microsoft Transaction Server components that are running on Intel x86 can access an Oracle 7.3 or Oracle 8 database using either Oracle 7.3 or Oracle 8 Client software.
By default, Microsoft Transaction Server is configured to use Oracle 7.3
Client Software. For more information on configuring Microsoft Transaction
Server to use Oracle 8 Client software, please see the "Setting Up Oracle
Support" section in this article.
Oracle Client Software on Compaq Alpha
Transactional Microsoft Transaction Server components that are running on Compaq Alpha platforms may access an Oracle 7.3 or Oracle8 database using Oracle 7.3 Client software. The Required Software section specifies the versions of MTS and the Microsoft Oracle ODBC 2.5 driver you must install on the Compaq Alpha platform.
Currently, the Microsoft Oracle ODBC driver, Msorcl.dll will not work with
the Compaq Alpha Oracle 8 Client software. This Microsoft Oracle ODBC
driver problem should be corrected in a future release.
Oracle Ociw32.dll
When you use Oracle 7.3 Client software, you must install the Oracle
Ociw32.dll file designed to work with the Oracle 7.3 release. This DLL
file can be found in the \Win32\V7\Rsf73 directory of the Oracle 7.3 CD-
ROM.
Oracle also includes an older version of the Ociw32.dll file on the Oracle
7.3 CD-ROM that is designed to work with the Oracle 7.2 release. This DLL
file is located in the \Win32\V7\Rsf72 directory. This DLL does not work
with Microsoft Transaction Server.
The following version of the Oracle Ociw32.dll file is provided in the
\Win32\V7\Rsf72 directory and fails when used with Microsoft Transaction
Server:
Version: 7.x
Date: Thursday, February 01, 1996 12:50:06 AM
Size: 36 KB
Microsoft Transaction Server 2.0
You must install Microsoft Transaction Server 2.0 or later if you want to
access an Oracle database using Microsoft Transaction Server under
transaction control.
Microsoft ODBC Driver for Oracle
You must install one of the following Microsoft Oracle ODBC drivers if you wish to use Microsoft Transaction Server transactions from an Intel x86 platform.
MS Oracle ODBC Driver |
Version Number |
Release Vehicles |
2.0 updated |
2.73.7283.03 |
MDAC 1.5b
MDAC 1.5c
Windows NT 4.0 Option Pack |
2.0 updated |
2.73.7356 |
ODBC 3.5 SDK |
2.5 |
2.573.2927 |
Visual Studio 6.0
Data Access SDK 2.0
MDAC 2.0 |
You must install the Microsoft Oracle ODBC 2.5 driver version 2.573.2927, if you wish to use Microsoft Transaction Server transactions from a Compaq Alpha platform. Earlier versions of the Microsoft Oracle ODBC driver did not support the Compaq Alpha platform.
You can obtain the Microsoft Oracle ODBC Driver 2.5 from www.microsoft.com/data by following the "Downloads" link.
If you want to access an Oracle database, Microsoft suggests that you use one of the Microsoft Oracle ODBC Drivers listed above even if you do not require transaction support. These drivers offer better performance than the Oracle 1.0 driver they replace The Oracle 1.0 driver serialized all activity at the driver level; requests were single-threaded through the driver. The Oracle 2.0 and 2.5 drivers serialize all activities at the connection level. This allows different database connections to be used in parallel.
ActiveX Data Objects (ADO)
If your application uses ADO, Microsoft suggests that you install either
the Microsoft Data Access Components 1.5c release or the Microsoft Data
Access Components 2.0 release. You can obtain either of these releases
from the following Web site by following the "Download" link to the
"Universal Data Access Downloads" section:
http://www.microsoft.com/data/ Oracle Access from MSCS (Wolfpack) Clusters
If you wish to access an Oracle database from a Microsoft Transaction Server application residing on a MSCS (Wolfpack) cluster, you must install the Windows NT 4.0 Service Pack 4 release after installing the Windows NT4 Option Pack release.
Previously, Microsoft Transaction Server applications that resided on MSCS clusters could not access XA databases including Oracle databases. This was the result of a limitation in Microsoft Distributed Transaction Coordinator version 2.0. Microsoft Distributed Transaction Coordinator stores encryption information related to XA recovery in the Windows NT registry. Previously, this information could not be replicated between the two nodes in an MSCS cluster. As a result, Microsoft DTC could not be used with any XA compliant database in a clustered environment. This restriction has been eliminated in the NT 4.0 Service Pack 4 release.
Setting up Oracle Support
To set up Oracle to work with transactional Microsoft Transaction Server component, do the following:
- Install Oracle Database Server software.
Install the appropriate Oracle software on your database server system.
If your Microsoft Transaction Server application is accessing an Oracle database on either Windows NT or Unix, ensure that the latest Oracle patch is installed on that system. You can obtain the latest Oracle patches for Windows NT from the Oracle FTP site. Go to ftp://oracle-ftp.oracle.com and select "server", "wgt-tech", "server", and "WindowsNT"
- Install the Oracle Client software.
Install the latest Oracle 7.3 or Oracle 8 client software on your
Microsoft Transaction Server system.
Make sure that the latest Oracle 7.3 or Oracle 8 Client software patch release is installed on the system containing your Microsoft Transaction Server components. Customers often upgrade these Oracle patch releases on the system containing their Oracle database but fail to install the Oracle patch release on the system containing their Microsoft Transaction Server components. Oracle has corrected several bugs that affect their XA transactional client support; therefore, installing the latest Oracle patch release on your Microsoft Transaction Server system is essential. You can obtain the latest Oracle patches Windows NT from the Oracle FTP site. Go to ftp://oracle-ftp.oracle.com and select "server", "wgt-tech", "server", and "windowsNT"
If you are using Oracle 7.3 Client software, make sure that the correct
version of the Oracle Ociw32.dll is installed as described in the
Required Software section.
- Install Microsoft Transaction Server 2.0.
Install Microsoft Transaction Server 2.0 by installing the Windows NT 4.0 Option Pack release. When you install Microsoft Transaction Server 2.0, the following software will be installed:
- Microsoft Transaction Server 2.0, including the Microsoft OCI Interface DLL (MTXOCI.DLL)
- Microsoft ODBC 3.5 Driver Manager
- Microsoft ODBC Driver for Oracle 2.0
- ADO 1.5
-
Install Windows NT 4.0 Service Pack 4 or Windows NT 4.0 Service Pack 5
Install the Windows NT 4.0 Service Pack 4 or the Windows NT 4.0 Service Pack 5 release. These releases include corrections for several XA related MS DTC problems.
You must install the Windows NT 4.0 Service Pack 4 or Windows NT 4.0 Service Pack 5 releases after you install the Windows NT4 Option Pack release. This is essential because the NT 4.0 Service Pack setup program will only update MTS and MS DTC when the Windows NT4 Option Pack has previously been installed.
- Install Microsoft Data Access Components version 2.0 or later.
You can install the Microsoft Data Access Components 2.0 release from
the following Web URL by following the "Download" link to the
Universal Data Access Downloads section:
http://www.microsoft.com/data/
- Update the Oracle Client Software Registry Keys.
NOTE: If you are using the Oracle 7.3 Client software, you can skip this step.
If you are using the Oracle 8 Client software, you must modify the
values of two registry keys. Under the following registry key are two
string-named values that specify the names of the Oracle 7.3 Client
software .dlls:
HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Transaction
Server\Local Computer\My Computer
String-Named Values:
OracleXaLib "xa73.dll"
OracleSqlLib "sqllib18.dll"
Change these values to specify the names of the Oracle 8 Client
software .dlls:
OracleXaLib "xa80.dll"
OracleSqlLib "sqllib80.dll"
- Delete the Dtcxatm.log file.
If you have never installed the Microsoft Transaction Server 2.0 Beta
release, skip this step.
If you previously installed the Microsoft Transaction Server 2.0 Beta
release, use Windows Explorer to determine if the Dtcxatm.log file is
present on your system. If so, stop the Microsoft DTC service and delete
the Dtcxatm.log file.
You should only delete the Dtcxatm.log file once when you first upgrade
from the Microsoft Transaction Server 2.0 Beta release. You should never
delete the Dtcxatm.log file thereafter, because it may contain vital
recovery information.
- Enable Oracle XA Transaction Support.
If you are using Oracle 7.3:
- Make sure that V$XATRANS$ exists. This view should have been created when the XA library was installed. If this view does not exist, your Oracle system administrator must create it by running the Oracle-supplied script named "XAVIEW.SQL". This file can be found in C:\ORANT\RDBMS73\ADMIN. This SQL script must be executed by the Oracle user "SYS".
- The Oracle system administrator must grant SELECT access to the public on the $XATRANS$ view. This can be done as follows:
Grant Select on V$XATRANS$ to public
If you are using Oracle8:
- Oracle8 should have created both the V$XATRANS$ and the DBA_PENDING_TRANSACTIONS views. You should not need to create either of these views.
- The Oracle system administrator must grant SELECT access to the public for the DBA_PENDING_TRANSACTIONS view. This can be done as follows:
Grant Select on DBA_PENDING_TRANSACTIONS to public.
-
Configure Enough Concurrent Distributed Transactions.
In the Oracle Instance Manager, click Advanced Mode on the View menu and select "Initialization Parameters" in the left pane. In the right pane, select Advanced Tuning and increase the "distributed_transactions" parameter to allow more concurrent MTS transactions to update the database at a single time.
- Configure Integrated Security.
Integrated security allows an Oracle database to rely upon Windows NT
authentication to validate database users. This permits a user to log in
to Oracle without supplying a separate login ID or password. Users can
maintain one login ID and password for both Windows NT and Oracle.
If your Microsoft Transaction Server components always supply a login ID
and password when connecting to Oracle databases, then you are not using
integrated security. This is true whether your applications specify the
login ID and password directly or indirectly through a data source name
(DSN). In either event, you are not using integrated security and can
ignore this step.
If you use integrated security, you must configure Microsoft Distributed
Transaction Coordinator to run under a login ID and password authorized
to connect to your Oracle database. This is required because during
database recovery, Microsoft Distributed Transaction Coordinator opens
your Oracle database to tell it the outcome of in doubt transactions.
You can configure the login ID for the Microsoft Distributed Transaction
Coordinator as follows. From the Start menu, choose Settings and then select Control Panel. Start the Services applet on the control panel.
Select MSDTC. Select "Log On As" and specify a login ID and
password. Use the Oracle security administration tools to make sure that
the login ID you specify is authorized to open your Oracle database.
For more information on Oracle's integrated Windows NT security
facilities, consult your Oracle documentation.
- Configure Oracle Multi-Threaded Server Support.
You must configure the Oracle "Multi-Threaded Server" feature if you
want to open a database link to a remote Oracle database. This is
essential because when using XA transaction support, the Oracle database
must be able to move the XA transaction between processes (in the
general case) so it cannot have any operating system file descriptors
open but rather it must connect to the remote database using a virtual
circuit. Support for Virtual circuits is available only with Oracle
"Multi-Threaded Server".
If the Oracle "Multi-Threaded Server" feature is not configured
properly, Oracle reports the following error:
ORA-24777: Cannot create migratable transaction
NOTE: Oracle refers to the "Multi-Threaded Server" feature using the
acronym "MTS". Microsoft refers to "Microsoft Transaction Server" using the
acronym "MTS". The only relation between these two terms is the one
described in the preceding section. Microsoft apologizes for the confusion.
- Configure Oracle to support more connections.
If you want to create more than a few dozen connections to an Oracle
database, you must configure the Oracle server to support additional
database connections. Please see the "Configuring Oracle to Support a
Large Number of Connections" section for more information.
Testing Installation and Configuration of MTS Support for Oracle
After installing and configuring Oracle support, you must validate your
Oracle installation using the Oracle test program installed with MTS. The
Oracle test program uses Oracle's OCI XA interfaces in much the same way
that MTS uses them.
The Oracle test program determines whether you can connect to an Oracle
database using Oracle's XA facility. The Oracle test program uses standard
Oracle interfaces and transaction facilities. It makes no use of Microsoft
Transaction Server or Microsoft Distributed Transaction Coordinator.
Therefore, failure of the test program indicates an improper installation
or configuration of your Oracle system. If the Oracle test program fails,
reinstall and reconfigure Oracle, or contact the Oracle Support
Organization for assistance.
To obtain the Oracle test program:
The Oracle test program for Oracle7 is installed when Microsoft Transaction Server is installed. You may obtain both the source and object code for the Oracle test program for Oracle 7.3 from ftp://ftp.microsoft.com/bussys/viper/Utilities/OracleTestProgram/Oracle7.3/
You may obtain both the source and object code for the Oracle test program for Oracle8 from ftp://ftp.microsoft.com/bussys/viper/Utilities/OracleTestProgram/Oracle8/
You may compile the source code for either Oracle 7.3 or Oracle8 using the C++ compiler. If you recompile the Oracle test program, Microsoft recommends you call the resulting program "TestOracleXaConfig.exe". That is the name Microsoft gives it and the instructions that follow assume that you use that name.
To run the Oracle test program follow these steps:
- Verify that you have installed all of the correct versions of the
software as described in the Required Software section.
- Create an ODBC DSN that refers to your Oracle database. Make sure that your DSN uses the new Microsoft Oracle ODBC driver.
- Ensure that you have enabled Oracle XA support as described in EnableOracleXATransactionSupport.
- Delete all existing Oracle trace files from the computer containing the
MTS components that access the Oracle database. The easiest way to do
this is to use the Windows Explorer to locate and delete all *.trc
files.
If the Oracle test program fails, the trace files may help you determine
the source of the problem. By deleting all obsolete trace files, you
make it easier to find any newly created ones.
- If you never installed the Microsoft Transaction Server 2.0 beta
release, you can skip this step.
If you have previously installed the Microsoft Transaction Server 2.0 beta
release, use the Windows Explorer to determine if the Dtcxatm.log file
is present on your system. If so, stop the Microsoft DTC service and
delete the Dtcxatm.log file.
You should only delete the Dtcxatm.log file once when you first upgrade
from the Microsoft Transaction Server 2.0 beta release. You should never
delete the Dtcxatm.log file thereafter, because it may contain vital
recovery information.
- From the MS-DOS Command prompt run the Oracle test program(TestOracleXAConfig.exe) and supply your Oracle server user ID, password and service_name. For example:
c:>TestOracleXaConfig.exe -U<user id> -P<Password>
-S<Service_Name as contained in the TNS file>.
-
If you run the test program without any parameters, it displays help
information that describes the required parameters.
The test program displays information about each Oracle operation it
performs and indicates whether each operation was successful.
- If the Oracle test program is able to connect to your Oracle database
server without error, then it is very likely that MTS works with Oracle
also. If the Oracle test program reports any errors, follow these steps:
- Document the exact error message that the Oracle test program
displays.
- Examine the Oracle trace file produced when running the Oracle test
program. The Oracle trace information is located in the *.trc file.
The Oracle trace file contains extended error information that is
extremely helpful in diagnosing problems.
- Contact your Oracle support representative for assistance.
Validating Oracle Installation and Configuration Using the Sample Bank
Application
After you have validated your Oracle installation and configuration using
the Oracle test program, you should use the Sample Bank Application
supplied with Microsoft Transaction Server to make sure that Microsoft
Transaction Server can access your Oracle database.
Validating Oracle Support Using the Sample Bank Application
- Verify that your Oracle system installation and configuration is correct
by using the Oracle test program provided by MTS. If the Oracle test
program reports any error, you must correct that problem before
proceeding.
- On the Oracle database server, create a table named "Account". The
following example demonstrates how to set up the Account table:
Owner scott
Name of Table Account
Column 1 Name AccountNo of type NUMBER
Column 2 Name Balance of type NUMBER
- Populate the Account table with at least two rows. The following table
illustrates how to populate the table:
AccountNo Balance
--------------------------
1 1000
2 1000
- On the Oracle database server, create a table named Receipt. The
following example demonstrates how to set up the Receipt table:
Owner scott
Name of Table Receipt
Column 1 Name NextReceipt of type NUMBER
- Populate the Receipt table with at least one row. The following example
illustrates how to populate the table:
NextReceipt
1000
- Create a file DSN using the ODBC configuration utility. Name the file
DSN "MTSSamples". Next, manually update the DSN file to add the user's
password. The following example demonstrates how to add the user's
password to a file DSN
[ODBC]
DRIVER=Microsoft ODBC for Oracle
UID=scott
PWD=mypassword
ConnectString=myserver
SERVER=myserver
- Save the file DSN and run the Sample Bank client.
Administering Oracle and Microsoft Distributed Transaction Coordinator
DLL Name Changes in Future Releases of Oracle
Oracle changes DLL names when they release new versions of their product.
Microsoft Transaction Server relies upon knowing the name of some Oracle
Client DLLs. MTS stores these DLL file names in the following registry
key:
HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Transaction
Server\Local Computer\My Computer
By default, Microsoft Transaction Server stores the Oracle 7.3 Client DLL
names as two string-named values:
OracleXaLib "xa73.dll"
OracleSqlLib "sqllib18.dll"
If you want to use Oracle 8 Client software, you must change these values
to specify the names of the Oracle 8 Client software DLLs:
OracleXaLib "xa80.dll"
OracleSqlLib "sqllib80.dll" Changing the UserId under Which Microsoft Distributed Transaction
Coordinator (DTC) Runs
Microsoft Distributed Transaction Coordinator maintains information in the
secure portion of the Windows NT registry. It uses this information when
performing recovery with XA compliant databases including Oracle. If you
change the userid under which Microsoft Distributed Transaction Coordinator
executes, you must be careful to ensure that Microsoft Distributed
Transaction Coordinator can still access the information it has previously
stored in the secure portion of the registry.
If you change Microsoft Distributed Transaction Coordinator[ASCII 146]s userid, and
it is unable to access the information in the secure registry, you see the
following message in the Windows NT event log:
XATM log object failed to set log encryption key.
You can correct this problem with the following steps:
- Stop Microsoft Distributed Transaction Coordinator.
- Change the userid for the Microsoft Distributed Transaction Coordinator
back to its previous value. Alternately, you can assign a userid that is
a member of the administrative group. To change the userid and pass
word, run the Services applet in Control Panel, select the
entry for "MSDTC", and change the "log on as" value.
- Restart Microsoft Distributed Transaction Coordinator.
Configuring Oracle to Support a Large Number of Connections
If you want to create more than a few dozen connections to an Oracle
database, you must configure the Oracle server to support additional
database connections.
You may experience one or more of the following errors if you fail to do
this:
- Failures on SQLConnect calls.
- Failures to enlist on the calling object's transaction, which may result
in any of the following errors in the Oracle trace file:
Too many sessions
TNS server failed to locate the server name
Too many distributed transactions
- Timeouts while waiting for database locks. This is likely to occur if
the configured number of locks is insufficient for the number of
concurrently active transactions.
- Record collision due to locks held by in-doubt transactions.
If you experience any of these problems, consider increasing the following Oracle server configuration parameters:
Oracle Configuration Parameter Notes
--------------------------------------------------------------------
sessions The value for sessions should
typically be three times the total
number of database connections
that you expect your applications
to make.
distributed_lock_timeout
distributed_transactions
dml_locks
max_transaction_branches
open_cursors
processes
queuesize If the queue size for the Oracle
Listener process is inadequate,
The Listener sometimes falls
behind and rejects database open
requests. This happens if the
Oracle Listener receives too many
connection requests and its queue
overflows. A client that
encounters this error reports the
following error message and the
client log or trace files show
the ECONREFUSED message:
ORA-12541: No Listener
To correct this problem follow
these steps:
1. Stop the Oracle listener on the
system containing the Oracle
database server.
2. Increase the QUEUESIZE
parameter in the Listener.ora,
Tnsnet.ora, or Names.ora files
on the Oracle database server
system. Choose the queue
size based on the number of
simultaneous, or nearly
simultaneous, connection
requests you anticipate.
Microsoft suggest that you select a
generous value for QUEUESIZE
because the Oracle system
typically opens more than one
database connection for each
transactional database
connection that your
application opens. As a
result, the Oracle listener
queue may become full and
overflow.
To accommodate 100 requests,
change the LISTENER.ORA file
as follows:
QUEUESIZE = 100
3. Restart the Oracle listener.
Known Limitations of MTS Support for Oracle
ADO 1.5 Release Is Required When Using ODBC 3.5
If your applications use ADO, make certain that you install the ADO 1.5c
release or later. Please refer to the Required Software section for more
information.
Microsoft Oracle ODBC Driver and Oracle 8
Currently, the Microsoft Oracle ODBC driver (MSORCL.DLL) will not work with the Compaq Alpha Oracle8 Client software. Microsoft intends to correct this Microsoft Oracle ODBC driver problem in a future release.
Oracle Ociw32.dll Version Problem
It is important that have the correct version of the Ociw32.dll file
installed on your computer. You should check the version of this DLL file
every time you reinstall Oracle software.Refer to OracleOCIW32DLL for more information.
Oracle Ociw32.dll Corrupts Microsoft DTC During Startup
This problem occurs because both MTS and MS DTC must load the Oracle
Ociw32.dll file on their main thread before doing any operation that
might access an Oracle database. MTS must load the Mtxoci.dll file
because your application may want to open a connection to an Oracle
database. MS DTC must load the Mtxoci.dll file because it may need to
perform Oracle database recovery. Since Microsoft cannot predict whether your
application may want to use an Oracle database, Microsoft always load the
Ociw32.dll file.
Microsoft is forced to load the Ociw32.dll file unconditionally at
initialization because of the way that Oracle is implemented on Windows
NT. Oracle's implementation on Windows NT monitors all thread attaches.
It insists on seeing all thread attaches and only accepts database open
requests from threads for which it has seen the initial thread attach.
Because of this, Microsoft cannot just fault in the Oracle support DLLs when you
actually use them.
You can circumvent this problem using one of the following two methods:
Method One
If you never use Oracle with MTS or MS DTC, you can rename or delete the
Microsoft Oracle database support .dll file, Mtxoci.dll. When you
initiate MTS and MS DTC, they look for and load the Mtxoci.dll file. The
Microsoft Mtxoci.dll then loads the Oracle Ociw32.dll file. MTS and MS
DTC continue to work properly if MTS and MS DTC cannot locate and load the
Mtxoci.dll file. However, MTS and MS DTC cannot access or recover an Oracle
database if this .dll file is absent.
Second Method
Alternately, you can install the Oracle Ociw32.dll file designed to work
with the Oracle 7.3 release. You can find this .dll file in the
WIN32\V7\RSF73 directory of the Oracle 7.3 CD-ROM. You must install
version 1.0.0.5 or later of this .dll file.
Oracle includes an older version of the Ociw32.dll file on the Oracle 7.3
CD-ROM that is designed to work with the Oracle 7.2 release. You can find
this .dll file in the WIN32\V7\RSF72 directory. This .dll file does not
work with Microsoft Transaction Server. The following version of the
Oracle Ociw32.dll file is provided in the WIN32\V7\RSF72 director and
fails when used with Microsoft Transaction Server:
Version 7.x
Thursday, February 01, 1996 12:50:06 AM
Size 36 KB
REFERENCES
For the latest information on Microsoft Transaction Server, please see the
following World Wide Web site:
http://www.microsoft.com/
Additional query words:
kbMTS kbOracle KbClientServer
Keywords : kbMTS kbMTS200 kbOracle kbWinDNA kbGrpCom kbDSupport
Version : winnt:2.0
Platform : winnt
Issue type : kbinfo
|