Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

升级到druid1.2.22后调用getConnection接口报 Method not supported #5837

Closed
niegl opened this issue Apr 10, 2024 · 5 comments
Closed

Comments

@niegl
Copy link

niegl commented Apr 10, 2024

java.sql.SQLException: Method not supported
at org.apache.hive.jdbc.HiveConnection.isValid(HiveConnection.java:1077)
at com.alibaba.druid.pool.DruidStatementConnection.isValid(DruidStatementConnection.java:274)
at com.alibaba.druid.pool.vendor.HiveValidConnectionChecker.isValidConnection(HiveValidConnectionChecker.java:20)
at com.alibaba.druid.pool.DruidAbstractDataSource.validateConnection(DruidAbstractDataSource.java:1436)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1828)
at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2928)

@lizongbo
Copy link
Collaborator

hive jdbc版本太低?
https://github.com/apache/hive/blob/master/jdbc/src/java/org/apache/hive/jdbc/HiveConnection.java
看官方是已经实现isValid方法了的。

@niegl
Copy link
Author

niegl commented Apr 18, 2024

不是 jdbc版本的问题。 同样的jdbc 升级druid1.2.22以前是没有问题的。应该是创建连接的代码逻辑变了

@lizongbo
Copy link
Collaborator

不是 jdbc版本的问题。 同样的jdbc 升级druid1.2.22以前是没有问题的。应该是创建连接的代码逻辑变了

首先,是jdbc版本有问题,你用的低版本hive jdbc,还没实现这个方法。
其次,1.2.22是有人提交了定制的HiveValidConnectionChecker,想优化成优先使用isValid方法来提示验证连接可用性的性能,但是没想到hive jdbc的低版本根本不支持这个方法。

因此从兼容性考虑,再去做hive jdbc版本探测然后做不同逻辑的必要性不大, 近期会把这个HiveValidConnectionChecker会移除掉,恢复成原来的样子。

@niegl
Copy link
Author

niegl commented Apr 19, 2024

不是 jdbc版本的问题。 同样的jdbc 升级druid1.2.22以前是没有问题的。应该是创建连接的代码逻辑变了

首先,是jdbc版本有问题,你用的低版本hive jdbc,还没实现这个方法。 其次,1.2.22是有人提交了定制的HiveValidConnectionChecker,想优化成优先使用isValid方法来提示验证连接可用性的性能,但是没想到hive jdbc的低版本根本不支持这个方法。

因此从兼容性考虑,再去做hive jdbc版本探测然后做不同逻辑的必要性不大, 近期会把这个HiveValidConnectionChecker会移除掉,恢复成原来的样子。

那问题就比较清楚了,就是提交的定制HiveValidConnectionChecker有些低版本不支持。考虑兼容,能够恢复原来的样子最好

@niegl niegl closed this as completed Apr 19, 2024
@niegl
Copy link
Author

niegl commented Apr 19, 2024

不是 jdbc版本的问题。 同样的jdbc 升级druid1.2.22以前是没有问题的。应该是创建连接的代码逻辑变了

首先,是jdbc版本有问题,你用的低版本hive jdbc,还没实现这个方法。 其次,1.2.22是有人提交了定制的HiveValidConnectionChecker,想优化成优先使用isValid方法来提示验证连接可用性的性能,但是没想到hive jdbc的低版本根本不支持这个方法。

因此从兼容性考虑,再去做hive jdbc版本探测然后做不同逻辑的必要性不大, 近期会把这个HiveValidConnectionChecker会移除掉,恢复成原来的样子。

那问题就比较清楚了,就是提交的定制HiveValidConnectionChecker有些低版本不支持。考虑兼容,能够恢复原来的样子最好

lizongbo added a commit to lizongbo/druid that referenced this issue May 3, 2024
废除导致hive低版本jdbc不兼容的Checker alibaba#5837
lizongbo added a commit that referenced this issue May 3, 2024
废除导致hive低版本jdbc不兼容的Checker #5837
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants