Domanda

E 'possibile impostare il livello di isolamento di database (cioè Serializable, ripetibile lettura, ecc) per un dato EJB 3 chiamata di metodo?

Mi rendo conto che questo non è coperto dalla EJB Spec, così i dettagli di come farlo su entrambi i modo specifico JBoss o Glassfish sarebbe grande.

sto iniziando a ottenere l'impressione che non è possibile e che si può solo impostare per Connection Pool che è chiaramente in alcun modo una soluzione ideale.

È stato utile?

Soluzione

Questo non è infatti coperto dalle specifiche e, ma può essere configurato attraverso specifici descrittori di deployment del server delle applicazioni quando sono supportate. WebLogic fa per esempio, ed è possibile specificare di isolamento delle transazioni a livello di metodo nel weblogic-ejb-jar.xml :

  

Esempio

<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>

Non so se JBoss o GlassFish hanno un equivalente (non ho potuto accedere al pagina SupportWLDDInContainers per trovare una risposta per GlassFish).

In alternativa, hai cercato di utilizzare Connection#setTransactionIsolation(int) all'interno di un determinato metodo bean utilizzando cioè la configurazione di isolamento programmazione?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top