2 Oracle Services for Microsoft Transaction Serverのインストール

これらのトピックでは、Microsoft Transaction ServerおよびOracle Database環境のためのインストール要件について説明します。

2.1 インストールの概要

OraMTSは、Oracle Database Clientの一部としてインストールできます。OraMTSサービスは、インストールしたOracleホームに対して作成されます。Oracle 12c以降、各Oracleホームには独自のOraMTS RecoveryのWindowsサービスがあります。また、Oracle 12c以降、OraMTSサービスはOracleホーム・ユーザーとして実行されます。

Oracleホーム・ユーザーは、Oracleホームから実行されるOracleサービスの所有者で、インストール後は変更できません。Windows組込みアカウントまたはWindowsユーザー・アカウントを指定できます。セキュリティを強化するため、Oracle Databaseのインストールで、Windowsの組込みアカウントではなく標準のWindowsユーザー・アカウントをOracleホーム・ユーザーとして選択することをお薦めします。Oracleホーム・ユーザーの主な目的は、Windowsユーザー・アカウントを使用してWindowsサービスを実行することです。ただし、このユーザー・アカウント(Oracleホーム・ユーザー)は、データベース管理に使用することのない権限の低いユーザー・アカウントである必要があります。これによって、Oracleホーム・ユーザーで実行するOracle Databaseサービスが持つ権限が、Oracle製品を実行するときに必要な最低限の権限のみになります。Windowsユーザー・アカウントには、ローカル・ユーザー、ドメイン・ユーザーまたは管理対象サービス・アカウントを指定できます。

ソフトウェアのみのインストール、クローン・サイクルまたはデータベースでのAddNode操作などの一部の場合に、OraMTSサービスを手動で作成する必要がある場合があります。

このトピックでは、OraMTS用にインストールが必要なOracle製品およびOracle以外の製品について説明します。追加のインストール要件は次のとおりです。Oracle Data Provider for .NET(ODP.NET)クラスタ構成(または任意のフェイルオーバー構成)の場合、Microsoft分散トランザクション・コーディネータ(MS DTC)コンポーネントが稼働しているノードにMicrosoft Transaction Serverをインストールします。これにより、フェイルオーバー中にOracle MTS Recovery Serviceがクライアント・アプリケーションとともに移行されます。これは、リカバリ・トランザクションのスケジューリング時に構成できます。

2.2 Microsoft Transaction Serverのインストール要件

Microsoft Transaction ServerがインストールされているWindowsコンピュータの製品要件は次のとおりです。

2.2.1 Oracle製品

注意:

  • Oracle ODBCドライバ、ODP.NET、Oracle Provider for OLE DBおよびOCIは、これらの各製品が必要とされるコンポーネントを作成または使用する場合にのみ必要です。

  • インストールによっては、Oracle MTS Recovery Serviceがインダウト・トランザクションを解決するためにリクエストをリスニングするポートの番号を入力するよう求められます。

2.2.2 Oracle以外の製品

2.3 Oracle Data Provider for .NETでのOracle Services for MTSの使用

ODP.NET, Managed DriverとUnmanaged Driversにはリソース・マネージャがあり、Oracleデータベース・トランザクションを管理し、Microsoft Distributed Transaction Coordinator (MSDTC)と連携して、ネットワークでアプリケーションに対する原子性および独立性を保証します。MSDTCは、同じSystem.Transactionsに入っているあらゆるリソース・マネージャと連係し、2フェーズ・コミットまたはロールバックをアトミックに実行します。これにより、Oracle分散トランザクションをネットワークで適切にコミットまたはロールバックできます。

Microsoftトランザクション・サーバー用のOracleサービス

Oracle Services for Microsoft Transaction Server (OraMTS)によって、クライアント・コンポーネントはMSDTCトランザクションでのOracleデータベースへの参加が可能になります。MSDTCに対するOracleデータベースのプロキシとして動作し、Oracle分散データベース・トランザクションを残りの分散トランザクションとともにコミットまたはロールバックできるようにします。

