domingo, 23 de febrero de 2014

WebCenter Content: Caché de usuarios

Una de las configuraciones más importantes en WebCenter Content cara a un entorno productivo es la caché de usuarios.

Esquema ejemplo de accesos.

Versión en inglés

¿Por qué?
Aplicaciones como WebCenter Portal, WebCenter Framework Portal, Site Studio For External Application, ADF... contectan con WebCenter Content y propagan la identidad del usuario para poder extraer la información del éste.

En caso de que WebCenter Content este conectado don LDAP externos hará que este haga peticiones a los proveedores de usuarios para obtener información de los mismos.

Los parámetros más importantes son:
  • UserCacheTimeout: Es el TTL (tiempo de vida) de la información de un usuario externo en caché. Por defecto su valor es de 1 minuto (60000 milisegundos). Este valor puede ser muy bajo para un entorno productivo y de alto tráfico.
  • DoNotQueryLDAPForEmail: WebCenter Content sondea el LDAP en busca del email del usuario. Por defecto este valor es false. Si se activa la traza jps se puede observar que en la petición se adhiere la petición del email de usuario cuando se realiza un refresco de la caché de usuario.
    Trazas de "jps" refrescando la información de usuario
  • DoCacheNonexistentUsers: Evita que los usuarios no existentes sondeen el LDAP en busca de la información relativa a los mismos.  
¿Qué valores se recomiendan?
Los valores recomendados para esos parámetros son:
  • UserCacheTimeout: El valor a ajustar para este caso debe ser estudiado.
    Por ejemplo, si un usuario en una aplicación de WebCenter Portal con mucho uso de Content Presenter navega durante 7 u 8 minutos de media durnate una sesión con el Portal. Entonces debería establecerse un valor de 5 minutos (300000 milisegundos). Obviamente debe considerarse incrementarlo a un valor alto según el escenario.
  • DoNotQueryLDAPForEmail: Debería establecerse a un valor true para reducir el tráfico de peticiones a LDAP.
  • DoCacheNonexistentUsers: Asignar un valor true para Reducir tráfico con LDAP de aquellos usuarios que no estan en el directorio de WebCenter Content.
Configuración de WebCenter Content

viernes, 14 de febrero de 2014

Enlace a páginas desde Contenido

En caso de tener que contruir enlaces a páginas de WebCenter Portal desde contenido como HTML, Data Files o Region Templates de WebCenter Content debe usarse la propiedad de las páginas / items de navegación denominada External Id.

Enlace a la versión en inglés.
 
¿Por qué?
En caso de acceder a WebCenter Portal usando otro tipos de URL entonces pueden ocurrir problemas como los siguientes:
  • No se actualiza el navigationContext correctamente.
  • No se mantiene el parámetro de control de estado adf.ctrl-state y por lo tanto Memory Leaks pueden aparecer.
Un ejemplo de enlace malo dentro de un Data File puede ser: /oracle/webcenter/portalapp/pages/home.jspx

¿Cómo se configura el External Id?

En tiempo de diseño puede hacerse desde el navigation-model:
External Id en tiempo de diseño

En tiempo de ejecución puede hacerse desde los link del navigation-model o directamente desde la configuración de páginas:

Externa Id en tiempo de ejecución


¿Cómo se usa el External Id dentro del contenido?
Comunmente se utiliza en contenido de tipo HTML, Region Template o dentro de Data Files.
Para ello se hace uso de la función $wcUrl('externalIdName')

Ejemplo de uso en Data File:

Enlace desde Data File

Ejemplo en HTML o Region Template:

¿La URL muestra /wcnav_externalId/externalIdName... Cómo hacer que muestre la prettyURL?
URL mostrando wcnav_externalId
Configurando el siguiente parámetro de contexto en el web.xml para versiones de WebCenter 11.1.1.6.5 en adelante (11.1.1.8.x) se logra que traduzca las URL a prettyURL en vez de a las de tipo externo.

<context-param>
    <param-name>oracle.webcenter.navigationframework.TRANSLATE_EXTERNAL_ID_TO_PRETTY_URL</param-name>
    <param-value>true</param-value>
</context-param>



URL mostrando la prettyURL

Referencias:
http://docs.oracle.com/cd/E29542_01/doc.1111/e27603/cont_cp.htm#BHAHJCBD