JDBC : nommer une connexion Oracle

Quand on fait une connexion JDBC en java à une base de données Oracle, elle n’a pas de nom. I.E. si on regarde les connexions ouvertes sur la base de données on ne voit pas le nom de l’application ou alors « java.exe » ce qui n’est guère mieux.

Après moultes recherches, j’ai enfin trouvé une solution : Specifying a program name in Oracle JDBC connections

Par contre, il faut spécifier le login et le mot de passe dans la chaine de connexion.

  1. class SetProgram
  2. {
  3.   public static void main (String args [])
  4.        throws SQLException
  5.   {
  6.     // Load the Oracle JDBC driver
  7.     DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
  8.  
  9.     java.util.Properties props = new java.util.Properties();
  10.     props.put("v$session.program", "le-nom-du-programme");
  11.  
  12.     // Connect to the database
  13.     Connection conn =
  14.       DriverManager.getConnection ("jdbc:oracle:thin:user/tiger@localhost:1521:xe",
  15.        props);
  16.  
  17.     // Create a Statement
  18.     Statement stmt = conn.createStatement ();
  19.  
  20.     // Select the PROGRAM field from the V$SESSION table
  21.     ResultSet rset = stmt.executeQuery ("select program from v$session");
  22.  
  23.     // Iterate through the result
  24.     while (rset.next ())
  25.       System.out.println (rset.getString (1));
  26.   }
  27. }

Configuration MyBatis/Ibatis

Exemple de configuration pour myBatis :
(la propriete doit commencer par « driver. » )

mybatis-config.xml

  1. <environment id="dev">
  2.  <transactionManager type="JDBC" />
  3.  <dataSource type="POOLED">
  4.   <property name="driver" value="oracle.jdbc.driver.OracleDriver" />
  5.   <property name="url" value="jdbc:oracle:thin:user/tiger@localhost:1521:xe" />
  6.   <property name="driver.v$session.program" value="le-nom-du-programme" />
  7.  </dataSource>
  8. </environment>

Le commentaires sont fermés.