Puede indicar que un tipo EJB (enterprise JavaBeans) determinado no sincronice su estado en el almacenamiento persistente antes de cada invocación de findBy utilizando las variables de entorno o una interfaz de marcador.
Acerca de esta tarea
Hay dos opciones disponibles para indicar que un tipo de EJB determinado no debe sincronizar su estado con el almacenamiento persistente antes de cada invocación de
findBy.
- Establecer una variable de entorno EJ dentro del descriptor de despliegue del bean
- Hacer que la clase de implementación del bean implemente una interfaz de marcador.
Este segundo método resulta especialmente práctico si tiene varias implementaciones de bean y todas amplían una clase raíz individual. En este caso, puede hacer que la clase raíz implemente la interfaz de marcador, lo que hará que todos los beans que amplíen este clase hereden también el comportamiento.
Procedimiento
- Para utilizar la técnica de la variable de entorno de EJB, edite el descriptor de despliegue EJB
utilizando cualquier herramienta de desarrollo Java™ Platform,
Enterprise Edition (Java EE). Para obtener más
información sobre las opciones de herramientas, consulte el tema sobre las
herramientas de ensamblaje.
- Inicie la herramienta.
- Seleccione el descriptor de despliegue EJB del bean con el que desee trabajar.
- Cree una variable de entorno EJB con el nombre com/ibm/websphere/ejbcontainer/disableFlushBeforeFind.
- Establezca el tipo de esta variable en java.lang.Boolean.
- Establezca el valor en True para impedir la sincronización previa a la búsqueda o en False para habilitar el comportamiento predeterminado.
- Guarde los cambios.
- Para utilizar una interfaz de marcador, codifique la clase de implementación del bean de modo que implemente la interfaz com.ibm.websphere.ejbcontainer.disableFlushBeforeFind. No es necesario que la clase de implementación del bean implemente directamente la interfaz, puede implementarla cualquier clase padre. Consulte el paquete com.ibm.websphere.ejbcontainer en la sección
Referencia > Desarrollador > Documentación de la API
del Information Center.
Garantizar la integridad de los datos en consultas realizadas durante una transacción
Si decide inhabilitar la sincronización automática previa a la búsqueda para
determinados tipos de bean, es muy importante que su aplicación utilice otros
medios para asegurarse de que las consultas realizadas durante la transacción
no se realicen en los datos que es posible que no sean válidos. Puede utilizar el método flushCache en la clase com.ibm.websphere.ejbcontainer.EJBContextExtension
(una extensión de javax.ejb.EJBContext) para efectuar una sincronización manual con el almacenamiento persistente en los períodos de tiempo definidos por la aplicación.
Si desea obtener más información acerca de EJBContextExtension y sus clases
SessionContextExtension, EntityContextExtension y MessageDrivenContextExtension
relacionadas, consulte el paquete com.ibm.websphere.ejbcontainer en la
sección Referencia > Desarrollador > Documentación de la
API del Information Center.