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:

  1. 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"


  2. 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.


  3. 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




  4. 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.


  5. 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/


  6. 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"


  7. 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.


  8. Enable Oracle XA Transaction Support.

    If you are using Oracle 7.3:
    1. 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".


    2. 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:
    1. Oracle8 should have created both the V$XATRANS$ and the DBA_PENDING_TRANSACTIONS views. You should not need to create either of these views.


    2. 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. 




  9. 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.


  10. 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.


  11. 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.


  12. 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:
  1. Verify that you have installed all of the correct versions of the software as described in the Required Software section.


  2. Create an ODBC DSN that refers to your Oracle database. Make sure that your DSN uses the new Microsoft Oracle ODBC driver.


  3. Ensure that you have enabled Oracle XA support as described in EnableOracleXATransactionSupport.


  4. 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.


  5. 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.


  6. 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>. 


  7. 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.


  8. 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

  1. 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.


  2. 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 


  3. Populate the Account table with at least two rows. The following table illustrates how to populate the table:
    
          AccountNo       Balance
          --------------------------
    
          1                1000
          2                1000 


  4. 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 


  5. Populate the Receipt table with at least one row. The following example illustrates how to populate the table:
    
          NextReceipt
          1000 


  6. 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 


  7. 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:

  1. Stop Microsoft Distributed Transaction Coordinator.


  2. 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.


  3. 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


Last Reviewed: November 23, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.