Microsoft Transaction Server や COM+ コンポーネントで Oracle を使用する方法

文書翻訳 文書翻訳
文書番号: 193893 - 対象製品
この記事は、以前は次の ID で公開されていました: JP193893
重要 : この資料には、レジストリの編集方法が記載されています。万一に備えて、編集の前には必ずレジストリをバックアップし、レジストリの復元方法を理解しておいてください。バックアップ、復元、および編集方法の詳細を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
256986 Microsoft Windows レジストリの説明
この資料は、Microsoft Transaction Server (MTS) 2.0 のリリースに付属するマニュアルなど、Microsoft COM+ コンポーネントや Microsoft Transaction Server (MTS) で Oracle を使用する方法を説明した以前の文書を置き換えるものです。
すべて展開する | すべて折りたたむ

目次

概要

COM+ コンポーネントや MTS コンポーネントを使用して、Oracle 7、Oracle 8、Oracle 8i、および Oracle 9i データベース サーバーにアクセスできます。これらは、Microsoft Windows NT、Microsoft Windows 2000、UNIX などのオペレーティング システム上の Oracle データベース サーバーにアクセスできます。また、これらは Oracle Workgroup Server、Oracle Enterprise Server (Oracle Enterprise Edition)、および Oracle Parallel Server にアクセスできます。

: 以前のバージョンの Oracle Client には COM+ や MTS に関する問題があるため、現在サポートされている Oracle Client のバージョンは 8.1.7 以降です。Oracle Client 8.1.7 を使用しても、それ以前のバージョンの Oracle Server にはアクセスが可能です。ただし、詳細については Oracle のサポートに問い合わせてください。

詳細

COM+ コンポーネントや MTS コンポーネントのソフトウェアで Oracle データベースを使用する場合の、推奨されるインストール順序を次に記載します。ここに記載されたとおりの順序でインストールを実行しない場合、構成上の問題によりこれらのコンポーネントが期待どおりに動作しない場合があります。

Windows 2000

トランザクション COM+ コンポーネントで Oracle を使用するには、次の手順を実行します。
  1. Windows 2000 をインストールします。
  2. Oracle Client 8.1.7 と更新プログラム 8.1.7.1.5 をインストールします。最新の更新プログラムのインストール方法については、Oracle に問い合わせてください。
  3. Oracle Net8 をインストールし、最新の更新プログラムを適用します。
  4. Microsoft Data Access Components (MDAC) 2.6 Service Pack 1 (SP1) 以降をインストールします。
  5. クライアント ソフトウェアのレジストリ キーを更新します。詳細については、この資料の「手順 7 : Oracle Client ソフトウェア レジストリ キーの更新」を参照してください。

Windows NT 4.0

トランザクション MTS コンポーネントで Oracle を使用するには、次の手順を実行します。
  1. Windows NT をインストールし、SP6a 以降を適用します。
  2. Oracle Client 8.1.7 と更新プログラム 8.1.7.1.5 をインストールします。最新の更新プログラムのインストール方法については、オラクルに問い合わせてください。
  3. Oracle Net8 をインストールし、最新の更新プログラムを適用します。
  4. Windows NT Option Pack をインストールします。
  5. Windows NT SP6a をインストールします。
  6. MDAC 2.6 SP1 以降をインストールします。
  7. クライアント ソフトウェアのレジストリ キーを更新します。詳細については、この資料の「手順 7 : Oracle Client ソフトウェア レジストリ キーの更新」を参照してください。
これらの手順の詳細については、この資料の「Oracle サポートのセットアップ」を参照してください。

: この資料に記載されているすべてのバージョン番号は、この資料が作成された時点のものです。Oracle ソフトウェアと Microsoft ソフトウェアのすべてについて、最新のバージョンと最新の更新プログラムを使用することを強く推奨します。この資料に記載のあるコンポーネントによっては、以前のバージョンでも、一部の環境ではうまく動作することがありますが、他の環境では動作しない可能性があります。

Oracle サポートのセットアップ

トランザクション COM+ コンポーネントやトランザクション MTS コンポーネントで使用できるように Oracle をセットアップするには、次の手順を実行します。

手順 1 : Oracle データベース サーバー ソフトウェアをインストールする

Oracle データベース サーバー ソフトウェアを、使用するデータベース サーバー システムにインストールします。COM+/MTS アプリケーションから Windows NT、Windows 2000、または UNIX 上の Oracle データベースにアクセスする場合は、最新の Oracle 更新プログラムがシステムにインストールされていることを確認してください。Windows NT または Windows 2000 用の最新の Oracle 更新プログラムを入手するには、次の Oracle Web サイトにアクセスしてください。
https://metalink.oracle.com
このサイトにログオンして、左側のナビゲーション バーで更新プログラムを選択します。最新の更新プログラムを見つけるには、[Product family] として [Oracle Server] をクリックし、次に、オペレーティング システムとして [MS Windows NT/2000] をクリックします。最新の更新プログラムのインストール方法については、Oracle に問い合わせてください。

