如何知道在我的Java EE Web企業應用程序中同時訪問數據庫的用戶的平均數量或確切數量?我想看看我在Glassfish應用服務器中設置的「連接池設置」是否適合我的Web應用程序。我需要正確設置Application Server中連接池設置的最大連接數。最近,我的應用程序無法連接,並在客戶端請求數據庫過期時拋出異常。同時訪問Web應用程序中的數據庫
回答
有多種方式。
一個最簡單的方法就是從DBA處獲得幫助 - 他們可以確切地告訴您在給定時間從Web服務器或連接池的用戶標識有多少個連接處於活動狀態。
如果您想要一些興奮點,您將不得不使用glassfish提供的JMX管理擴展。清單6上的this page - 給出了一個如何編寫基於JMS的片段來監控連接池的例子。
最後,您必須確保您的應用程序中的所有連接都由connection.close();
類型的調用明確關閉。在某些情況下,您還需要關閉ResultSet。 接下來是限制你的http線程池,以避免太多的併發訪問,如果你的數據庫連接需要更長的時間才能關閉。
感謝您的建議,您提到的鏈接相當有趣。不過,你提到「在某些情況下,你還需要關閉RecordSet」,而且我也從很多專家那裏聽到了同樣的事情,我想知道在哪些情況下顯式關閉結果集非常重要。他們應該關閉聲明。你可以讓我知道。 – user981116 2012-03-02 21:23:51
嗨 - 理想情況下,當語句對象關閉時,ResultSet會關閉。有些驅動程序供應商沒有正確實施該規範。如此安全地關閉兩者。它沒有傷害。這適用於將您的對帳單打開以進行其他處理的情況。 – 2012-03-02 21:30:37
- 1. Web應用程序:管理用戶訪問數據庫
- 2. 如何從單個Web應用程序訪問兩個不同的數據庫
- 3. 訪問數據庫到Web應用程序
- 4. 數據庫應用程序,在Mac,iPad和通過Web訪問
- 5. Flex Web應用程序可以訪問sqlite數據庫嗎?
- 6. 在訪問Azure Web應用程序時建立數據庫連接時出錯
- 7. 從兩個不同的應用程序訪問數據庫
- 8. 如何讓JPA應用程序訪問不同的數據庫?
- 9. 從2個應用程序訪問相同的SQLite數據庫
- 10. 從不同的應用程序訪問數據庫
- 11. 訪問相同數據庫的多個Grails應用程序
- 12. 如何從數據庫訪問其他Web應用程序的數據
- 13. 訪問網絡應用程序中的Web數據表
- 14. 訪問Web數據以便在應用程序中使用?
- 15. Azure的Web應用程序WAAD到Web應用程序訪問
- 16. 在IIS中部署的Web應用程序無法訪問數據庫
- 17. 通過JPA比較數據庫表訪問在Web應用程序中的EJB
- 18. 訪問SqlIte數據庫時應用程序崩潰
- 19. 訪問sqlite數據庫時,應用程序不斷崩潰
- 20. 從MVC 4應用程序訪問數據庫時出錯
- 21. 從不同的桌面應用程序訪問相同的數據庫
- 22. Web應用程序+桌面應用程序的相同數據庫
- 23. 從HTML5/JS中的UWP應用程序訪問數據庫
- 24. 嘗試訪問Android應用程序中的數據庫
- 25. Visual Studio應用程序的數據庫訪問問題
- 26. 數據庫的實時Web應用程序(低延遲響應)
- 27. 在應用程序中使用greendao訪問數據庫
- 28. 什麼是訪問數據庫的最佳基於Web的應用程序
- 29. Azure的Web應用程序無法訪問天藍色的數據庫
- 30. 如何同步在線數據庫(的Web應用程序)和離線數據庫(的桌面應用程序)?
您確定在使用它們之後正確關閉連接嗎? – GriffeyDog 2012-03-01 22:13:53
在Web應用程序中,是的,我正在關閉連接和語句。但是,有時候有些人直接訪問數據庫,我擔心他們有時會忘記正確關閉它們。在DB conf文件中,我看到連接的最大數量是100.請注意,此Web應用程序和連接池中有多個用戶,最大連接數僅設置爲4。所以我暫時增加了它。我想知道是否有一些方法來監測平均數量。同時使用db連接的請求。 – user981116 2012-03-01 22:19:58
你確定你需要每個用戶的數據庫連接嗎? – perissf 2012-03-03 09:46:18