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.
-
class SetProgram
-
{
-
public static void main (String args [])
-
throws SQLException
-
{
-
// Load the Oracle JDBC driver
-
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
-
-
java.util.Properties props = new java.util.Properties();
-
props.put("v$session.program", "le-nom-du-programme");
-
-
// Connect to the database
-
Connection conn =
-
DriverManager.getConnection ("jdbc:oracle:thin:user/tiger@localhost:1521:xe",
-
props);
-
-
// Create a Statement
-
Statement stmt = conn.createStatement ();
-
-
// Select the PROGRAM field from the V$SESSION table
-
ResultSet rset = stmt.executeQuery ("select program from v$session");
-
-
// Iterate through the result
-
while (rset.next ())
-
System.out.println (rset.getString (1));
-
}
-
}
Configuration MyBatis/Ibatis
Exemple de configuration pour myBatis :
(la propriete doit commencer par « driver. » )
mybatis-config.xml
-
<environment id="dev">
-
<transactionManager type="JDBC" />
-
<dataSource type="POOLED">
-
<property name="driver" value="oracle.jdbc.driver.OracleDriver" />
-
<property name="url" value="jdbc:oracle:thin:user/tiger@localhost:1521:xe" />
-
<property name="driver.v$session.program" value="le-nom-du-programme" />
-
</dataSource>
-
</environment>