- PR -

WebLogicのセッションタイムアウトについて

1
投稿者投稿内容
hoge
会議室デビュー日: 2006/07/19
投稿数: 5
投稿日時: 2006-07-19 23:18
はじめまして。
早速ですが質問させてください。

現在、WebLogicを使用してアプリケーションを構築しております。
特定のページに遷移したときのみセッションタイムアウト値を変更させようとしております。
タイムアウト時間を変更させることはできましたが、それを別のページに遷移したときに元の値に戻したいと思いますが、元の値の取得方法がわかりません。
ここで言っている、元の値とはweblogic.xmlに記述したものになります。
お分かりになる方がいらっしゃいましたら、ご教授お願いいたします。
taku
ぬし
会議室デビュー日: 2002/11/12
投稿数: 918
お住まい・勤務地: 墨田区→中野区
投稿日時: 2006-07-20 09:01
javax.servlet.http.HttpSession#setMaxInactiveInterval
http://java.sun.com/j2ee/sdk_1.3/ja/techdocs/api/javax/servlet/http/HttpSession.html#setMaxInactiveInterval(int)
hoge
会議室デビュー日: 2006/07/19
投稿数: 5
投稿日時: 2006-07-20 16:11
taku 様

ご教授ありがとうございます。

試しましたが、setMaxInactiveIntervalメソッドではだめでした。

今回、やりたいことは
1.Webコンテナを起動したときのデフォルトのタイムアウトは30分
2.特定の画面へ遷移したときに、タイムアウトを2時間にする
3.2時間に伸びたタイムアウトを、通常の画面へ遷移したら、30分に戻す
という流れです。

実装として、setMaxInactiveIntervalメソッドを使えば、必要なときに2時間にしたり30分に
戻したりできますが、30分という時間をWebコンテナの設定を参照したいのです。
Webコンテナの設定値と実装する側が設定した値と2箇所で管理することを避けたいと思っております。

わかりにくい説明かも知れませんが、再度ご教授お願いします。

[ メッセージ編集済み 編集者: hoge 編集日時 2006-07-20 16:11 ]

[ メッセージ編集済み 編集者: hoge 編集日時 2006-07-20 16:13 ]
progman
大ベテラン
会議室デビュー日: 2005/06/08
投稿数: 227
投稿日時: 2006-07-20 16:15
1 起動時の値をどこかのstatic変数にでも保持しておいて、変更後に戻すとき参照する。
2 weblogic.xmlをアプリケーションで開いて、該当の変数の設定を取得する。
でどうですか?

taku
ぬし
会議室デビュー日: 2002/11/12
投稿数: 918
お住まい・勤務地: 墨田区→中野区
投稿日時: 2006-07-20 16:45
セッションタイムアウト時間は、下記3つのパターンで設定可能です。
・プログラム中で設定
・web.xmlで設定
・APサーバーで設定

優先順位はプログラムで設定するのが一番優先順位が高く、
APサーバーでの設定が一番優先順位が低くなります。
APサーバーの持っている値を参照したいなら、
APサーバーの設定ファイルを無理矢理読んでください。
恐らくXMLファイルだと思うので、読めるはずです。
それか、プロパティーファイルにでも値を持って、
そこから値を取ってプログラムで、
セッションタイムアウトの設定をするとかしてください。
hoge
会議室デビュー日: 2006/07/19
投稿数: 5
投稿日時: 2006-07-20 16:56
progman 様、taku 様

ご回答ありがとうございます。

新しいsessionが作成されると、当然そのsessionのタイムアウトが設定されるので
どこかのオブジェクトにその値が入っているのかと思っておりましたが、
無理そうなので、takuさんにご教授いただいた
> それか、プロパティーファイルにでも値を持って、
> そこから値を取ってプログラムで、
> セッションタイムアウトの設定をするとかしてください。
で実装するようにします。

ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)