Control de simultaneidad

El control de simultaneidad es la gestión de la contienda por recursos de datos. Un esquema de control de simultaneidad se considera pesimista cuando bloquea un recurso determinado al principio de la transacción de acceso a datos y no lo libera hasta que se cierra la transacción. Un esquema de control de simultaneidad se considera optimista cuando se adquieren bloqueos y se liberan después de un breve período de tiempo al final de una transacción.

El objetivo de la simultaneidad optimista es minimizar el tiempo durante el cual un recurso determinado no estará disponible para que lo utilice otra transacción. Esto es especialmente importante en las transacciones de larga ejecución, que en un esquema pesimista bloquean un recurso durante períodos de tiempo excesivamente prolongados.

En un esquema optimista, los bloqueos se obtienen inmediatamente antes de una operación de lectura y se liberan inmediatamente después. Los bloqueos de actualización se obtienen inmediatamente antes de una operación de actualización y se mantienen hasta el final de la transacción.

Para habilitar la simultaneidad optimista, este producto utiliza un esquema de actualización sobrecualificada para comprobar si el origen de datos subyacente lo ha actualizado otra transacción desde el inicio de la transacción actual. Con este esquema, las columnas marcadas para actualización y sus valores originales se añaden explícitamente mediante una cláusula WHERE en la sentencia UPDATE, de modo que la sentencia no se ejecuta correctamente si los valores de columna subyacentes se han modificado. Como resultado, este esquema puede proporcionar el control de simultaneidad al nivel de columnas; los esquemas pesimistas pueden controlar la simultaneidad solamente al nivel de filas.

Los esquemas optimistas generalmente realizan este tipo de comprobación solamente al final de una transacción. Si las columnas subyacentes no se han actualizado desde el inicio de la transacción, las actualizaciones pendientes en los campos de persistencia gestionada por contenedor se confirman y los bloqueos se liberan. Si no se pueden adquirir los bloqueos o si otra transacción ha actualizado las columnas desde el inicio de la transacción actual, la transacción se retrotrae: todo el trabajo que se haya realizado en la transacción se pierde.

Los esquemas de simultaneidad pesimista y optimista requieren diferentes niveles de aislamiento de transacciones. Los enterprise beans que participan en la misma transacción y requieren esquemas de control de simultaneidad diferentes no pueden funcionar con la misma conexión de datos subyacente.

procedimientos recomendados: Si se utiliza o no la simultaneidad optimista dependerá del tipo de transacción. En el caso de las transacciones que no pueden sufrir una anomalía, es mejor gestionarlas con un esquema pesimista. Una transacción que no puede sufrir una anomalía es aquélla en la que la recuperación es arriesgada o utiliza demasiados recursos. En las transacciones que sí pueden, vale la pena y arriesgarse a utilizar un esquema optimista para aumentar su eficacia. En general, la simultaneidad optimista es más eficaz cuando no se esperan colisiones de actualización frecuentes; la simultaneidad pesimista es más eficaz cuando se espera que se produzcan colisiones de actualización con más frecuencia.

Icon that indicates the type of topic Concept topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cejb_cncr
File name: cejb_cncr.html