Pergunta

É possível definir o nível de isolamento de base de dados (ou seja Serializable, repetível ler etc) para uma determinada chamada de método EJB 3?

Eu entendo que isso não é coberto pelo EJB Spec, então detalhes de como fazê-lo em qualquer um JBoss ou Glassfish maneira específica seria ótimo.

Estou começando a ter a impressão de que não é possível e que você só pode configurá-lo por conexão piscina, que é claramente de modo algum uma solução ideal.

Foi útil?

Solução

Esta é, de facto não abrangidos pela especificação e mas pode ser configurado através de descritores de implementação específica do servidor de aplicativos quando suportado. WebLogic faz, por exemplo, e você pode especificar isolamento da transação no nível de método na weblogic-ejb-jar.xml :

Exemplo

<transaction-isolation>
  <isolation-level>...</isolation-level>
  <method>
      <description>...</description>
      <ejb-name>...</ejb-name>
      <method-intf>...</method-intf>
      <method-name>...</method-name>
      <method-params>...</method-params>
  </method>
</transaction-isolation>

Eu não sei se JBoss ou GlassFish tem um equivalente (I não pôde acessar o página SupportWLDDInContainers para encontrar uma resposta para GlassFish).

Como alternativa, se você tentar usar Connection#setTransactionIsolation(int) dentro de um método EJB determinado usando ou seja configuração isolamento de programação?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top