: Oracle Server と COM+/MTS は、別のコンピュータにインストールすることをお勧めします。
Oracle の XA トランザクション サポートを有効にする
Oracle 8 または Oracle 8i を使用している場合は、以下の事項を考慮してください。
  • 使用する Oracle 8 または Oracle 8i のデータベースに V$XATRANS$ ビューと DBA_PENDING_TRANSACTIONS ビューが作成されていることを確認します。ビューが作成されていない場合、Oracle システム管理者は Oracle から提供されている XAVIEW.SQL というスクリプトを実行してビューを作成する必要があります。XAVIEW.SQL ファイルは、Installation folder\ADMIN フォルダにあります。この SQL スクリプトを実行するには、Oracle の "SYS" ユーザーを使用する必要があります。
  • Oracle システム管理者は、public に DBA_PENDING_TRANSACTIONS ビューに対する SELECT アクセスを許可する必要があります。
十分な同時実行数の分散トランザクションを構成する
Oracle Instance Manager で、次の手順を実行します。
  1. [View] メニューの [Advanced Mode] をポイントし、左側のウィンドウで [Initialization Parameters] をクリックします。
  2. 右側のウィンドウで [Advanced Tuning] をクリックし、より多くの MTS 同時実行トランザクションが同時にデータベースを更新できるように distributed_transactions パラメータの値を大きくします。
詳細については、この資料の「Oracle が多接続をサポートするように構成する」を参照してください。
統合セキュリティを構成する
: COM+/MTS コンポーネントから Oracle データベースへの接続時に、COM+/MTS コンポーネントによって必ずログイン ID とパスワードが指定される場合、統合セキュリティは使用されません。アプリケーションがログイン ID とパスワードを直接指定する場合でも、DSN 経由で間接的に指定する場合でもこれは同じで、統合セキュリティは使用されないため、この手順は省略してかまいません。

統合セキュリティを使用する場合は、Microsoft 分散トランザクション コーディネータ (MSDTC) が、使用する Oracle データベースへの接続が許可されているログイン ID とパスワードで実行されるように構成する必要があります。この手順は、MSDTC がデータベースの回復中に Oracle データベースを開いて、未確定のトランザクションの実行結果を通知するために必要となります。

統合セキュリティによって、Oracle データベースでは、Windows NT または Windows 2000 の認証を使用してデータベース ユーザーをチェックできるようになります。これにより、ユーザーは、Windows のログオンとは別のログイン ID やパスワードを指定せずに Oracle にログオンできます。ユーザーは、Windows NT または Windows 2000 用と、Oracle 用のログイン ID とパスワードを 1 つにできます。

: 統合セキュリティでは、接続文字列中のユーザー ID はスラッシュ (/) にする必要があります。そうしない場合はログオンがすべて失敗します。
cn.Open "PROVIDER=MSDAORA.1;DATA SOURCE=TESTORA;USER ID=/;PASSWORD=;"
Microsoft Cluster Server のクラスタ上で MSDTC や COM+ システムを実行する場合は、MSDTC を実行するアカウントが Microsoft Cluster Server の Cluster Administrator グループに属している必要があります。

MSDTC のログイン ID を構成するには、次の手順を実行します。
  1. [スタート] ボタンをクリックし、[設定] をポイントして、[コントロール パネル] をクリックします。
  2. [サービス] を開きます。
  3. [MSDTC] をダブルクリックします。
  4. [アカウント] をクリックし、ログイン ID とパスワードを指定します。

    : Oracle セキュリティ管理ツールを使用して、指定したログイン ID に、使用している Oracle データベースを開く権限があることを確認してください。
Windows NT および Windows 2000 での Oracle の統合セキュリティ機能の詳細については、Oracle のマニュアルを参照してください。
Oracle のマルチスレッド サーバー サポートを構成する
リモートにある Oracle データベースへのデータベース リンクを開く場合は、Oracle のマルチスレッド サーバー機能を構成する必要があります。Oracle データベースでは XA トランザクション サポートが使用されるため、この手順を実行しておく必要があります。Oracle データベースでは、(通常は) XA トランザクションをプロセス間で移動できる必要があるため、オペレーティング システムのファイル記述子は開くことができません。代わりに、バーチャル サーキットを使用してリモート データベースに接続する必要があります。バーチャル サーキットは、Oracle のマルチスレッド サーバーでのみサポートされています。

