如何为postgres连接设置application_name?

mem*_*und 13 java postgresql connection-pooling tomcat-jdbc

我正在使用tomcat连接池org.apache.tomcat.jdbc.pool.DataSource.连接在我的数据库中显示pg_stat_activity为空application_name.

我如何在我的java应用程序中设置该应用程序名称,因此我知道每个连接的来源(因为将有多个应用程序访问同一个数据库)?

Cri*_*scu 16

您可以在连接字符串中指定应用程序名称.
文档在这里.

例:

jdbc:postgresql://localhost:5435/DBNAME?ApplicationName=MyApp
Run Code Online (Sandbox Code Playgroud)

注意:param名称区分大小写.

  • @Gajus:我认为这仅适用于 libpq。JDBC 仍然使用`ApplicationName`,似乎 (4认同)

kli*_*lin 10

使用set命令:

set application_name to my_application;
Run Code Online (Sandbox Code Playgroud)


Mad*_*deo 8

对于那些使用普通连接字符串而不是 jdbc 的人:

postgresql://other@localhost/otherdb?application_name=myapp
Run Code Online (Sandbox Code Playgroud)


a_h*_*ame 6

您可以将其添加到您在连接池定义中使用的 JDBC URL:

jdbc:postgresql://localhost/postgres?ApplicationName=my_app
Run Code Online (Sandbox Code Playgroud)

如果你想改变它动态地如以反映不同的模块里面你的应用程序时,您可以使用SET命令如图克林。