ネットワーク障害やサーバー・ハードウェア障害などの障害が発生した場合、プロセス内の分散トランザクションをインダウトのままにすることができます。OraMTSには、このトランザクションを開始したマシン上でこれらのトランザクションを解決するリカバリ・サービスがあります。このリカバリ・サービスはWindowsサービスとして実行されます。

ODP.NETが実行されMSDTCに参加しているすべてのクライアント・マシンに、OraMTSリカバリ・サービスをインストールする必要があります。マシンには複数のIPアドレスが存在する可能性があるため、管理対象ODP.NETアプリケーションの管理者は、実行中のリカバリ・サービスがあるホスト・マシン名またはIPアドレスをアプリケーションの.NET構成ファイルで指定できます。ODP.NET, Unmanaged Driverは、リカバリ・サービスのIP/マシン名を自動的に解決します。

.NET Framework 4.5.2では、Oracleが管理対象コールのみを使用してMSDTCとODP.NETトランザクションを調整できる、新しいAPIサポートが導入されました。ODP.NETはこの管理対象コードをmanaged driver (ODAC 12cリリース3から)およびunmanaged driver (ODAC 12cリリース4から)で利用します。

最新の.NET FrameworkおよびODP.NETバージョンを使用する場合、ODP.NET, Unmanaged Driverの開発者はOraMTSを使用しないことを選択できますが、その場合もOraMTS Windowsリカバリ・サービスをインストールおよび構成してリカバリ・シナリオを管理する必要があります

ODP.NETタイプ .NET Frameworkバージョン 分散トランザクションのサポート
管理対象 4.5.2以上 分散トランザクションに.NET Frameworkのネイティブの管理対象実装(デフォルト)を使用します。これはオラクル社が推奨する方法です。
管理対象 4.5.1以下 Oracle.ManagedDataAccessDTC.dllを使用します
管理対象外 4.5.2以上 OraMTS (デフォルト)または管理対象OraMTS実装を使用します。Oracle RACまたはData Guardによる高可用性が必要な管理対象外ODP.NETアプリケーションには、OraMTSを使用することが推奨されます。
管理対象外 4.5.1以下 OraMTSを使用します

注意:

.NET Framework 4ファミリ内の.NET Framework 4.5.1以下はもうサポートされていませんが、管理者は、.NET 4.5.2以上とともに、上にリストした分散トランザクション構成のいずれかをまだ使用できます。.NET 4.5.1以下については、この表では、ユーザー構成に基づく具体的な設定をお薦めするのみとなります。それらは必要条件ではありません。

ODP.NET, Managed Driverの設定

この項では、ODP.NET, Managed Driverで分散トランザクションを使用するのに必要な設定および構成手順を説明します。

アプリケーションでは、NET Framework 4.5.2以上で利用できる.NETのネイティブな管理対象分散トランザクション実装(デフォルト)を使用することをお薦めします。.NET構成ファイルでUseManagedDTCパラメータを設定することで、アプリケーションでは.NETのネイティブな管理対象分散トランザクションを使用するかOracle.ManagedDataAccessDTC.dllを使用するかを設定できます。これらの.NET Frameworkバージョンで分散トランザクションを構成するには、次の手順に従います。

  1. Oracle MTS Recovery Serviceを作成して設定するか、既存のリカバリ・サービスが実行中であることを確認します。

  2. .NET構成でOMTSRECO_PORTの値を設定し、OraMTS Recovery Serviceが実行されているポート番号を指定します。

Oracle.ManagedDataAccessDTC.dllを.NET Framework 4.5.2および管理対象ODP.NETで引き続き使用することもできます。それには、UseManagedDTCをtrueに設定して、下にある.NET Framework 4.5.1の手順に従います。

