Fixpack 8.5.5.2 or later

Propiedades personalizadas del virtual member manager

Las propiedades personalizadas se utilizan para configurar los valores avanzados que proporcionan funciones adicionales en el repositorio federado.

preFetchData

La propiedad personalizada preFetchData se añade para dar soporte a la captación previa el almacenamiento en la memoria caché de atributos para un tipo de entidad de usuario o grupo para el repositorio LDAP. Con esta propiedad, puede definir la lista de atributos que desea captar previamente y almacenar en la memoria caché de forma permanente para un determinado tipo de entidad de usuario o grupo.

Información Valor
Tipo de datos String
Valores válidos Una serie que contenga pares de nombres de tipo de entidad y su conjunto de atributos.
El valor válido para esta propiedad contiene pares de nombres de tipo de entidad y sus conjuntos de atributos correspondientes. El valor de la propiedad debe definirse con el siguiente formato:
EntityType1:attribute1,attribute2;EntityType2:attribute1,attribute2

Si el formato o el valor que ha especificado para los atributos no es correcto, puede ver una excepción similar a los ejemplos siguientes:

Utilice el mandato setIdMgrCustomProperty para definir la propiedad preFetchData en el repositorio LDAP federado.
$AdminTask setIdMgrCustomProperty {-id <nombre_repositorio_ldap> -name <nombre_propiedad> -value <valor>}
Por ejemplo: $AdminTask setIdMgrCustomProperty {-id LDAP1 -name preFetchData -value “PersonAccount:sn,cn,givenName,displayName,preferredLanguage;Group:cn,description”}
El siguiente ejemplo muestra la configuración del repositorio LDAP con la propiedad preFetchData:
<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>
A continuación, se indican algunos casos de ejemplo que muestran el flujo de control basándose en los valores que se han configurado para la propiedad preFetchData:
  • Caso de ejemplo 1: iniciar una sesión como el usuario user1 con el valor de la propiedad personalizada preFetchData configurado como: PersonAccount:sn;Group:cn

    Cuando se ejecuta una operación por primera vez para user1, el atributo sn también se recupera y se almacena en la memoria caché junto con la propiedad de inicio de sesión del usuario, aunque no haya ninguna solicitud explícita de sn como parte de la consulta. Para los grupos que contienen user1 como miembro, el atributo cn se almacena en la memoria caché. Para las llamadas posteriores, los datos que se van a recuperar se buscan primero en la memoria caché y sólo si no se encuentran, se realiza una llamada JNDI para el atributo necesario.

  • Caso de ejemplo 2: recuperar un grupo con el valor de la propiedad personalizada preFetchData configurado como: Group:cn

    Cuando se realiza una búsqueda del grupo g1, el repositorio federado recupera y almacena en la memoria caché el grupo cn según la configuración especificada. Si una llamada posterior busca los atributos cn y description, se capta cn en la memoria caché y se realiza una llamada JNDI explícita para captar el grupo description.

domainNameForAutomaticDiscoveryOfLDAPServers

Puede utilizar esta propiedad para buscar un servidor LDAP disponible en el tiempo de ejecución que esté definido en el archivo de configuración DNS para el repositorio LDAP con un determinado nombre de dominio.

Información Valor
Tipo de datos String
Valores válidos El nombre del dominio para el que se definen registros de servidor LDAP en el archivo de configuración DNS.

Aparte de las configuraciones de servidores primarios, también puede configurar servidores de migración tras error en la configuración del repositorio LDAP federado. El repositorio federado cambia al servidor de migración tras error si el servidor primario queda inactivo. Si hay muchos servidores LDAP con los usuarios y los grupos que se han definido para ellos, será difícil especificar todos los nombres de servidor LDAP en la configuración del repositorio LDAP federado. La configuración será más difícil y puede tardar más si hay muchos nodos configurados en WebSphere Application Server y cada nodo está configurado con varios LDAP. Cuando hay muchos servidores LDAP, utilice la propiedad domainNameForAutomaticDiscoveryOfLDAPServers para buscar dinámicamente los nombres de servidor LDAP en el tiempo de ejecución, independientemente de qué servidor LDAP esté configurado en el repositorio LDAP.

Puede definir el nombre de dominio del LDAP para el que se han definido los servidores LDAP correspondientes en el archivo de configuración DNS correspondiente en forma de registros SRV, como se muestra en los siguientes ejemplos:
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
Si se ha establecido la propiedad domainNameForAutomaticDiscoveryOfLDAPServers, el repositorio federado busca los servidores LDAP en el archivo de configuración DNS y realiza las llamadas JNDI posteriores a ese servidor específico.

Puede establecer la propiedad domainNameForAutomaticDiscoveryOfLDAPServers utilizando el mandato setIdMgrCustomProperty: $AdminTask setIdMgrCustomProperty {-id <nombre_repositorio_ldap> -name <nombre_propiedad> -value <valor>}

Por ejemplo:
$AdminTask setIdMgrCustomProperty {-id LDAP1 -name domainNameForAutomaticDiscoveryOfLDAPServers -value “dc=ibm,dc=com”}
El siguiente ejemplo muestra una configuración del repositorio LDAP con la propiedad domainNameForAutomaticDiscoveryOfLDAPServers:
<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>
La propiedad domainNameForAutomaticDiscoveryOfLDAPServers altera temporalmente la configuración del servidor LDAP establecida en el repositorio LDAP, y recupera el nombre del servidor LDAP y el número de puerto del archivo de configuración DNS.

Se genera el siguiente URL de repositorio LDAP federado y se utiliza para buscar los registros de servidor LDAP: ldap:///dc=ibm,dc=com.

Cuando JNDI recibe el URL como el nombre de dominio, el servidor LDAP se recupera del archivo de configuración DNS. Si uno de los servidores LDAP queda inactivo, JNDI inicia otro servidor LDAP definido en el archivo de configuración DNS para ese dominio.

minimizeContextPoolThreadBlock

La propiedad personalizada minimizeContextPoolThreadBlock se utiliza para definir el comportamiento de bloqueo de hebras cuando un servidor LDAP está inactivo y se intenta realizar una lectura en el servidor. Cuando el valor de la propiedad se establece en true, sólo se bloquea un número mínimo de hebras en la operación de lectura y el resto de hebras fallan inmediatamente sin esperar. Si la propiedad se establece en false, cada hebra que realiza solicitudes de lectura se bloquea hasta que se cree un contexto en el LDAP solicitado o la creación de contexto encuentre un tiempo de espera. El tiempo predeterminado para la creación del contexto es de 120 segundos.
Información Valor
Tipo de datos Boolean
Valor predeterminado Verdadero

maxThreadsToBlock

La propiedad maxThreadsToBlock se utiliza junto con la propiedad minimizeContextPoolThreadBlock. Cuando la propiedad minimizeContextPoolThreadBlock se establece en true, maxThreadsToBlock determina el número máximo de hebras que deben bloquearse cuando se ejecuta una operación de lectura LDAP.
Información Valor
Tipo de datos Integer
Valor predeterminado 5

bindTimeout

La propiedad personalizada bindTimeout especifica el tiempo que se tarda en realizar un seguimiento del recuento de enlaces rápidos en milisegundos. Los enlaces que tarden más del tiempo especificado se añaden al registro si el registro de rastreo está habilitado.
Información Valor
Tipo de datos Milisegundos
Valor predeterminado 1000


Condiciones de uso | Comentarios