Pregunta

¿Es posible establecer el nivel de aislamiento de la base de datos (es decir, Serializable, repetible lectura, etc) para una llamada a un método EJB 3 dado?

Yo entiendo que esto no está cubierto por el EJB de especificaciones, por lo que los detalles de cómo hacerlo en cualquiera de una manera específica de JBoss o Glassfish sería grande.

Me estoy empezando a tener la impresión de que no es posible y que sólo se puede establecer que por cada conjunto de conexiones que es claramente de ninguna manera es una solución ideal.

¿Fue útil?

Solución

Este es, en efecto, no cubierto por la especificación y aunque se puede configurar a través de descriptores de despliegue de servidor de aplicaciones específicas que sean soportadas. WebLogic hace, por ejemplo, y puede especificar el aislamiento de transacciones en el nivel de método en el weblogic-ejb-jar.xml :

  

Ejemplo

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

No sé si JBoss o GlassFish tienen un equivalente (no pude acceder a la página SupportWLDDInContainers para encontrar una respuesta para GlassFish).

Como alternativa, ¿trató de utilizar Connection#setTransactionIsolation(int) dentro de un método EJB dado usando es decir, la configuración de aislamiento mediante programación?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top