Question

Est-il possible de définir le niveau d'isolation de base de données (c.-à-Serializable, répétable lire, etc.) pour un appel de méthode EJB 3 donnée?

Je comprends que ce ne sont pas couverts par les spécifications EJB, donc les détails de la façon de le faire soit sur une manière spécifique JBoss ou Glassfish serait grand.

Je commence à avoir l'impression qu'il est impossible et que vous ne pouvez régler par Connection Pool qui est clairement en aucun cas une solution idéale.

Était-ce utile?

La solution

Ceci est en effet pas couvert par la spécification et, mais peut être configuré via le serveur d'application des descripteurs de déploiement spécifiques lorsque pris en charge. WebLogic fait par exemple et vous pouvez spécifier l'isolement des transactions au niveau de la méthode dans la section weblogic-ejb-jar.xml :

  

Exemple

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

Je ne sais pas si JBoss ou GlassFish ont un équivalent (je ne pouvais pas accéder à la la page de SupportWLDDInContainers trouver une réponse pour GlassFish).

Comme alternative, avez-vous essayé d'utiliser Connection#setTransactionIsolation(int) dans une méthode EJB donnée en utilisant la configuration de l'isolement à savoir programme?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top