分散アプリケーションサーバ TP1/LiNK 使用の手引
Microsoft SQL Serverをリソースマネジャとして登録するには,[リソースマネジャのXA関連オブジェクト]ダイアログボックスを使用します。ダイアログボックスについては,「2.1.3(2) リソースマネジャのXA関連オブジェクトの設定」を参照してください。また,Microsoft SQL Serverを登録するときに必要な「関連オブジェクト名称」などについては,Microsoft SQL ServerのXAインタフェースに関して記載されたマニュアルを参照してください。
[リソースマネジャのXA関連オブジェクト]ダイアログボックスでの指定例を次に示します。
C:\PROGRA~1\MICROS~3.NET\Vc7\PLATFO~1\Lib\xaSwitch.Lib
TP1/LiNKでは,X/OpenのXAインタフェースで定められているリソースマネジャのOpen,Close文字列を設定する必要があります。Open,Close文字列は,[OPEN,CLOSE文字列]ダイアログボックスで設定します。ダイアログボックスについては,「2.1.3(4) Open,Close文字列の指定」を参照してください。Microsoft SQL ServerのOpen,Close文字列として指定する内容については,Microsoft SQL Serverのマニュアルを参照してください。
[OPEN,CLOSE文字列]ダイアログボックスでの指定例を次に示します。
RmRecoveryGuidの値は,グローバルで一意な値を指定します。Microsoft Visual C++が提供する「guidgen」ユーティリティプログラムの「Registry Format」で取得した値(括弧は省く)を指定してください。
Timeoutの値は,XAトランザクションのタイムアウト値をミリ秒単位で指定します。タイムアウト時間が経過すると,Microsoft SQL Server(Windows MSDTC)はXAトランザクションを自動的にロールバックします。また,Open,Close文字列には,すべて同じ値を指定します。詳細は,Microsoft SQL Serverのマニュアルを参照してください。
UAPを作成する場合には,[オブジェクト作成]ダイアログボックスで「%DCDIR%\spool\trnrmcmd\userobj\」に作成した,トランザクション制御用オブジェクトファイルをリンケージしてください。ダイアログボックスについては,「2.1.3(5) トランザクション制御用オブジェクトファイルの作成」を参照してください。
リソースマネジャにMicrosoft SQL Serverを使用する場合,MSDTCのXAトランザクションを有効にする必要があります。MSDTCのXAトランザクションは,次の手順で有効にできます。
リソースマネジャにMicrosoft SQL Serverを使用する場合,トランザクションサービス定義(%DCDIR%\conf\trnファイル)にtrn_extend_functionオペランドを追加します。これによって,次の条件が重なった場合にTP1/LiNKのトランザクションの決着関数はDC_OK(0)ではなく,DCTRNER_HAZARD(-904)またはTX_HAZARD(-4)を返すようにできます。
trn_extend_functionオペランドについて次に示します。
set trn_extend_function = トランザクションサービスの機能拡張レベル 〜〈16進数字〉((00000000〜00000001))《00000000》
トランザクションサービスの機能の拡張レベルを,次の中から指定します。
次の指定値で示す機能の拡張レベルを複数指定する場合,それぞれの指定値の論理和を指定してください。
| 関数 | リターン値 | |
|---|---|---|
| trn_extend_function=00000000の場合 | trn_extend_function=00000001の場合 | |
| dc_trn_chained_commit (CBLDCTRN('C-COMMIT')) |
DC_OK(00000) | DCTRNER_HAZARD(00904),DCTRNER_HAZARD_NO_BEGIN(00927) |
| dc_trn_unchained_commit (CBLDCTRN('U-COMMIT')) |
DC_OK(00000) | DCTRNER_HAZARD(00904), |
| tx_commit (TXCOMMIT) |
TX_OK(TX-OK) | TX_HAZARD(TX-HAZARD),TX_HAZARD_NO_BEGIN(TX-HAZARD-NO-BEGIN) |
| dc_mcf_commit (CBLDCMCF('COMMIT')) |
DCMCFRTN_00000(00000) | DCMCFRTN_HAZARD(70908) |
定義の最終行には,改行を入力してください。
# ALL RIGHTS RESERVED, COPYRIGHT (C)1994, HITACHI, LTD. # LICENSED MATERIAL OF HITACHI,LTD. # * # * トランザクションサービス定義 # * 環境名: trn # * # TP1/LiNK (trn) set trn_tran_process_count = 32 set trn_wait_rm_open = continue trnstring -n MS_SQL_Server \ -o "Tm=OpenTP1,RmRecoveryGuid=986D495E-…33E7,Timeout=180\ 000"\ -c "Tm=OpenTP1,RmRecoveryGuid=986D495E-…33E7,Timeout=180\ 000"\ -O "Tm=OpenTP1,RmRecoveryGuid=986D495E-…33E7,Timeout=180\ 000"\ -C "Tm=OpenTP1,RmRecoveryGuid=986D495E-…33E7,Timeout=180\ 000"\ set trn_extend_function = 00000001
リソースマネジャにMicrosoft SQL Serverを使用する場合,UAP作成時に次の点に注意してください。
また,連鎖型RPCを使用する場合には,次の三つの関数およびサービスルーチンを2回目以降のRPCで発行しないようにしてください。
All Rights Reserved. Copyright (C) 2006, 2013, Hitachi, Ltd.