■質問日: |
2005/02/23 |
■最終更新日: |
2007/08/27 |
■質問内容: |
データベースへのアクセス(データ取得、更新)時に次のようなエラーが発生することがあります。どのようにすればよいでしょうか? jp.co.tenartni.data.DataHandleException: QueryAgentException : QueryAgent : 最大エージェント数を上回る要求が発生しました。 |
■回答内容: |
このエラーはWDCのLocalConnection利用時に設定されたコネクションプールの上限を超えて データベースに接続しようとした場合に発生します。 対策: (A) コネクションプールの最大数を増やす。 web.xml の db_max_agent の値を増やします。(ディフォルトは3です。) ただし、増やしすぎるとサーバのメモリを消費するので注意してください。 また、データベースサーバが許可している最大接続数より多く設定してはいけません。 (B) 待ち時間を設定する。 なんらかの制限により(A)の方法が取れない場合に行ってください。 コネクションプールに空きがない状態でデータベース接続要求があった場合に 待つ時間を設定します。例えば 5 と設定すると、1秒置きにコネクションプール の空きがないかチェックします。5回チェックして、それでもコネクションを取得 できない場合は、「最大エージェント数を上回る要求が発生しました。」という エラーを発生させます。 設定するには、web.xmlの query_agent_manager_max_wait_sec に値を設定します。 ディフォルトは0(待ちません)です。 *** 2007.08.27 db_max_agentのディフォルト値を訂正しました。 誤:10 正:3 |
■添付資料: |
なし |