jueves, 27 de marzo de 2014

Extender WebCenter Portal Analytics

Recientemente he publicado un artículo técnico de cómo extender WebCenter Analytics para recolectar eventos producidos en Content Presenter.

Enlace a la página del artículo (en inglés)

Enlace directo al PDF.
Enlace directo al código.

http://goo.gl/izfpUL

En este artículo se describe lo siguiente:
  • Modelo de datos usado por WebCenter Analytics.
  • Cómo se registra un nuevo evento.
  • Cómo utilizar el API para recolectar información de los nuevos eventos.
  • Extender Content Presenter para añadir los eventos
    • Contenido visto en una plantilla de detalle.
    • Contenido visto en una plantilla de listado.
Espero que sirva para entender y conocer mejor el API de WebCenter.

miércoles, 26 de marzo de 2014

Global Custom Attributes en WebCenter Portal

En WebCenter Portal (anteriormente Spaces) pueden declararse Custom Global Attributes que pueden ser accedidos desde todo portal (space).

Enlace a versión en inglés
Enlace a descarga del proyecto de extensión de Portal

Uno de los attributos que viene por defecto es el wcSessionTimeoutPeriod que establece el tiempo de sesión para la aplicación .

Global Attributes
El acceso a estos atributos puede hacerse desde:
  • EL Expression
  • Java.
¿Cómo accedo usando EL Expression?

#{WCAppContext.application.applicationConfig.customAttributes['wcSessionTimeoutPeriod']}

¿Cómo accedo desde Java? Por ejemplo, ¿desde un Servlet desplegado en Portal (Spaces)?
En caso de acceso por Java puede hacerse también resolviendo la EL Expression anterior. Sin embargo, en caso de hacerlo desde un Servlet esta vía no es factible por lo que se puede acceder usando el siguiente fragmento de código:

import oracle.webcenter.webcenterapp.WebCenterException;
import oracle.webcenter.webcenterapp.internal.model.WebCenterUtils;


try {
    String timeout = WebCenterUtils.getAppCustomAttributeValue("wcSessionTimeoutPeriod");
    System.out.println("Timeout: " + timeout);
} catch (WebCenterException e) {
    e.printStackTrace();
}

Para usar este API es necesario añadir las siguientes librerias:
  • WebCenter Spaces Model
  • WebCenter Spaces Client

martes, 4 de marzo de 2014

Mantenimiento: Purgado y Fragmentación

A la hora de mantener los entornos WebCenter (Content, Portal) limpios y con un rendimiento óptimo hay que tener en cuenta, además de los sistemas de caché y configuraciones optimizadas, el sistema de purgado y limpieza de las bases de datos sobre las que se ejecutan. Aquí se recogen algunos (no todos) que hay que tener en cuenta en entornos productivos.

Versión en inglés

ADF Framework
El framework de ADF usa dos tablas llamada PS_TXN y PCOLL_CONTROL para guardar el estado, la sesión y en general la pasivación de los datos cuando se usa ADF Business Components. Además hace uso de una secuencia llamada PS_TXN_seq.


Tabla PS_TXN
Para mantener las aplicaciones Fusion Middleware en recomendable la configuración de un Job periodico que realize el purgado de estas tablas. Por ejemplo cada día.

Las PL/SQL de purgado pueden ser encontradas (en caso de desarrollos con WebCenter y JDeveloper 11gR1) en el [JDEV_MIDDLEWARE_HOME]/oracle_common/modules/oracle.adf.model_11.1.1/bc4jcleanup.sql

Referencias:
Oracle WebCenter Content
En el caso de Oracle WebCenter Content configurado con alguno de los siguientes indexadores de búsqueda:
  • DATABASE.FULLTEXT
  • OracleTextSearch
Muestras de un indice fragmentado (88%)
Es importantisimo la desfragmentación de los índices utilizados por estos motores para que las búsquedas siempre sean óptimas. Ejecutar la desfragmentación después de una reindexación total es una de las mejores prácticas. En caso de uso de un Job periódico, éste debe ser ejecutado en horario de poco acceso dado que este proceso puede afectar al rendimiento de la plataforma.

Referencias:

WebCenter Portal
WebCenter Portal se basa en MDS (Metadata Service Repository) para almacenar y gestionar las customizaciones y datos internos de la plataforma. El MDS tiene dos configuraciones importantes:

  • Tamaño de caché.
  • Auto purgado y tiempo entre cada purgado.
Esto es configurado en el archivo de configuración adf-config.xml como sigue:

Configuracion de la caché de MDS y Auto Purgado en adf-config.xml
Caché
En caso de que el nivel de customizaciones del portal sea alto es recomendable incrementar este valor:

<mds-config>
...
<cache-config>
        <max-size-kb>100000</max-size-kb>
</cache-config>
 

...
</mds-config>

Purgado
El purgado del repositorio de metadatos es una labor de mantenimiento imprescindible en toda plataforma WebCenter Portal / Framework Portal.  Esta operación no debe ser ejecutada con una frecuencia baja puesto que puede afectar al rendimiento.

<persistence-config>
...
<auto-purge seconds-to-live="3600"/>
...
</persistence-config>

Cómo y dónde configurarlo?
Design Time:
  • WebCenter Framework Portal: Modificando directamente el archivo adf-config.xml
  • WebCenter Portal (previamente llamado Spaces): Customizando el archivo adf-config.xml de configuración.
Runtime:
Para ambos casos es posible configurar tanto el tamaño de caché como el auto purgado desde el árbol de MBeans asociado al servidor.

Configuracion del MDS (Caché y Autopurgado) usando Fusion Middleware Control
Referenciass: