2015-05-19 10 views
6

Ich benutze Tomcat Verbindung Pool org.apache.tomcat.jdbc.pool.DataSource. Die Verbindungen erscheinen in meiner Datenbank pg_stat_activity mit leerem application_name.Wie setze ich Anwendungsname für Postgres-Verbindungen?

Wie kann ich diesen Anwendungsnamen in meiner Java-App festlegen, sodass ich weiß, woher jede Verbindung kommt (da mehrere Anwendungen auf dieselbe Datenbank zugreifen)?

Antwort

8

Sie könnten den Anwendungsnamen in der Verbindungszeichenfolge angeben.
Dokumentation here.

Beispiel:

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

Achten Sie darauf,: die param Namen Groß- und Kleinschreibung.

+0

In neueren Versionen ist es 'application_name' https://www.postgresql.org/docs/9.6/static/libpq-connect.html#LIBPQ-CONNSTRING. – Gajus

6

Verwenden Sie set-Befehl:

set application_name to my_application; 
2

Sie dies auf die JDBC-URL hinzufügen, die Sie in Ihrer Verbindungspooldefinition verwenden:

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

Wenn Sie es möchten, zum Beispiel dynamisch ändern um verschiedene Module innerhalb Ihrer Anwendung zu reflektieren, können Sie den SET Befehl verwenden, wie von Klin gezeigt.