ページの先頭行へ戻る
Interstage Charset Manager Standard Edition Web入力 Agent V10 コマンドリファレンス
FUJITSU Software

2.2.7 レスポンス生成処理のタイムアウト

JSVR-Webサービスの利用クライアントがリクエストを発行してから、レスポンスを返すまでの処理の流れは「図2.1 リクエストからレスポンスまでの処理の流れ」のとおりです。この図中の(1)~(6)のそれぞれの段階で、接続待ちや処理待ちが発生します。ここでは、本製品固有の処理(3)と(4)について説明します。

図2.1 リクエストからレスポンスまでの処理の流れ

◆「(3)DB接続処理」におけるタイムアウト

タイムアウト発生に関連する、DB接続に関する設定

項目

導入手順での例示値

最大接続本数

10

最大待ち時間

使用しているJDBCデータソース管理のデフォルト、または30秒

上記設定に関連する例外

JDBCデータソース管理が、最大待ち時間以内にDB接続返却処理を完了できなかった場合に、次の例外が発生します。

[2011/07/25 21:55:40]  WSCMN100:Cannot get DB connection.
java.sql.SQLException: [SymfoWARE ODBC Driver][SymfoWARE Server] JYP2608E 利用者制御機能における実行資源の制限を超えました.code = “1”
	at com.fujitsu.symfoware.jdbc.rda.Jdbc3AbsTrace.logSQLUtil(Jdbc3AbsTrace.java:699)
…
	at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
	at com.fujitsu.jsvr.util.ConnectionManager.getConnection(ConnectionManager.java:69)
…
タイムアウトの回避方法

方法

説明

最大待ち時間を増やす

本製品の運用条件として「レスポンスに時間がかかることがあってもよい」とできるのであれば、最大待ち時間を増やし、例外発生を防ぐ(タイムアウトを回避する)ことができる。

最大接続本数を増やす

メモリー使用量やDB負荷増加による別の問題が発生することが危惧される。そのため、この方法は非推奨である。

もしもこの方法をとる場合は、運用環境で負荷テストをし、問題ないことを確認する必要がある。

◆「(4)検索結果取得」におけるタイムアウト

タイムアウト発生に関連する、DB接続に関する設定

項目

導入手順での例示値

最大待ち時間

30秒

上記設定に関連する例外

内部データベースの処理で、最大待ち時間以内に検索結果返却処理を完了できなかった場合に、次の例外が発生します。

[29/07/2011 08:59:03:093 +0900] [2011/07/29 8:59:03]  WSWRD100:Dictionary retrieval cannot be executed.
[29/07/2011 08:59:03:093 +0900] com.fujitsu.jsvr.db.DBException: Cannot access DB.
[29/07/2011 08:59:03:093 +0900] 	at com.fujitsu.jsvr.db.AbstractRecordSet$SQL.next(AbstractRecordSet.java:257)
…
[29/07/2011 08:59:03:109 +0900] Caused by: java.sql.SQLException: [SymfoWARE ODBC Driver] JYP1002U サーバーとの通信時間を超えました.
[29/07/2011 08:59:03:109 +0900] 	at com.fujitsu.symfoware.jdbc.rda.Jdbc4AbsTrace.logSQLUtil(Jdbc4AbsTrace.java:138)
…
タイムアウトの回避方法

方法

説明

時間がかかる処理を実行させない

一般的な環境/状況/リクエスト(マシンスペック、負荷状態、利用シーン等)で、処理に5秒以上かかることはない。しかし、例えば、何のフィルターもかけずにテーブルの全レコードをグループ化してソートするなど、大量データの処理を伴う場合は、環境/状況次第で、最大待ち時間を超えることがある。

このような処理を実行しないようにする。

最大待ち時間を増やす

上記のような、時間がかかる処理をどうしても実行させたい場合で、かつ、運用条件として「レスポンスに時間がかかることがあってもよい」とできるのであれば、最大待ち時間を増やし、タイムアウトを防ぐことができる。

しかし、時間がかかる処理は、他の処理も妨げてしまう。時間がかかる処理が不特定他者から実行されないよう、注意が必要である。

現状で、この方法は非推奨としている。