web-dev-qa-db-ja.com

postgres接続のapplication_nameを設定するにはどうすればよいですか?

Tomcat接続プールを使用していますorg.Apache.Tomcat.jdbc.pool.DataSource。接続がデータベースに表示されますpg_stat_activity空のapplication_name

Javaアプリでそのアプリケーション名を設定して、各接続がどこから来ているかを知るにはどうすればよいですか(同じデータベースにアクセスする複数のアプリケーションがあるため)?

18
membersound

接続文字列でアプリケーション名を指定できます。
ドキュメント ここ

例:

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

注意してください:パラメータ名では大文字と小文字が区別されます。

19

Setコマンドを使用します。

set application_name to my_application;
14
klin

これを、接続プール定義で使用するJDBCURLに追加できます。

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

動的に変更したい場合(例:さまざまなモジュールを反映するためにinsideアプリケーションでは、klinで示されているように SET コマンドを使用できます。

プログラムで設定する場合、PostgreSQLドライバーには次のメソッドもあります。

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