Hitachi

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


TAMサービス定義

〈このページの構成〉

形式

set形式

  set tam_max_tblnum=オンライン中に使用するTAMテーブルの最大数
  set tam_max_filesize=オンライン中に使用するTAMテーブルの最大容量
  set tam_max_recsize=TAMテーブルの最大レコード長
〔set tam_jnl_err_flag=STOP|CONTINUE〕
〔set tam_pool_attri=fixed|free|hugepage〕
〔set tam_tbl_lock_mode=LOCK|NOLOCK〕
〔set tam_cbl_level=COBOL APIの排他レベル〕
〔set tam_max_trnnum=同時走行最大トランザクションブランチ数〕
〔set tam_max_trnfilnum=トランザクション内最大アクセステーブル数〕
〔set watch_time=最大応答待ち時間〕

コマンド形式

{{tamtable  〔-o  ローディング契機〕〔-a  アクセス形態〕〔-i〕〔-j〕
              TAMテーブル名  物理ファイル名}}

機能

TAMテーブルを管理するための実行環境を定義します。

説明

set形式のオペランド

tam_max_tblnum=オンライン中に使用するTAMテーブルの最大数

 〜〈符号なし整数〉((1〜65535))

オンライン中に使用するTAMテーブルの最大数を指定します。オンライン中は,ここで指定した数までテーブルを追加できます。

tamtable定義コマンドで指定したTAMテーブル数に,tamaddコマンドでオンライン中に動的に追加するTAMテーブル数を加算したものを,ここで指定します。

tam_max_filesize=オンライン中に使用するTAMテーブルの最大容量

 〜〈符号なし整数〉((136〜1000000000))(単位:バイト)

オンライン中に使用するTAMテーブルの中で,最大のTAMテーブルサイズを指定します。

tamtable定義コマンドで指定したTAMテーブルだけでなく,tamaddコマンドでオンライン中に動的に追加するTAMテーブルのサイズも含めて,それらの中で最大の値を指定してください。

なお,初期データがある状態でtamcreコマンドに-uオプションを指定し,かつ-xオプションを指定しないで実行してTAMファイルを作成した場合,シノニム領域の最適化によって見積もり式から算出されたTAMテーブルの容量よりも実際に作成されるTAMテーブルの最大容量が小さくなります。ただし,この削減量は事前に見積もることができないため,tam_max_filesizeオペランドには,見積もり式から算出されたTAMテーブルの容量の最大値以上の値を指定して下さい。

TAMの共用メモリ量を削減したいなどで,tam_max_filesizeオペランドの指定値を実際の値に近づけたい場合はfillsコマンドの結果から作成されたTAMテーブルの容量をレコード長×レコード数で確認し,TAMテーブルの容量の最大値以上の値を指定して下さい。

注※

TAMテーブルのサイズについては,マニュアル「OpenTP1 運用と操作」にある,TAMファイルのサイズの見積もり式の説明を参照してください。

tam_max_recsize=TAMテーブルの最大レコード長

 〜〈符号なし整数〉((1〜1000000000))(単位:バイト)

オンライン中に使用するTAMテーブルの最大レコード長を指定します。

tam_jnl_err_flag=STOP|CONTINUE

 〜《STOP》

TAMサービスの再開始時にジャーナルの読み込み障害が発生した場合,TAMサービスを停止するかどうかを指定します。

STOP

TAMサービスを停止します。

CONTINUE

TAMテーブルをすべて閉塞状態にしてTAMサービスを開始します。

tam_pool_attri=fixed|free|hugepage

 〜《HP-UXまたはSolarisの場合:fixed AIX,LinuxまたはWindowsの場合:free》

共用メモリにTAMサービス専用のメモリプールを指定します。TAMサービスのメモリプールは,TAMテーブルのロードや,アクセスするテーブルの管理などに使用されます。

このオペランドを指定する場合には,実装するメモリの容量や,全使用容量に対する共用メモリプールの割合などを考慮してください。

fixed

TAMサービス用メモリプールを固定します。

共用メモリのページングによって処理速度が低下することはありません。ただし,実装するメモリの容量が少ない場合,共用メモリ以外(テキストやデータセグメントなど)でページングが発生することがあります。

fixedは,OSがHP-UXまたはSolarisの場合だけ指定できます。なお,Solarisの場合,ご使用の環境によってはfixedを指定できないことがあります。詳細については,「リリースノート」を参照してください。

