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 Services for MTSを使用するデータ・アクセス・ドライバ
-
Oracle Database 10gリリース2以上のバージョンへのアクセス
注意:
-
Oracle ODBCドライバ、ODP.NET、Oracle Provider for OLE DBおよびOCIは、これらの各製品が必要とされるコンポーネントを作成または使用する場合にのみ必要です。
-
インストールによっては、Oracle MTS Recovery Serviceがインダウト・トランザクションを解決するためにリクエストをリスニングするポートの番号を入力するよう求められます。
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バージョンで分散トランザクションを構成するには、次の手順に従います。
-
Oracle MTS Recovery Serviceを作成して設定するか、既存のリカバリ・サービスが実行中であることを確認します。
-
.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を設定および構成します。
-
Oracle MTS Recovery Serviceを作成して設定するか、既存のリカバリ・サービスが実行中であることを確認します。
-
アプリケーションとともに
Oracle.ManagedDataAccessDTC.dll
をデプロイします。 -
.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実装を使用できます。これを設定するには、次の手順を実行します。
-
.NET構成ファイルで、
UseOraMTSManaged
をtrueに設定します。 -
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を手動で作成する手順は次のとおりです。
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