8.6.8 タイムアウトを設定するチューニングパラメタ
ここでは,タイムアウトの設定で使用するチューニングパラメタの設定方法についてまとめて示します。
(1) Webサーバ側で設定するクライアントからのリクエスト受信,およびクライアントへのデータ送信のタイムアウト
図8-9または図8-10のポイント1のタイムアウトを設定するチューニングパラメタです。Webサーバ連携の場合だけ指定できます。
設定項目 |
設定個所 |
---|---|
クライアントからのリクエスト受信,およびクライアントへのデータ送信のタイムアウト |
httpsd.confのTimeoutディレクティブ |
(2) リバースプロキシ側で設定するWebコンテナへのデータ送信のタイムアウト
図8-9のポイント2,およびポイント3のタイムアウトを設定するチューニングパラメタです。リバースプロキシ側で設定するタイムアウトのチューニングパラメタについて説明します。なお,これらのチューニングパラメタは,Webサーバ連携の場合だけ指定できます。
次の表に示す項目は,Smart Composer機能で設定します。パラメタは,簡易構築定義ファイルに定義します。
ポイント |
設定項目 |
設定対象 |
設定個所(パラメタ名) |
---|---|---|---|
2 |
リクエスト送信時のWebコンテナに対するコネクション確立のタイムアウト |
論理Webサーバ(web-server) |
manager.web.reverseproxy.mappingのtimeoutキー |
3 |
リクエスト送信のタイムアウト |
論理Webサーバ(web-server) |
manager.web.reverseproxy.mappingのtimeoutキー |
(3) リバースプロキシ側で設定するWebコンテナからのデータ受信のタイムアウト
図8-9のポイント4のタイムアウトを設定するチューニングパラメタです。
リバースプロキシの転送先単位で設定します。リバースプロキシ側で設定するタイムアウトのチューニングパラメタについて説明します。
次の表に示す項目は,Smart Composer機能で設定します。パラメタは,簡易構築定義ファイルに定義します。
設定項目 |
設定対象 |
設定個所(パラメタ名) |
---|---|---|
レスポンスデータ待ちの通信タイムアウト |
論理Webサーバ(web-server) |
manager.web.reverseproxy.mappingのtimeoutキー |
Webサーバ連携の場合だけ指定できます。
(4) Webコンテナ側で設定するリバースプロキシまたはWebクライアントからのデータ受信のタイムアウト
図8-9のポイント5のタイムアウトを設定するチューニングパラメタです。
J2EEサーバ単位で設定します。Webコンテナ側で設定するタイムアウトのチューニングパラメタについて説明します。
次の表に示す項目は,Smart Composer機能で設定します。パラメタは,簡易構築定義ファイルに定義します。
設定項目 |
設定対象 |
設定個所(パラメタ名) |
---|---|---|
リバースプロキシまたはWebクライアントからの応答待ちのタイムアウト |
論理J2EEサーバ(j2ee-server) |
webserver.connector.nio_http.receive_timeout |
(5) Webコンテナ側で設定するリバースプロキシまたはWebクライアントへのデータ受信のタイムアウト
図8-9のポイント13のタイムアウトを設定するチューニングパラメタです。
J2EEサーバ単位で設定します。Webコンテナ側で設定するタイムアウトのチューニングパラメタについて説明します。
次の表に示す項目は,Smart Composer機能で設定します。パラメタは,簡易構築定義ファイルに定義します。
設定項目 |
設定対象 |
パラメタ名 |
---|---|---|
レスポンス送信処理のタイムアウト |
論理J2EEサーバ(j2ee-server) |
webserver.connector.nio_http.send_timeout |
(6) EJBクライアント側で設定するEnterprise Beanのリモート呼び出し(RMI-IIOP通信)とJNDIによるネーミングサービス呼び出しのタイムアウト
図8-9または図8-10のポイント7のタイムアウトを設定するチューニングパラメタです。
J2EEサーバ単位,EJBクライアントアプリケーション単位またはAPIによる呼び出し単位に設定します。
EJBクライアント側で設定するタイムアウトのチューニングパラメタ(RMI-IIOP通信によるリモート呼び出し)を次の表に示します。
単位 |
設定方法 |
設定項目 |
設定個所 |
---|---|---|---|
J2EEサーバ単位 |
Smart Composer機能 |
クライアントとサーバ間の通信タイムアウト |
|
EJBクライアントアプリケーション単位 |
ファイル編集または開始時に指定するシステムプロパティの指定 |
|
|
API単位 |
API |
|
EJBクライアント側で設定するタイムアウトのチューニングパラメタ(ネーミングサービス呼び出し)を次の表に示します。
単位 |
設定方法 |
設定項目 |
設定個所 |
---|---|---|---|
J2EEサーバ単位 |
Smart Composer機能 |
ネーミングサービスとの通信タイムアウト時間 |
|
EJBクライアントアプリケーション単位 |
ファイル編集または開始時に指定するシステムプロパティの指定 |
|
(7) EJBクライアント側で設定するCTMからEnterprise Bean呼び出しのタイムアウト
図8-9または図8-10のポイント8のタイムアウトを設定するチューニングパラメタです。
J2EEサーバ単位,EJBクライアントアプリケーション単位またはAPIによる呼び出し単位に設定します。
なお,このタイムアウトの設定値には,「8.6.8(6) EJBクライアント側で設定するEnterprise Beanのリモート呼び出し(RMI-IIOP通信)とJNDIによるネーミングサービス呼び出しのタイムアウト」で指定した設定値と同じ値が引き継がれます。
(8) EJBコンテナ側で設定するデータベースのトランザクションタイムアウト(DB Connectorを使用した場合)
図8-9または図8-10のポイント10のタイムアウトを設定するチューニングパラメタです。
J2EEサーバ単位,Enterprise Bean,インタフェース,メソッド単位(CMTの場合),またはAPIによる呼び出し単位(BMTの場合)に設定します。
トランザクションタイムアウトのチューニングパラメタを次の表に示します。
単位 |
設定方法 |
設定項目 |
設定個所 |
---|---|---|---|
J2EEサーバ単位 |
Smart Composer機能 |
トランザクションのトランザクションタイムアウト時間のデフォルト |
|
Enterprise Bean,インタフェース,メソッド単位(CMTの場合) |
サーバ管理コマンドのcjsetapppropコマンド |
トランザクションタイムアウト時間 |
|
API単位(BMTの場合) |
API |
UserTransaction#setTransactionTimeoutメソッド※ |
(9) DB Connectorのタイムアウト
図8-9または図8-10のポイント11のタイムアウトを設定するチューニングパラメタです。
DB Connector単位に設定します。
DB Connectorのチューニングパラメタを次の表に示します。
単位 |
設定方法 |
設定項目 |
設定個所 |
---|---|---|---|
DB Connector単位 |
サーバ管理コマンドのcjsetrarpropまたはcjsetresprop |
物理コネクション確立時のタイムアウト |
|
コネクション枯渇時のコネクション取得要求のタイムアウト |
|
||
J2EEサーバ単位 |
Smart Composer機能 |
コネクション障害検知のタイムアウト |
|
(10) データベースのタイムアウト
図8-9または図8-10のポイント12のタイムアウトを設定するチューニングパラメタです。
データベースのタイムアウトは,使用するデータベースの種類によって異なります。なお,ここでは,DB Connectorを使用してHiRDB,Oracle,SQL ServerまたはXDM/RD E2にアクセスする場合のタイムアウトの設定方法について説明します。
- 参考
-
Oracleを使用している場合,チューニングパラメタによってタイムアウトが設定できるのは,グローバルトランザクションを使用しているときだけです。ローカルトランザクションを使用している場合,パラメタによってタイムアウトを設定することはできません。ただし,メソッドで設定するクエリータイムアウトは,ローカルトランザクション,グローバルトランザクションのどちらでも設定できます。
(a) HiRDBのタイムアウトの設定
HiRDBサーバのシステム共通定義またはHiRDBのクライアント環境変数に設定します。詳細は,マニュアル「HiRDB システム定義」またはマニュアル「HiRDB UAP開発ガイド」を参照してください。
HiRDBのタイムアウトを設定するチューニングパラメタを次の表に示します。
タイムアウトの種類 |
設定個所 |
設定方法(パラメタ名) |
設定内容 |
---|---|---|---|
ロック解放待ちタイムアウト |
HiRDBサーバのシステム共通定義 |
pd_lck_wait_timeoutパラメタ |
設定値は任意です。 |
レスポンスタイムアウト |
HiRDBのクライアント環境変数 |
PDCWAITTIME |
設定値は任意です。ただし,グローバルトランザクションの場合はトランザクションタイムアウトの値よりも大きな値を指定します。 |
リクエスト間隔タイムアウト |
HiRDBのクライアント環境変数 |
PDSWAITTIME |
設定値は任意です。ただし,グローバルトランザクションの場合はトランザクションタイムアウトの値よりも大きな値を指定します。 |
- 参考
-
PDCWAITTIMEやPDSWAITTIMEがトランザクションタイムアウトの値よりも小さいと,トランザクションとしては制限時間内であっても,データベースの処理は制限時間オーバーになってタイムアウトが発生します。
その場合,トランザクション中であるにもかかわらずデータベースからコネクションが切断され,トランザクションマネージャがトランザクションを決着できなくなります。
また,グローバルトランザクションの場合,コネクション切断後はトランザクション決着の指示が届かないため,トランザクションのリカバリが必要になります。
(b) Oracleのタイムアウトの設定(グローバルトランザクションを使用している場合)
Oracleのサーバ定義のDISTRIBUTED_LOCK_TIMEOUTパラメタに設定します。
なお,このほか,XAOpenStringのSesTmパラメタの設定がタイムアウトに影響します。このパラメタは,チューニングできません。
(c) SQL Serverのタイムアウトの設定
SQL Serverの環境設定オプションのパラメタ,またはステートメントの実行によって設定します。
SQL Serverのタイムアウトを設定するチューニングパラメタを次の表に示します。
タイムアウトの種類 |
設定個所 |
設定方法(パラメタ名/ステートメント名) |
設定内容 |
---|---|---|---|
メモリ取得待ちタイムアウト |
サーバー構成オプション |
query waitパラメタ |
設定値は任意です。 |
ロック解放待ちタイムアウト |
− |
SET LOCK_TIMEOUTステートメント |
設定値は任意です。 |
(d) XDM/RD E2のタイムアウトの設定
XDM/BASEのシステムオプション定義,HiRDBのクライアント環境変数,またはDBコネクションサーバのコントロール空間起動制御文/サーバ空間起動制御文に設定します。
XDM/RD E2のタイムアウトを設定するチューニングパラメタを次の表に示します。
タイムアウトの種類 |
設定個所 |
設定方法(パラメタ名) |
設定内容 |
---|---|---|---|
ロック解放待ちタイムアウト |
XDM/BASEのシステムオプション定義 |
TIMER |
設定値は任意です。※1 |
SQL実行CPU時間タイムアウト |
DBコネクションサーバのコントロール空間起動制御文/サーバ空間起動制御文 |
SQLCTIME |
設定値は任意です。ただし,グローバルトランザクションの場合はトランザクションタイムアウトの値よりも大きな値を指定します。※2 |
SQL実行経過時間タイムアウト |
DBコネクションサーバのコントロール空間起動制御文/サーバ空間起動制御文 |
SQLETIME |
設定値は任意です。ただし,グローバルトランザクションの場合はトランザクションタイムアウトの値よりも大きな値を指定します。※2 |
トランザクション経過時間タイムアウト |
DBコネクションサーバのコントロール空間起動制御文/サーバ空間起動制御文 |
SVETIME |
設定値は任意です。ただし,グローバルトランザクションの場合はトランザクションタイムアウトの値よりも大きな値を指定します。※2 |
レスポンスタイムアウト |
HiRDBクライアント環境変数 |
PDCWAITTIME |
設定値は任意です。ただし,グローバルトランザクションの場合はトランザクションタイムアウトの値よりも大きな値を指定します。※3 |
(11) J2EEアプリケーションのメソッドタイムアウト
図8-9または図8-10のポイント6とポイント9のタイムアウトを設定するチューニングパラメタです。
Webアプリケーション内またはEnterprise Bean内のメソッド単位にタイムアウトを設定する場合は,アプリケーションの属性として設定します。また,タイムアウトが発生した場合の動作についても,アプリケーションの属性として設定します。これらの項目は,サーバ管理コマンド(cjsetappprop)で設定します。
メソッドの実行時間のタイムアウトを設定するチューニングパラメタを次の表に示します。なお,ポイントごとに設定個所が異なります。
対象になるポイント |
タイムアウトの種類およびタイムアウト時の動作 |
設定個所 |
---|---|---|
6 |
フィルタ,サーブレットまたはJSPのリクエスト処理メソッド |
|
9 |
Enterprise Beanのリクエスト処理メソッド |
|
6および9 |
タイムアウト発生時のアプリケーション単位の動作 |
|