RDBMS 用の XA コネクタのビルドおよび構成

EDB PostgreSQL モジュールは、PostgreSQL の SQL 呼び出しを利用して 2 フェーズ コミット サポートを提供し、このスイッチ モジュールを使用して行われたすべてのデータベース接続が必ず単一の XA トランザクションに参加するようにします。

PostgreSQL サーバーの XA 用の構成

重要: EDB PostgreSQL RM スイッチ モジュールを使用する前に、max_prepared_transactions プロパティの値をデフォルト値の 0 (ゼロ) から 0 よりも大きい値に変更して、PostgreSQL サーバーを構成する必要があります。この変更を行った後、次に進む前に PostgreSQL サーバーを再起動する必要があります。max_prepared_transactions 構成プロパティの詳細については、PostgreSQL の製品ドキュメントを参照してください。

Windows 環境

ソース コード
EDB PostgreSQL RM スイッチ モジュールの COBOL ソース ファイルである ESPGSQLXA.CBL は、デフォルトでは、%ProgramFiles(x86)%\Micro Focus\Enterprise Developer\src\enterpriseserver\xa ディレクトリに配置されています。
注: If you prefer to supply user credentials programatically rather than in the xa_open string, instructions for doing so are provided in the COBOL source file in the Customization section.
ビルド要件
EDB PostgreSQL RM スイッチ モジュールをビルドするには、使用している Windows のバージョン用の Windows ソフトウェア開発キット (SDK) がインストールされている必要があります。

このスイッチ モジュールをビルドする前に、Windows SDK LIB ディレクトリのサブディレクトリにある odbc32.lib ファイルのパスが LIB 環境変数に含まれていることを確認してください。

スイッチ モジュールのビルド
方法 1
  1. 管理者として、アプリケーションに応じて 32 ビットまたは 64 ビットの Enterprise Developer command promptを起動します。
  2. %ProgramFiles(x86)%\Micro Focus\Enterprise Developer\src\enterpriseserver\xa ディレクトリ (デフォルトの場所) に移動します。
  3. 次のように入力します。 build pg [directives]
方法 2
  1. アプリケーションに応じて 32 ビットまたは 64 ビットの Enterprise Developer command promptを起動します。
  2. %ProgramFiles(x86)%\Micro Focus\Enterprise Developer\src\enterpriseserver\xa ディレクトリ (デフォルトの場所) にあるすべてのファイルを、WRITE 権限がある任意の場所にコピーします。
  3. コピーしたファイルが含まれているディレクトリに移動します。
  4. 次のように入力します。 build pg [directives]
ビルド出力
ビルド プロセスによって、ESPGSQLXA.CBL COBOL ソース ファイルから、バイナリ形式の次の 2 つのスイッチ モジュール ファイルが生成されます。
バイナリ ファイル タイプ
ESPGSQLXA_S.DLL 静的
ESPGSQLXA.DLL 動的

You can register an RM switch module with Enterprise Server dynamically, or register it statically depending on which binary file you use. We recommend that you use the dynamic switch module option, as this ensures that only active databases used in the global transaction participate in the TM/RM XA flow.

UNIX 環境

ソース コード
EDB PostgreSQL RM スイッチ モジュールの COBOL ソース ファイルである ESPGSQLXA.CBL は、デフォルトでは、$COBDIR/src/enterpriseserver/xa ディレクトリに配置されています。
注: If you prefer to supply user credentials programatically rather than in the xa_open string, instructions for doing so are provided in the COBOL source file in the Customization section.
ビルド要件
ビルド スクリプトでは、現在の有効な作業モードを使用して、スイッチ モジュールのビルド方法が決定されます。
スイッチ モジュールのビルド
$COBDIR/src/enterpriseserver/xa ディレクトリには、スイッチ モジュールのビルドに使用できる build スクリプト ファイルが含まれています。
  1. $COBDIR/src/enterpriseserver/xa ディレクトリ (デフォルトの場所) にあるすべてのファイルを、WRITE 権限がある任意の場所にコピーします。
  2. コピーしたファイルが含まれているディレクトリに移動します。
  3. 次のように入力します。 build pg
ビルド出力
ビルド プロセスによって、ESPGSQLXA.CBL COBOL ソース ファイルから、バイナリ形式の次の 4 つの RM スイッチ モジュール ファイルが生成されます。
ESPGSQLXA.so 32 ビット 動的
ESPGSQLXA64.so 64 ビット 動的
ESPGSQLXA_S.so 32 ビット 静的
ESPGSQLXA64_S.so 64 ビット 静的

You can register an RM switch module with Enterprise Server dynamically, or register it statically depending on which binary file you use. We recommend that you use the dynamic switch module option, as this ensures that only active databases used in the global transaction participate in the TM/RM XA flow.

すべての環境

追加リソース
EDB PostgreSQL RM スイッチ モジュールの使い方の詳細については、「EDB PostgreSQL xa_open 文字列」を参照してください。

XA リソースの作成

エンタープライズ サーバー リージョンには、トランザクション ファイルが 1 つ以上含まれているデータストアごとに 1 つの XA リソースが必要になります。データストアを含むデータベースを他の COBOL アプリケーションでも使用する場合は、追加の XA リソースが必要です。この場合の対処方法の詳細については、「複数の XAR の使用」を参照してください。

  1. Enterprise Server Administration のホーム ページのサーバーの表で、トランザクション データ ファイルを参照するエンタープライズ サーバー リージョンの行の左にある [Edit] をクリックします。
  2. [XA Resources] タブをクリックします。
  3. XAR の次の詳細を指定します。
    オプション 説明
    [ID] XAR の一意の ID。
    [Name] XAR の一意の名前。
    [Module] RM スイッチ モジュール実行可能ファイル (Windows プラットフォームの場合は .dll、UNIX プラットフォームの場合は .so) の場所を指定します。これはデータベースごとに異なります。MSSQL および Azure SQL の場合は esmssql.dll/.so、PostgreSQL の場合は ESPGSQLXA.dll/.so、DB2 の場合は ESDB2XA.dll/.so です。詳細については、「RM スイッチ モジュールのビルド」を参照してください。
    [Open string] DSN=<datastore-dsn>

    <datastore-dsn> は、構成するデータストアの ODBC データ ソース名です。

    注: これらの必須のオプションに加え、PostgreSQL データベースを使用する場合は USRPASS=userid.password も指定する必要があります。さらに、その他のオプションも必要に応じて指定できます。詳細については、「エンタープライズ サーバー リージョンの XA リソース (XAR) を定義するには」を参照してください。
  4. [Enabled] を選択します。
  5. [OK] をクリックします。

    XA リソースがすぐに有効になります。