Tecnologías asociadas al bean de persistencia gestionada por contenedor
WebSphere Application Server entre servicios CMP (persistencia gestionada por contenedor) más allá de los estándares establecidos por la especificación EJB (Enterprise JavaBeans).
- Herencia de bean de entidad
- La herencia es un aspecto clave en el desarrollo del software orientado a objetos y es una función que falta actualmente en la Especificación EJB.
El uso de la herencia permite al desarrollador definir campos, relaciones y lógica empresarial en un bean de entidad de superclase que heredan todas las subclases. Consulte el apartado Herencia EJB de la documentación de Rational Application Developer para obtener más información sobre el uso de la herencia en WebSphere Application Server y los beans de entidad.
- Políticas de intento de acceso
- Las políticas de intento de acceso proporcionan a los desarrolladores de aplicaciones Java™ Platform, Enterprise Edition (Java EE) el mecanismo por el cual pueden indicar el intento de una interacción de aplicación con el estado esencial de los beans de entidad para que los mecanismos de persistencia pueden realizar las optimizaciones adecuadas. Por ejemplo, si se sabe que una entidad no se ha actualizado durante una transacción, la gestión de persistencia puede facilitar el control de simultaneidad y continuar manteniendo la integridad de los datos si prohíbe las operaciones de actualización en ese bean el tiempo que dure la transacción.
- Colocación en memoria caché de datos entre transacciones
- La colocación en memoria caché de datos entre transacciones es una opción
configurable establecida por el desplegador de beans que puede mejorar
significativamente el rendimiento. Está especialmente indicada para los datos que
cambian con poca frecuencia. La opción se conoce como
LifetimeInCache.
Los datos de una entidad configurada en memoria caché durante toda su
vida útil se almacenan en una memoria caché hasta que caduca su tiempo de vida especificado. Las solicitudes en la entidad durante ese tiempo de vida configurado utilizan los datos en
memoria caché, y no tienen como resultado la ejecución de consultas en el almacén de datos
subyacente. El tiempo de vida se puede expresar como el tiempo transcurrido desde la recuperación de los datos desde el almacén de datos hasta una hora específica del día o de la semana. El valor de LifetimeInCache puede ser uno de los siguientes:
- Desactivado
- El valor de LifetimeInCache se ignora. Los beans de este tipo sólo se colocan en memoria caché en una memoria caché con ámbito de transacciones. Los datos en memoria caché de esta instancia no son válidos cuando la transacción ha finalizado.
- ElapsedTime
- El valor de LifetimeInCache se añade a la hora actual cuando finaliza la transacción (en la que se recupera la instancia de bean). Los datos en memoria caché de esta instancia no son válidos después de esta hora. El valor de LifetimeInCache puede añadirse a minutos, horas, días, etc.
- ClockTime
- El valor de LifetimeInCache representa una hora concreta del día. El valor
se añade a la medianoche inmediatamente anterior o posterior para calcular un
valor de tiempo futuro, que se trata como tiempo transcurrido. El uso de este valor
permite especificar que se invaliden los datos en memoria caché de todas las instancias
de este tipo de bean a una hora específica independientemente de cuándo se hayan recuperado.
El uso de la medianoche anterior o siguiente para calcular un valor de hora futuro depende del valor de LifetimeInCache. Si LifetimeInCache más la medianoche anterior es anterior a la hora actual, se utiliza la medianoche siguiente.
Cuando se utiliza el valor de ClockTime, el valor de LifetimeInCache no debe representar más de 24 horas. Si lo hace, el gestor de memoria caché le sustrae incrementos de 24 horas hasta llegar a un valor inferior o igual a 24 horas. Para invalidar los datos a medianoche, establezca LifetimeInCache en cero (0).
- WeekTime
- Este valor es similar a ClockTime excepto que el valor de LifetimeInCache se añade a la medianoche del domingo anterior o siguiente (en realidad, a las 11:59 PM del sábado más 1 minuto). En este caso, el valor de LifetimeInCache puede representar más de 24 horas, pero menos de 7 días.
Nota:Dado que los datos que utilizan los beans de entidad pueden cargarse en transacciones anteriores, si configura el bean como LifeTimeInCache, el nivel de aislamiento y el bloqueo de actualización (políticas de intento de acceso) del bean se pierden para la transacción actual. Esto puede producir problemas de integridad de los datos si la aplicación tiene la lógica para calcular información a partir de datos de sólo lectura y luego guarda el resultado en otro bean. Esto hace que sea importante realizar una comprobación de coherencia de lectura con lectura para asegurar que los datos se bloquean correctamente si se cargan los datos de memoria caché en memoria; de lo contrario, se actualizan los datos en la base de datos sin saber si se han modificado los datos subyacentes, lo que produce que se pierdan los cambios anteriores. Para obtener más información, consulte el tema Configuración de la coherencia de lectura con una herramienta de ensamblaje.
- Beans de entidad de sólo lectura
- La declaración de beans de entidad como sólo lectura aumenta potencialmente la mejora del rendimiento
ofrecido por la colocación en memoria caché. Las dos características operan según el mismo principio: minimizar la sobrecarga en la que se incurre por la recarga frecuente de beans de entidad de datos del almacenamiento persistente. Cuando designa beans de entidad como de sólo lectura, puede especificar los
requisitos de recarga y frecuencia, de acuerdo a las necesidades de la
aplicación.
Para utilizar esta función, declare el tipo de bean como sólo lectura seleccionando un conjunto determinado de opciones de colocación de beans en memoria caché, a través de una lista de selección de las herramientas de ensamblaje. Para obtener más información, consulte el tema Configuración de la coherencia de lectura con una herramienta de ensamblaje.