java - 从 domain.xml 或 persistence.xml 配置 Oracle 提取大小
问题描述
我有一个在 Payara 5(初始版本)上运行的 JavaEE 应用程序,我正在尝试配置 Oracle JDBC 驱动程序(版本 12.1.0.1.0)的获取大小。我可以使用查询提示更改单个查询的提取大小,但是,我不知道如何为整个应用程序设置默认提取大小值。根据 Oracle 文档,它可以通过设置defaultRowPrefetch
JDBC 属性来实现,但我看不到从domain.xml
or设置它的方法persistence.xml
。以下没有工作:
- 在persistence.xml中配置一个属性
eclipselink.jdbc.property.defaultRowPrefetch
没有效果 - 在连接池上配置
connectionAttributes
值为;defaultRowPrefetch=100
or的属性:100
也没有效果 - 在池上配置
connectionProperties
属性会导致启动时出现各种异常-我尝试了从各种 SO 答案中获取属性值的不同语法,但这只会改变我得到的异常类型
配置默认提取大小的正确方法是什么?
解决方案
根据this page [1],它不仅仅通过配置起作用。
您不能将 defaultRowPrefetch 设置为 JVM 属性。它必须被命名为 oracle.jdbc.defaultRowPrefetch 才能工作。您只能通过将其加载到代码中的 Properties 对象中,然后使用 Properties 对象调用 getConnection 来使用此属性。
原因:
defaultRowPrefetch 是连接的属性,而不是数据源的属性
也许如果您在确实调用的 Payara 的源代码中找到了正确的位置,getConnection()
您可以检查是否有可能通过 domain.xml 传递它。
[1] https://www.ibm.com/support/pages/configuring-defaultrowprefetch-oracle-jdbc-driver
推荐阅读
- angular - 以角度为生成的表格中的前 3 行设置独特的设计或颜色
- jquery - 在函数表达式中添加的事件监听器立即执行
- java - Tomcat 管理器 - 更改 sessionList.jsp
- amazon-web-services - Provision 设置为 true,但 /root/.aws/credentials 中不存在凭证文件。请安装到此位置并重试。适用于 AWSGreengrassV2
- sql - Databricks spark sql 以显示来自散列字符串的关联字符串
- python - python parser.parse_args() 截断字符串
- vue.js - VueJS:如何在 Aloglia 搜索输入字段中删除大纲
- c# - C# 使用 lat/long 数组计算多个曲率
- google-sheets - 如何在公式计算中输入静态日期?
- reactjs - 我在使用 react-use-gesture 时遇到了这个错误