1

(APEX 4.1.1.00.23)

同じセッションを共有する 2 つのアプリケーション A と B があり (同じセッション Cookie を使用するため)、それぞれの最大セッション アイドル時間は同じ値 N に設定されています。アプリケーション A で N 秒以上の作業を行った後 (大量のページ読み込みを行うため、タイムアウトしません)、アプリケーション B に移動すると、すぐにタイムアウトになり、そのログイン ページに移動します。

両方のアプリケーションで APEX_UTIL.SET_SESSION_MAX_IDLE_SECONDS(N) も呼び出してみました.p_scoprのデフォルトは「SESSION」で、APIドキュメントにあることに注意してください

これは、複数のApplication Expressアプリケーションが共通の認証スキームを使用し、共通のセッションでスイートとして動作するように設計されている場合の最も一般的な使用例です。

ただし、同じことが起こります。

各アプリケーションに個別にではなく、セッション全体にタイムアウトを適用する必要があります。これは上記が達成するはずのものではないのですか、それとも私は何か間違っていますか?

4

1 に答える 1

0

これに対する回答は、Oracle APEX フォーラムのChristian Neumueller から得ました。

... 4.2 ではもう問題ありません。4.1.1 のコードを見ると、問題は最終アクセス時刻の保存方法にあるようです。SESSION スコープを指定した APEX_UTIL 呼び出しは両方のアプリのアイドル タイムアウトを設定しますが、各アプリのタイマー (FSP_LAST_REQUEST_TIME) を維持しました。TIMTEST1 での作業は、TIMTEST2 ではなく、TIMTEST1 のタイマーのみを更新しました。1 つのアプリケーションを操作してから別のアプリケーションに切り替えた後、Apex は古いタイマーを確認し、セッションが期限切れになったと判断します。これは明らかにバグです。悪いニュースは、セッション状態管理が大幅に変更されたため、バックポートが実行できないことです。

于 2013-01-16T16:30:39.773 に答える