Exemple : Utilisation de connexions avec des accès concurrents

Une méthode exécutable ou appelable peut utiliser les connexions que le component par lequel elle a été créée a obtenues à l'aide de références de ressource java:comp.

Pour plus d'informations sur les références de ressources, reportez-vous à la rubrique Références. L'exemple suivant présente une tâche qui utilise correctement des connexions :

class GoodTask implements Callable<Object> 
{
   DataSource ds;
   public Task() throws NamingException
   {   
      // Mettre en cache une fabrique de connexions ou une source de données
      // en tant que données d'instance de classe.
      InitialContext ic =  new InitialContext();
      // On suppose que le composant Java EE créé possède cette
      // référence de ressource définie dans son descripteur de déploiement
      ds = (DataSource)ic.lookup("java:comp/env/jdbc/myDataSource");
   }
   // Lors de l'appel de la méthode de bean asynchrone, établissement d'une connexion,
   // utilisation de la connexion et fermeture de celle-ci.
   public Object call() throws SQLException
   {
      try (Connection c = ds.getConnection()) {
             // Utilisez la connexion maintenant.
             return someResult;
      }
   }
} 

L'exemple suivant présente une tâche qui utilise des connexions de manière incorrecte :

class BadTask implements Callable<Object> 
{
   DataSource ds;
   // A éviter. Vous ne pouvez pas mettre en cache des connexions via des appels de méthode.
   Connection c;

   public BadTask() throws NamingException, SQLException
   {
      // Mettre en cache une fabrique de connexions ou une source de données
      // en tant que données d'instance de classe.
      InitialContext ic =  new InitialContext();
      ds = (DataSource)ic.lookup("java:comp/env/jdbc/myDataSource");
      // Ici, les règles ne sont pas respectées.
      c = ds.getConnection();
   }

   // Lors de l'appel de la méthode, l'utilisation de la connexion mise en cache n'est pas valide
   // et vous pouvez constater des exceptions liées à J2C lors de
l'exécution.
   public Object call()
   {
      // Utilisez la connexion maintenant.
      return someResult;
   }
} 

Icône indiquant le type de rubrique Rubrique de référence



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=xasb_connections
Nom du fichier : xasb_connections.html