Oracle のマルチスレッド サーバー機能が正しく構成されていないと、Oracle で次のエラー メッセージが出力されます。
ORA-24777 : 移行できないデータベース・リンクは使用できません
: Oracle では、マルチスレッド サーバー機能を MTS という頭字語で表します。マイクロソフトのドキュメントでは、Microsoft MTS を指して、頭字語 MTS が使用されることがあります。
Oracle がより多くの接続をサポートするように構成する
作成する Oracle データベースへの接続数が数十を超える場合、Oracle サーバーが多数のデータベース接続をサポートするように構成する必要があります。詳細については、この資料の「Oracle および MSDTC の管理」の「Oracle が多接続をサポートするように構成する」を参照してください。

手順 2 : Oracle クライアント ソフトウェアを最新の更新プログラムと共にインストールする

Oracle クライアント ソフトウェアを最新の更新プログラムと共に、使用している COM+/MTS システムにインストールします。最新の 8.1.7.1.5 更新プログラムが適用された Oracle Client 8.1.7 は、COM+/MTS トランザクション コンポーネントで正常に機能します。

重要 : Oracle Client 8.1.7 をインストールする場合は、必ず Oracle Net8 をインストールするようにしてください。また、Microsoft OLEDB/ODBC ドライバを使用している環境で Oracle 8.1.7 を使用する場合は、Oracle Services for MTS をインストールしないでください。Oracle Services for MTS は、COM+/MTS コンポーネントと Oracle データベースの正常な動作に必要ありません。

ユーザーが、これらの Oracle 更新プログラムのリリースにより、Oracle データベースがインストールされたシステムをアップグレードすることがよくありますが、COM+/MTS コンポーネントがインストールされたシステムにユーザーが Oracle 更新プログラムのリリースをインストールすることはできません。Oracle は XA トランザクションのクライアント サポートに影響するいくつかの不具合を修正しており、COM+/MTS システムに最新の Oracle 更新プログラムをインストールする必要があります。Windows NT 用の最新の Oracle 更新プログラムを入手するには、次の Oracle Web サイトにアクセスしてください。
https://metalink.oracle.com
このサイトにログオンして、左側のナビゲーション バーで更新プログラムを選択します。最新の更新プログラムを見つけるには、[Product family] として [Oracle Server] をクリックし、次に、オペレーティング システムとして [MS Windows NT/2000] をクリックします。最新の更新プログラムのインストール方法については、Oracle に問い合わせてください。

手順 3 : MTS 2.0 をインストールする

MTS 2.0 をインストールします。これを行うには、Windows NT 4 Option Pack をインストールします。MTS 2.0 をインストールすると、以下のソフトウェアがインストールされます。
  • MTS 2.0 (これには、Microsoft Oracle Call Interface (OCI) .dll ファイル (Mtxoci.dll) が含まれます。)
  • Microsoft ODBC 3.5 ドライバ マネージャ
  • Microsoft ODBC Driver for Oracle
  • ActiveX データ オブジェクト (ADO)
: Windows 2000 ではこの手順は無視してください。

手順 4 : Windows NT 4.0 SP 6a をインストールする

Windows NT 4.0 SP 6a をインストールします。XA に関連する MSDTC の問題の修正が含まれています。

重要 : Windows NT 4.0 SP 6a をインストールする前に、Windows NT 4.0 Option Pack をインストールする必要があります。これは、Windows NT 4.0 Option Pack がインストール済みの場合、Windows NT 4.0 Service Pack のセットアップ プログラムによって MTS と MSDTC のみが更新されるためです。

: Windows 2000 ではこの手順は無視してください。

手順 5 : MDAC 2.6 SP1 以降をインストールする

Windows 2000 ベースのコンピュータに MDAC 2.6 SP1 以降をインストールします。2.6 SP1 以降の MDAC を入手するには、次のマイクロソフト Web サイトにアクセスしてください。
http://www.microsoft.com/japan/msdn/data/download/mdac/manifest_intro.aspx

手順 6 : Component Checker を使用して、インストールに問題がないかどうかを確認する

MDAC をインストールした後に、Component Checker を使用して、インストールに問題がないかどうかを確認できます。Component Checker は、MDAC に関するバージョン情報の確認やインストールの問題の診断ができるように設計されています。Component Checker は、以下のオペレーティング システムで実行できます。
  • Windows 95
  • Windows 98
  • Windows NT 4.0
  • Windows 2000
32 ビット版および 64 ビット版のオペレーティング システムのみがサポートされています。Component Checker は、MDAC 2.6 のデータが含まれるように更新されました。このツールをダウンロードするには、以下のマイクロソフト Web サイトにアクセスしてください。
http://www.microsoft.com/japan/msdn/data/download.aspx#cck

手順 7 : Oracle Client ソフトウェア レジストリ キーの更新

