【问题标题】:best way to use context.xml使用 context.xml 的最佳方式
【发布时间】:2015-05-21 08:26:31
【问题描述】:

我使用连接到数据库的 tomcat 创建了一个 Web 应用程序并在其上进行了一些事务,但是我的数据库 oracle 管理员抱怨来自它的太多连接并告诉我它总是导致数据库挂起由于很多联系。所以我的问题是最好使用什么 context.xml 文件,我应该对我的文件做哪些修改?

我的 context.xml

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/applicationName">
    <Resource driverClassName="oracle.jdbc.OracleDriver"
        maxActive="100" maxIdle="-1" maxWait="30000" name="name" password="password"
        type="javax.sql.DataSource" url="url"
        username="username" />
    </Context>

我的道场

  public Dao(){
}

Context initContext;
Context envContext;
DataSource ds;
Connection conn;
public Connection getConnection() throws Exception {
    initContext = new InitialContext();
    envContext = (Context) initContext.lookup("java:/comp/env");
    ds = (DataSource) envContext.lookup("name");
    conn = ds.getConnection();
    if(conn != null){
        return conn;
    }
    return null;
}

【问题讨论】:

  • 这不是数据库管理员的问题吗?连接这么多是什么意思?
  • @drgPP 我已经告诉他了,但我想从我这边说清楚,所以我不想成为错误的人
  • 正如@satheesh kannak 所写,您必须确保在用户完成工作后清除资源(将连接返回到池)。

标签: java oracle jakarta-ee web-applications database-connection


【解决方案1】:

验证您是否在代码中正确关闭了连接。

另外,你应该试试

finally {
  if(connection!= null) {
    connection.close();
    connection = null;
  }

}

【讨论】:

  • 我最终使用 } { closeConnection(conn); }
  • @Code Chieftain 如果你使用 ResultSet 和 PreparedStatement(或 Statement),请务必关闭它们。
  • 但是我的配置没有问题吧?
  • @Code Chieftain 对我来说似乎没问题,但是,请确保 db 管理员每次可以容纳 100 个连接,也许他想减少它们的数量。
  • 他说他们是900卢尔
猜你喜欢
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
  • 1970-01-01
相关资源
最近更新 更多