SQL Server RM スイッチ モジュールのビルドに必要な情報を提供します。
制約事項: This topic applies only when the Enterprise Server feature is enabled.
SQL Server モジュールは、Microsoft Distributed Transaction Server (MS DTC) を利用して 2 フェーズ コミット サポートを提供し、このスイッチ モジュールを使用して行われたすべてのデータベース接続が必ず単一の XA トランザクションに参加するようにします。MSDTC は、クライアント マシンと、SQL Server がホストされているマシンの両方で実行されている必要があります。
- ソース コード
- SQL Server RM スイッチ モジュールの COBOL ソース ファイルである ESMSSQL.CBL は、デフォルトでは、%ProgramFiles(x86)%\Micro Focus\Visual COBOL\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 指令の一覧を参照してください。
- スイッチ モジュールをビルドする
-
- 方法 1
-
- 管理者として、アプリケーションに応じて 32 ビットまたは 64 ビットの Visual COBOL コマンド プロンプトを起動します。
- %ProgramFiles(x86)%\Micro Focus\Visual COBOL\src\enterpriseserver\xa ディレクトリ (デフォルトの場所) に移動します。
- 次のように入力します。build mssql [directives]
- 方法 2
-
- アプリケーションに応じて 32 ビットまたは 64 ビットのVisual COBOL コマンド プロンプトを起動します。
- すべてのファイルを、%ProgramFiles(x86)%\Micro Focus\Visual COBOL\src\enterpriseserver\xa ディレクトリ (デフォルトの場所) から、WRITE パーミッションがある任意の場所にコピーします。
- コピーしたファイルが含まれているディレクトリに移動します。
- 次のように入力します。build mssql [directives]
- ビルド出力
- ビルド プロセスによって、ESMSSQL.CBL COBOL ソース ファイルから、バイナリ形式の次の 2 つのスイッチ モジュール ファイルが生成されます。
バイナリ ファイル |
タイプ |
ESSQLXA.DLL |
静的 |
ESSQLXA_D.DLL |
動的 |
RM スイッチ モジュールは、使用するバイナリ ファイルに応じて、Enterprise Server に動的に登録することも、静的に登録することもできます。動的なスイッチ モジュールを使用すると、グローバル トランザクションで使用されているアクティブなデータベースのみが TM/RM の XA フローに参加するようになるため、この方法を使用することをお奨めします。
- 追加リソース
- xa_open 文字列定義や MSDTC の詳細など、SQL Server RM スイッチ モジュールの使い方の詳細については、「SQL Server xa_open 文字列」を参照してください。