[Bug] 2.0.4版本jdbc问题 private static final String TSFILE_URL_PREFIX = "jdbc:iotdb://.*";匹配模版,不支持连接集群?
Search before asking
- [x] I searched in the issues and found nothing similar.
Version
集群部署在red hat 4.8.5-44 iotdb使用版本2.0.4
Describe the bug and provide the minimal reproduce step
传入以逗号分隔的url后出现异常,是我这边的传入方式有问题还是本事不支持这个功能?jdbc的方式不能连接集群吗?
reate connection SQLException, url: jdbc:iotdb://xx.xx.xx.xxx:6667,xx.xx.xx.xxx:6667,xx.xx.xx.xxx:6667/?sql_dialect=table, errorCode 0, state null
java.sql.SQLException: Connection Error, please check whether the network is available or the server has started.
at org.apache.iotdb.jdbc.IoTDBDriver.connect(IoTDBDriver.java:67) ~[iotdb-jdbc-2.0.4.jar:2.0.4]
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1652) ~[druid-1.2.4.jar:1.2.4]
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1718) ~[druid-1.2.4.jar:1.2.4]
at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2785) [druid-1.2.4.jar:1.2.4]
Caused by: org.apache.thrift.transport.TTransportException: java.net.UnknownHostException: 10.72.8.165:6667,10.72.8.164:6667,10.72.8.163
at org.apache.thrift.transport.TSocket.open(TSocket.java:243) ~[libthrift-0.14.1.jar:0.14.1]
at org.apache.iotdb.rpc.TElasticFramedTransport.open(TElasticFramedTransport.java:101) ~[service-rpc-2.0.4.jar:2.0.4]
at org.apache.iotdb.jdbc.IoTDBConnection.openTransport(IoTDBConnection.java:553) ~[iotdb-jdbc-2.0.4.jar:2.0.4]
at org.apache.iotdb.jdbc.IoTDBConnection.
附创建iotdatasource部分代码 @Bean(name = "iotDataSource") public DataSource setDataSource() {
DruidDataSource datasource = new DruidDataSource();
datasource.setDriverClassName(iotDbDTSProperties.getDriverClassName());
// 添加查询超时和内存限制参数
datasource.setUrl("jdbc:iotdb://"+iotDbDTSProperties.getNodeUrls()+"?sql_dialect=table");
datasource.setUsername(iotDbDTSProperties.getUsername());
datasource.setPassword(iotDbDTSProperties.getPassword());
// 连接池配置
datasource.setInitialSize(5);
datasource.setMinIdle(5);
datasource.setMaxActive(10); // 减少最大连接数
datasource.setMaxWait(30000); // 减少等待时间
// 连接保活配置
datasource.setTimeBetweenEvictionRunsMillis(30000); // 更频繁的检查
datasource.setMinEvictableIdleTimeMillis(180000);
datasource.setMaxEvictableIdleTimeMillis(300000); // 更短的最大空闲时间
// 禁用连接验证查询,避免IoTDB SQL语法不兼容问题
datasource.setTestWhileIdle(false);
datasource.setTestOnBorrow(false);
datasource.setTestOnReturn(false);
datasource.setValidationQuery(null);
// 连接泄露检测 - 更严格的超时
datasource.setRemoveAbandoned(true);
datasource.setRemoveAbandonedTimeout(60); // 1分钟超时
datasource.setLogAbandoned(true);
// 其他配置保持不变
datasource.setDefaultAutoCommit(true);
datasource.setMaxPoolPreparedStatementPerConnectionSize(-1);
datasource.setPoolPreparedStatements(false);
datasource.setInitVariants(false);
datasource.setInitGlobalVariants(false);
datasource.setUseGlobalDataSourceStat(false);
datasource.setMaxOpenPreparedStatements(-1);
return datasource;
}
What did you expect to see?
我期望以逗号分隔的传入方式能够得到支持
What did you see instead?
我看到了无法解析传入的以逗号分隔的url导致连接iotdb数据库失败
Anything else?
No response
Are you willing to submit a PR?
- [x] I'm willing to submit a PR!
Hi, this is your first issue in IoTDB project. Thanks for your report. Welcome to join the community!
不是bug,JDBC目前还不支持多个地址。