警告 : レジストリ エディタまたは別の方法を使用してレジストリを誤って変更すると、深刻な問題が発生することがあります。最悪の場合、オペレーティング システムの再インストールが必要になることがあります。マイクロソフトは、レジストリの変更により発生した問題に関しては、一切責任を負わないものとします。レジストリの変更は、自己の責任において行ってください。
レジストリの編集方法の詳細については、レジストリ エディタのヘルプで次のトピックを参照してください。
  • キーと値を変える (キーと値の変更)
  • レジストリ情報の追加と削除
  • レジストリを編集する
: レジストリを編集する前にレジストリのバックアップを必ず作成してください。Windows NT または Windows 2000 を実行している場合、システム修復ディスク (ERD) も更新する必要があります。

Oracle 8.1.7 Client ソフトウェアを使用する場合は、以下のレジストリ キーを、以下に記載したとおりの値に変更します。
Oracle   Windows NT または Windows 9x       Windows 2000
Client

8.1.7    [HKEY_LOCAL_MACHINE\SOFTWARE       [HKEY_LOCAL_MACHINE\SOFTWARE
         \Microsoft\Transaction Server      \Microsoft\MSDTC\MTxOCI]
         \Local Computer\My Computer]       "OracleXaLib"="oraclient8.dll" 
         "OracleXaLib"="oraclient8.dll"     "OracleSqlLib"="orasql8.dll"  
         "OracleSqlLib"="orasql8.dll"       "OracleOciLib"="oci.dll"
         "OracleOciLib"="oci.dll"

Oracle   Windows Server 2003 
Client

9i       [HKEY_LOCAL_MACHINE\SOFTWARE
         \Microsoft\MSDTC\MTxOCI] 
         "OracleXaLib"="oraclient9.dll"
         "OracleSqlLib"="orasql9.dll"
         "OracleOciLib"="oci.dll"

COM+/MTS における Oracle サポートのインストールおよび構成のテスト

Oracle サポートのインストールおよび構成を行った後に、Oracle のインストール環境を検証する必要があります。次のツールを使用してこの構成を検証できます。
  • Oracle Stress ツール
  • Oracle Test プログラム
これらは両方とも、COM+/MTS が使用するのと同じような方法で Oracle OCI XA インターフェイスを使用します。Oracle Test プログラムでは、Oracle XA 機能を使用して Oracle データベースに接続できるかどうかが確認されます。これらのプログラムでは、標準の Oracle インターフェイスとトランザクション機能が使用されます。COM+/MTS や MSDTC は使用されません。したがって、テスト プログラムのいずれかがうまくいかない場合は、Oracle システムのインストールや構成に誤りがあることを示しています。テスト プログラムがうまくいかない場合は、Oracle のインストールと構成をやり直すか、詳細情報について Oracle のサポート サービスに問い合わせてください。

これらのテストが正常に終了したら、Sample Bank アプリケーションを使用してセットアップをテストできます (この資料の「Sample Bank アプリケーションを使用して Oracle のインストールと構成を検証する」を参照してください)。ユーザー独自のサンプル アプリケーションを作成してセットアップをテストすることもできます。

Oracle Stress ツール

Oracle Stress ツールを使用すると、次のテストを実行できます。
  • Oracle クライアント構成およびサーバー構成の確認
  • Oracle Server のストレス テスト
Oracle Stress ツールの入手方法
下記のファイルは、「Microsoft ダウンロード センター」からダウンロードできます。
元に戻す画像を拡大する
ダウンロード
OraStress.exe パッケージ
マイクロソフトのサポート ファイルのダウンロード方法を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
119591 オンライン サービスからマイクロソフトのサポート ファイルを入手する方法
マイクロソフトでは、アップロード時点の最新のウイルス検査プログラムを使用して、配布ファイルのウイルス チェックを行っています。配布ファイルはセキュリティで保護されたサーバー上に置かれており、権限のない第三者が無断でファイルを変更できないようになっています。

このソース コードは、C++ コンパイラを使用してコンパイルできます。Oracle Stress ツールを再コンパイルする場合は、作成するプログラムの名前を OracleStress.exe にすることをお勧めします。
Oracle Stress ツールの実行
Oracle Stress ツールを実行するには、以下の手順を使用します。

