我正在使用tomcat连接池org.apache.tomcat.jdbc.pool.DataSource
。连接显示在我的数据库pg_stat_activity
中,空application_name
。
我如何在我的java应用程序中设置该应用程序名称,因此我知道每个连接的来源(因为将有多个应用程序访问同一个数据库)?
答案 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")