嗨,我一直在使用HP-UX机器上部署的DB2 10.5 LUW,驱动程序是db2jcc,我认为与Spring Data结合使用的版本是4.19.66。我在两个地方都对数据源进行了两种配置,我尝试增加queryDataSize jdbc属性,因为我需要流式传输大表。我的数据源配置如下所示:
配置1:
DB2SimpleDataSource source = new DB2SimpleDataSource();
source.setQueryDataSize(98303);
source.setFetchSize(100000);
source.setDriverType(4);
source.setServerName("somename");
source.setPortNumber(56010);
source.setDatabaseName("DATABASE");
source.setReadOnly(true);
通过Hikari的配置2
HikariConfig config = new HikariConfig();
config.setJdbcUrl( "myDB2JdbcUrl;queryDataSize=98303;" );
config.setUsername( "user" );
config.setPassword( "password" );
config.addDataSourceProperty( "cachePrepStmts" , "true" );
config.addDataSourceProperty( "prepStmtCacheSize" , "250" );
config.addDataSourceProperty( "prepStmtCacheSqlLimit" , "2048" );
config.addDataSourceProperty( "maximumPoolSize" , 50 );
config.addDataSourceProperty( "readOnly" , true );
config.addDataSourceProperty( "transactionIsolation" , Connection.TRANSACTION_READ_UNCOMMITTED);
config.addDataSourceProperty( "useServerPrepStmts " , true);
在两种配置中,当我通过网络监视工具配置应用程序时。缓冲区大小应为65535,默认值为32767。
我做错了什么?如何激活queryDataSize?
更新:接受将其设置为32k的较低值的IT顾问,但以上任何有效值都将重置为32K,到目前为止,我只放置了有效值。
答案 0 :(得分:1)
根据documentation,queryDataSize值的有效值为:
4096-32767、98303、131071、163839、196607、229375、262143
注意:
如果您在最小值和最大值之间指定一个值,即 不是有效值,IBM Data Server Driver for JDBC和SQLJ集 queryDataSize到最接近的有效值。