问题标签 [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 - ORA-27101 使用通用连接池
我目前在我的 java 服务器应用程序中面临 ORA-27101。当它开始时它工作了几天,然后出现故障并且应用程序丢失了。我只能在我的日志中看到这些 ORA。数据库可能关闭了一两个小时。但在那段时间之后,该应用程序也再也没有恢复运行。重新启动后一切都很好。
所以我的问题是:是什么导致了应用程序的这种行为?当此异常出现在我的应用程序中时,我该怎么办?重新启动是唯一的方法还是我可以在应用程序中处理这个?
操作系统是 Windows Server 2008,Oracle 数据库是 11g。我正在使用 oracle jdbc 驱动程序和通用连接池来管理多个连接。
最后是堆栈跟踪:
oracle - OCI 无效操作 ORA-01010
我正在运行一个批处理应用程序,它处理大量数据文件并将数据放入 Oracle 11g 数据库中。我正在使用 Java 1.6.20、ojdbc6 和 ucp11.2。间歇性地,我得到 ORA-01010 无效操作 SQLExceptions。当我查找此错误的含义以及为此采取的措施时:
ORA-01010: 无效的 OCI 操作
原因:
以下情况之一:1) 您尝试了无效的 OCI 操作。2) 您正在使用与版本 7.1(或更高版本)库链接的 Oracle 客户端应用程序,环境变量 ORA_ENCRYPT_LOGIN 设置为 TRUE,并且您尝试连接到版本 7.0(或更低版本)的 Oracle 服务器。3) 您已连接到版本 7.1(或更高)的 Oracle Server,初始化参数 DBLINK_ENCRYPT_LOGIN 设置为 TRUE,并且您试图使用指向版本 7.0(或更低)的 Oracle Server 的数据库链接。4) 您已连接到版本 9.0.2(或更高)的 Oracle Server,并且您尝试使用指向版本 9.0.1(或更低)的 Oracle Server 的数据库链接进行分布式自治事务。
行动:
针对以上原因: 1) 不要使用无效的OCI操作。2) 如果您不想在分布式数据库中使用加密连接密码,请将 ORA_ENCRYPT_LOGIN 设置为 FALSE。如果您希望使用加密的连接密码,您必须将所有 Oracle 服务器升级到版本 7.1(或更高版本)。3) 如果您不想在分布式数据库中使用加密的数据库链接,请将 DBLINK_ENCRYPT_LOGIN 设置为 FALSE。如果您希望使用加密的数据库链接,您必须将所有 Oracle 服务器升级到版本 7.1(或更高版本)。4) 不要在 9.0.1(或更低)版本的 Oracle Server 上尝试分布式自治事务。
这对我来说毫无意义,因为我使用的是更新的 JDBC 驱动程序和相当最新的 Oracle 版本。如果问题是登录,为什么它会工作大约 90-95% 而不是其他 5-10%?我确保所有的 Oracle 服务器都是 11g。我还提供了 ORA-01010 信息,以便任何试图回答这个问题的人都可以避免这样做,因为他们认为他们找到了答案。除非你能解释这个看似神秘的信息,它似乎与我的问题没有太大关系,否则不要打扰。
根据以下评论更新:
这是确切的错误:
java - 如何使 Oracle UCP 始终存储多个可用连接
我正在创建将返回java.sql.Connection
给该类客户的连接管理器类。我的目标是在池中始终有 2 个可用连接,这样我就不会浪费时间来创建连接。当我返回可用连接时,我需要让 Oracle UCP 创建新的可用连接,所以它总是有 2 个可用连接。
问题是 Oracle UCP 没有控制它的选项。我已经阅读了UCP 文档,但没有找到任何解决方案。
有setMinPoolSize()
方法,但它控制可用+借用的连接,而不仅仅是可用的连接。
还有一个可收集的连接功能,但它收集现有(借用)连接而不是创建新连接。
注意:我使用的是 Oracle 11.2.0.3 和最新ucp.jar
版本(适用于 Oracle 11.2.0.3)
java - 从数据库中断中恢复的 Java DAL?
我的 DAL 包括通过 Oracle 的 UCP 连接到 Oracle 的 Spring Data Access。这意味着我主要使用 JdbcTemplate。我的服务器的一个要求是从数据库中断中恢复,更具体地说,如果我们发生中断,我们的服务器显然可以抛出许多异常,但是,一旦数据库重新联机,服务器应该再次完美运行。
JdbcTemplate 会与 UCP 一起为我处理吗?换句话说,JdbcTemplate 会在数据库关闭时抛出异常,但是一旦数据库恢复(它由 UCP 支持,所以我希望是这种情况)就可以运行,还是我需要做其他事情,比如创建一个新的 UCP例如工厂?
谢谢你的时间。
php - 我的 UCP 的 PayPal 问题
我目前遇到了这个问题,有人告诉我在这里发帖。
基本上我有一个正在运行的游戏服务器的 UCP(用户控制面板),我遇到的问题是:
好吧,基本上有一个捐赠页面。在该页面上有一个项目列表,为了获得它们,您必须拥有积分,为了获得积分,您必须使用真钱添加它们。因此,有一个名为“获得更多积分”的按钮,一旦您单击该按钮,就会出现一个弹出窗口,说明您要添加多少积分。输入金额后,按回车键,然后进入下一页。
我遇到的问题是它没有将在 UCP 中输入的金额转移到 PayPal 页面。我试图在这方面寻求帮助,但仍然遇到问题。希望这里有人可以帮助我,这样我就可以解决这个问题。
我附上了一个buy.php
包含所有代码的链接。我还包括了Paypal.ipn.inc
和ipn.php
文件。
希望有人给我解答,谢谢!
文件:
购买.php https://www.dropbox.com/s/gtl4bq8y69bi183/buy.php
Paypal.inc.php https://www.dropbox.com/s/0inzawdfb0buofm /paypal.inc-1.php
hibernate - 如何使用 UCP 配置休眠
Oracle 正在迁移到通用连接池 (UCP) 以维护可以借用、归还或关闭的池连接。我的 web 应用程序有它自己的数据层。此应用程序将迁移以将 JPA 与 Hibernate 一起使用。此时,我只能将 Hibernate 配置为使用 Oracle JDBC 驱动程序。
如何将 Hibernate 配置为使用 UCP?
有关于如何使用 c3p0 的文档,但这不适用于 UCP。
这是我的 Hibenate 配置,带有没有 UCP 的 JDBC 连接:
这些是我的 UCP 和 JDBC 连接设置,可在没有 Hibernate 的情况下直接访问:
oracle - Java 1.7 + TC 服务器上的 Oracle UCP 高 CPU 使用率
前段时间,我们将我们的一个 Web 应用程序从 Resin 和 Java 6 迁移到了 VMware vFabric tc Server 和 Java 7。这还包括将所有 JNDI 数据源从 Resin 实现迁移到 Oracle UCP。当我在本地运行应用程序时,我注意到我的 CPU 使用率非常高。将 VisualVM 附加到 tc 后,我发现消耗我的 CPU 的是 Oracle UCP:
我的本地配置是:Windows 7x64、Java 1.7.0_25x32 (JDK) 和 vFabric tc Server 标准 2.7.0.RELEASE。这是我在以下配置数据源的方式context.xml
:
有趣的是,在产品盒上一切正常。我不知道确切的配置,但我们在它们和 Hotspot 7 上安装了 Fedora 或 CentOS。
我已经尝试过标准的 Tomcat 数据源实现,但在我的情况下效果不佳:我的本地计算机和数据库集群之间的连接非常不稳定,因此自动恢复和负载平衡对我来说至关重要。另外,我希望我的本地配置类似于 prod,因此不希望使用另一个池。
也许有人面临同样的问题并知道解决方案?也许错过了一些 JVM arg 或本机库?
java - Oracle UCP 重新连接选项
我们为 Oracle UCP 提供了以下 spring bean 配置。出于某种原因,如果数据库被退回,那么池应自动重新建立连接,而无需重新启动我的网络服务器。看起来下面的 bean 配置不起作用。我的意思是,连接池的连接未通过新连接进行验证。有人可以查看 bean 配置并提供重新连接的建议/选项吗?
使用上述配置,数据库重启后出现以下异常:
编辑:
我在新盒子中尝试了相同的配置,它完美无缺。不确定我的一台机器中的这个异常(我使用 maven tomcat:run 目标来运行作业)。
java - 在 Tomcat 6 上禁用 Oracle UCP 的自动提交
我在 Tomcat 6 上使用 Hibernate 3.3.2 和 Spring 3.2.3。我想使用连接池并决定测试 Oracle 的 UCP(适用于 Oracle 11.2.0.4)。
(我在这篇文章的末尾添加了编辑,因为经过一些发展后情况发生了变化)
我无法摆脱自动提交。我尝试在 Tomcat 的 context.xml 中像这样配置数据源:
注意分号。因为这篇文章,我添加了它们。但它不起作用,无论有分号还是没有分号。
在我的应用程序中,我有一些这样的测试代码:
输出是:
我还尝试使用 hibernate.connection.autocommit=false 在 Hibernate 中禁用自动提交,但这也不起作用。
编辑:我的配置如下:
和
和
hibernate.properties 看起来像这样:
编辑2:
显然 autoCommit 属性的名称有错字。肯定是
开头有一个小“a”。我使用了大写版本,因为我发现这是在网上配置 UCP 且 autoCommit off 的唯一示例之一。
现在测试输出是
这一切都很好,花花公子,但现在没有任何承诺。我在刷新时看到 Hibernate 正在编写 DELETE 语句,在 @Transactional 方法结束后,我可以调试到 Spring 的 TransactionAspectSupport 和 HibernateTransactionManager.doCommit(),最后是 JDBCTransaction.commitAndResetAutoCommit() 它说
,但数据库对此并不担心。不提交任何更改。
数据访问代码示例(这是客户端通过 Spring HTTP 调用程序调用的服务器上的服务):
php - 如果语句不能正常工作
这是我在这个很棒的网页中的第一个主题
问题是这样的:
我正在编写 UCP(基于 PHP 和 MySQL)的脚本。我希望它显示用户的状态,例如分数、金钱等(是的,它是用于游戏的),但是当我单击登录按钮时,什么也没有发生,它只会删除请求字段的内容。
在我进行一些更改之前它工作正常(检查用户名是否存在)
这是代码: