1 Oracle DatabaseとMicrosoft Transaction Serverの連携

これらのトピックでは、Microsoft Transaction ServerとOracle Databaseの統合について説明します。

1.1 Microsoft Transaction Serverの概要

Microsoft Transaction Serverは、インターネットまたはネットワーク・サーバー上で動作する、独自規格のComponent Object Model(COM)トランザクション処理システムです。Microsoft Transaction Serverでは、クライアント・コンピュータにかわってアプリケーションおよびデータベース・トランザクションの要求をデプロイおよび管理します。Microsoft Transaction Serverによって提供される機能は次のとおりです。

  • 分散アプリケーション開発用のActiveX/Distributed Component Object Model(DCOM)プログラム・モデル、および開発したアプリケーションをデプロイするランタイム環境

  • トランザクション内のコンポーネントのAtomicity_ Consistency_ Isolation_ and Durability (ACID)プロパティ

  • コンポーネント・キャッシュおよびデータベースの接続プーリングなどのパフォーマンス強化機能へのアクセス

Microsoft Transaction Serverは、サーバー中心のアーキテクチャ・モデルによる3層のコンポーネントです。このモデルにより、アプリケーションのプレゼンテーション、ビジネス・ロジックおよびデータ要素を分離して、ネットワークに接続された別々のコンピュータに配置できます。Microsoft Transaction Server機能は、COM+およびEnterprise Servicesにも実装されています。Microsoft Transaction Server、COM+およびEnterprise Servicesは、Oracle Services for Microsoft Transaction Server(OraMTS)によりサポートされます。

関連項目:

Microsoft Transaction Serverの追加情報は、Microsoftのドキュメントを参照してください。

1.2 Microsoft Transaction ServerとOracleの統合の概要

特別な統合を行わなくても、Oracle Databaseに接続されたMicrosoft Transaction Serverで、Win32、Win64、COMまたはMicrosoft .NETを使用して作成したアプリケーションをデプロイできます。ただし、次のいずれかの機能を使用する場合は、Oracle Services for Microsoft Transaction Server(OraMTS)をインストールする必要があります。

  • Win32、Win64、COM、または.NETアプリケーションをトランザクションとして登録し、Microsoft Transaction Serverでトランザクションを制御します。このためには、Microsoft管理コンソールでコンポーネントの「プロパティ」ダイアログ・ボックスを使用します。

  • Microsoft Transaction Serverでクライアント側の接続プーリングを使用

Oracle Services for Microsoft Transaction Serverがインストールされた後、Oracle MTS Recovery Serviceも同じコンピュータに自動的にインストールされます。Oracle MTS Recovery Serviceは、そのコンピュータで開始されOracle Databaseインスタンスに残っているインダウト・トランザクションのリカバリに役立ちます。接続されているデータベースそれぞれについて、次の操作を行います。

  • Microsoft Transaction Server管理者ユーザー・アカウントを作成します。

  • データベース・レベルでのトランザクション・リカバリ・ジョブのスケジューリングを行います。

これにより、データベースをMicrosoft Transaction Serverで開始されたトランザクションに登録することが可能になります。

次のいずれかのOracle製品を使用してCOMコンポーネントを作成します。

1.2.1 Oracle Services for Microsoft Transaction ServerによるDTCのサポート

Oracle Services for Microsoft Transaction Serverは、Windowsオペレーティング・システムの一部であるMicrosoft分散トランザクション・コーディネータ(DTC)と連携して動作します。DTCは、トランザクションに関与するすべてのデータ・リソースで、トランザクションの結果に一貫性があるかどうかを確認するために、2フェーズ・コミット・プロトコルを実装しています。

1.2.2 Real Application Clusters(Oracle RAC)の分散トランザクション

Oracle Databaseリリース11.1では、データベースは分散トランザクションのすべてのブランチを、単一のOracle RACインスタンスに自動的にリダイレクトします。以前は、開発者が個別にすべてのブランチを単一のOracle RACインスタンスにリダイレクトし、手動でこのプロセスを管理する必要がありました。

関連項目:

Real Application Clustersの分散トランザクションの詳細は、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。

1.2.3 昇格可能ローカル・トランザクション

昇格可能ローカル・トランザクションでは、複数のデータベースがトランザクションに入れられるまで、すべてのトランザクションをローカルに保持できます。トランザクションに入れられた時点で、分散トランザクションに昇格します。

昇格可能トランザクション機能の柔軟性により、トランザクション・アプリケーションでリソースの使用効率を向上できます。分散トランザクションは、ローカル・トランザクションに比べて大幅なオーバーヘッドが必要です。そのため、1つのデータベースのみを使用している場合は、ローカル・トランザクションの方が優れています。設計時には、トランザクションがローカルになる場合と分散させる場合とが不明なことがあります。この機能以前は、ローカル・トランザクションがほとんどであるとしても、開発者は常に分散トランザクションを使用する必要があったため、不要なリソースの使用が生じていました。

この機能は、Oracle Database 11g リリース1以上でサポートされています。以前のバージョンのデータベースおよびその他のリソース・マネージャは、最初にOracle Database 11g リリース1以上のデータソースに接続されているかぎり、昇格可能トランザクションに入ることができます。

関連項目:

System.Transactionsサポートの詳細は、『Oracle Data Provider for .NET開発者ガイド』(Microsoft Windows用)を参照してください。

1.2.4 読取りコミット済トランザクションとシリアライズ可能トランザクション

Oracle Services for Microsoft Transaction Serverでは、シリアライズ可能または読取りコミット済の分離レベルに対して、分散トランザクションのセットがサポートされるようになりました。

1.3 Microsoft Transaction ServerおよびOracleに関する参照先

これで、データベースでMicrosoft Transaction Serverを使用する準備が整いました。すぐに使用を開始するには、次のようにします。

  1. Microsoft Transaction Serverとデータベースの統合に必要なOracle製品およびMicrosoft製品をインストールします。
  2. Microsoft Transaction Server管理者ユーザー・アカウントを作成します。

    リカバリのシナリオ管理を参照してください。

  3. Microsoft Transaction Serverのトランザクション・リカバリ・ジョブのスケジューリングを行います。

    リカバリのシナリオ管理を参照してください。

  4. Microsoft Transaction Serverをホストとするアプリケーションを作成します。

    COMベースのアプリケーションでの、OCI、Oracle ODBCドライバまたはOracle Provider for OLE DBの使用方法については、Microsoft Transaction ServerおよびOracle Databaseを使用したプログラミングを参照してください。

  5. Microsoft Transaction Serverを異なるWindowsオペレーティング・システムで使用した場合の違いを確認します。