如何为postgres连接设置application_name?

时间:2015-05-19 09:50:51

标签: java postgresql connection-pooling tomcat-jdbc

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

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

5 个答案:

答案 0 :(得分:12)

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

示例:

jdbc:postgresql://localhost:5435/DBNAME?ApplicationName=MyApp

注意:参数名称区分大小写。

答案 1 :(得分:7)

使用set命令:

set application_name to my_application;

答案 2 :(得分:2)

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

jdbc:postgresql://localhost/postgres?ApplicationName=my_app

如果您想动态更改它,例如为了反映你的应用程序中的不同模块,你可以使用klin所示的SET命令。

答案 3 :(得分:1)

如果要以编程方式进行设置,则PostgreSQL驱动程序也可以调用以下方法:

PGPoolingDataSource ds = new PGPoolingDataSource();
ds.setApplicationName(applicationName);

答案 4 :(得分:-2)

如果您使用的是Python库psycopg2,请按以下步骤操作

import psycopg2    
psycopg2.connect(host=host_ip, database=db_name, user=user, password=db_pwd, application_name="Python Local Test Script")