yangsen227 opened a new issue, #16600:
URL: https://github.com/apache/iotdb/issues/16600

   ### Search before asking
   
   - [x] I searched in the [issues](https://github.com/apache/iotdb/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.<init>(IoTDBConnection.java:133) 
~[iotdb-jdbc-2.0.4.jar:2.0.4]
        at org.apache.iotdb.jdbc.IoTDBDriver.connect(IoTDBDriver.java:65) 
~[iotdb-jdbc-2.0.4.jar:2.0.4]
        ... 3 more
   Caused by: java.net.UnknownHostException: 
xx.xx.xx.xxx6667,xx.xxxx.xxx:6667,xx.xx.xx.xxx
        at 
java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184) 
~[?:1.8.0_231]
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) 
~[?:1.8.0_231]
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 
~[?:1.8.0_231]
        at java.net.Socket.connect(Socket.java:606) ~[?:1.8.0_231]
        at org.apache.thrift.transport.TSocket.open(TSocket.java:238) 
~[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.<init>(IoTDBConnection.java:133) 
~[iotdb-jdbc-2.0.4.jar:2.0.4]
   
   
   附创建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!


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to