: 以下の手順では、プログラムの名前が OracleStress.exe であることが前提となっています。
  1. 推奨ソフトウェアがすべてインストールされていることを確認します。
  2. コマンド プロンプトを起動します。
  3. ツールの使用方法の詳細については、現在の作業フォルダを OracleStress.exe が格納されているフォルダに変更し、コマンド プロンプトで OracleStress.exe と入力して Enter キーを押します。

    次の情報が、画面上に表示されます。

    OracleStress ツールで使用する構文
    Usage: OracleStress.exe -S<server> -Q<SQL> [-U<username>] [-P<password>]
    [-T<threads>] [-I<iterations>] -[V<version>] [-N] [-W] [-O]
    [-F<Log File Name>]
    
    -S - Name of oracle server to connect to.
    -Q - SQL statement that each thread will execute.
    -U - Optional. Username. Defaults to scott.
    -P - Optional. Password. Defaults to tiger.
    -T - Optional. Number of threads to apply stress with. Defaults to 1.
    -I - Optional. Number of iterations per thread. Defaults to 100.
    -V - Optional. Version. Specifies Oracle version number. Can be one of: 7, 8, 8i, or 9i. Defaults to 8.
    -N - Optional. Disables the use of XA transactions. Defaults to enabled.
    -W - Optional. Enables the display of warning level XA error messages. Defaults to disabled.
    -O - Optional. If specified, open and close connection at each iteration.
    -F - Optional. Log file name. Defaults to ostress.txt.
    C:>OracleStress -SMyOracleServer -Q"Insert into Order Values (1, 'My order')" -UMyUserName  
    -PMySpecialPassword -T10 -V8i
    : MyOracleServer には、使用しているサーバーの名前が入ります。MyUserName にはサーバーのユーザー名が、MySpecialPassword にはサーバーのパスワードが入ります。
  4. 生成される出力ファイルは、デフォルトでは ostress.txt です。このファイルをメモ帳で開いて、正常に実行されたかどうかを確認できます。
  5. Oracle のエラーが記載されたトレース ファイルが出力された場合は、Oracle のサポート サービスに問い合わせて、COM+/MTS アプリケーションを使用する前に問題を解決してください。
Oracle Stress ツールを使用した Oracle Server のストレス テストのヒント
Oracle Stress ツールを使用する際には、以下の事項を考慮してください。
  • SQL ステートメントは、アプリケーションで使用される最も複雑なクエリと同じか、それに近いものである必要があります。
  • スレッド数 (-T) は、アプリケーションで同時に開かれると予想される最大の接続数を 3 倍した値にする必要があります。たとえば、アプリケーションで同時に開かれる最大の接続数が 10 の場合は、スレッド数を 30 にする必要があります。
  • サーバーの信頼性とパフォーマンスをテストするため、多数の反復を指定して多くのスレッドをビジー状態にし続けるようにします。
: Oracle Stress ツールで Oracle データベース サーバーに問題なく接続できた場合は、COM+/MTS も Oracle で使用できる可能性が高いと言えます。Oracle Stress ツールで何らかのエラーが出力された場合は、次の手順を実行する必要があります。
  1. Oracle Stress ツールによって表示されたエラー メッセージを正確に記録します。
  2. Oracle Stress ツールの実行時に作成された Oracle トレース ファイルを調べます。Oracle のトレース情報は *.trc ファイルに出力されています。Oracle トレース ファイルには、問題の診断に非常に役立つ詳細エラー情報が含まれています。
  3. 詳細については、Oracle のサポート サービスに問い合わせてください。

Oracle Test プログラム

Oracle サポートのインストールと構成を行った後に、Oracle Test プログラムを使用して Oracle のインストール環境を検証する必要があります。Oracle Test プログラムは 2 つのバージョンが利用できます。1 つは Windows NT 用の TestOracleXAConfig.exe という名前のプログラム、もう 1 つは Windows 2000 用の Msdtcora.exe という名前のプログラムです。
Windows 2000 上で動作する COM+ 用の Oracle Test プログラムの入手方法
ソース コードおよびオブジェクト コードは、Platform SDK または「Microsoft ダウンロード センター」から入手できます。

下記のファイルは、「Microsoft ダウンロード センター」からダウンロードできます。
元に戻す画像を拡大する
ダウンロード
Dtcora.exe パッケージ
マイクロソフトのサポート ファイルのダウンロード方法を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
119591 オンライン サービスからマイクロソフトのサポート ファイルを入手する方法
マイクロソフトでは、アップロード時点の最新のウイルス検査プログラムを使用して、配布ファイルのウイルス チェックを行っています。配布ファイルはセキュリティで保護されたサーバー上に置かれており、権限のない第三者が無断でファイルを変更できないようになっています。

