通过JDBC连接时,在会话信息中显示应用程序名称

mar*_*kus 9 java postgresql jdbc pgadmin

我使用stardard JDBC驱动程序创建了与postgres 9数据库的连接.

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

当我使用PgAdmin检查服务器状态并显示所有数据库会话时,我可以看到没有为我的会话设置"应用程序名称".有没有办法在JDBC连接中设置应用程序名称?

Grz*_*ski 10

从Postgres JDBC 9.1dev-900开始,可以将应用程序名称设置为连接参数:

添加对在连接启动时以及稍后通过Connection.setClientInfo设置application_name的支持.(jurka)

例如: jdbc:postgresql://localhost:5432/DbName?ApplicationName=MyApp

要么 Connection.setClientInfo("ApplicationName", "My App")

对于以前的版本,您可以通过设置application_name运行时参数来完成:

s.execute("SET application_name TO 'MyApp'");
Run Code Online (Sandbox Code Playgroud)

  • 以防万一它对某人有帮助:这可以专门用于具有附加属性的 Oracle 数据库:((BasicDataSource) datasource).addConnectionProperty("v$session.program", "Explicit connection label")。这将显示在 v$session Oracle 视图中。当然,这种方式仅适用于 Oracle 和您的 JDBC 解决方案 - 我不知道 - 应该更健壮。 (2认同)