如何在Scala Play(Anorm)应用程序中全局设置Oracle提取大小?

时间:2017-06-07 09:21:19

标签: oracle scala jdbc playframework

我们的DBA希望我从JDBC的默认值(10)增加获取大小。有没有办法通过public_non_static,JDBC URL或类似的方式全局执行此操作?

我的数据库调用基本上看起来像

application.conf

但是很多控制器和方法都有很多。

如何设置中央设置?

2 个答案:

答案 0 :(得分:1)

defaultRowPrefresh是一个Oracle JDBC驱动程序属性,可以设置为从默认值10(Table 4-2 Connection Properties Recognized by Oracle JDBC Drivers)更改

虽然未明确记录,但看起来自定义JDBC属性是在datasource键下完成的(请参阅thisthis

db.default.datasource.defaultRowsPrefetch="100"这样的东西应该有用。

答案 1 :(得分:0)

在搜索完Oracle JDBC jar后,我发现:

ojdbc6-unjar $ cat ./oracle/jdbc/defaultConnectionProperties.properties
# This properties file sets the default value for connection properties.
# Entries in this file override the predefined defaults as specified
# in the JavaDoc for oracle.jdbc.OracleConnection. These defaults are
# themselves overridden by any values set via -D which are overridden
# by values passed in the Properties argument to getConnection.
#

这一点和Javadoc在解释如何派生实际参数名称方面做得非常糟糕,但经过多次尝试各种案例样式,包名称等后,我发现这是有效的:

JAVA_OPTS="-Doracle.jdbc.defaultRowPrefetch=1000" \
   ./activator -Dconfig.file=conf/xe.conf run 

这将使boneCP在没有任何代码更改的情况下使用合理的提取大小。