.NET Framework 4.5.1以下のアプリケーションの場合、次の手順に従って分散指図用に管理対象ODP.NETを設定および構成します。

  1. Oracle MTS Recovery Serviceを作成して設定するか、既存のリカバリ・サービスが実行中であることを確認します。

  2. アプリケーションとともにOracle.ManagedDataAccessDTC.dllをデプロイします。

  3. .NET構成でOMTSRECO_PORTの値を設定し、OraMTS Recovery Serviceが実行されているポート番号を指定します。

Oracle.ManagedDataAccessDTC.dllは、ODP.NET, Managed Driverに付属しています。このDLLは、MSDTCに対して管理対象外MSDTC COMコールを作成します。これは、このDLLには32ビット・バージョンと64ビット・バージョンがあることを意味します。これら2つのDLLは、同じ名前を共有します。32ビット.NET Frameworkを使用している場合、32ビットのOracle.ManagedDataAccessDTC.dllをデプロイします。64ビット.NET Frameworkを使用している場合、64ビットのOracle.ManagedDataAccessDTC.dllをデプロイします。これらのDLLは次のディレクトリにあります。

  • 32ビット.NET Frameworkの場合: ORACLE_HOME\odp.net\managed\x86

  • 64ビット.NET Frameworkの場合: ORACLE_HOME\odp.net\managed\x64

ODP.NETのインストール時、Oracle.ManagedDataAccessDTC.dllはGlobal Assembly Cache (GAC)に配置されなくなりました。このDLLを使用するアプリケーションの場合、Oracle.ManagedDataAccessDTC.dllをアプリケーション・ディレクトリまたはGACのいずれかに配置する必要があります。

Oracle.ManagedDataAccessDTC.dllは、.NETアプリケーションから直接参照することはできません。分散トランザクションを使用するときに、ODP.NET, Managed Driverによって暗黙的にロードされます。

プラットフォーム・ターゲットx64またはx86を持つアプリケーションの場合、Oracle.ManagedDataAccessDTC.dllがGACまたはアプリケーション・ディレクトリに配置されていれば、Oracle.ManagedDataAccess.dllはこれを適切にロードします。

AnyCPUをターゲットとするアプリケーションの場合、対応するOracle.ManagedDataAccessDTC.dllを、アプリケーションからOracle.ManagedDataAccess.dllがロードされた場所の下のx64およびx86サブディレクトリに配置する必要があります。ODP.NET, Managed Driverは、アプリケーションが32ビットか64ビットに基づいて、該当するOracle.ManagedDataAccessDTC.dllアセンブリ(32ビットまたは64ビット)をロードします。Oracle.ManagedDataAccessDTC.dllの32ビット・バージョンと64ビット・バージョンの両方がGACにある場合、該当するアセンブリが自動的にロードされます。

ODP.NET, Unmanaged Driverの設定

この項では、ODP.NET, Unmanaged Driverで分散トランザクションを使用するのに必要な設定および構成手順を説明します。

.NET Framework 4.5.2以上の場合、ODP.NET, Unmanaged Driverにはアセンブリに管理対象OraMTS実装が組み込まれています。OraMTSはODP.NET, Unmanaged Driverのデフォルト実装として残りますが、Oracle Real Application ClustersまたはOracle Data Guardによる高可用性FAN操作(HA Events = true)を使用する場合は、管理対象OraMTS実装が推奨されます。管理対象OraMTS実装ではこの高可用性機能はサポートされますが、従来のOraMTSではサポートされません。

.NET構成ファイルでUseOraMTSManagedパラメータを設定することで、アプリケーションではOraMTS(デフォルト)を使用するか管理対象OraMTSを使用するかを設定できます。

ODP.NET, Unmanaged DriverにOraMTS実装を使用するリカバリ・サービスを含め、OraMTSをインストールして構成します。

.NET Framework 4.5.2以上のアプリケーションの場合、従来のOraMTSのかわりに管理対象OraMTS実装を使用できます。これを設定するには、次の手順を実行します。

  1. .NET構成ファイルで、UseOraMTSManagedをtrueに設定します。

  2. Oracle MTS Recovery Serviceを作成して設定するか、既存のリカバリ・サービスが実行中であることを確認します。