: Windows 2000 よりも前のオペレーティング システムを実行している場合は、TestOracleXAConfig.exe ツールを使用して Oracle の構成を検証し、Oracle に関連する問題のトラブルシューティングを行うことができます。Windows 2000 を実行している場合は Msdtcora.exe ツールを使用します。Msdtcora.exe ツールでは、この資料の「Oracle Client ソフトウェア レジストリ キーの更新」の手順で Windows 2000 用として記載されているレジストリ キーが使用されます。
Windows NT 上で動作する MTS 用の Oracle Test プログラムの入手方法
Oracle 8 用の Oracle Test プログラムと Oracle 7.3 用の Oracle Test プログラムのソース コードおよびオブジェクト コードを入手するには、以下の「Microsoft ダウンロード センター」の Web サイトにアクセスします。
http://www.microsoft.com/downloads/details.aspx?FamilyId=791CA202-0641-426D-8977-4D639C8755B0
: Oracle 7 用の Oracle Test プログラムは、MTS のインストール時に自動的にインストールされます。Oracle 8 用のソース コードは、C++ コンパイラを使用してコンパイルできます。Oracle Test プログラムを再コンパイルする場合は、作成するプログラムの名前を TestOracleXaConfig.exe にすることをお勧めします。
Oracle Test プログラムの実行
: 以下の手順では、プログラムの名前が TestOracleXaConfig.exe であることが前提となっています。
  1. 推奨ソフトウェアがすべてインストールされていることを確認します。
  2. 使用している Oracle データベースを参照する ODBC データ ソース名 (DSN) を作成します。この DSN には、必ず Microsoft Oracle ODBC ドライバを使用するようにします。
  3. Oracle の XA サポートを有効にします。
  4. Oracle の既存のトレース ファイルを、Oracle データベースにアクセスする COM+/MTS コンポーネントがインストールされているコンピュータからすべて削除します。これを行うには、エクスプローラを使用し、*.trc ファイルをすべて見つけて削除します。Oracle Test プログラムがエラーになった場合、このトレース ファイルで問題の原因を判断できます。古いトレース ファイルをすべて削除すると、新しく作成されるトレース ファイルを見つけやすくなります。
  5. コマンド プロンプトで Oracle Test プログラム (Msdtcora.exe または TestOracleXaConfig.exe) を実行し、Oracle サーバーのユーザー ID、パスワード、サービス名を入力します。たとえば、Msdtcora.exe ファイルを使用する場合は、以下の情報を入力します。
    C:>msdtcora.exe -U<user id> -P<Password> -S<Service_Name as contained in the TNS file>
    TestOracleXaConfig.exe ファイルを使用する場合は、以下の情報を入力します。
    C:>TestOracleXaConfig.exe -U<user id> -P<Password> -S<Service_Name as contained in the TNS file>
パラメータを指定せずにテスト プログラムを実行すると、必要なパラメータが記載されたヘルプ情報がプログラムによって表示されます。テスト プログラムでは、実行する Oracle の各操作に関する情報が表示され、それぞれの操作が成功したかどうかが示されます。

: Oracle Test プログラムで Oracle データベース サーバーに問題なく接続できた場合は、COM+/MTS も Oracle で使用できる可能性が高いと言えます。Oracle Test プログラムで何らかのエラーが出力された場合は、次の手順を実行する必要があります。
  1. Oracle Test プログラムによって表示されたエラー メッセージを正確に記録します。
  2. Oracle Test プログラムの実行時に作成された Oracle トレース ファイルを調べます。Oracle のトレース情報は *.trc ファイルに出力されています。Oracle トレース ファイルには、問題の診断に非常に役立つ詳細エラー情報が含まれています。
  3. 詳細については、Oracle のサポート サービスに問い合わせてください。

Sample Bank アプリケーションを使用して Oracle のインストールと構成を検証する

Oracle Test プログラムを使用して Oracle のインストールと構成を検証した後で、MTS に用意されている Sample Bank アプリケーションを使用して MTS が Oracle データベースにアクセスできることを確認する必要があります。

Sample Bank アプリケーションを使用して Oracle サポートを検証する

  1. MTS に用意されている Oracle Test プログラムを使用して Oracle システムのインストールと構成が正しいことを検証します。Oracle Test プログラムで何らかのエラーが表示された場合は、次の手順に進む前に問題を解決する必要があります。
  2. Oracle データベース サーバー上にテーブルを作成し、Account という名前を付けます。以下に、Account テーブルの設定例を示します。
    所有者			scott
    
    テーブル名                Account
    1 番目の列名              AccountNo (データ型 : NUMBER)
    2 番目の列名              Balance (データ型 : NUMBER)
    
  3. Account テーブルには最低 2 行のデータを作成します。以下に、このテーブルのデータ作成例を示します。
    AccountNo                  Balance
    
         1                      1000
         2                      1000
  4. Oracle データベース サーバー上にテーブルを作成し、Receipt という名前を付けます。以下に、Receipt テーブルの設定例を示します。
    所有者                     scott
    
    テーブル名                 Receipt
    1 番目の列名               NextReceipt (データ型 : NUMBER)
  5. Receipt テーブルには最低 1 行のデータを作成します。以下に、このテーブルのデータ作成例を示します。
    NextReceipt
    1000 
  6. ODBC 構成ユーティリティを使用してファイル DSN を作成し、MTSSamples という名前を付けます。次に、DSN ファイルを手動で更新してユーザーのパスワードを追加します。以下に、ファイル DSN にユーザーのパスワードを追加した例を示します。
    [ODBC]
    DRIVER=Microsoft ODBC for Oracle
    UID=scott
    PWD=mypassword
    ConnectString=myserver
    SERVER=myserver
  7. ファイル DSN を保存して、Sample Bank クライアントを実行します。

