Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 システム定義


システムジャーナルサービス定義

〈このページの構成〉

形式

set形式

〔set jnl_max_datasize=最大レコードデータ長〕
〔set jnl_cdinterval=ジャーナルブロック数〕
〔set jnl_rerun_swap=Y|N〕
〔set jnl_dual=Y|N〕
〔set jnl_singleoperation=Y|N〕
〔set jnl_rerun_reserved_file_open=Y|N〕
〔set jnl_arc_name=グローバルアーカイブジャーナルサービスの
                   リソースグループ名@ノード識別子〕
〔set jnl_arc_buff_size=アーカイブ用バッファサイズ〕
〔set jnl_arc_max_datasize=アーカイブ時の転送データの最大長〕
〔set jnl_arc_terminate_check=Y|N〕
〔set jnl_arc_rec_kind=ジャーナルレコード種別
                     〔ジャーナルレコード種別〕…〕
〔set jnl_arc_uj_code="UJコード〔,UJコード〕…"〕
〔set jnl_arc_check_level=1|2〕
〔set jnl_arc_trn_stat=Y|N〕
〔set jnl_unload_check=Y|N〕
〔set jnl_auto_unload=Y|N〕
〔set jnl_auto_unload_continue=Y|N〕
〔set jnl_auto_unload_path=
        "アンロードジャーナルファイルの格納ディレクトリ名"
      〔,"アンロードジャーナルファイルの格納ディレクトリ名",…〕〕
〔set jnl_max_file_dispersion=並列アクセス化する場合の最大分散数〕
〔set jnl_min_file_dispersion=並列アクセス化する場合の最小分散数〕
〔set watch_time=最大応答待ち時間〕

コマンド形式

{{{{jnladdfg -g  ファイルグループ名  〔ONL〕}}
  {{jnladdpf -g  ファイルグループ名
           〔-e  要素ファイル名〕  
             -a  物理ファイル名
           〔-b  物理ファイル名〕}}}}

機能

システムジャーナルファイルにジャーナルを取得するための実行環境を定義します。

説明

set形式のオペランド

jnl_max_datasize=最大レコードデータ長

 〜〈符号なし整数〉((32000〜4000000))《32000》(単位:バイト)

ジャーナルに取得するレコードデータの最大長を指定します。

