Tomcat接続プールを使用していますorg.Apache.Tomcat.jdbc.pool.DataSource
。接続がデータベースに表示されますpg_stat_activity
空のapplication_name
。
Javaアプリでそのアプリケーション名を設定して、各接続がどこから来ているかを知るにはどうすればよいですか(同じデータベースにアクセスする複数のアプリケーションがあるため)?
接続文字列でアプリケーション名を指定できます。
ドキュメント ここ 。
例:
jdbc:postgresql://localhost:5435/DBNAME?ApplicationName=MyApp
注意してください:パラメータ名では大文字と小文字が区別されます。
Setコマンドを使用します。
set application_name to my_application;
これを、接続プール定義で使用するJDBCURLに追加できます。
jdbc:postgresql://localhost/postgres?ApplicationName=my_app
動的に変更したい場合(例:さまざまなモジュールを反映するためにinsideアプリケーションでは、klinで示されているように SET
コマンドを使用できます。
プログラムで設定する場合、PostgreSQLドライバーには次のメソッドもあります。
PGPoolingDataSource ds = new PGPoolingDataSource();
ds.setApplicationName(applicationName);