【问题标题】:Static Connection Object Issue静态连接对象问题
【发布时间】:2009-07-09 05:30:37
【问题描述】:

我正在使用 j2ee 创建一个 Web 服务。此网络服务正在访问数据库以插入/更新数据。我们正在使用连接驱动程序来建立与数据库的连接。当我们启动此 Web 服务并对其进行测试时,我们遇到了内存泄漏问题,因此交易失败。以下是我们得到的错误信息:

“查询处理期间内存分配失败”

当我们重新启动 weblogic 服务器时,此问题已解决。此静态连接对象仅由 EJB 用于处理 DB 事务。

这个单一的静态连接对象会不会造成内存泄漏问题并导致事务失败?

注意:请不要建议关闭连接,因为我们在整个交易过程中都需要它。

【问题讨论】:

    标签: jakarta-ee weblogic ejb


    【解决方案1】:
    1. 您应该始终从服务器上配置的连接池(数据源)中检索连接(使用 jndi)
    2. 永远不要让 Connection 对象保持静态
    3. 您应该始终在 finally 块中关闭()您的连接。 (当您从数据源检索连接并调用 close() 时,您只需告诉池您已完成连接。您实际上并没有关闭它。

    做到这些,你应该会没事的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-15
      • 1970-01-01
      • 2011-06-19
      • 1970-01-01
      • 1970-01-01
      • 2011-09-20
      • 2012-07-26
      • 1970-01-01
      相关资源
      最近更新 更多