database - 具有数据库链接的 Oracle JDBC 连接池

标签 database oracle jdbc

我正在使用 Oracle 数据库构建 J2EE 网络应用程序。应用程序服务器使用 JDBC 连接池连接到 Oracle 数据库 A(例如最多 20 个连接),并且执行的一些查询通过数据库链接使用远程 Oracle 数据库 B 中的表。

如果应用服务器创建 20 个到数据库 A 的连接,并且所有查询都在数据库 B 中查找数据,那么数据库 A 是否会创建 20 个到数据库 B 的连接?或者所有查询都通过同一个连接隧道?

最佳答案

本地和远程数据库 session 之间存在一对一的关系。 必须有以下情况: 本地数据库上的 session A1 运行 INSERT INTO table@B VALUES ('A1'); 该插入是 session A1 事务的一部分。

session A2 出现并执行 SELECT * FROM table@B。 因为 session A1 尚未提交, session A2 不应看到该行。因此它需要一个不同于属于 A1 的远程 session 。

同样,您可以让数据库 A 上的所有 20 个 session 同时在数据库 B 上运行查询。

有一个 DBMS_SESSION.CLOSE_DATABASE_LINK 程序会断开远程连接。当它拒绝关闭它们时,我遇到了一些问题(9i 数据库)甚至在提交后立即声称“未完成的事务”。它似乎与缓存的 PL/SQL 游标有关。这可能不再是问题。

关于database - 具有数据库链接的 Oracle JDBC 连接池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1801592/

相关文章:

oracle - 没有更多的数据要从套接字读取

java - Class.forName(Class) 在特定目录中?

database - Django SAAS 项目

mysql - 数据库设计: storing hourly analytics for thousands of seperate apps

python - 如何修复Python中的 'TypeError: expecting string or bytes object'错误

mysql - 如何在 JDBC Source Connector 中设置偏移量以从 Kafka 中的 MySQL 表中获取所有数据

java - 从 Java Derby 数据库中选择特定记录

php - 如何用数据库中的数据填充复选框?

sql - 在 SQL Server 2008 中创建数据库

sql - Oracle合并而不是插入?