Utilizando a intenção de acesso ao WSJPA

A intenção de acesso do Java™ Persistence API (JPA) especifica o nível de isolamento e o nível de bloqueio usado na leitura de dados a partir de uma origem de dados. A intenção de acesso controla o nível de isolamento do Java Database Connectivity (JDBC) e se os bloqueios de leitura, atualização ou exclusivo são necessários quando recuperar dados.

Sobre Esta Tarefa

Para um provedor de persistência JPA no servidor de aplicativos, o aplicativo pode especificar isolation e ReadLockMode com base em um TaskName. O TaskName fornece um melhor controle sobre a aplicação dessas características. O aplicativo define um conjunto de tipos de entidade e de intenção de acesso correspondentes para cada TaskName definido em uma unidade de persistência.
Nota: A intenção de acesso ao JPA é um JPA para a extensão do WebSphere (WSJPA) do OpenJPA.
Restrição:
  • A intenção de acesso está disponível para o aplicativo no ambiente do servidor Java EE
  • A intenção de acesso é aplicável a métodos da interface do gerenciador de entidade sem consulta. A consulta usa a interface de sugestão de consulta para configurar os valores de isolamento e de bloqueio de leitura.
  • A intenção de acesso só está disponível para bancos de dados DB2.
  • A intenção de acesso entra em vigor apenas quando o gerenciador de bloqueio pessimista é usado. Inclua o seguinte na lista de propriedades de unidade de persistência. <property name="openjpa.LockManager" value="pessimistic"/>
Tabela 1. Descrições e Propriedades de Intenção de Acesso. A tabela a seguir compara a intenção de acesso do bean de entidade EJB (Enterprise JavaBeans) 2.x com as propriedades de intenção de acesso da JPA:
Intenção de acesso do bean de entidadeWebSphere EJB 2.x Intenção de acesso da JPA Description
otimista isolation: Read Committed Os dados são lidos mas nenhum bloqueio é mantido. O ID da versão é usado na atualização para assegurar a integridade de dados. Outras transações podem ler e atualizar dados.
lockManager: Optimistic
query Hint: ReadLockMode: READ
pessimistic read isolation: Repeatable Read Os dados são lidos com bloqueios compartilhados. Outras transações que tentam atualizar dados são bloqueadas.
lockManager: Optimistic
query Hint: ReadLockMode: READ
pessimistic update isolation: Repeatable Read Os dados são recuperados com bloqueios de atualização ou exclusivos. Outras gravações são bloqueadas até a confirmação. Esta intenção de acesso pode ser usada para serializar o acesso de atualização a dados quando há vários gravadores.
lockManager: Pessimistic
query Hint: ReadLockMode: WRITE
pessimistic exclusive isolation: Serializable Os dados são recuperados com bloqueios de atualização ou exclusivos. Outras gravações são bloqueadas até a confirmação. Esta intenção de acesso pode ser usada para serializar o acesso de atualização a dados quando há vários gravadores.
lockManager: Pessimistic
query Hint: ReadLockMode:WRITE
Um TaskName é configurado em um contexto de transação de uma das seguintes formas:
  • O TaskName é configurado automaticamente no contêiner EJB quando uma transação inicia o uso da transação local do WebSphere (transação não especificada EJB), de uma transação global JTA em uma Transação Gerenciada por Contêiner (CMT) ou de uma transação global iniciada pelo usuário em uma Transação Gerenciada por Bean (BMT).
  • TaskName é configurado manualmente em um aplicativo utilizando a API TaskNameAccessor fornecida para a JPA.

O uso dos nomes de tarefas suporta a especificação da intenção de acesso em um escopo de solicitação em vez de especificá-lo no arquivo persistence.xml, que possui um escopo de aplicativo por todas as entidades. Geralmente uma consulta é contida em um método ou componente que é usado em muitos contextos de transações diferentes. Alguns desses contextos podem requerer intenção de leitura repetitiva e de bloqueio de atualização, mas outros contextos não.

O nível de isolamento e bloqueios de leitura podem ser especificados em:
  • Um escopo de aplicativo no arquivo persistence.xml. Esses tipos de níveis de isolamento e de bloqueio de leitura são propriedades especificadas no arquivo persistence.xml. Eles se aplicam a todas as entidades que são definidas na unidade de persistência.
  • Um escopo de transação no nome da tarefa. As sugestões com escopo definido da transação substituem os valores do escopo do aplicativo.
  • Instância de consulta com uma dica de consulta. A dica de consulta pode ser usada para substituir isolation e ReadLockMode para uma determinada instância de consulta. Uma sugestão de consulta substitui o nível de isolamento e os bloqueios de leitura especificados no escopo do aplicativo ou da transação.

Procedimento

  1. Configurando um TaskName Usando a API TaskNameAccessor Essa tarefa explica como usar a API TaskNameAccessor para configurar o TaskName JPA no tempo de execução.
  2. Especificando TaskName em uma Unidade de Persistência JPA Essa tarefa explica como especificar um TaskName na unidade de persistência JPA.

O que Fazer Depois

Para obter informações adicionais sobre a intenção de Acesso, consulte o tópico serviço de intenção de Acesso.

Ícone que indica o tipo de tópico Tópico de Tarefa



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tejb_accessintentjpa
Nome do arquivo: tejb_accessintentjpa.html