Display application name in Session Information wh

2020-03-13 04:57发布

问题:

I create a connection to a postgres 9 database using the stardard JDBC driver.

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

When I check the server status with PgAdmin and display all database sessions, I can see that the "Application Name" is not set for my Session. Is there a way to set the application name in the JDBC connection?

回答1:

That is possible to set application name as connection parameter since Postgres JDBC 9.1dev-900:

Add support for setting application_name on both connection startup and later through Connection.setClientInfo. (jurka)

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

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

For previous versions you could do this by setting application_name runtime parameter:

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