Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)


4.12.2 リソースアダプタの設定

TP1インバウンド連携機能の定義には,TP1インバウンドアダプタのConnector属性ファイルを使用します。

次にTP1インバウンドアダプタのConnector属性ファイルの設定について説明します。

〈この項の構成〉

(1) TP1インバウンドアダプタのRARファイル

TP1インバウンドアダプタのRARファイルは次のディレクトリに格納されています。

(2) Connector属性ファイルの取得と設定

Connector属性ファイルを取得して,値を編集してからTP1インバウンドアダプタに設定します。ここでは,取得と設定の手順について説明します。

参考

TP1インバウンドアダプタでは,アプリケーションサーバが提供するConnector属性ファイルのテンプレートファイルを使用できます。テンプレートファイルを使用すると,TP1インバウンドアダプタをインポートする前に,Connector属性ファイルを編集しておくことができます。テンプレートファイルを使用する場合は,編集対象のConnector属性ファイルをサーバ管理コマンド(cjgetrarpropコマンドまたはcjgetrespropコマンド)で取得する操作が不要です。

Connector属性ファイルのテンプレートファイルの格納先を次に示します。

  • Windowsの場合

    <Application Serverのインストールディレクトリ>\CC\admin\templates\TP1InboundAdapter_cfg.xml
  • UNIXの場合

    /opt/Cosminexus/CC/admin/templates/TP1InboundAdapter_cfg.xml

テンプレートファイル使用時の注意事項については,マニュアル「アプリケーションサーバ リファレンス 定義編(アプリケーション/リソース定義)」の「4.1.13 Connector属性ファイルのテンプレートファイル」を参照してください。

Connector属性ファイルの取得

cjgetrarpropコマンドを実行して,TP1インバウンドアダプタのConnector属性を取得します。

実行形式を次に示します。

cjgetrarprop <サーバ名> -resname TP1_Inbound_Adapter -c <rar属性ファイルのファイルパス>
Connector属性ファイルの設定

cjsetrarpropコマンドを実行して,編集後のTP1インバウンドアダプタのConnector属性ファイルを設定します。TP1インバウンドアダプタのConnector属性の編集内容については,「4.12.2(3) Connector属性の定義」を参照してください。

実行形式を次に示します。

cjsetrarprop <サーバ名> -resname TP1_Inbound_Adapter -c <rar属性ファイルのファイルパス>

(3) Connector属性の定義

TP1インバウンドアダプタのConnector属性ファイルを定義します。

注※

プロパティに設定する値の考え方については,「4.12.2(4) config-property-nameの説明」を参照してください。

表4‒17 リソースアダプタの実行時プロパティ

property-name

property-value

MaxTPoolSize

Message-driven Bean(サービス)呼び出しスレッドの最大数を指定します。

MinTPoolSize

Message-driven Bean(サービス)呼び出しスレッドの最小数を指定します。

TPoolKeepalive

空いているMessage-driven Bean(サービス)呼び出しスレッドの最大生存時間を指定します。

(4) config-property-nameの説明

リソースアダプタのコンフィグレーションプロパティに設定するプロパティ値について説明します。

なお,各プロパティの詳細については,マニュアル「アプリケーションサーバ リファレンス 定義編(アプリケーション/リソース定義)」の「4.1.10(4) TP1インバウンドアダプタに設定する<config-property>に指定できるプロパティ」を参照してください。

(a) サービスグループ名(service_group)

OpenTP1でのサービスグループ名とは,サービスをまとめた単位であり,ネットワークで接続されるすべてのOpenTP1システムの中で一意な識別子です。OpenTP1のユーザサービス定義のservice_group句に設定します。

TP1インバウンドアダプタでのサービスグループ名とは,TP1インバウンドアダプタが呼び出すMessage-driven Bean(サービス)のグループです。OpenTP1と同様にネットワークで接続されるすべてのOpenTP1システムの中で一意な識別子にしてください。サービスグループ名はConnector属性ファイルのservice_groupプロパティに設定します。

(b) ノード識別子(node_id)

