Enterprise Developer には、Oracle/IBM DB2/XDB/SQL Server 用のスイッチ・モジュール、汎用 1 フェーズ・スイッチ・モジュール、2 フェーズ MQSeries スイッチ・モジュール、およびシステムの base\source\enterpriseserver\xa ディレクトリにある JES 始動型トランザクションで使用する追加のスイッチ・モジュールのソースが含まれています。ソース・ファイルは次のとおりです。
ESORAXA.CBL
|
Oracle
|
ESDB2BXA.CBL
|
IBM DB2
|
ESMSSQL.CBL
|
SQL Server
|
ESODBCXA.CBL
|
ODBC の汎用 1 フェーズ・コミット
|
ESMQXA.DLL
|
MQSeries
|
ESORAOPC.pco
|
Oracle データ・ソースに接続する JES 始動型トランザクション
|
ESDB2OPC.CBL
|
IBM DB2 データ・ソースに接続する JES 始動型トランザクション
|
- SQL Server の要件
- SQL Server モジュールは、Microsoft Distributed Transaction Server (MS DTC) を利用して 2 フェーズ・コミット・サポートを提供し、このスイッチ・モジュールを使用して行われたデータベース接続がすべて単一の XA トランザクションに関与することを保証します。MSDTC は、クライアント・マシンと SQL Server がホストされているマシンの両方で実行されている必要があります。
- SQL Server と ODBC の要件
- いくつかの OpenESQL 指令はプロセスベースであり、通常はデータベース接続を行うプログラムのコード内で設定する必要があります。コンテナ管理アプリケーションとしてディプロイされたエンタープライズ・サーバのもとでサービスを実行する場合や、IKJEFT01 を使用して JES 始動型トランザクションを呼び出す場合は、プログラム・ソースのコンパイル時ではなく XA スイッチ・モジュールのコンパイル時にこれらの指令を指定する必要があります。
- ODBC の制限事項
- ODBC モジュールは、1 フェーズ・コミットのみサポートします。したがって、次のような制限があります。
- 他のリソース・マネージャと一緒に使用することはできません。
- 単一のデータベース接続にのみ使用できます。複数のデータ・ソース接続はサポートされません。
- SQL Server と ODBC の汎用 1 フェーズ・コミットの制限事項
- SQL Server および ODBC の汎用 1 フェーズ・コミットのスイッチ・モジュールを使用する場合、次の SQL 操作は、ディプロイされたコンテナ管理サービスのソースではサポートされません。
- CONNECT
- DISCONNECT
- BEGIN TRANSACTION
- COMMIT
- ROLLBACK
- 追加の Oracle リソース
- Oracle XA スイッチ・モジュールの詳しい使い方 (Open String 定義や、サポートされる SQL 操作の詳細など) については、次のトピックを参照してください。
- このマニュアルの『ここから始めよう』にあるサードパーティ製ソフトウェアの『Database Access Support』トピック
- Oracle RDBMS マニュアルに用意されている『Developing Applications with Oracle XA』ヘルプ・トピック
- 追加の IBM DB2 リソース
- IBM DB2 XA スイッチ・モジュールの詳しい使い方 (Open String 定義や、サポートされる SQL 操作の詳細など) については、次のトピックを参照してください。
- このマニュアルの『ここから始めよう』にあるサードパーティ製ソフトウェアの『Database Access Support』トピック
- IBM RDBMS マニュアルに用意されている『Transaction Managers』ヘルプ・トピック
- DB2 9.1 - IBM RDBMS マニュアルに用意されている『X/Open XA Interface programming considerations』ヘルプ・トピック
スイッチ・モジュールをビルドするには
ディレクトリには、スイッチ・モジュール・ソースのほかに、バッチ・ファイル (32 ビット・アプリケーション用の build.bat と 64 ビット・アプリケーション用の build64.bat) が含まれています。ユーザは、これらのバッチ・ファイルを使用して、必要なスイッチ・モジュールをビルドすることができます。
- 32 ビット・アプリケーションの場合:
- Enterprise Developer コマンド・プロンプト (32 ビット) を開きます。
- %ProgramFiles%\Micro Focus\Enterprise Developer\src\enterpriseserver\xa ディレクトリ (デフォルトの場所) に変更します。
- build switch-module と入力します。
- 64 ビット・アプリケーションの場合:
- Enterprise Developer コマンド・プロンプト (64 ビット) を開きます。
- %ProgramFiles%\Micro Focus\Enterprise Developer\src\enterpriseserver\xa ディレクトリ (デフォルトの場所) に変更します。
- build64 switch-module と入力します。
次に示すように、
switch-module はビルドするモジュールのタイプです。
switch-module の値
|
モジュール・タイプ
|
ora10
|
Oracle 10 データベース
|
ora11
|
Oracle 11 データベース
|
db2
|
IBM DB2
重要:このスイッチ・モジュールをビルドする前に、LIB 環境変数に DB2 LIB ディレクトリのパスが含まれていることを確認してください。
|
odbc
|
ODBC の汎用 1 フェーズ・コミット
|
IKJEFT01 で JES 始動型タスクからリソースに接続する必要がある場合は、下記の追加モジュールもビルドする必要があります。これらのモジュールは、メイン・スイッチ・モジュールによってロードされる必要があります。そのため、システムの PATH 環境変数には追加スイッチ・モジュールのフルパスを含めてください。
switch-module の値
|
モジュール・タイプ
|
ora1pc
|
Oracle データベース
|
db21pc db2_database_alias [db2_userid db2_password
|
IBM DB2。パラメータ:
- db2_database_alias
- エンタープライズ・サーバが実行されているマシン上の DB2 クライアントへカタログされたデータベース・エイリアス
- db2_userid db2_password
- DB2 に接続するためのユーザ ID とパスワード (現在ログインしているユーザのユーザ ID およびパスワードと異なる場合にのみ必要)
|
odbc
|
ODBC の汎用 1 フェーズ・コミット1
|
1 IKJEFT01 経由で JES 始動型タスクを使用して SQL Server データ・ソースにアクセスする場合は、このモジュールが SQL Server XA スイッチ・モジュールに必要になります。
|
重要:エンタープライズ・サーバを実行している場合は、必要なスイッチ・モジュールを
Enterprise Developer でビルドし、スタンドアロンの
エンタープライズ・サーバで使用できるようにしてください。
MQSeries XA スイッチ
ESMQXA モジュールは製品の一部として提供されるため、ビルドする必要はありません。
注:デフォルトでは、ESMQXA モジュールは 2 フェーズ・コミット・モードで動作します。ES_MQ_1PC 環境変数を Yes または True に設定すると、モジュールを 1 フェーズ・コミット・モードで動作させることができます。ただし、これは Micro Focus から勧められた場合にのみ行ってください。
重要:MQ 接続は、XA リソース・マネージャまたはシステム初期化テーブル (SIT) の
いずれか一方で設定する必要があります。上記の両方で設定したり、ES リージョンと MQ キュー・マネージャの間で 2 つの接続を使用したりしないでください。必要な接続は 1 つのみです。