Sun Java System Access Manager 7 2005Q4 配備計画ガイド

ファイアウォールを使用した Directory Server

Access Manager とDirectory Server の間にファイアウォールが設定されている場合、ファイアウォールのアイドル接続タイムアウト値が、Directory Server のアイドル接続タイムアウト値 (nsslapd-idletimeout 属性) を下回ると、Access Manager 接続がタイムアウトすることがあります。この問題は通常、Access Manager の負荷が低く、使用率がピークに達していないときに発生します。

Directory Server 接続がファイアウォールによって切断されると、Access Manager は、この接続が切断されていることを認識せず、LDAP 接続プールで使用可能なすべての接続を使い果たします。LDAP 接続プールを新規に作成するには、Access Manager を再起動する必要があります。この問題を回避するには、次の解決策を検討してください。

グローバルタイムアウト属性の設定

Directory Server の nsslapd-idletimeout グローバル属性を、ファイアウォールのアイドル接続タイムアウト値より小さい値に設定できます。ただし、nsslapd-idletimeout は Access Manager 以外のアプリケーションにも影響するグローバル設定属性であるため、この解決策を採用できない場合もあります。

個々のクライアント接続のタイムアウトの設定

Directory Server では、個々のクライアント接続に対して個別の属性を設定できます。nsIdleTimeout 属性では、個々のクライアントのアイドル接続タイムアウト値を指定します。この値は、Directory Server のグローバル設定で指定した nsslapd-idletimeout 値よりも優先されます。

LDAP ディレクトリにバインドした Access Manager ユーザーについて、nsIdleTimeout 属性を設定します。このユーザーは、デフォルトでは amldapuser になっています。この属性は、dsameuser および puser ユーザーにも適用されます。

amldapuser nsIdleTimeout 属性を追加するには、Directory Server コンソールまたは ldapmodify ツールのどちらかを使用します。次に例を示します。

ldapmodify -h host-name -p port 
-D "cn=Directory Manager" -w password 
dn: cn=amldapuser,ou=DSAME Users, dc=example,dc=com 
changetype: modify
add: nsIdleTimeout
nsIdleTimeout: timeout-value

timeout-value には、ファイアウォールについて設定したアイドル接続タイムアウト値よりも低い値を指定します。このように設定すると、amldapuser ユーザーの Access Manager 接続は、ファイアウォールによって切断される前に、Directory Server によって切断されます。

dsameuser または puser にタイムアウトを追加する場合にも、上の構文を使用しますが、dn オプションを dsameuser または puser ユーザーに設定します。

AMConfig.properties ファイルの com.sun.am.event.connection.idle.timeout プロパティーでは、持続検索が再起動するまでのタイムアウト値 (分) を指定します。このプロパティーを指定しておけば、接続が切断されたときに持続検索が確実に再起動します。この値は、ロードバランサまたはファイアウォール TCP のタイムアウト値よりも低い値にしておくことが理想的です。そうすれば、接続が切断する前に持続検索が再起動するようになるからです。デフォルト値はゼロ (0) で、持続検索は再起動されません。

Directory Server 属性と ldapmodify ツールについては、次の Sun Java System Directory Server のマニュアルを参照してください。http://docs.sun.com/coll/1316.1