2011-08-22 36 views
8

我使用stardard JDBC驅動程序創建到postgres 9數據庫的連接。通過JDBC連接時在會話信息中顯示應用程序名稱

... 
Connection myCon = DriverManager.getConnection("jdbc:postgresql://localhost/test?&user=test&password=test"); 
... 

當我檢查與pgAdmin的服務器狀態並顯示所有的數據庫會話,我可以看到「應用程序名稱」未設置爲我的會議。有沒有辦法在JDBC連接中設置應用程序名稱?

+0

時間來回答我的問題,它可以使用以下代碼進行設置: stmt = Con.prepareStatement(「SET application_name ='myApp'」); stmt.execute(); – markus

回答

9

也就是說可以設置應用程序的名稱作爲連接參數,因爲Postgres的JDBC 9.1dev-900

添加兩個連接啓動 後來經過Connection.setClientInfo設置應用程序名稱的支持。 (jurka)

例如:jdbc:postgresql://localhost:5432/DbName?ApplicationName=MyApp

Connection.setClientInfo("ApplicationName", "My App")

對於先前的版本,你可以通過設置application_name運行參數做到這一點:

s.execute("SET application_name TO 'MyApp'"); 
+1

以防萬一它有助於某人:這可以專門爲具有附加屬性的Oracle數據庫完成:((BasicDataSource)數據源).addConnectionProperty(「v $ session.program」,「顯式連接標籤」)。這將在v $ session Oracle視圖中顯示。當然,這種方法只適用於Oracle和您的JDBC解決方案 - 我不知道 - 應該更強大。 – SRG

相關問題