我有一个运行在Payara 5(初始版本)上的JavaEE应用程序,并且我正在尝试配置Oracle JDBC驱动程序(版本12.1.0.1.0)的获取大小。我可以使用查询提示来更改单个查询的获取大小,但是,我对如何为整个应用程序设置默认获取大小值感到困惑。根据Oracle文档,可以通过设置defaultRowPrefetch JDBC属性来实现,但是我看不到从domain.xmlpersistence.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

09-08 07:12