我有一个运行在Payara 5(初始版本)上的JavaEE应用程序,并且我正在尝试配置Oracle JDBC驱动程序(版本12.1.0.1.0)的获取大小。我可以使用查询提示来更改单个查询的获取大小,但是,我对如何为整个应用程序设置默认获取大小值感到困惑。根据Oracle文档,可以通过设置defaultRowPrefetch
JDBC属性来实现,但是我看不到从domain.xml
或persistence.xml
进行设置的方法。以下无效:
在persistence.xml中配置属性eclipselink.jdbc.property.defaultRowPrefetch
无效
在连接池上配置值为connectionAttributes
或;defaultRowPrefetch=100
的:100
属性也无效
在池上配置connectionProperties
属性会导致启动时出现各种异常-我尝试使用与各种SO答案不同的语法来获取属性值,但这仅改变了我得到的异常类型
配置默认提取大小的正确方法是什么?
最佳答案
根据本页[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