free

TAMサービス用メモリプールを固定しません。

実装するメモリの容量が少ない場合,共用メモリのページングが発生して処理速度が低下することがあります。

hugepage

TAMサービス用メモリプールにLinuxのHugepage機能を適用して,OS管理領域のメモリ使用効率を向上します。

これによって,TAMサービス用メモリプールを使用するプロセス数増加時にメモリ消費量を軽減できる場合があります。

この指定値は,Linux版の64ビット版の場合だけ指定できます。

<事前設定>

この機能はLinuxのHugepage機能を使っているため,OpenTP1を起動する前に,LinuxのHugepage機能を有効にしておく必要があります。Hugepage機能については,OSのマニュアルを参照してください。Hugepage機能を有効にするときに設定するOSのカーネルパラメタの詳細については,マニュアル「OpenTP1 運用と操作」のHugepage機能の適用(Linux限定)の説明を参照してください。

また,プロセスサービス定義のprc_hugepage_group_idオペランドに,カーネルパラメタのvm.hugetlb_shm_groupに指定したグループIDを指定してください。

<注意事項>

この指定をした場合の注意事項を次に示します。

  • TAMサービス用メモリプールがメモリ上に固定されます。

  • 確保するTAMサービス用メモリプールの大きさがページサイズの大きさに切り上げられます。

  • OSの設定によっては,coreファイルにHugepage機能を適用したTAMサービス用メモリプールが含まれません。coreファイルにTAMサービス用メモリプールを含める場合は,次のどれかを変更する必要があります。

    ・システム共通定義のprc_coredump_filterオペランド

    ・ユーザサービスデフォルト定義のprc_coredump_filterオペランド

    ・ユーザサービス定義のprc_coredump_filterオペランド

注※

ページサイズは,「grep Hugepagesize /proc/meminfo」を実行して確認できます。ページサイズを確認する際は単位に注意してください。

<指定の目安>

TAMサービス用共用メモリプールが実メモリ上に固定化された場合に,次のどちらにも該当しない場合は,この指定を推奨します。

  • 残りの物理メモリの容量で他プロセスを含む固定化されないメモリのページングが頻繁に発生する

  • システム性能に影響する

tam_tbl_lock_mode=LOCK|NOLOCK

 〜《LOCK》

TAMテーブルアクセス形態が’参照型’または’追加・削除できない更新型’のテーブルのテーブル排他モードを指定します。

LOCK

アクセス時のテーブルを排他します。

NOLOCK

アクセス時のテーブルを排他しません。

この指定をした場合は,アクセス時の性能は向上します。また,UAPで排他する指定をしても,テーブル排他はしません。

tam_cbl_level=COBOL APIの排他レベル

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

COBOL APIの排他が競合した場合の,排他レベルを指定します。

なお,この指定はCOBOL APIだけに有効です。

0

無条件に排他が解除されるのを待ちます。

COBOL APIのデータ名Iの指定は無効になります。

1

排他が解除されるのを待たないで,エラーリターンします。

COBOL APIのデータ名Iの指定は無効になります。

2

COBOL APIのデータ名Iの排他解除の指定に従います。

tam_max_trnnum=同時走行最大トランザクションブランチ数

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

TAMテーブルをアクセスするトランザクションブランチの同時走行数を指定します。

この指定値が大きいと,TAMサーバの共用メモリも大きくなります。共用メモリが確保できない場合はTAMサーバを開始できない場合があります。また,指定値が小さいと,API関数でメモリ不足が発生する場合があります。

tam_max_trnfilnum=トランザクション内最大アクセステーブル数

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

1トランザクションブランチでアクセスする最大TAMテーブル数を指定します。

この指定値が大きいと,TAMサーバの共用メモリも大きくなります。共用メモリが確保できない場合はTAMサーバを開始できない場合があります。また,指定値が小さいと,API関数でメモリ不足が発生する場合があります。

watch_time=最大応答待ち時間

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

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

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

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

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

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

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

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

省略した場合の指定値は,次のようになります。

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

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

システム共通定義,TAMサービス定義の両方に指定した場合の指定値の優先順位は,次のとおりです(1.>2.)。

  1. TAMサービス定義

  2. システム共通定義

コマンド形式

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