2011-08-22 12 views
8

Creo una conexión a una base de datos postgres 9 utilizando el controlador stardard JDBC.Mostrar el nombre de la aplicación en Información de sesión cuando se conecta a través de JDBC

... 
Connection myCon = DriverManager.getConnection("jdbc:postgresql://localhost/test?&user=test&password=test"); 
... 

Cuando puedo comprobar el estado del servidor con PgAdmin y exhiba todas las sesiones de bases de datos, puedo ver que el "Nombre de aplicación" no está ajustado para mi sesión. ¿Hay alguna forma de configurar el nombre de la aplicación en la conexión JDBC?

+0

tiempo para responder a mi propia pregunta, que puede se SET con el siguiente código: stmt = Con.prepareStatement ("SET application_name = 'myApp'"); stmt.execute(); – markus

Respuesta

9

Eso es posible establecer nombre de la aplicación como parámetro de conexión desde Postgres JDBC 9.1dev-900:

añadir soporte para el ajuste application_name tanto en arranque de la conexión y más tarde a través Connection.setClientInfo. (Jurka)

ejemplo: jdbc:postgresql://localhost:5432/DbName?ApplicationName=MyApp

o Connection.setClientInfo("ApplicationName", "My App")

Para las versiones anteriores que podría hacer esto mediante el establecimiento de parámetros application_name tiempo de ejecución:

s.execute("SET application_name TO 'MyApp'"); 
+1

En caso de que sea útil para alguien: esto se puede hacer específicamente para bases de datos Oracle con una propiedad adicional: (origen de datos BasicDataSource) .addConnectionProperty ("v $ session.program", "etiqueta de conexión explícita"). Esto se mostrará en la vista de v $ session Oracle. Por supuesto, esto solo funciona para Oracle y su solución JDBC, de la que no tenía conocimiento, debería ser más robusta. – SRG

Cuestiones relacionadas