[英]Too many connection to Postgresql in java
我將 postgresql 用於 DB 並且有連接問題。 項目很大,內部流程很多,而且很復雜……有時候,應用創建了很多連接,而數據庫中沒有留下任何連接,應用就會死機。 問題不在數據庫中,而在應用程序中。
當我查看pg_stat_activity
時,我看到了所有連接,它們的查詢是select 1
(連接打開時發生的第一個查詢,用於驗證連接)。 所以似乎該應用程序打開了一個連接,並且不使用它。 當有很多人時......你知道......
我不知道在代碼中從哪里打開連接。
是否有讓 java/postgres 知道它們來自哪里的技術/工具?
從僅僅看代碼就可以了。
PostgreSQL 中沒有直接在應用程序源中查找內容的功能。
您只能嘗試使用正確的log_line_prefix
和log_statement
參數在 PostgreSQL 端啟用更詳細的日志記錄:這只有在語句是從特定的可執行文件或主機提交時才有幫助(因為相關的記錄數據可以幫助找到正確的代碼部分)。
如果應用程序啟動的事務空閑時間過長,您可以設置idle_in_transaction_session_timeout
。
不幸的是,PostgreSQL 對於未運行事務的空閑會話沒有超時。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.