Gestão da primavera

transação Primavera nível de isolamento, que tem vários?

Interface TransactionDefinition define cinco níveis de isolamento representam constantes:

  • TransactionDefinition.ISOLATION_DEFAULT: Use os padrões REPEATABLE_READ da Oracle de nível de isolamento READ_COMMITTED nível de isolamento de base de dados back-end padrão, Mysql nível de isolamento padrão usados.
  • TransactionDefinition.ISOLATION_READ_UNCOMMITTED: menor nível de isolamento, permitindo que os dados para alterar a leitura não tenha sido apresentado, podem causar leituras sujas, leituras não-repetíveis ou leituras fantasmas
  • TransactionDefinition.ISOLATION_READ_COMMITTED: permitir que transações simultâneas para ler os dados já apresentados, pode impedir sujo lê, mas fantasma lê ou leitura não repetível ainda pode ocorrer
  • TransactionDefinition.ISOLATION_REPEATABLE_READ: ler repetidamente os resultados do mesmo campo são os mesmos, a menos que os dados são modificados si mesmos os seus assuntos, você pode evitar leituras sujas e não repetíveis, mas fantasma ainda lê ocorrer.
  • TransactionDefinition.ISOLATION_SERIALIZABLE: o mais alto nível de isolamento, de conformidade níveis de isolamento ACID completos. Todas as transações executadas uma a uma, em sequência, é impossível a interferência de produtos entre tais assuntos, ou seja, isso impede nível sujo lê, não repetíveis e leituras fantasmas . Mas isso vai afetar seriamente o desempenho do programa. Em circunstâncias normais, você não precisa deste nível.

transação Primavera em que o comportamento de propagação várias transação?

Apoiar a situação atual transação:

  • TransactionDefinition.PROPAGATION_REQUIRED: Se existe a transação atual, ele é adicionado à transação, se nenhuma transação, criar um novo negócio.
  • TransactionDefinition.PROPAGATION_SUPPORTS: Se existe a transação atual, ele é adicionado à transação, se nenhuma transação, não transacionais caminho lugares continuar a executar.
  • TransactionDefinition.PROPAGATION_MANDATORY: Se existe a transação atual, ele é adicionado à transação, se nenhuma transação, uma exceção é lançada. (Obrigatório: obrigatório)

Ele não suporta a situação atual transação:

  • TransactionDefinition.PROPAGATION_REQUIRES_NEW: criar uma nova transação, se existe a transação corrente, coloque a transação corrente pendente.
  • TransactionDefinition.PROPAGATION_NOT_SUPPORTED: não-transação prazo, se a transação corrente existe, coloque a transação corrente pendente.
  • TransactionDefinition.PROPAGATION_NEVER: não-transação prazo, se existe a transação corrente, uma exceção é lançada.

Outros casos:

  • TransactionDefinition.PROPAGATION_NESTED: Se existe a transação atual, criar uma transação para executar como a transação atual transação aninhada, se nenhuma transação, o valor é equivalente a TransactionDefinition.PROPAGATION_REQUIRED.

Acho que você gosta

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