Método de vaciado remoto para beans de entidad

WebSphere Application Server no graba en la base de datos los cambios efectuados en los beans de entidad hasta el momento en que se comprometen las transacciones. Por consiguiente, es posible que la base de datos esté temporalmente sin sincronizar con los datos almacenados en memoria caché del contenedor del bean de entidad.

Se proporciona un método de vaciado remoto (en la clase com.ibm.commerce.base.helpers.BaseJDBCHelper) que graba todos los cambios comprometidos realizados en la transacción actual asociada con la solicitud de usuario (obtiene información de la memoria caché de beans enterprise) y actualiza la base de datos. Este método remoto puede ser llamado por un mandato. Utilice este método solo cuando sea necesario. Utiliza muchos recursos y tiene un impacto negativo sobre el rendimiento.

Suponga el caso de un mandato de conexión que incluye el código siguiente:


UserAccessBean uab = ...;
 uab.setRegisteredTimestamp(currentTimestamp);
 uab.commitCopyHelper();
Antes de que la transacción se haya comprometido, REGISTRATIONUPDATE de la tabla USERS no se ha actualizado con la indicación de fecha y hora actual. La actualización solo se produce cuando se compromete la transacción. El método de vaciado tiene que utilizarse de modo que todas las consultas JDBC directa en la misma transacción devuelvan el usuario con la indicación de fecha y hora de registro especificada. Por ejemplo, la consulta siguiente busca a todos los usuarios que se han registrado después de 2002-11-16 14:52:20:
select * from USERS where REGISTRATIONUPDATE > '2002-11-16 14:54:20'
El siguiente fragmento de código de ejemplo muestra cómo se puede llamar al método remoto de vaciado con un mandato:
com.ibm.commerce.base.objects.ServerJDBCHelperBean helper = SessionBeanHelper.lookupSessionBean(ServerJDBCHelperBean.class);
helper.flush();