簡體   English   中英

java 中與 Postgresql 的連接過多

[英]Too many connection to Postgresql in java

我將 postgresql 用於 DB 並且有連接問題。 項目很大,內部流程很多,而且很復雜……有時候,應用創建了很多連接,而數據庫中沒有留下任何連接,應用就會死機。 問題不在數據庫中,而在應用程序中。

當我查看pg_stat_activity時,我看到了所有連接,它們的查詢是select 1 (連接打開時發生的第一個查詢,用於驗證連接)。 所以似乎該應用程序打開了一個連接,並且不使用它。 當有很多人時......你知道......

我不知道在代碼中從哪里打開連接。

是否有讓 java/postgres 知道它們來自哪里的技術/工具?

從僅僅看代碼就可以了。

PostgreSQL 中沒有直接在應用程序源中查找內容的功能。

您只能嘗試使用正確的log_line_prefixlog_statement參數在 PostgreSQL 端啟用更詳細的日志記錄:這只有在語句是從特定的可執行文件或主機提交時才有幫助(因為相關的記錄數據可以幫助找到正確的代碼部分)。

如果應用程序啟動的事務空閑時間過長,您可以設置idle_in_transaction_session_timeout

不幸的是,PostgreSQL 對於未運行事務的空閑會話沒有超時。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM