您好我一直在使用部署在HP-UX机器上的DB2 10.5 LUW,驱动程序是db2jcc我认为版本是4.19.66与Spring Data结合使用。我在两个地方都有两个配置的数据源我尝试增加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);
Konfuraguron 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);
在我通过网络监控工具分析应用程序时的两种配置中。缓冲区大小为默认值32767,应为65535。
我究竟做错了什么 ?如何激活queryDataSize?
更新:显示设置接受的值低于32k,但上面的任何有效值都重置为32K我到目前为止只放置了有效值。
根据documentation,queryDataSize值的有效值为:
4096-32767, 98303, 131071, 163839, 196607, 229375, 262143
注意:
如果指定的最小值和最大值之间的值不是有效值,则JDBC和SQLJ的IBM数据服务器驱动程序会将queryDataSize设置为最接近的有效值。