簡體   English   中英

Tomcat與單例中的連接池?

[英]connection pooling in Tomcat with singleton?

我在Tomcat上運行的Web應用程序中使用連接池。 我按照這里的http://tomcat.apache.org/tomcat-7.0-doc/jndi-resources-howto.html#Adding進行設置

當我需要連接時,我會在servlet的每個請求中調用以下代碼

        Context initCtx = new InitialContext();
        Context envCtx = (Context) initCtx.lookup("java:comp/env");
        DataSource ds = (DataSource)
        envCtx.lookup("jdbc/myDBName");
        con = ds.getConnection();

我應該將ds對象初始化為單例並從該對象獲取連接,而不是一遍又一遍地獲取ds嗎?

是的,JNDI查找可能相對昂貴,尤其是如果您要一遍又一遍地進行查找。 您可以在Servlet的init()方法中查找一次DataSource對象,並將其存儲在一個字段中,以便以后在service()/ doPost()/ doGet()方法中使用它。

只要確保在Servlet的destroy()方法中的數據源之后關閉/清理即可。

暫無
暫無

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

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