XA スイッチ・モジュール

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 ビット・アプリケーションの場合:
    1. Enterprise Developer コマンド・プロンプト (32 ビット) を開きます。
    2. %ProgramFiles%\Micro Focus\Enterprise Developer\src\enterpriseserver\xa ディレクトリ (デフォルトの場所) に変更します。
    3. build switch-module と入力します。
  • 64 ビット・アプリケーションの場合:
    1. Enterprise Developer コマンド・プロンプト (64 ビット) を開きます。
    2. %ProgramFiles%\Micro Focus\Enterprise Developer\src\enterpriseserver\xa ディレクトリ (デフォルトの場所) に変更します。
    3. build64 switch-module と入力します。
次に示すように、switch-module はビルドするモジュールのタイプです。
switch-module の値 モジュール・タイプ
ora10 Oracle 10 データベース
ora11 Oracle 11 データベース
ora12 Oracle 12 データベース
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 つのみです。