計算式を次に示します。次の条件のうちの最大値を指定してください。

  1. UJを取得する場合

    取得するUAP履歴情報の最大の長さ+8 の計算値以上

  2. DAMサービスを使用する場合

    (i)dam_update_block_overオペランドにflushを指定したとき

    a×{(b×2)+24}+128 の計算値以上

    (ii)(i)以外のとき

    a×(b+24)+128 の計算値以上

    a:DAMサービス定義のdam_update_blockオペランドの指定値

    b:damloadコマンド,またはdc_dam_create関数で作成したDAMファイルのうち,最大のブロック長+8(damloadコマンド,またはdc_dam_create関数のblksizeの値+8)

    (iii)(i)または(ii)で算出した値が4000000を超えるとき

    4000000以内のなるべく大きな値

    DAMサービスで出力しようとするジャーナルレコード長がjnl_max_datasizeオペランドの指定値を超える場合,ジャーナルレコードをjnl_max_datasizeオペランドの指定値内のサイズに分割して出力します。ただし,ジャーナルレコードが分割されるとディスクへのジャーナル入出力が増加するおそれがありますので,4000000以内のなるべく大きな値としてください。

  3. TAMサービスを使用する場合

    TAMで取得するCJのデータ長以上

    a×2+96 の計算値以上

    a:TAMサービス定義のtam_max_recsizeオペランドの指定値を4で切り上げた値

  4. MCFサービスを使用する場合

    MCFで取得するGJ,IJ,MJ,OJ,CJのデータ長のうちの最大値以上

    (i)GJのデータ長

    MCFアプリケーション定義のmcfaalcapの-jオプションのgjオペランドにyesを指定したときに取得します。

    ●32ビット版のとき

    ↑(204+seg)/4↑×4

    ●64ビット版のとき

    ↑(204+seg)/8↑×8

    (ii)IJのデータ長

    MCFアプリケーション定義のmcfaalcapの-jオプションのijオペランドにyesを指定したときに取得します。

    ●32ビット版のとき

    ↑(172+seg)/4↑×4

    ●64ビット版のとき

    ↑(172+seg)/8↑×8

    (iii)MJのデータ長

    mcftactmjコマンドを実行したときに取得します。

    ●32ビット版のとき

    ↑(180+seg)/4↑×4

    ●64ビット版のとき

    ↑(180+seg)/8↑×8

    (iv)OJのデータ長

    MHPからメッセージ送信をした場合,MCFアプリケーション定義のmcfaalcapの-jオプションのojオペランドにyesを指定したときに取得します。SPPからメッセージ送信をした場合,ユーザサービス定義のmcf_spp_ojオペランドにYを指定したときに取得します。

    ●32ビット版のとき

    ↑(204+seg)/4↑×4

    ●64ビット版のとき

    ↑(204+seg)/8↑×8

    (v)CJ(メッセージキューサーバ)のデータ長

    ITQ,OTQにディスクキューを使用した場合に取得します。

    次に示す三つの計算式のうち最大の値をデータ長としてください。

    ・計算式1(MCF通信プロセスやアプリケーション起動プロセスで送受信するメッセージ単位で取得するCJ)

    ●32ビット版のとき

    ↑{88+(24×(↑msg/ql↑+↑960/ql↑))+qio}/4↑×4

    ●64ビット版のとき

    ↑{88+(24×(↑msg/ql↑+↑1276/ql↑))+qio}/8↑×8

    ・計算式2(トランザクション単位で取得するCJ)

    ●32ビット版のとき

    ↑{260+Σ{24×(↑msg/ql↑+↑960/ql↑)}+qio}/4↑×4

    ●64ビット版のとき

    ↑{260+Σ{24×(↑msg/ql↑+↑1276/ql↑)}+qio}/8↑×8

    ・計算式3(論理端末やサービスグループ単位で取得するCJ)

    ●32ビット版のとき

    260+(24×rmsg)

    ●64ビット版のとき

    ↑{260+24×rmsg}/8↑×8

    (凡例)

    ↑↑:小数点以下を切り上げます。

    seg:セグメント長

    msg:ディスクキューを使用した受信メッセージ長または送信メッセージ長

    ql:キューファイル物理レコード長

    qio:メッセージキューサービス定義のque_io_maxrecsizeオペランドの指定値

    Σ:該当するトランザクションで,受信または送信したメッセージに対する見積もりの総和

    rmsg:すべての論理端末,サービスグループのうちの構成変更準備停止時における滞留メッセージ数の最大値(構成変更準備停止を行う直前にそれぞれ-mオプションを指定したmcftlsleコマンド,またはmcftlssgコマンドを実行することで,滞留メッセージの最大値を取得できます)

  5. MQAサービスを使用する場合

    (i)32ビットのとき

    j≧716+4×m

    (ii)64ビットのとき

    j≧744+4×m

    (凡例)

    j:jnl_max_datasizeオペランドの指定値

    m:mqa_max_msg_recnumオペランドの指定値

    TP1/Message Queueを使用する場合は,マニュアル「TP1/Message Queue 使用の手引」のmqa_max_msg_recnumオペランドの説明を参照してください。

jnl_cdinterval=ジャーナルブロック数

 〜〈符号なし整数〉((100〜32000))《1000》

チェックポイントダンプを取得する間隔を,ジャーナルブロック数で指定します。

ここで指定した数のジャーナルをジャーナルファイルに格納した時点で,チェックポイントダンプが取得されます。

ここで指定するブロック数以上の容量がジャーナルファイルに必要です。

jnl_rerun_swap=Y|N

 〜《N》

OpenTP1システム再開始時にジャーナルをスワップするかどうかを指定します。

スワップすることで,物理的にジャーナルを分けられます。

Y

ジャーナルをスワップします。

N

ジャーナルをスワップしません。

jnl_dual=Y|N

 〜《N》

ジャーナルファイルを二重化するかどうかを指定します。

Y

ジャーナルファイルを二重化します。

N

ジャーナルファイルを二重化しません。

jnl_singleoperation=Y|N

 〜《N》

ジャーナルファイルを二重化する場合,片系しかスワップ先として使用できなくなったときに,スワップ先として割り当てるかどうかを指定します。

Y

片系しかスワップ先として使用できない場合でもスワップ先として割り当てます(片系運転可)。

N

片系しかスワップ先として使用できない場合はスワップ先として割り当てません(片系運転不可)。

jnl_rerun_reserved_file_open=Y|N

 〜《N》

全面回復時にオープンされたファイルグループがすべて上書き禁止の状態で,スワップ先がない場合,予約ファイルがあれば予約ファイルをオープンするかどうかを指定します。

Yを指定しても,上書きできるファイルグループがある場合は,スワップ先がなくても予約ファイルをオープンしません。

Y

予約ファイルをオープンします。

