SQL Server RM スイッチ モジュール

SQL Server RM スイッチ モジュールのビルドに必要な情報について説明します。

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

ソース コード
SQL Server RM スイッチ モジュールの COBOL ソース ファイルである ESMSSQL.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.
ビルド要件
SQL Server RM スイッチ モジュールをビルドするには、使用している Windows のバージョン用の Windows ソフトウェア開発キット (SDK) がインストールされている必要があります。

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

いくつかの OpenESQL 指令はプロセス ベースであり、通常はデータベース接続を行うプログラムのコード内で設定する必要があります。

サービスをコンテナー管理アプリケーションとしてディプロイされた Enterprise Server で実行する場合は、プログラム ソースのコンパイル時ではなく RM スイッチ モジュールのコンパイル時に、適切な指令を指定する必要があります。詳細については、「範囲 - OpenESQL SQL コンパイラ指令オプション」のトピックで、プロセス ベースの OpenESQL 指令の一覧を参照してください。

スイッチ モジュールのビルド
重要: Microsoft の SQL Server ODBC 17.3 以降のドライバーでは、XA プロトコルが変更されています。ODBC 17.3 以降を使用している場合は、MSSQL17 ビルド オプションを使用してください。現在、Microsoft ODBC 17 以降のバージョンのドライバーは、SQL Server 2017 以降でのみ動作します。SQL Server 2016 以前では、MSSQL ビルド オプションおよび以前のバージョンの SQL Server ODBC ドライバーを使用する必要があります。
方法 1
  1. 管理者として、アプリケーションに応じて 32 ビットまたは 64 ビットの Enterprise Developer command promptを起動します。
  2. %ProgramFiles(x86)%\Micro Focus\Enterprise Developer\src\enterpriseserver\xa ディレクトリ (デフォルトの場所) に移動します。
  3. 次のように入力します。 build mssql
    重要: ODBC Driver 17 for SQL Server バージョン 17.3 以降の場合は、代わりに build mssql17 と入力します。
方法 2
  1. アプリケーションに応じて 32 ビットまたは 64 ビットの Enterprise Developer command promptを起動します。
  2. %ProgramFiles(x86)%\Micro Focus\Enterprise Developer\src\enterpriseserver\xa ディレクトリ (デフォルトの場所) にあるすべてのファイルを、WRITE 権限がある任意の場所にコピーします。
  3. コピーしたファイルが含まれているディレクトリに移動します。
  4. 次のように入力します。 build mssql
    重要: ODBC Driver 17 for SQL Server バージョン 17.3 以降の場合は、代わりに build mssql17 と入力します。
ビルド出力
ビルド プロセスによって、ESMSSQL.CBL COBOL ソース ファイルから、バイナリ形式の次の 2 つのスイッチ モジュール ファイルが生成されます。
バイナリ ファイル タイプ
ESSQLXA.DLL 静的
ESSQLXA_D.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.

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