Gestión de la primavera

Primavera nivel de aislamiento de transacción, que tiene varios?

interfaz TransactionDefinition define cinco niveles de aislamiento representan constantes:

  • TransactionDefinition.ISOLATION_DEFAULT: Usar los valores predeterminados REPEATABLE_READ Oracle base de datos back-end nivel de aislamiento predeterminado, Mysql nivel de aislamiento predeterminado que se utiliza el nivel de aislamiento de READ_COMMITTED.
  • TransactionDefinition.ISOLATION_READ_UNCOMMITTED: bajo nivel de aislamiento, permitiendo que los datos cambian la lectura no se ha presentado, puede causar lecturas sucias, no repetible lee o lecturas fantasma
  • TransactionDefinition.ISOLATION_READ_COMMITTED: permiten transacciones concurrentes para leer los datos ya presentados, puede evitar lecturas sucias, pero las lecturas fantasma o lectura no repetible se puede seguir produciendo
  • TransactionDefinition.ISOLATION_REPEATABLE_READ: leer repetidamente los resultados del mismo campo son los mismos, a menos que los datos se modificó sus asuntos propios, se puede evitar que las lecturas sucias y lecturas no repetibles, pero todavía se puede leer fantasma producirse.
  • TransactionDefinition.ISOLATION_SERIALIZABLE: el más alto nivel de aislamiento, de cumplimiento de los niveles de aislamiento de ácidos completos. Todas las transacciones ejecutadas uno por uno en orden, es imposible la interferencia entre productos tales asuntos, es decir, este sucio impide nivel lee, no repetibles y las lecturas fantasma . Pero esto afectará seriamente el rendimiento del programa. En circunstancias normales, no es necesario este nivel.

transacción de la primavera en que el comportamiento de propagación de varias transacciones?

Apoyar la situación actual transacción:

  • TransactionDefinition.PROPAGATION_REQUIRED: Si existe la transacción actual, que se añade a la transacción, y si no hay ninguna transacción, crear un nuevo negocio.
  • TransactionDefinition.PROPAGATION_SUPPORTS: Si existe la transacción actual, que se añade a la transacción, y si no hay ninguna transacción, lugares manera no transaccionales continúe funcionando.
  • TransactionDefinition.PROPAGATION_MANDATORY: Si existe la transacción actual, que se añade a la transacción, y si no hay ninguna transacción, se produce una excepción. (Obligatorio: Obligatorio)

No es compatible con la situación actual de la transacción:

  • TransactionDefinition.PROPAGATION_REQUIRES_NEW: crear una nueva transacción, si existe la transacción actual, puso la transacción actual en espera.
  • TransactionDefinition.PROPAGATION_NOT_SUPPORTED: plazo no transacción, si existe la transacción actual, puso la transacción actual en espera.
  • TransactionDefinition.PROPAGATION_NEVER: plazo no transacción, si existe la transacción actual, se produce una excepción.

Otros casos:

  • TransactionDefinition.PROPAGATION_NESTED: Si existe la transacción actual, crear una transacción que se ejecute como la transacción transacción anidada actual, y si no hay ninguna transacción, el valor es equivalente a TransactionDefinition.PROPAGATION_REQUIRED.

Supongo que te gusta

Origin www.cnblogs.com/fanyongqing/p/12466520.html
Recomendado
Clasificación