Oracle および MSDTC の管理

MSDTC のユーザー ID を変更する

Microsoft 分散トランザクション コーディネータ (MSDTC) は、Windows NT のレジストリまたは Windows 2000 のレジストリにあるセキュリティが強化された部分に情報を保持しています。MSDTC では、Oracle などの XA 準拠のデータベースを使用して回復を実行する際にこの情報が使用されます。MSDTC を実行しているユーザー ID を変更する場合は、レジストリのセキュリティが強化された部分に以前格納された情報に、MSDTC から継続してアクセスできることを確認する必要があります。MSDTC のユーザー ID を変更するとセキュリティが強化されたレジストリ内の情報に MSDTC からアクセスできなくなる場合は、Windows NT のイベント ログに次のエラー メッセージが記録されます。
XATM ログ オブジェクトはログ暗号化キーの設定に失敗しました
この問題を解決するには、以下の手順を実行します。
  1. MSDTC を停止します。
  2. MSDTC のユーザー ID を以前の値に戻します。または、管理グループのメンバであるユーザー ID を割り当てることもできます。ユーザー ID とパスワードを変更するには、次の手順を実行します。
    1. コントロール パネルの [サービス] を開きます。
    2. [MSDTC] のエントリをダブルクリックし、[アカウント] の値を変更します。
  3. MSDTC を再び起動します。

Oracle が多接続をサポートするように構成する

作成する Oracle データベースへの接続数が数十を超える場合、Oracle サーバーが多数のデータベース接続をサポートするように構成する必要があります。この構成を行わない場合は、次のいずれかまたは複数の問題が発生する可能性があります。
  • SQLConnect 呼び出しが失敗する。
  • 呼び出し元オブジェクトのトランザクションへの参加が失敗する。これにより、Oracle のトレース ファイルに以下のいずれかまたは複数のエラーが記録されることがあります。
    • Too many sessions.
    • TNS server failed to locate the server name.
    • Too many distributed transactions.
  • データベースのロックの待機中にタイムアウトが発生する。この問題は、ロックを構成した数がアクティブなトランザクションの数に対して不十分な場合に発生する可能性が高くなります。
  • 未確定のトランザクションで保持されているロックが原因でレコードの競合が発生する。
いずれかまたは複数の問題が発生した場合は、Oracle サーバーの次の構成パラメータの値を大きくすることを検討してください。
Oracle 構成パラメータ                        推奨値

Processes                               予想されるデータベース
                                                         への最大接続数の
                                                         3 倍


Sessions                                (1.1 * PROCESSES) + 5

Transactions                            (1.1 * SESSIONS)

Distributed_transactions                Transactions

Dml_locks                               (4 * TRANSACTIONS)

MAX_TRANSACTION_BRANCHES                32 (Oracle 8i では使用されません)

Open_cursors                            1000

distributed_lock_timeout                300 (Oracle 8i では使用されません)

Queuesize                               Read Queuesize セクション

セッション値を設定する

セッション数の値は、通常は、アプリケーションで作成されることが見込まれるデータベース接続数の合計の 3 倍にする必要があります。

QUEUESIZE パラメータを構成する

Oracle の Listener プロセスの QUEUESIZE パラメータが十分な値ではない場合、Listener プロセスの処理が滞留して、データベースのオープン要求が拒否される場合があります。この問題は、Listener プロセスが受信する接続要求が多すぎて、プロセスのキューの容量を超えた場合に発生します。このエラーが発生したクライアントでは、次のエラー メッセージが表示されます。
ORA-12541 : リスナーがありません
クライアントのログ ファイルまたはトレース ファイルには、次のエラー メッセージが記録されます。
ECONREFUSED
この問題を解決するには、以下の手順を実行します。
  1. Oracle データベース サーバーがインストールされているシステムで、Oracle の Listener プロセスを停止します。
  2. Oracle データベース サーバー システムで、Listener.ora ファイル、Tnsnet.ora ファイル、または Names.ora ファイル内の QUEUESIZE パラメータの値を大きくします。

    : QUEUESIZE パラメータの値は、予想される同時接続数か、それに近い値を基準に設定してください。アプリケーションによって開かれるトランザクション データベース接続ごとに、Oracle 7.3 システムでは通常 3 つのデータベース セッションが開かれ、Oracle 8 や Oracle 8i では 2 つのデータベース セッションが開かれます。この結果、Oracle の Listener のキューが満杯になり、最後には容量を超える可能性があるため、QUEUESIZE パラメータには余裕のある値を選択することを推奨します。たとえば、100 件の要求を処理するには、Listener.ora ファイルを次のように変更します。
    QUEUESIZE = 100 
    
    
  3. Oracle の Listener プロセスを再び起動します。

