Compartir a través de


Configuración de niveles de aislamiento de transacción

COM+ proporciona a los desarrolladores más control sobre sus aplicaciones al permitir niveles de aislamiento de transacciones configurables. Las versiones de COM+ anteriores a COM+ 1.5 siempre usaban el nivel de aislamiento más alto para las transacciones. Aunque este nivel garantiza que la integridad de los datos siempre se conserva, puede provocar problemas de rendimiento, como tiempos de espera, cuando es necesario realizar muchas transacciones en una base de datos grande. Con los niveles de aislamiento configurables, los desarrolladores experimentados pueden aumentar la simultaneidad para mejorar el rendimiento y la escalabilidad.

COM+ proporciona los siguientes niveles de aislamiento de transacción.

Nivel Descripción
En serie Otra transacción no puede cambiar los datos leídos por una transacción actual hasta que finalice la transacción actual. No se pueden insertar nuevos datos que afecten a la transacción actual. Este es el nivel de aislamiento más seguro y es el valor predeterminado.
Lectura repetible Otra transacción no puede cambiar los datos leídos por una transacción actual hasta que finalice la transacción actual. Cualquier tipo de datos nuevos se puede insertar durante una transacción.
Lectura confirmada Una transacción no puede leer los datos que está modificando otra transacción que no se ha confirmado. Este es el nivel de aislamiento predeterminado en Microsoft SQL Server.
Lectura no confirmada Una transacción puede leer cualquier dato, incluso si se está modificando por otra transacción. Este es el nivel de aislamiento menos seguro, pero permite la simultaneidad más alta.
Any Se admite cualquier nivel de aislamiento. Esta configuración se usa normalmente por los componentes de bajada para evitar conflictos. Esta configuración es útil porque cualquier componente de nivel inferior debe configurarse con un nivel de aislamiento igual o menor que el nivel de aislamiento de su componente ascendente inmediato. Por lo tanto, un componente de nivel inferior que tiene su nivel de aislamiento configurado como Any siempre usa el mismo nivel de aislamiento que usa su componente ascendente inmediato. Si el objeto raíz de una transacción tiene su nivel de aislamiento configurado en Any, su nivel de aislamiento se serializa.

 

Nota:

Si un componente de bajada está configurado con un nivel de aislamiento mayor que un componente ascendente e intenta inscribirse en una transacción, se produce un error y se anula la transacción.

 

Establecer el nivel de aislamiento de la transacción