Intenção de Acesso -- Níveis de Isolamento e Bloqueios de Atualização
As políticas de intenção de acesso do WebSphere Application Server fornecem uma maneira consistente de definir o nível de isolamento para os dados do bean CMP entre diferentes bancos de dados relacionais em seu ambiente.
Dentro de um aplicativo implementado, a combinação das políticas de intenção de acesso definição de simultaneidade e tipo de acesso significa o valor do nível de isolamento que o Application Server configura em uma conexão com o banco de dados. Consulte os artigos Controle de Simultaneidade e Intenção de Acesso e Isolamento, para obter informações adicionais sobre simultaneidade e tipo de acesso. Essa combinação de propriedades também significa o sinalizador de bloqueio de atualização que o Application Server transmite ao banco de dados por meio de uma instrução preparada JDBC.
Os bancos de dados não fornecem tantas definições de nível de isolamento quanto o WebSphere Application Server. Os bancos de dados definem um nível de isolamento como um entre apenas três tipos. Além disso, apenas um parâmetro indica o tipo de nível de isolamento que os bancos de dados configuram nas conexões de entrada. Cada um dos três tipos pode ser representado por um valor de parâmetro diferente, conforme determinado em cada fornecedor de banco de dados. Por exemplo, um banco de dados pode definir um nível de isolamento como RR (Leitura Repetível JDBC), enquanto um banco de dados diferente pode definir o mesmo nível de isolamento como RC (Leitura Confirmada JDBC).
Por causa dessa inconsistência, o WebSphere Application Server não mapeia as políticas de intenção de acesso para os valores de parâmetro. Em vez disso, o Application Server mapeia as políticas de intenção de acesso para os tipos de nível de isolamento que são comuns entre todos os fornecedores de banco de dados.
Perfil de Intenção de Acesso | Nível de Isolamento | Implementação da Trava de Atualização | |||||
---|---|---|---|---|---|---|---|
DB2 | Oracle* | SyBase | Informix | Apache Derby | SQL Server | ||
wsPessimisticUpdate- Weakest LockAtLoad (Critério padrão) | RR | RC | RR | RR | RR | RR | Não (*Oracle, Sim) |
wsPessimisticUpdate | RR | RC | RR | RR | RR | RR | Yes |
wsPessimisticRead | RR | RC | RR | RR | RR | RR | Não |
wsOptimisticUpdate | RC | RC | RC | RC | RC | RC | Não |
wsOptimisticRead | RC | RC | RC | RC | RC | RC | Não |
wsPessimisticUpdate No-Collisions | RC | RC | RC | RC | RC | RC | Não |
wsPessimisticUpdate- Exclusive | C | C | C | C | C | C | Yes |
- RC = Leitura Confirmada JDBC
- RR = Leitura Repetível JDBC
- S = Seriável JDBC
- * O Oracle não suporta RR (Leitura Repetível JDBC). Portanto, wsPessimisticUpdate-weakestLockAtLoad e wsPessimisticUpdate no Oracle se comportam da mesma maneira que wsPessismisticRead e wsOptimisticRead. Em razão de uma restrição do Oracle, a classe JDBC OracleXADataSource não pode ser executada com um nível de isolamento de transação S. Portanto, não é possível utilizar essa classe para executar um aplicativo que contenha beans corporativos com políticas de intenção de acesso configuradas para fazer com que o bean seja carregado com isolamento S.
- A definição de políticas de intenção de acesso por suporte ao método EJB está reprovada na Versão 6.0. É recomendável configurar a intenção de acesso somente para o bean inteiro.
- Leitura Confirmada com Capturas Instantâneas
- Captura Instantânea de Transação (para Seriável)
Palavras-chave e Restrições de SQL (Structured Query Language)
Banco de dados | sintaxe SQL utilizada para travamento de atualização | restrições de junção | ordem por restrições | restrições de subseleção | restrições de agregação |
---|---|---|---|---|---|
DB2 | PARA ATUALIZAÇÃO DE | não permitido | não permitido | não permitido | não permitido |
DB2 UDB para iSeries (V5R3 e anterior) | PARA ATUALIZAÇÃO DE | não permitido | permitido com limitações* | permitido com limitações* | não permitido |
DB2 UDB para iSeries (V5R4 e posterior) | COM RS/RR, UTILIZAR E MANTER BLOQUEIOS EXCLUSIVOS | não permitido | permitido com limitações* | permitido com limitações* | não permitido |
DB2 no z/OS V8.x | COM RS/RR, UTILIZAR E MANTER AS TRAVAS DE ATUALIZAÇÃO | Nenhuma | Nenhuma | Nenhuma | Nenhuma |
Estação de trabalho DB2 UDB V8.2 | COM RS/RR, UTILIZAR E MANTER AS TRAVAS DE ATUALIZAÇÃO | Nenhuma | Nenhuma | Nenhuma | Nenhuma |
Oracle | PARA ATUALIZAÇÃO | Nenhuma | nenhum | nenhum | nenhum |
Apache Derby | PARA ATUALIZAÇÃO DE | não permitido | não permitido | não permitido | não permitido |
Informix | PARA ATUALIZAÇÃO | não permitido | não permitido | não permitido | não permitido |
Sybase | PARA ATUALIZAÇÃO | não permitido | não permitido | não permitido | não permitido |
Sqlserver | UPDLOCK | não permitido | não permitido | não permitido | não permitido |