カスタム・プロパティーは、統合リポジトリー内で一部の追加機能を提供する拡張設定を構成するために使用します。
preFetchData カスタム・プロパティーは、LDAP リポジトリーのユーザー・エンティティー・タイプまたはグループ・エンティティー・タイプに対する、一連の属性のプリフェッチとキャッシュをサポートするために追加します。このプロパティーを使用すると、特定のユーザー・エンティティー・タイプまたはグループ・エンティティー・タイプに対して、永続的にプリフェッチおよびキャッシュする属性のリストを定義できます。
情報 | 値 |
---|---|
データ型 | String |
有効な値 | エンティティー・タイプ名と一連のその属性のペアが含まれるストリング |
EntityType1:attribute1,attribute2;EntityType2:attribute1,attribute2
指定した属性の形式または値が正しくないと、次の例のような例外が表示される場合があります。
com.ibm.websphere.wim.exception.WIMConfigurationException:
CWWIM1043E: 'preFetchData' プロパティーの値の形式が無効です。有効な値を指定してください。例: PersonAccount:sn,mail;Group:cn,description
com.ibm.websphere.wim.exception.WIMConfigurationException:
CWWIM5068E: エンティティー・タイプ 'abc' が無効です。
ここで、abc は、preFetchData プロパティーの構成で指定された無効なエンティティー・タイプの名前です。メッセージには、構成されたエンティティー・タイプの名前が表示されます。com.ibm.websphere.wim.exception.WIMConfigurationException:
CWWIM4516E 'uid1' プロパティーは 'Group' エンティティー・タイプに定義されていません。
ここで、uid1 は、preFetchData プロパティーの構成で指定されたグループ・エンティティー・タイプの無効なプロパティー名です。
メッセージには、プロパティー名とエンティティー・タイプ名が構成されたとおりに表示されます。$AdminTask setIdMgrCustomProperty {-id <ldap_repository_name> -name <property_name> -value <value>}
例: $AdminTask setIdMgrCustomProperty {-id LDAP1 -name
preFetchData -value “PersonAccount:sn,cn,givenName,displayName,preferredLanguage;Group:cn,description”}<config:repositories xsi:type="config:LdapRepositoryType" adapterClassName="com.ibm.ws.wim.adapter.ldap.LdapAdapter"
id="LDAP1" isExtIdUnique="true" supportAsyncMode="false" supportExternalName="false"
supportPaging="false" supportSorting="false" supportTransactions="false" certificateFilter=""
certificateMapMode="exactdn" ldapServerType="IDS" translateRDN="false">
<config:baseEntries name="o=ldap" nameInRepository="o=ldap"/>
<config:loginProperties>uid</config:loginProperties>
<config:CustomProperties name="preFetchData" value="PersonAccount:sn,cn,givenName,displayName,preferredLanguage;Group:cn,description"/>
<config:ldapServerConfiguration primaryServerQueryTimeInterval="15" returnToPrimaryServer="true"
sslConfiguration="">
<config:ldapServers authentication="simple" bindDN="cn=root" bindPassword="{xor}LTAwK25tbA=="
connectionPool="false" connectTimeout="0" derefAliases="always" referal="ignore"
sslEnabled="false">
<config:connections host="localhost" port="389"/>
</config:ldapServers>
</config:ldapServerConfiguration>
</config:repositories>
user1 に対して初めて操作が実行されると、sn が照会の一部として明示的に要求されなくても、ユーザーのログイン・プロパティーと共に sn 属性も取得およびキャッシュされます。user1 をメンバーとして含むグループの場合は、cn 属性がキャッシュされます。後続の呼び出しでは、取得対象のデータは最初にキャッシュ内で検索され、そのデータが見つからなかった場合のみ、必要な属性に対して JNDI 呼び出しが行われます。
グループ g1 に対して検索が実行されると、統合リポジトリーは、ユーザーが指定した構成に基づいてグループ cn を取得してキャッシュします。後続の呼び出しで cn 属性と description 属性が検索された場合、cn はキャッシュからフェッチされ、グループの description をフェッチするために明示的に JNDI 呼び出しが行われます。
このプロパティーを使用すると、LDAP リポジトリーの DNS 構成ファイル内に特定のドメイン名に対して定義されている、使用可能な LDAP サーバーをランタイム時に検索できます。
情報 | 値 |
---|---|
データ型 | String |
有効な値 | DNS 構成ファイル内に定義されている LDAP サーバー・レコードのドメイン名 |
統合 LDAP リポジトリーの構成では、1 次サーバーだけでなく、フェイルオーバー・サーバーも構成できます。 統合リポジトリーは、1 次サーバーが停止するとフェイルオーバー・サーバーに切り替えます。ユーザーやグループが定義された LDAP サーバーが多数ある場合、統合 LDAP リポジトリーの構成でそれらのすべての LDAP サーバーを定義するのは困難です。 WebSphere Application Server 内に多数のノードが構成されており、各ノードが複数の LDAP と共に構成されている場合、統合 LDAP リポジトリーの構成はさらに困難になり、さらに時間がかかります。LDAP サーバーが多数ある場合は、domainNameForAutomaticDiscoveryOfLDAPServers プロパティーを使用して、LDAP リポジトリー内にどの LDAP サーバーが構成されているかにかかわらず、ランタイム時に LDAP サーバー名を動的に検索します。
ldap._tcp.ibm.com 86400 IN SRV 0 0 389 bigbox.ibm.com
ldap._tcp.ibm.com 86400 IN SRV 10 20 1389 smallbox1.ibm.com
domainNameForAutomaticDiscoveryOfLDAPServers プロパティーを設定すると、統合リポジトリーは、DNS 構成ファイルから LDAP サーバーを検索し、後続の JNDI 呼び出しをその特定のサーバーに対して行います。domainNameForAutomaticDiscoveryOfLDAPServers プロパティーは、次のように setIdMgrCustomProperty コマンドを使用して設定できます。$AdminTask setIdMgrCustomProperty {-id <ldap_repository_name> -name <property_name> -value <value>}
$AdminTask setIdMgrCustomProperty {-id LDAP1 -name domainNameForAutomaticDiscoveryOfLDAPServers -value “dc=ibm,dc=com”}
<config:repositories xsi:type="config:LdapRepositoryType" adapterClassName="com.ibm.ws.wim.adapter.ldap.LdapAdapter"
id="LDAP1" isExtIdUnique="true" supportAsyncMode="false" supportExternalName="false"
supportPaging="false" supportSorting="false" supportTransactions="false" certificateFilter=""
certificateMapMode="exactdn" ldapServerType="IDS" translateRDN="false">
<config:baseEntries name="o=ldap" nameInRepository="o=ldap"/>
<config:loginProperties>uid</config:loginProperties>
<config:CustomProperties name="domainNameForAutomaticDiscoveryOfLDAPServers" value="dc=ibm,dc=com"/>
<config:ldapServerConfiguration primaryServerQueryTimeInterval="15" returnToPrimaryServer="true"
sslConfiguration="">
<config:ldapServers authentication="simple" bindDN="cn=root" bindPassword="{xor}LTAwK25tbA=="
connectionPool="false" connectTimeout="0" derefAliases="always" referal="ignore"
sslEnabled="false">
<config:connections host="localhost" port="389"/>
</config:ldapServers>
</config:ldapServerConfiguration>
</config:repositories>
domainNameForAutomaticDiscoveryOfLDAPServers プロパティーは、LDAP リポジトリー内に設定された LDAP サーバーの構成をオーバーライドし、DNS 構成ファイルから LDAP サーバー名とポート番号を取得します。次のような統合 LDAP リポジトリーの URL が生成され、LDAP サーバーのレコードの検索に使用されます。ldap:///dc=ibm,dc=com
JNDI がこの URL をドメイン名として受け取った場合、LDAP サーバーは DNS 構成ファイルから取得されます。LDAP サーバーのいずれかが停止すると、JNDI は、そのドメイン用として DNS 構成ファイル内に定義された別の LDAP サーバーを始動します。
情報 | 値 |
---|---|
データ型 | Boolean |
デフォルト | True |
情報 | 値 |
---|---|
データ型 | Integer |
デフォルト | 5 |
情報 | 値 |
---|---|
データ型 | ミリ秒 |
デフォルト | 1000 |