ここでは,URIによるデータベースセッションフェイルオーバ機能の抑止について説明します。データベースセッションフェイルオーバ機能の抑止は,静的コンテンツやHTTPセッションを使用しないコンテンツに対するリクエストの場合に,データベースセッションフェイルオーバ機能を抑止してリクエスト処理性能を向上する目的で使用します。
完全性保障モードが有効の場合のデータベースセッションフェイルオーバ機能では,同一セッションIDのリクエストに対して,排他的に処理を実行します。例えば,PUSH配信をするために常駐するようなサーブレット/JSPなど,長時間処理が終了しないサーブレット/JSPをHTMLのフレームなどの一つから呼び出した場合,そのサーブレット/JSPの処理が終わるまで,同じフレームから送信されるすべてのリクエストは実行されません。これは,一つのフレームから送信されるリクエストはすべて同一のセッションIDを送信するリクエストになるためです。
このような状態を防ぐためには,HTTPセッションを使用していない特定のリクエストに対して,URIによってデータベースセッションフェイルオーバ機能を抑止する必要があります。
URIによるデータベースセッションフェイルオーバ機能の抑止の有効・無効と実施される処理の違いを次の図に示します。なお,図中のリクエスト1およびリクエスト2は,同一のセッションIDを送信するリクエストです。
図6-6 URIによるデータベースセッションフェイルオーバ機能の抑止の有効・無効と実施される処理の違い
URIによるデータベースセッションフェイルオーバ機能の抑止の有効・無効は,J2EEサーバ単位に設定できます。J2EEサーバ単位の設定については,「6.12 J2EEサーバの設定」を参照してください。