0

私たちの展開では、LoadBalancer の背後に 3 つの OpenAM インスタンスがあり、固定性は IP アドレスに基づいているため、ユーザーは常に同じサーバーにアクセスします。

私の問題は、たった 1 日のワークロードの後、各サーバーで最大同時セッション数に達することです。

amSSO 監査ログを分析したところ、Web エージェント (amService-UrlAccessAgent) が頻繁にセッションを開き (1 分間に 20 セッション以上)、それらのセッションが破棄されないことがわかりました (それらはすべて存続しています :))。

この動作を解釈するのを手伝ってもらえますか? amService-UrlAccessAgent は 1 回ログに記録することを想定していませんでしたか?

よろしくお願いします。

4

2 に答える 2

0

私は解決策を得たと思います。OpenAmコードとエージェントコードを少し掘り下げ始めたとき、次のことがわかりました

           if ((isApplicationModule(authMethName) && 
                (ad.isSuperUser(userDN) || ad.**isSpecialUser**(userDN)))
                || isAgent(amIdentityUser))
           if (isAgent(amIdentityUser) && agentSessionIdleTime > 0) {
                ....
                session.setMaxSessionTime(Long.MAX_VALUE/60);
                session.setMaxIdleTime(agentSessionIdleTime);
                session.setMaxCachingTime(agentSessionIdleTime);
            } else {
                session.setExpire(false);
            }

少し前を見ると、プロパティ com.iplanet.am.session.agentsessionidletim が設定されていない場合、agentSessionIdleTime の値が 0 であることがわかりました。

このプロパティの意味を解釈するには、次のリンクをたどってください: policy agent sessions to time out

助けてくれてありがとう、ピーター。それが私たちの生産システムでうまく機能するかどうかは、すぐにお知らせします。

于 2013-08-06T16:58:30.843 に答える
0

あなたの説明には興味深いことがいくつかあります。

  • Web エージェントを使用している場合、なぜ amService-UrlAccessAgent と一緒に使用するのですか? エージェントの Web エージェント プロファイルを作成し、代わりにそのアカウントを使用する必要があります。
  • 使用している Web サーバーが明確でないため、Apache であると想定しています。その場合、prefork モードを使用していないことを確認してください。推奨される mpm は worker です。これは、一般的に必要なエージェント ログインがはるかに少ないためです。それにもかかわらず、私が知る限り、子プロセスが終了するとエージェントは常にログアウトします。
  • この問題が繰り返し発生する場合は、新しいバージョンの Web エージェントを使用するか、ナイトリーを使用することもできます。
于 2013-08-05T19:38:57.787 に答える