関連項目:

詳細は、『Oracle Data Provider for .NET開発者ガイドfor Microsoft Windows』を参照してください

2.4 Oracle MTS Recovery Serviceの手動作成

Oracle Database 12c以降、Windowsソフトウェア上のOracle Databaseには、OraMTS Recovery Serviceの手動による作成を有効にするためのoramtsctl.exeユーティリティが含まれています。ODP.NET, Managed DriverとUnmanaged Driverは両方とも、OraMTSが不要な完全に管理されたMS DTCソリューションを使用することを選択できます。ただし、いずれの場合にも、Oracle MTS Recovery Serviceは設定する必要があります。MS DTCを使用するOracleクライアント・マシンごとに、1つのOracle MTS Recovery Serviceを構成する必要があります。その1つのサービスを使用して、同じマシン上の複数のOracleアプリケーションを共有できます。実行時に、現在のOracleホームにサービスが作成され、Oracleホーム・ユーザーとして実行されます。

Oracle MTS Recovery Serviceを手動で作成する手順は次のとおりです。

  1. Oracle Databaseをインストールします。
  2. コマンド・プロンプトを開きます。
  3. 次のコマンドを実行します。
    oramtsctl -new
    

Oracle MTS Recovery Serviceを削除するには、次を実行します。

oramtsctl -delete

使用方法

oramtsctl <-new|-delete|-start|-stop|-status|-config|-passwd|-trace|-trcdir>
          [-host    <hostname|IP_address> ...]
          [-port    <number>]
          [-ip      <IP_address>]
          [-dtchost <DTC_hostname>]
          [-cluster <on|off>]
          [-default]
 
 -new    

新しいOracler1MTSRecoveryServiceサービスを作成して開始します。

 
 -delete [Oracle_home_directory]

現在のホームまたは指定されたホームのOracler1MTSRecoveryServiceを削除します。

 
 -start  

Oracler1MTSRecoveryServiceサービスを開始します。

 
 -stop   

Oracler1MTSRecoveryServiceサービスを停止します。

 
 -status Query Oracler1MTSRecoveryService

サービス・ステータス。

 
 -config [-port <number>] [-ip <IP_address>] [-dtchost <DTC_hostname>]
         [-cluster <on|off>] [-default]

Oracler1MTSRecoveryServiceサービスの構成を表示または設定します。

-defaultを使用して、Oracler1MTSRecoveryServiceの構成をリセットします。

 
 -passwd

Oracler1MTSRecoveryServiceサービスのユーザー・パスワードを更新します。

 
 -trace  [0-5]

トレースを表示またはトレース・レベルを設定します。トレースを無効にするにはレベル0を設定します。

 
 -trcdir [trace_directory]

トレース・ディレクトリを表示または設定します。

 
 -host   <hostname|IP_address> ...

名前またはIPアドレスで特定されるホストで操作を実行します。

オプションが指定されていない場合は、ローカル・ホストが使用されます。

 
 -port   <number>

サービス・ポートを指定するには、このオプションで-newまたは-configを実行します。

オプションが指定されない場合、サービス・ポートは自動的に構成されます。

 
 -ip     <IP_address>

IPアドレスを指定するには、このオプションで-newまたは-configを実行します。

 
 -default

デフォルト構成を設定するには、このオプションで-newまたは-configを実行します。

 
oramtsctl -new -host host1 host2.domain.com host3 -port 2033

例:

自動構成でサービスをインストールします。

oramtsctl -new
 

サービスをポート2032にインストールします。

oramtsctl -new -port 2032
 

ポート2033を使用するようにサービスを構成します。

oramtsctl -config -port 2033
 

サービスのユーザー・パスワードを更新します。

oramtsctl -passwd
 

複数のホストにサービスをインストールし、統一ポート2033を使用します。

oramtsctl -new -host host1 host2.domain.com host3 -port 2033