全面回復のとき,スワップ先がないためにシステムが再度停止することを防ぎます。

N

予約ファイルをオープンしません。

jnl_arc_name=グローバルアーカイブジャーナルサービスのリソースグループ名@ノード識別子 

 〜〈1〜8文字の識別子〉@〈4文字の識別子〉

該当するジャーナルをアーカイブする先の「ノード識別子(システム共通定義のnode_idで指定する名称)」と,そのノードで定義された「グローバルアーカイブジャーナルサービスのリソースグループ名(アーカイブジャーナルサービス定義のファイル名)」を,@で連結したものを指定します。

jnl_arc_buff_size=アーカイブ用バッファサイズ

 〜〈符号なし整数〉((2〜80))《10》(単位:メガバイト)

該当するジャーナルをアーカイブするための,共用メモリバッファの容量を指定します。ここで指定する値は,グローバルアーカイブジャーナルサービスが異常終了と再開始に掛かる時間の間に発生するジャーナル量から求めます。また,ここで指定する値は,次の計算式で求められた値以上の値を指定してください。

jnl_arc_buff_sizeオペランドの値 = ↑(jnl_arc_max_datasize×1024) / 1048576↑×3

この計算式で求められた値よりjnl_arc_buff_sizeオペランドの指定値が小さい場合は,OpenTP1の開始時にKFCA01113-Eの理由コード427を出力し,OpenTP1の開始処理を中止します。

このオペランドは,jnl_arc_nameオペランドを定義している場合にだけ有効です。

jnl_arc_max_datasize=アーカイブ時の転送データの最大長

 〜〈符号なし整数〉((1020〜8188))《1020》(単位:キロバイト)

アーカイブノードにジャーナルデータをアーカイブする場合の最大転送データ長を指定します。このオペランドの値は,次の計算式で求めた値以上の値を指定してください。

jnl_arc_max_datasize ≧ ↑(↑(jnl_max_datasize+336) / 4096↑×4096) / 1024↑

計算式で求められた値よりjnl_arc_max_datasizeの指定値が小さい場合は,OpenTP1の開始時にKFCA01113-Eメッセージの理由コード424を出力してOpenTP1の開始処理を中止します。

また,このオペランドに1020より大きな値を指定する場合は,次の計算式で求められた値以上の値をシステム共通定義のrpc_max_message_sizeオペランドに指定してください。

rpc_max_message_size ≧ ↑(jnl_arc_max_datasize×1024+4096) / 1048576↑

計算式で求められた値よりrpc_max_message_sizeが小さい場合は,OpenTP1の開始時にKFCA01113-Eの理由コード425を出力してOpenTP1の開始処理を中止します。このオペランドは,jnl_arc_nameオペランドを定義している場合にだけ有効です。また,このオペランドの指定値以上の値を,アーカイブジャーナルサービス定義のjnl_arc_max_datasizeオペランドに指定してください。

アーカイブジャーナルサービス定義のjnl_arc_max_datasizeオペランドの値がこのオペランドの指定値より小さく,かつ次の計算値で求めた値より小さい場合は,アーカイブノードとのコネクションの確立時に,KFCA04133-Wの理由コード427を出力し,アーカイブ機能を停止します。

アーカイブジャーナルサービス定義のjnl_arc_max_datasize 
≧ ↑(↑(jnl_max_datasize+336) / 4096↑×4096) / 1024↑

jnl_arc_terminate_check=Y|N

 〜《Y》

該当するジャーナルサービスが正常終了および計画停止するとき,アーカイブ対象ジャーナルをすべてアーカイブするかどうかを指定します。

Y

すべてアーカイブして終了します。

N

アーカイブを中断して終了します。

このオペランドは,jnl_arc_nameオペランドを定義している場合にだけ有効です。

jnl_arc_rec_kind=ジャーナルレコード種別〔ジャーナルレコード種別〕…

 〜《acfgimosu》

アーカイブ対象となるジャーナルレコード種別を指定します。

ジャーナルレコード種別の指定値と内容を次に示します。

レコード種別

指定値

内   容

ジャーナルの種類

FJ

f

DAMファイルの更新情報

回復用ジャーナル

CJ

c

回復対象テーブルの更新情報

SJ

s

システム統計情報

統計用ジャーナル

AJ

a

送信完了情報

IJ

i

入力キュー登録メッセージ

OJ

o

出力キュー登録メッセージ

MJ

m

メッセージジャーナル

GJ

g

receive情報

UJ

u

ユーザ任意の情報

ユーザジャーナル

このオペランドの指定を省略した場合,すべてのジャーナルレコード種別がアーカイブ対象となります。

