ロックサービス定義
形式
set形式
〔set lck_limit_foruser=ユーザサーバの最大同時排他要求数〕 〔set lck_limit_fordam=DAMサービスの最大同時排他要求数〕 〔set lck_limit_fortam=TAMサービスの最大同時排他要求数〕 〔set lck_limit_formqa=MQAサービスの最大同時排他要求数〕 〔set lck_wait_timeout=排他待ち限界経過時間〕 〔set lck_deadlock_info=Y|N〕 〔set lck_deadlock_info_remove=normal|force|no〕 〔set lck_deadlock_info_remove_level=デッドロック情報ファイルとタイム アウト情報ファイルの削除レベル〕 〔set lck_release_detect=interval|pipe〕 〔set lck_release_detect_interval=排他解除検知インタバル最大時間〕 〔set lck_prf_trace_level=LCK性能検証用トレース情報の取得レベル〕
コマンド形式
なし。
機能
OpenTP1システムで排他制御機能を使用するための実行環境を定義します。
説明
set形式のオペランド
●lck_limit_foruser=ユーザサーバの最大同時排他要求数
〜〈符号なし整数〉((0〜327670))《512》
このノード上にあるユーザサーバから同時に発生する排他要求数の最大値を指定します。0を指定した場合は,排他制御機能は使用できません。
●lck_limit_fordam=DAMサービスの最大同時排他要求数
〜〈符号なし整数〉((0〜655340))《512》
このノード上にあるDAMサービスから同時に発生する排他要求数の最大値を指定します。排他要求数の計算式を次に示します。
- 注※
-
damrmコマンドで使用します。
t:同時に実行するトランザクションの数
p:回復対象外アクセスで同時に実行するプロセスの数
T:1トランザクションブランチでオープンするファイル数+参照,更新するブロック数
P:回復対象外アクセス処理の1プロセスでオープンするファイル数+参照,更新するブロック数
●lck_limit_fortam=TAMサービスの最大同時排他要求数
〜〈符号なし整数〉((0〜327670))《512》
このノード上にあるTAMサービスから発生する排他要求数の最大値を指定します。排他要求数の計算式を次に示します。
t:同時に実行するトランザクションの数
T:1トランザクションで参照,更新をするテーブル数
R:1トランザクションで参照,更新をするレコード数
●lck_limit_formqa=MQAサービスの最大同時排他要求数
〜〈符号なし整数〉((0〜327670))《0》
このノード上にあるMQAサービスから同時に発生する排他要求数の最大値を指定します。排他要求数の計算式については,マニュアル「TP1/Message Queue 使用の手引」の定義情報の作成手順に関する記述を参照してください。
●lck_wait_timeout=排他待ち限界経過時間
〜〈符号なし整数〉((0〜32767))《0》(単位:秒)
排他要求が待ち状態になってから解除されるまでの排他待ち時間を監視する限界経過時間を指定します。
指定時間を経過しても待ち状態が解除されない場合,ロックサービスは待ち時間の超過として,排他要求をエラーリターンします。
0を指定した場合は,排他待ちの時間監視をしません。
●lck_deadlock_info=Y|N
〜《Y》
デッドロック情報とタイムアウト情報を出力するかどうかを指定します。
OpenTP1はデッドロック,またはタイムアウトが発生するたびに$DCDIR/spool/dclckinfの下にファイルを作成して,情報を出力します。不要となったファイルは削除してください。
●lck_deadlock_info_remove=normal|force|no
〜《no》
OpenTP1開始時に,デッドロック情報ファイルとタイムアウト情報ファイルを削除するかどうかを指定します。
- normal
-
OpenTP1正常開始時に,削除します。
- force
-
OpenTP1開始時に,削除します。
- no
-
OpenTP1開始時に,削除しません。
●lck_deadlock_info_remove_level=デッドロック情報ファイルとタイムアウト情報ファイルの削除レベル
〜〈符号なし整数〉((0〜24855))《0》(単位:日)
デッドロック情報ファイルとタイムアウト情報ファイルの削除レベルを指定します。
lck_deadlock_info_removeオペランドでnormalかforceを指定した場合に有効です。
- 0
-
全ファイルを削除します。
- 1〜24855
-
ロックサービス開始時刻から起算して「指定値×24」時間以前に作成されたファイルを削除します。
●lck_release_detect=interval|pipe
〜《pipe》
排他が競合した場合,占有しているプロセスがいつ排他を解除したかを調べる方法を指定します。プロセスが排他待ちとなった場合に有効です。
- interval
-
共用メモリの排他管理用領域を一定間隔で調べます。
50ミリ秒からlck_release_detect_intervalオペランドの指定値まで,徐々に間隔を大きくして占有プロセスが排他を解除したかを調べます。
排他占有プロセスが排他を解除しても,次のインタバルまで検索できないため,排他待ち時間が長くなる場合があります。
- pipe
-
pipeファイルを使用して排他解除を調べます。
占有プロセスから排他待ちプロセスに,排他解除が通知されます。したがって,排他占有プロセスが排他を解除したとき,排他待ちプロセスは排他解除を検知できます。
排他が競合したトランザクションのダイナミックステップ数は,interval指定時より増加します。
OpenTP1では,次の計算式の値分のpipeファイルを同時に使用する場合がありますので,ファイル記述子の見積もりに次の計算式の値を加えてください。
同時に排他を占有するプロセス数+同時に排他待ちになるプロセス数+トランザクション回復プロセス数
●lck_release_detect_interval=排他解除検知インタバル最大時間
〜〈符号なし整数〉((10〜60000))《250》(単位:ミリ秒)
排他待ちプロセスが,排他解除を調べるインタバルの最大時間を指定します。lck_release_detectオペランドにintervalを指定した場合に有効です。
50より大きな値を指定すると,50ミリ秒からこの指定値になるまで徐々に間隔を大きくして,プロセスの排他解除を調べます。50以下の値を指定すると,指定された時間間隔でプロセスの排他解除を調べます。統計情報を基に指定値を決定してください。
●lck_prf_trace_level=LCK性能検証用トレース情報の取得レベル
〜((00000000〜00000001))《00000000》
LCK性能検証用トレースの取得レベルを指定します。
LCK性能検証用トレースの詳細については,マニュアル「OpenTP1 解説」の障害の原因解析の説明を参照してください。
- 00000000
-
LCK性能検証用トレースを取得しません。
- 00000001
-
LCK性能検証用トレースを取得します。
取得したトレースをファイル出力または編集出力するには,prfgetコマンド,prfedコマンド,またはdcalzprfコマンドを使用します。ファイルの出力結果は,$DCDIR/spool/dclckinf/prfに保存されます。これらのコマンドの詳細については,マニュアル「OpenTP1 運用と操作」を参照してください。
このオペランドの使用は,TP1/Extension 1をインストールしていることが前提です。TP1/Extension 1をインストールしていない場合の動作は保証できません。
コマンド形式
なし。