问题标签 [ucp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - OracleConnection 不推荐使用的方法问题
我正在升级一个使用连接池的类。特别是界面:
现在这个接口有很多被弃用的方法。我只是想知道这个界面还有其他选择,所以我不会得到通常的:
等等等等。以前,代码通过 SupressWarning 注释进行检查。我不喜欢那样。有什么办法可以克服这个吗?还是注释是唯一的方法?
我的 maven 依赖导入就像,如果这有任何帮助:
添加代码(该类仅覆盖 OracleConnection 接口中的所有方法),我很确定它没有被太多使用,但由于它是旧代码,因此不能确定。
java - 当池生命周期为 LIFE_CYCLE_FAILED 时,使用 UCP 管理器调用 closeConnections() 时 UCP 连接是否关闭?
我正在处理使用 Oracle ojdbc 12 和 Java 8 的 Oracle UCP 管理器的问题。如果 UCP 池启动失败,我希望关闭它创建的连接。
当在池初始化期间遇到 ORA-02391:超出同时 SESSIONS_PER_USER 限制错误时,例如当 initPoolSize 值太大时,startConnectionPool API 会抛出异常并且池状态为 FAILED。这是预期的行为。
但是,调用 stopConnectionPool() 会将池状态变为 STOPPED,而不会实际关闭任何连接。我使用 netstat 和服务器 v$sessions 看到本地连接。
我的预感是,正如文档中提到的(https://docs.oracle.com/cd/E18283_01/java.112/e12265/manage.htm)停止池应该只在它处于 STARTING 或 STARTED/RUNNING 状态时起作用. 但在那种情况下, stopConnectionPool() 应该会抛出一个错误,这不是我所看到的。
所以问题是:stopConnectionPool() UCP API 是否应该在 FAILED 池上工作?
也许唯一的出路就是摧毁游泳池?
oracle - UCP Connection pool cannot create connection after a database network error
I have a problem with the Oracle Universal Connection Pool (UCP) implemented in a Scala application, for an Oracle Database.
It works perfectly while there's a connection to the database, but when the network has some problem for a limited period of time (the application or the database goes offline) it obviously fails to create a Connection while the problem persists, but then it doesn't manage to create new ones when the application can ping the database again. The only way to get the application work again is to restart it.
I've set up a class in which I manage the connection, and I create the pool data source with this method:
Then, every time I need a database connection, I get it through this method invocation:
Am I missing something in the code, or is it true that the pool data source should retry to establish a connection to the database when the getConnection
method is invoked, even after a network problem?
In other words, if it fails to create the connection when the network goes down, the second time, if the application can now ping the database, the connection must be established?
java - Oracle UCP:何时使用 destroyConnectionPool 与 stopConnectionPool
我已经浏览了文档,但是对于这两种方法应该使用哪些场景,我找不到令人满意的解释。
哪些条件可以指导我选择其中一个?有什么优点或缺点?
java - 从 oracle UCP 请求线程的连接,卡在 Runnable 状态
面对 UCP 连接池的问题,从池中获取连接的请求被所有者线程卡在 Runnable 状态。下面是卡住线程的堆栈跟踪。
从错误跟踪来看,这似乎在从 UCP 池借用连接时被卡住了。我们还在 oracle.ucp.jdbc.PoolDataSourceFactory 上设置了以下超时属性,以期解决此问题。
连接等待超时 60
connectionProperties- oracle.net.CONNECT_TIMEOUT 6000 oracle.jdbc.ReadTimeout 300000
如果客户端无法在某个时间连接而不是继续等待并且线程卡在 Runnable 中,是否需要配置任何其他方式/超时来获取错误?
还从 JMX Mbean(oracle.uc.admin.UniversalConnectionPoomMBean) 验证池具有剩余容量,其设置为 100。当时 borrwedConnectionCount 为 0,remainPoolCapacityCount 为 100,pendingRequestsCount 继续为 1。
java - 连接池不适用于通过 UCP 的 DB2 数据库
我们正在编写一个简单的独立 java 批处理。我们正在使用 DB2 数据库。我们正在尝试使用 UCP(版本:ucp-11.2.0.3.0)进行连接池。
我们已将最小池大小初始化为 5。但是当我们检索一个连接并打印可用和借用连接时,我们将可用为 0 和借用为 1。当检索多个连接时,它仍然打印相同,即使最小池大小为 5。即使超过了最大限制,我们也没有得到任何异常。你能帮我们解决这个问题吗?
oracle - 无法访问 oracle 数据库服务器时 jdbc 调用超时
我正在为连接到 7 个不同国家/地区特定 Oracle 数据库的 spring-boot 服务构建自定义健康检查。我想构建这些,以便我可以使用 spring-boot-admin 来监控服务。问题是当服务器不可用时,例如它关闭或防火墙配置不正确,超时需要很长时间,一分钟。Spring-boot-admin 然后将服务器标记为不可访问而不是关闭。
据我了解,正在发生的事情是套接字永远不会连接,最终连接会遇到其他超时。在我的健康检查中,我尝试配置网络超时,但似乎没有任何区别。我们正在使用
和ojdbc7
运行状况检查使用为主池定义的数据源 bean,但如果设置网络超时为时已晚,我不确定是否已经创建了池。对我来说,问题是文档真的不清楚哪些属性是有效的。
我已经厌倦了这些,但它们似乎什么也没做
看了这些链接
即使明确设置 PreparedStatement 也不会超时
这提供了有关超时类型的更多详细信息。
https://www.programering.com/a/MDNzIjMwATY.html
所以我的问题是如何真正建立一个预言池来应对网络/套接字、事务、池和语句超时?
java - WebApp 之间的 JDBC ConnectionPool 共享
我正在尝试将应用程序从 WebSphere 迁移到 Tomcat。我使用 JDBC 连接池来创建连接,并且所有的 webapps 都共享它。但是由于 Tomcat 不支持 EAR 文件。我正在分别部署所有不同的 webapps。有连接共享代码的jar文件,我放在Tomcat/lib文件夹下。还有ojdbc5.jar
anducp.jar
在同一个文件夹中。
首先,我尝试使用旧的共享对象代码。它引发了一些时髦的错误,例如:
或者
这是导致问题的线路。
之后我编写了每个 webapp 都有自己的连接对象的代码(效率不是很高)。但不知何故,即使这样,错误也出现了。你能否指导我如何摆脱这个问题。我可能有点含糊,因为这个问题很难解释。如果您需要更多信息,请告诉我。
java - 升级oracle驱动后oracle游标泄露
我正面临一个与 oracle 游标泄漏有关的间歇性问题。我们的系统在 oracle 12.2.0.1 数据库上运行。根据 oracle 文档的建议,我们最近将 oracle 连接池升级为通用连接池(也将 ojdbc7 升级到 ojdbc8、ucp 和 ons),因为与我们的数据库相比,oracle 数据源具有一些不推荐使用的功能。这样做之后,我在多年前工作的查询中面临游标泄漏。我们在系统中声明了最多 3000 个游标,并且在启动一个应用程序服务器后,游标限制已超出。请给我一个想法。
注意:如果需要,我可以使用数据库信息更新它。
java - 如何在运行时使用 Oracle UCP 为 Tomcat 数据源添加用户名和密码
我试图在 tomcat 中使用 Oracle UCP 创建一个数据源,我的要求不是在 server.xml 添加密码,我需要在服务器运行时添加它,我尝试了很多方法但没有奏效。
这是我的代码示例
Tomcat 中的 server.xml
自定义OracleUCPDataSource .java
自定义OracleUCPDataSource2.java
没有任何问题可以解决我的用户名和密码已在控制台中打印,但无法设置到数据源。
在创建数据源时,我得到以下日志信息。
有了详细信息,我无法创建数据源,但出现以下错误:
任何帮助都将不胜感激。
我正在使用 Ojdbc8.jar,ucp.jar