また,jnl_arc_trn_statオペランドでYを指定した場合,同期点ジャーナルおよびトランザクション管理サービスの回復用ジャーナルは,このオペランドの指定に関係なく,すべてアーカイブの対象となります。

このオペランドを指定した場合は,jnl_arc_check_levelオペランドの指定に注意してください。詳細は,jnl_arc_check_levelオペランドの説明を参照してください。

このオペランドは,jnl_arc_nameオペランドを指定している場合にだけ有効です。

jnl_arc_uj_code="UJコード〔,UJコード〕…"

 〜〈符号なし整数〉((0〜255))《0-255》

UJがアーカイブ対象となっている場合に,アーカイブするUJコードを指定します。コンマ','で区切ると,複数のUJコードを指定できます。

UJコードの先頭に「0x」を指定した場合は16進数,「0」を指定した場合は8進数として指定できます。また,UJコードをハイフン'-'でつなぐと,範囲指定できます。

(例)

15:10進数で「15」

0x15:16進数で「21」

015:8進数で「13」

0-255:「0」から「255」までのすべての値

このオペランドの指定を省略した場合,すべてのUJコードがアーカイブ対象となります。

このオペランドは,jnl_arc_nameオペランドを指定していて,かつjnl_arc_rec_kindオペランドを省略またはuを指定している場合にだけ有効です。

jnl_arc_check_level=1|2

 〜《1》

グローバルアーカイブジャーナル機能を使用した場合に,ファイルグループがスワップ先に割り当てられる条件を指定します。

1

アンロード済みまたはアーカイブ済み状態のファイルグループをスワップ先に割り当てます。

2

アンロード済みかつアーカイブ済み状態のファイルグループをスワップ先に割り当てます。

このオペランドで1を指定し,jnl_arc_rec_kindオペランドにアーカイブするジャーナル種別を指定した場合は,オンラインの回復に必要なジャーナルファイルが失われることがあります。そのため,jnl_arc_rec_kindオペランドでアーカイブするジャーナル種別を選択した場合には,jnl_arc_check_levelオペランドで2を指定してください。この時,アーカイブ済みのファイルグループをスワップ先として割り当てるには,jnlunlfgコマンドでアンロードするか,jnlchgfgコマンドでファイルグループを強制的にアンロード済み状態に変更してください。また,アーカイブ機能の障害時には,jnlchgfgコマンドでファイルグループを強制的にアンロード済み状態に変更してください。

このオペランドは,jnl_arc_nameオペランドを指定している場合にだけ有効です。

jnl_arc_trn_stat=Y|N

 〜《Y》

同期点ジャーナルおよびトランザクション管理サービスの回復用ジャーナルを,アーカイブの対象とするかどうかを指定します。

Y

アーカイブの対象とします。

N

アーカイブの対象としません。

Nを指定した場合,アーカイブジャーナルファイルを使った次の運用コマンドの動作は保証しません。

  • damfrcコマンド(DAM論理ファイルの回復)

  • tamfrcコマンド(TAMファイルの回復)

  • jnlcolcコマンド(ファイル回復用ジャーナルの集積)

  • jnlmkrfコマンド(ジャーナル関係のファイル回復)

  • jnlrputコマンド(グローバルアーカイブアンロードジャーナルファイルのレコード出力)の-eオプション

このオペランドは,jnl_arc_nameオペランドおよびjnl_arc_rec_kindオペランドを指定している場合にだけ有効です。

jnl_unload_check=Y|N

 〜《Y》

スワップ先のファイルグループを決定する時に,アンロード待ち状態をチェックするかどうかを指定します。

Y

アンロード待ち状態をチェックします。

N

アンロード待ち状態をチェックしません。

Yを指定した場合,OpenTP1が強制終了,または異常終了したあとにOpenTP1を強制正常開始したとき,前回のオンラインで現用として使用されていたジャーナルファイルはクローズ状態となります。jnlunlfgコマンドまたはjnlchgfgコマンドでファイルグループのステータスを変更するまで,ジャーナルファイルは使用できません。

Nを指定した場合,アンロードしていないジャーナルは失われます。そのため,通常は,テストなどでジャーナルの運用(ユーザファイルの回復や稼働統計情報の編集など)を必要としない場合に指定します。また,ジャーナルが失われるため,アンロードジャーナルファイルを指定するコマンドが,一部使用できなくなります。詳細は,マニュアル「OpenTP1 運用と操作」を参照してください。

グローバルアーカイブジャーナルサービス機能を使用して,被アーカイブノードとして動作させる環境でNを指定した場合,転送が完了していないジャーナルが上書きされ,アーカイブノード側で世代抜けエラーが発生する場合があります。被アーカイブノードとして起動する場合は,Nを指定しないでください。

jnl_auto_unload=Y|N

 〜《N》

自動アンロード機能を使用するかどうかを指定します。自動アンロード機能の詳細については,マニュアル「OpenTP1 運用と操作」を参照してください。

Y

自動アンロード機能を使用します。

N

自動アンロード機能を使用しません。

jnl_unload_checkオペランドにNが指定されている場合は,jnl_auto_unloadオペランドにYを指定しても自動アンロード機能を使用できません。

jnl_auto_unload_continue=Y|N

 〜《N》

自動アンロード継続機能を使用するかどうかを指定します。自動アンロード継続機能の詳細については,マニュアル「OpenTP1 運用と操作」を参照してください。

Y

自動アンロード継続機能を使用します。

N

自動アンロード継続機能を使用しません。

jnl_auto_unloadオペランドにYを指定している場合にだけ有効です。また,OpenTP1再開始時に指定値を変更できます。

jnl_auto_unload_path="アンロードジャーナルファイルの格納ディレクトリ名"〔,"アンロードジャーナルファイルの格納ディレクトリ名",…〕

 〜〈パス名〉《$DCDIR/spool/dcjnlinf/unload》

自動アンロード機能を使用する場合に,アンロードジャーナルファイルを格納するディレクトリを絶対パス名で指定します。パス名に指定できる文字数は,最大80バイトです。複数のディレクトリを指定できます。指定できるディレクトリの最大数は32です。

このオペランドは,jnl_unload_checkオペランドおよびjnl_auto_unloadオペランドにYを指定した場合にだけ有効です。

このオペランドで指定したパス名に誤りがある場合は,自動アンロード機能を使用できません。また,このオペランドの指定を省略した場合は,$DCDIR/spool/dcjnlinf/unloadを仮定します。

このオペランドに指定するディレクトリには,アンロードジャーナルファイルを格納できるディスク容量が必要です。アンロードジャーナルファイルを格納するディレクトリに必要なディスク容量の算出式を次に示します。

ディスク容量(単位:バイト)=ジャーナルファイルレコード数
   ×ジャーナルファイルレコード長
   ×格納するアンロードジャーナルファイル数
   ×1.2

jnl_max_file_dispersion=並列アクセス化する場合の最大分散数

 〜〈符号なし整数〉((1〜8))《1》

システムジャーナルを並列アクセス化する場合の最大分散数を指定します。

一つのファイルグループで使用する最大要素ファイル数を指定してください。1を指定した場合,または指定を省略した場合は,jnl_min_file_dispersionオペランドの指定値は無効になります。

jnl_min_file_dispersion=並列アクセス化する場合の最小分散数

 〜〈符号なし整数〉((1〜8))《1》

システムジャーナルを並列アクセス化する場合の最小分散数を指定します。

ファイルグループを構成する要素ファイルが障害などで使用できなくなった場合でも,現用として使用できる最小要素ファイル数を指定してください。使用できる要素ファイル数が最小要素ファイル数未満になった場合,ファイルグループは使用できなくなります。

並列アクセス化する場合の最小分散数は次の範囲で指定してください。

最大分散数≧最小分散数≧1

watch_time=最大応答待ち時間

 〜〈符号なし整数〉((0〜65535))(単位:秒)

RPCによってプロセス間で通信する場合,サービス要求を送信してからサービスの応答が返るまでの待ち時間の最大値を指定します。

OpenTP1の終了処理で,このオペランドで指定した時間だけ終了処理を待ち合わせる場合があります。したがって,大きな値を指定した場合,OpenTP1の終了処理に時間が掛かる場合があります。

指定時間を過ぎても応答がない場合は,RPCは送受信タイムアウトとしてエラーリターンします。

0を指定した場合は,応答を受信するまで待ち続けます。0を指定した場合,OpenTP1が終了しない場合があります。

省略した場合は,システム共通定義のwatch_timeオペランドの値を仮定します。

このオペランドは,システム共通定義のwatch_timeオペランドのデフォルト値で使用してください。

特別なチューニングを必要とする場合以外は,このオペランドの内容を変更しないことをお勧めします。

システム共通定義のwatch_timeオペランドのデフォルト値よりも,極端に小さな値または大きな値を指定すると,OpenTP1ダウンに至る障害が発生する場合がありますので,ご注意ください。

コマンド形式

次ページ以降に記述しています。