Skip to content

[bug][EC][jdbc] JDBC connection pool validation query fails for Oracle and DB2 databases #5411

@aiceflower

Description

@aiceflower

Search before asking

  • I had searched in the issues and found no similar issues.

Linkis Component

  • linkis-commons
  • linkis-computation-governance
  • linkis-dist
  • linkis-engineconn-plugin
  • linkis-extensions
  • linkis-orchestrator
  • linkis-public-enhancements
  • linkis-spring-cloud-services
  • linkis-web

Description

JDBC engine connection pool uses "SELECT 1" as the default validation query, which works for MySQL and PostgreSQL but fails for Oracle and DB2 databases:

  • Oracle requires: "SELECT 1 FROM DUAL"
  • DB2 requires: "SELECT 1 FROM SYSIBM.SYSDUMMY1"

Currently, the code only hardcodes Oracle support but lacks DB2 support and a configurable mechanism for other databases.

Steps to reproduce

  1. Configure a JDBC data source with Oracle or DB2 connection
  2. Enable connection pool validation (testWhileIdle=true)
  3. The validation query fails with SQL syntax error

Expected behavior

JDBC engine should support configurable validation queries for different database types:

  • Auto-detect database type from JDBC URL
  • Use appropriate validation query for each database
  • Allow users to customize validation query mapping via configuration

Your environment

  • Linkis version used: 1.9.0+
  • Database types affected: Oracle, DB2

Anything else

This PR adds:

  1. New configuration wds.linkis.jdbc.validation.query.mapping for custom validation queries
  2. Default support for Oracle and DB2 databases
  3. Auto-detection based on JDBC URL patterns

Are you willing to submit a PR?

  • Yes I am willing to submit a PR!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions