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

[目次][用語][索引][前へ][次へ]

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

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

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

<この項の構成>
(1) TP1インバウンドアダプタのRARファイル
(2) Connector属性ファイルの取得と設定
(3) Connector属性の定義
(4) config-property-nameの説明

(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.14 Connector属性ファイルのテンプレートファイル」を参照してください。
●Connector属性ファイルの取得

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

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

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

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

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

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

(3) Connector属性の定義

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

●TP1インバウンドアダプタのプロパティの設定

次の表に,TP1インバウンドアダプタのプロパティの設定内容を示します。

表4-15 Connector属性ファイルでのTP1インバウンド連携機能の定義

項目 指定するタグ 設定内容
Deployツール上に表示されるリソースアダプタの名称 <display-name> 「TP1_Inbound_Adapter」を指定します。
リソースアダプタのコンフィグレーションプロパティの定義 <resourceadapter>-<config-property> リソースアダプタのコンフィグレーションプロパティのプロパティ名とプロパティ値を指定します※1
リソースアダプタの実行時プロパティの定義 <resourceadapter-runtime>-<property> リソースアダプタの実行時プロパティのプロパティ名とプロパティ値を指定します※2

注※1 リソースアダプタのコンフィグレーションプロパティのプロパティ名とプロパティ値を表4-16に示します。

注※2 リソースアダプタの実行時プロパティのプロパティ名とプロパティ値を表4-17に示します。


表4-16 リソースアダプタのコンフィグレーションプロパティ

config-property-name config-property-value
backlog_count RPC要求を待ち受けるポートのListenキューの長さを指定します。
connection_timeout RPC要求の応答を送信する時のコネクション確立処理のタイムアウト時間を指定します。
ipc_sockctl_watchtime 一時クローズ処理要求の応答待ち時間を指定します。
ipc_tcpnodelay OpenTP1とのコネクションの接続で使用するソケットにTCP_NODELAYオプションを使用するかどうかを指定します。
max_connections RPC要求を待ち受けるポートへの最大同時接続数を指定します。
node_id ノード識別子を指定します。
receive_buffer_size 受信時の受信バッファサイズを指定します。
rpc_close_after_send コネクションを切断します。
rpc_max_thread_count 最大同時RPC要求受け付け数を指定します。
rpc_receive_timeout RPC要求の受信のタイムアウト時間を指定します。
rpc_receive_timeout_interval RPC要求の受信のタイムアウトの監視間隔を指定します。
rpc_sockctl_highwater RPC受信コネクションの一時クローズ処理開始のしきい値を指定します。
rpc_sockctl_lowwater RPC受信コネクションの一時クローズ処理非対象とするコネクション数の割合を指定します。
scd_port RPC要求を待ち受けるポートのポート番号を指定します。
send_buffer_size 応答時の送信バッファサイズを指定します。
send_retry_count サーバの応答送信時のTCP/IPコネクションの接続でエラーが発生したときのリトライ回数を指定します。
send_retry_interval サーバの応答送信時のTCP/IPコネクションの接続でエラーが発生したときのリトライ間隔を指定します。
service_group TP1インバウンドアダプタのサービスグループ名を指定します。
tcp_receive_timeout コネクションを接続してから,もしくはデータを受信してから次のデータを受信するまでのタイムアウト時間を指定します。
tcp_send_timeout RPC要求の応答を送信する際の,1回のデータ送信ごとのタイムアウト時間を指定します。
tcp_send_timeout_interval RPC要求の応答を送信する際の,一回のデータ送信のタイムアウトの監視間隔を指定します。
なお,08-53以降ではこのプロパティの設定は無視されます。
trn_max_connections RPC応答または同期点電文の送受信で使用するコネクションの最大同時接続数を指定します。
trn_max_thread_count 最大同時同期点処理数を指定します。
trn_port 同期点電文を待ち受けるポートのポート番号を指定します。
trn_sockctl_highwater RPC送信コネクションの一時クローズ処理開始のしきい値を指定します。
trn_sockctl_lowwater RPC送信コネクションの一時クローズ処理非対象とするコネクション数の割合を指定します。

注※
プロパティに設定する値の考え方については,「(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.11 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のコネクション切断オプションを設定します。

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

なお,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プロパティ,ネットワークの帯域などを考慮し,この機能の必要性を十分に検討してください。