Java Oracle JDBC驱动程序在执行SELECT SYS_上下文查询时看到额外的连接

Java Oracle JDBC驱动程序在执行SELECT SYS_上下文查询时看到额外的连接,java,oracle,jdbc,oracle12c,Java,Oracle,Jdbc,Oracle12c,无法从连接中找到引用此查询原因的Oracle文档。使用JDBC驱动程序ojdbc7-12.1.0.2.jar 我们看到有一个短暂的时间运行连接 从DUAL中选择系统上下文“USERENV”、“当前模式” 编码 connection = provider.getConnection(); connection.setNetworkTimeout(Executors.newSingleThreadExecutor(), network_timeout); 如果将n个连接定义为连接池中的最大连接数,

无法从连接中找到引用此查询原因的Oracle文档。使用JDBC驱动程序ojdbc7-12.1.0.2.jar

我们看到有一个短暂的时间运行连接 从DUAL中选择系统上下文“USERENV”、“当前模式”

编码

connection = provider.getConnection();
connection.setNetworkTimeout(Executors.newSingleThreadExecutor(), network_timeout);

如果将n个连接定义为连接池中的最大连接数,则Oracle JDBC驱动程序将打开maxn+1连接。1是处理池的管理会话。

如果将n个连接定义为连接池中的最大连接数,则Oracle JDBC驱动程序将打开maxn+1连接。1是处理池的管理会话。
这不仅是JDBC的行为,而且在Oracle.NET provider和OCI中也可以看到-据我所知

驱动程序通常运行小型数据字典查询-此查询是否会给您带来问题?这可能是一种实现细节,没有人能够在不查看驱动程序代码的情况下回答。这本身没有问题,只是我需要确认这是驱动程序,并说明原因,如果有支持文档/源代码参考。谢谢。您可以通过反编译器运行JDBC驱动程序并尝试查找查询。实际上,没有一个驱动程序会记录驱动程序可能执行的每个查询,特别是当这些查询可以并且确实在版本之间更改时。DBA对这个查询关心什么?DBA想知道它的起源以及在什么情况下执行它。为什么DBA想知道?数据库有数千个查询。没有DBA有时间查看每个查询,更不用说追查查询来自何处以及执行查询的原因了。只有当查询引起某种问题或出现在某种Top N报告中时,这样做才有意义。因此出现了最初的问题-此查询是否会导致某种问题?感谢您的回答,这里没有池,只有带jdbcurl的纯DriverManager.getConnection。它是否仍然适用于n+1连接?这个查询也是由JDBC驱动程序运行的吗?如果您有任何Oracle文档,我需要向我的DBA证明这一点: