Skip to content

[fix][EC][JDBC] Add configurable validation query for different database types#984

Open
aiceflower wants to merge 3 commits intoWeDataSphere:dev-1.9.0-wdsfrom
aiceflower:pr-jdbc-validation-query
Open

[fix][EC][JDBC] Add configurable validation query for different database types#984
aiceflower wants to merge 3 commits intoWeDataSphere:dev-1.9.0-wdsfrom
aiceflower:pr-jdbc-validation-query

Conversation

@aiceflower
Copy link
Copy Markdown

Summary

  • 添加数据库类型特定的验证查询配置支持,解决 Oracle、DB2 等数据库连接池验证问题
  • 新增配置项 wds.linkis.jdbc.validation.query.mapping,支持自定义数据库验证查询
  • 排除 JDBC 插件打包时的 jar 冲突

Changes

  1. ConnectionManager.java: 添加验证查询映射逻辑,根据 JDBC URL 自动选择对应的验证查询
  2. JDBCEngineConnConstant.java: 新增验证查询映射配置常量
  3. JDBCConfiguration.scala: 新增配置项,默认支持 Oracle 和 DB2
  4. distribution.xml: 优化打包排除配置,避免 jar 冲突

Configuration

# 数据库验证查询映射配置
# 格式: dbType1:query1,dbType2:query2,...
wds.linkis.jdbc.validation.query.mapping=oracle:SELECT 1 FROM DUAL,db2:SELECT 1 FROM SYSIBM.SYSDUMMY1

Test plan

  • Oracle 数据库连接池验证测试
  • DB2 数据库连接池验证测试
  • MySQL/PostgreSQL 默认验证查询兼容测试
  • JDBC 插件打包验证(无 jar 冲突)

🤖 Generated with Claude Code

aiceflower and others added 3 commits April 12, 2026 19:05
…nection pool

- Add DB2-specific validation query "SELECT 1 FROM SYSIBM.SYSDUMMY1"
- Same pattern as existing Oracle validation query handling
- Fixes DB2 connection pool validation error when using datasource name

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Exclude Jetty jars to avoid version conflicts with public-module
- Exclude SLF4J bindings to prevent multiple binding errors
- Exclude Hadoop jars to use shared public-module versions

These exclusions prevent class loading conflicts when JDBC engine
starts and uses jars from both plugin lib and public-module.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…t database types

- Add configuration parameter 'wds.linkis.jdbc.validation.query.mapping'
- Default mapping: oracle:SELECT 1 FROM DUAL,db2:SELECT 1 FROM SYSIBM.SYSDUMMY1
- Remove hardcoded database-specific validation query logic
- To add new database type, just update configuration, no code change needed

Benefits:
- Configuration-driven approach for extensibility
- Easy to add support for new databases without modifying source code
- Default values work for most common databases

Usage example:
  Add to linkis-engineconn.properties:
  wds.linkis.jdbc.validation.query.mapping=oracle:SELECT 1 FROM DUAL,db2:SELECT 1 FROM SYSIBM.SYSDUMMY1,postgresql:SELECT 1

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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

Successfully merging this pull request may close these issues.

1 participant