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 ディレクトリにあります。
注:ユーザー資格情報を xa_open 文字列ではなくプログラムで指定する場合は、COBOL ソース ファイルの 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 コマンド プロンプトを起動します。
  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 コマンド プロンプトを起動します。
  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 つのスイッチ モジュール ファイルが生成されます。
バイナリ ファイル タイプ
ESMSSQL.DLL 静的
ESMSSQL_D.DLL 動的

RM スイッチ モジュールの登録は、Enterprise Server で動的に行うか、使用するバイナリ ファイルに応じて静的に行います。動的なスイッチ モジュールを使用すると、グローバル トランザクションで使用されているアクティブなデータベースのみが TM/RM の XA フローに参加するようになるため、Micro Focus ではこの方法を使用することをお勧めします。

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