【问题标题】:connection pooling in Tomcat with singleton?Tomcat中的连接池与单例?
【发布时间】:2013-03-22 21:58:30
【问题描述】:

我在 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 吗?

【问题讨论】:

    标签: java tomcat singleton datasource


    【解决方案1】:

    是的,JNDI 查找可能会相对昂贵,尤其是如果您要一遍又一遍地进行查找。您可以在 Servlet 的 init() 方法中查找 DataSource 对象一次,然后将其存储在一个字段中,以便稍后在 service()/doPost()/doGet() 方法中使用它。

    只要确保在 Servlet 的 destroy() 方法中的 DataSource 之后关闭/清理即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-19
      • 1970-01-01
      • 1970-01-01
      • 2020-08-22
      • 1970-01-01
      • 1970-01-01
      • 2016-05-08
      相关资源
      最近更新 更多