Come è possibile impostare i livelli di isolamento per il metodo di EJB 3
-
06-09-2019 - |
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.
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?