COM+/MTS での Oracle サポートの既知の制限

COM+/MTS と Oracle Services for MTS

Microsoft OLEDB/ODBC プロバイダを使用している場合、COM+/MTS アプリケーションに Oracle Services for MTS は必要ありません。Oracle 8i クライアントのインストール時に、Oracle Services for MTS をインストールしないようにしてください。Microsoft ODBC/OLE DB プロバイダと共に Oracle Services for MTS がインストールされている場合、マイクロソフトではこの構成をサポートしておらず、アプリケーションが正常に動作しない可能性があります。Oracle Services for MTS の使用に関連する問題については、Oracle のサポートに問い合わせてください。

Oracle 8i と OLE トランザクション

Oracle 8i では OLE トランザクションがサポートされています。この機能は Oracle ODBC ドライバの使用が必須です。この機能を使用するための推奨構成、必要な更新プログラム、およびこれに関連する問題については、Oracle に問い合わせてください。

Microsoft Oracle ODBC ドライバと Oracle 8

Microsoft Oracle ODBC ドライバ (Msorcl32.dll) は、現在、Compaq Alpha 版の Oracle 8 クライアント ソフトウェアでは動作しません。この制限は今後のリリースで変更されることがあります。

スタートアップ時に Oracle Ociw32.dll によって MSDTC で異常が発生する

この問題は、Oracle データベースにアクセスする可能性があるいずれかの操作を実行する前に、MTS と MSDTC の両方で Oracle の Ociw32.dll ファイルをメイン スレッドに読み込む必要があるために発生します。アプリケーションでは Oracle データベースへの接続を開く必要性が生じる可能性があるため、MTS は Mtxoci.dll ファイルを読み込む必要があります。MSDTC では Oracle データベースの回復を行う必要性が生じる可能性があるため、Mtxoci.dll ファイルを読み込む必要があります。アプリケーションで Oracle データベースが使用されるかどうかは予測できないため、MTS は Ociw32.dll ファイルを必ず読み込みます。Windows NT 上への Oracle の実装方法により、Ociw32.dll ファイルは初期化時に無条件で読み込まれる必要があります。Windows NT 上の Oracle 実装では、スレッドのアタッチがすべて監視されます。Oracle ではアタッチされるすべてのスレッドを監視することが求められており、最初のスレッド アタッチが監視されたスレッドについてのみ、そのスレッドからのデータベースのオープン要求が受け付けられます。

Oracle を MTS や MSDTC と共に使用することがない場合は、Microsoft Oracle データベース サポートの .dll ファイル (Mtxoci.dll) の名前を変更するか削除することで、この問題を回避できます。MTS や MSDTC が起動されると、Mtxoci.dll ファイルが検索され、読み込まれます。次に、この Mtxoci.dll ファイルによって Oracle の Ociw32.dll ファイルが読み込まれます。Mtxoci.dll ファイルを見つけて読み込むことができない場合でも、依然として MTS や MSDTC は正常に実行されます。ただし、この .dll ファイルが存在しない場合は、Oracle データベースへのアクセスや回復はできなくなります。

: COM+/MTS システム上に Ociw32.dll ファイルのコピーが複数存在していないことを確認してください。複数のコピーが存在する場合、不適切なバージョンの .dll ファイルが読み込まれ、予期しない現象が発生する可能性があります。

他社テクニカル サポートのお問い合わせ窓口は、ユーザーの便宜のために提供されているものであり、将来予告なしに変更されることがあります。マイクロソフトは、掲載している情報に対して、いかなる責任も負わないものとします。

この資料に記載されているサードパーティ製品は、マイクロソフトと関連のない他社の製品です。明示または黙示にかかわらず、これらの製品のパフォーマンスや信頼性についてマイクロソフトはいかなる責任も負わないものとします。

関連情報

関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
246006 Oracle TRC ファイルと MTS
230145 [FIX] Mtxoci.dll のログ サポートを有効にする
191168 [INFO] エラー "-2147168246 (8004d00a)" オブジェクトのトランザクション呼び出し中に参加に失敗しました
193941 Oracle のパブリック FTP サイトの場所

プロパティ

文書番号: 193893 - 最終更新日: 2007年6月14日 - リビジョン: 8.2
この資料は以下の製品について記述したものです。
  • Microsoft Transaction Services 2.0
  • Microsoft COM+ 1.0
キーワード:?
kbdatabase kbinfo kboracle KB193893
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"
サポート期間が終了した「サポート技術情報」資料に関する免責事項
この資料は、マイクロソフトでサポートされていない製品について記述したものです。そのため、この資料は現状ベースで提供されており、今後更新されることはありません。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com