Java oracle数据库中的连接未关闭
问题 我们有一个通过WebSphereApplicationServer配置的JavaWeb应用程序连接到Oracle数据库。 连接是数据源连接,而不是普通的jdbc连接(DriverManager.getConnection(),因此无需执行con.colse())。 连接池大小为10。数据库端打开的连接数超过500。正在显示v$会话表 超过500个连接处于打开状态。我们只通过一个用户连接到数据库。所有连接都属于一个 用户。我的问题是,为什么空闲时间或传输结束后连接没有关闭?大多数连接 是空闲的,不用于对数据库运行任何sql查询,但连接已打开。 这是websphere设置还是Oracel DBA设置?如何配置Websphere以仅使用连接池中的连接? 如何进行DBA Oracle设置以在会话超时或默认时间(例如30分钟)后终止连接,而不是手动终止连接? 请帮忙 谢谢 克里希纳Java oracle数据库中的连接未关闭,java,oracle,jdbc,datasource,Java,Oracle,Jdbc,Datasource,问题 我们有一个通过WebSphereApplicationServer配置的JavaWeb应用程序连接到Oracle数据库。 连接是数据源连接,而不是普通的jdbc连接(DriverManager.getConnection(),因此无需执行con.colse())。 连接池大小为10。数据库端打开的连接数超过500。正在显示v$会话表 超过500个连接处于打开状态。我们只通过一个用户连接到数据库。所有连接都属于一个 用户。我的问题是,为什么空闲时间或传输结束后连接没有关闭?大多数连接 是空闲
ekrishna10@gmail.com您正在使用数据源这一事实并不意味着您的代码在使用完数据源后不需要关闭连接。无论您如何获得连接,都需要确保在完成连接后关闭连接 例如,这个例子明确指出你需要关闭你的连接,并提出类似的建议
try {
Connection con = ds.getConnection(username, password);
// ... code to use the pooled
// connection con
} catch (Exception ex {
// ... code to handle exceptions
} finally {
if (con != null) con.close();
}
您正在使用数据源这一事实并不意味着您的代码在完成连接时不需要关闭连接。无论您如何获得连接,都需要确保在完成连接后关闭连接 例如,这个例子明确指出你需要关闭你的连接,并提出类似的建议
try {
Connection con = ds.getConnection(username, password);
// ... code to use the pooled
// connection con
} catch (Exception ex {
// ... code to handle exceptions
} finally {
if (con != null) con.close();
}
您正在使用数据源这一事实并不意味着您的代码在完成连接时不需要关闭连接。无论您如何获得连接,都需要确保在完成连接后关闭连接 例如,这个例子明确指出你需要关闭你的连接,并提出类似的建议
try {
Connection con = ds.getConnection(username, password);
// ... code to use the pooled
// connection con
} catch (Exception ex {
// ... code to handle exceptions
} finally {
if (con != null) con.close();
}
您正在使用数据源这一事实并不意味着您的代码在完成连接时不需要关闭连接。无论您如何获得连接,都需要确保在完成连接后关闭连接 例如,这个例子明确指出你需要关闭你的连接,并提出类似的建议
try {
Connection con = ds.getConnection(username, password);
// ... code to use the pooled
// connection con
} catch (Exception ex {
// ... code to handle exceptions
} finally {
if (con != null) con.close();
}
完成连接后,需要
关闭()。是什么让你不这么想的?谢谢Elliott Frisch,这是一个有点旧的应用程序,最近出现了连接问题。我已经检查了代码,我们在一个方法closeJDBCObjects()中一般关闭所有连接,并在finally块中创建新连接的所有位置调用。请看我的博客文章。然后确保你在做你所说的。DB方面的任何帮助,因为连接在大多数时间都是空闲的,没有运行任何sql,为什么Oracle DB不能在一段时间后关闭连接(会话时间或默认时间为30分钟?请让我知道是否有这样的选项。请与您的DBA(或服务器故障)联系)。您还可以定期重新启动应用程序服务器(相应的停机时间)。您需要close()
完成连接后会关闭连接。是什么让你不这么想的?感谢Elliott Frisch,这是一个有点旧的应用程序,最近出现了连接问题。我检查了代码,我们在一个方法closeJDBCObjects()中关闭所有连接并调用finally block中创建新连接的所有位置。查看我的博客文章。然后确保你正在做你所说的。DB方面的任何帮助,因为连接大部分时间处于空闲状态,没有运行任何sql,为什么Oracle DB不能在一段时间后关闭连接(会话时间或默认时间为30分钟?如果有这样的选项,请告诉我。请与您的DBA(或服务器故障)联系。您还可以定期重新启动应用程序服务器(相应的停机时间)。您需要close()
完成连接后会关闭连接。是什么让你不这么想的?感谢Elliott Frisch,这是一个有点旧的应用程序,最近出现了连接问题。我检查了代码,我们在一个方法closeJDBCObjects()中关闭所有连接并调用finally block中创建新连接的所有位置。查看我的博客文章。然后确保你正在做你所说的。DB方面的任何帮助,因为连接大部分时间处于空闲状态,没有运行任何sql,为什么Oracle DB不能在一段时间后关闭连接(会话时间或默认时间为30分钟?如果有这样的选项,请告诉我。请与您的DBA(或服务器故障)联系。您还可以定期重新启动应用程序服务器(相应的停机时间)。您需要close()
完成连接后会关闭连接。是什么让你不这么想的?感谢Elliott Frisch,这是一个有点旧的应用程序,最近出现了连接问题。我检查了代码,我们在一个方法closeJDBCObjects()中关闭所有连接并调用finally block中创建新连接的所有位置。查看我的博客文章。然后确保你正在做你所说的。DB方面的任何帮助,因为连接大部分时间处于空闲状态,没有运行任何sql,为什么Oracle DB不能在一段时间后关闭连接(会话时间或默认时间为30分钟?请告诉我是否有这样的选项。请与您的DBA(或服务器故障)联系。您也可以定期重新启动应用程序服务器(相应的停机时间)。感谢Justin Cave,这是一个有点旧的应用程序,最近出现了