Как установить application_name для соединений postgres?

Я использую пул соединений Tomcat org.apache.tomcat.jdbc.pool.DataSource. Соединения появляются в моей базе данных pg_stat_activity с пустым application_name.

Как я могу установить это имя приложения в своем java-приложении, чтобы я знал, откуда приходит каждое соединение (поскольку несколько приложений будут иметь доступ к одной и той же базе данных)?


person membersound    schedule 19.05.2015    source источник


Ответы (5)



Используйте команду set:

set application_name to my_application;
person klin    schedule 19.05.2015

Вы можете добавить это к URL-адресу JDBC, который вы используете в определении пула соединений:

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

Если вы хотите изменить его динамически, например чтобы отразить различные модули внутри вашего приложения, вы можете использовать _ 2_, как показано klin.

person a_horse_with_no_name    schedule 19.05.2015

Если вы хотите установить программно, драйверы PostgreSQL также имеют метод, который вы можете вызвать:

PGPoolingDataSource ds = new PGPoolingDataSource();
ds.setApplicationName(applicationName);
person Mike    schedule 21.08.2018

Если вы используете библиотеку Python psycopg2, вот как вы можете сделать

import psycopg2    
psycopg2.connect(host=host_ip, database=db_name, user=user, password=db_pwd, application_name="Python Local Test Script")
person Bal Krishna Jha    schedule 08.04.2020