OpenTP1でのノード識別子とは,OpenTP1のセットアップ単位に一意に割り当てる4文字の識別子のことです。OpenTP1のシステム共通定義のnode_id句に設定します。

TP1インバウンドアダプタのノード識別子とは,OpenTP1と同様にネットワークで接続されるすべてのOpenTP1システムの中で一意に割り当てる4文字の識別子です。Connector属性ファイルのnode_idプロパティに設定します。

なお,ノード識別子は,トランザクションの障害が発生し,コマンドを使ってトランザクションを強制決着する際にノードを特定するための情報です。そのため,トランザクション連携機能を使用する場合,OpenTP1システムの中で重複しない一意な文字列を設定しておくことを推奨します。トランザクション連携機能を使用しない場合,TP1インバウンドアダプタのノード識別子はデフォルトの設定値のままで問題ありません。

(c) RPC要求の同時実行数(max_connections,rpc_max_thread_count)

RPC要求の同時実行数は,次の表に示すConnector属性ファイルのプロパティに設定します。

表4‒18 RPC要求の同時実行数の設定で使用するプロパティ

設定項目

Connector属性ファイルのプロパティ

RPC受信コネクションの最大同時接続数

max_connections

最大同時RPC要求受け付け数

rpc_max_thread_count

max_connectionsプロパティには,TP1インバウンドアダプタに同時にRPC要求を送信するOpenTP1のプロセス数を設定します。

rpc_max_thread_countプロパティには,TP1インバウンドアダプタで処理するRPC要求の処理時間とスループットから算出したスレッド数を設定します。

例えば,RPC要求の処理時間が50ms,RPC要求のスループットが200TPSを実現する場合に必要なスレッド数は,CPU使用率を100%としたときに,0.05(秒)×200(TPS)=10(スレッド)となります。RPC要求の処理時間は,各システムでの実測値とします。また,CPU100%以下を想定する場合は,それに応じた安全係数を考慮してください。

(d) RPC応答と同期点処理の同時実行数(trn_max_connections,trn_max_thread_count)

RPC応答と同期点処理の同時実行数は,次の表に示すConnector属性ファイルのプロパティに設定します。

表4‒19 RPC応答と同期点処理の同時実行数の設定

設定項目

Connector属性ファイルのプロパティ

RPC送信コネクションの最大同時接続数

trn_max_connections

最大同時同期点処理数

trn_max_thread_count

trn_max_connectionsプロパティには,TP1インバウンドアダプタからOpenTP1へRPC応答を送信するコネクションの最大同時接続数を設定します。設定値は,RPC受信コネクションの最大同時接続数(max_connectionsプロパティ)と同じ値を設定してください。

trn_max_thread_countプロパティには,TP1インバウンドアダプタのトランザクション連携機能を使用する場合に指定する同期点処理の同時処理数を設定します。設定値は,最大同時RPC要求受け付け数(rpc_max_thread_countプロパティ)と同じ値を設定してください。トランザクション連携機能を使用しない場合は,値はデフォルトのままで問題ありません。

(e) 一時クローズ処理(rpc_sockctl_highwater,rpc_sockctl_lowwater,trn_sockctl_highwater,trn_sockctl_lowwater,ipc_sockctl_watchtime)

一時クローズ処理は,次の表に示すConnector属性ファイルのプロパティに設定します。TP1インバウンドアダプタとOpenTP1の一時クローズ処理の設定項目の対応を次の表に示します。

表4‒20 一時クローズ処理の設定項目の対応

設定項目

TP1インバウンドアダプタのConnector属性ファイルのプロパティ

OpenTP1のシステム共通定義の定義句

RPC受信コネクションの一時クローズ処理開始のしきい値(%)

rpc_sockctl_highwater

ipc_sockctl_highwater

RPC受信コネクションの一時クローズ処理非対象とするコネクション数の割合(%)

rpc_sockctl_lowwater

ipc_sockctl_highwater

RPC送信コネクションの一時クローズ処理開始のしきい値(%)

trn_sockctl_highwater

ipc_sockctl_highwater

RPC送信コネクションの一時クローズ処理非対象とするコネクション数の割合(%)

trn_sockctl_lowwater

ipc_sockctl_highwater

一時クローズ応答の待ち時間(秒)

ipc_sockctl_watchtime

ipc_sockctl_watchtime

注※

一時クローズ処理のしきい値と一時クローズ処理非対象とするコネクション数の割合をコンマ区切りで指定します。

rpc_sockctl_lowwaterプロパティには,rpc_sockctl_highwaterプロパティの設定値以下の値を設定してください。rpc_sockctl_highwaterプロパティよりも大きい値を設定した場合は,rpc_sockctl_highwaterプロパティと同じ値が設定されます。

trn_sockctl_lowwaterプロパティには,trn_sockctl_highwaterプロパティの設定値以下の値を設定してください。trn_sockctl_highwaterプロパティよりも大きい値を設定した場合は,trn_sockctl_highwaterプロパティと同じ値が設定されます。

また,コネクションの最大同時接続数および一時クローズ処理のしきい値には,小さい値を指定しないでください。コネクションの最大同時接続数(max_connectionsプロパティとtrn_max_connectionsプロパティ)の設定値,および一時クローズ処理のしきい値(rpc_sockctl_highwaterプロパティとtrn_sockctl_highwaterプロパティ)に小さい値を指定すると,一時クローズ処理が多発し,性能に影響を与えたり,通信障害が発生したりするおそれがあります。

(f) TCP/IPの通信バッファサイズ(receive_buffer_size,send_buffer_size)

TCP/IPの受信バッファサイズは,Connector属性ファイルのreceive_buffer_sizeプロパティに設定します。また,TCP/IPの送信バッファサイズは,Connector属性ファイルのsend_buffer_sizeプロパティに設定します。

バッファサイズを調整する場合,receive_buffer_sizeプロパティの設定値は,OpenTP1のユーザサービス定義のipc_sendbuf_sizeオペランドの設定値に合わせることを推奨します。また,send_buffer_sizeプロパティの設定値は,OpenTP1のユーザサービス定義のipc_recvbuf_sizeオペランドの設定値に合わせることを推奨します。

なお,設定したバッファサイズは,Java SEの仕様上,設定したサイズどおりにならない場合があります。詳細はJava SEのAPIドキュメントを参照してください。

(g) コネクション切断オプション(rpc_close_after_send)

OpenTP1とTP1インバウンドアダプタ間のコネクションを接続すると,デフォルトの設定ではRPC通信および同期点処理後も接続したままとなります。

RPC通信および同期点処理後にコネクションを切断するには,TP1インバウンドアダプタとOpenTP1のコネクション切断オプションを設定します。

コネクション切断オプションは次のように設定します。

  • アプリケーションサーバのConnector属性ファイルのrpc_close_after_sendプロパティにtrueを指定

  • OpenTP1のシステム共通定義のrpc_close_after_send句にYを指定

なお,OpenTP1のrpc_close_after_send句は,ユーザサービス定義にも指定できます。OpenTP1システム全体にコネクション切断オプションを有効にする場合はシステム共通定義に設定してください。サービス単位に有効にする場合はユーザサービス定義に設定してください。

OpenTP1のシステム共通定義とユーザサービス定義の詳細は,マニュアル「OpenTP1 システム定義」を参照してください。

(h) TCP_NODELAYオプション

OpenTP1とのコネクションの接続で使用するソケットにTCP_NODELAYオプションを使用するかどうかを指定します。TCP_NODELAYオプションを使用すると,Nagleアルゴリズムが無効になるので,送信済みデータの応答待ちの状態でも遅延させることなくデータを送信できます。ただし,TCP_NODELAYオプションを使用することで,INETドメイン通信時の送信効率が低下し,ネットワークの負荷が大きくなる場合があります。

TCP_NODELAYオプションの設定は,Connector属性ファイルのipc_tcpnodelayプロパティに指定します。

なお,このプロパティを指定する場合は,receive_buffer_sizeプロパティ,send_buffer_sizeプロパティ,ネットワークの帯域などを考慮し,この機能の必要性を十分に検討してください。