数据库
应用开发
本文档包含有关 Oracle 通用连接池 (UCP) 的常见问题的解答。请注意,这些解答仅针对特定的技术问题,并用于记载对常见客户问题以及任何已知问题的解决方案。服务器文档(包括 JDBC 文档)也可在线获取。
“UCP 常见问题解答”页面是全新的页面,旨在回答所有与 UCP 相关的问题。其目的是使 UCP 的使用更轻松,并介绍其强大功能。
返回页首UCP 是通用连接池。它是一个处理 JDBC、JCA、LDAP 等各类连接的连接池。它支持非 Oracle JDBC 驱动程序和与非 Oracle 数据库的 JDBC 连接。用于与 Oracle 数据库的 Oracle JDBC 连接时,它可提供旧的 JDBC 隐式连接缓存的所有特性以及其他特性。UCP 广泛应用于 Oracle 产品。因其能轻松处理故障切换、管理连接、资源以及许多其他原因,我们建议使用 UCP。
返回页首UCP 是独立的 jar 文件。其名为 ucp.jar。它不包含在 JDBC jar 文件中。
返回页首
请从 Oracle 技术网 JDBC、UCP 和 SQLJ 下载页面下载所需版本的 UCP jar 文件。
返回页首更多详细信息,请参见 UCP 参考指南。
返回页首UCP 可以与 Apache Tomcat、IBM Websphere、JBOSS、Weblogic 等任何容器一起使用。
返回页首UCP 可以与 Weblogic 结合使用。但您应使用 Oracle 的“Active Grid Link”,它具有所有类似功能
返回页首当前支持的 ucp.jar 文件版本包括 11.1、11.2 和 12.1
返回页首在 12c(即 12.1.0.1.0)之前,UCP 可以使用任何版本的 Oracle JDBC 驱动程序。新池 UCP 12.1.0.2 依赖于 Oracle JDBC 驱动程序 12.1.0.2。示例:12.1.0.2 ucp.jar 需要 12.1.0.2 中的 ojdbc7.jar 或 ojdbc6.jar。我们建议保持 ucp.jar 和 JDBC 驱动程序来自同一版本。
返回页首数据库版本兼容性来自 JDBC 驱动程序版本,而不是 UCP 版本。UCP jar 文件应与 JDBC 驱动程序版本兼容。
返回页首适用于 JDBC 的 UCP 提供启用池的数据源,应用使用该数据源借用 UCP JDBC 连接池中的连接。以下是所涉及的步骤。
(1) 获取启用池的数据源实例
PoolDataSource pds = PoolDataSourceFactory.getPoolDataSource();
(2) 设置获取数据库物理连接所需的连接属性。
pds.setConnectionFactoryClassName("oracle.jdbc.pool.OracleDataSource");
pds.setURL("jdbc:oracle:thin:@//localhost:1521/XE");
pds.setUser("<user>"); pds.setPassword("<password>"); (3) 设置任何池属性以覆盖连接池的默认行为。
Oracle 通知服务器 (ONS) 使用一个简单的发布/订阅方法生成和传递事件消息,供本地和远程使用。ONS 后台进程在本地运行,与配置的节点列表中各节点(其他 ONS 后台程序处于活动状态)之间发送和接收消息。Oracle Real Application Clusters (RAC) 和快速连接故障切换 (FCF) 等高级 Oracle Database 特性需要 Oracle 客户端软件中包含的 ons.jar。
返回页首ONS 是一个名为 ons.jar 的 jar 文件。请将此文件包含在类路径中以及 JDBC 和 UCP jar 文件所在的任何位置中
返回页首ONS 配置由配置文件 (ons.config) 控制,位于 ORACLE_HOME/opmn/conf/ons.config。ons.config 中的配置信息通过名称/值对来定义。它应包含:
localport:ONS 绑定到 localhost 接口上与本地客户端通信的端口。
remoteport:ONS 绑定到所有接口上与其他远程 ONS 后台进程通信的端口
nodes:通信的其他 ONS 后台进程列表,指定为主机名或 IP 地址加端口
# First three values are required
localport=4100
remoteport=4200
nodes=racnode1:4200, racnode2:4200, racnode3:4200
在 ONS 配置中,ONS 只区分“本地”和“远程”端口,即“localport=”和“remoteport=”。通常,端口为 6100 和 6200。但这些端口不一定是 6100 和 6200。客户可以将它们配置成任何端口号,只要它们在 ONS 客户端和服务器主机上配置成一致的即可。
返回页首ONS 端口需要在客户端和服务器端更改。
客户端:更改 ons.config 文件中的 localport 和 remoteport。
服务器端:使用 SRVCTL 命令修改 Oracle Restart 中注册的 Oracle 通知服务后台进程所用的端口。
srvctl modify ons [-l ons_local_port] [-r ons_remote_port] [-t host[:port][,host[:port]][...]] [-v]
使用以下命令监视 ONS 是否正在运行。
$srvctl status nodeapps |grep ONS
ONS is enabled
ONS daemon is running on node:
ONS daemon is running on node:
ONS daemon is not running on node:
$srvctl config nodeapps | grep ONS
ONS exists:Local port 6100, remote port 6200, EM port 0, Uses SSL false
ONS is enabled
ONS is explicitly enabled on nodes:
ONS is explicitly disabled on nodes:
$onsctl debug 或 onsctl ping
负载平衡是对负载进行分配,从而为用户和应用提供优秀性能。在 RAC 感知应用中,当从服务添加/删除新的节点/实例时,这两种情况下负载均应取得平衡,无需人工干预。数据库连接数应始终在可用的实例之间分配。
返回页首RAC 和 GDS 发布负载平衡公告,显示每个活动实例的 CPU 利用率。
返回页首 false ,,,,,,,,,,,,,,,,