ITPub博客

首页 > 数据库 > 国内数据库 > 【YashanDB知识库】如何配置jdbc驱动使getDatabaseProductName()返回Oracle

【YashanDB知识库】如何配置jdbc驱动使getDatabaseProductName()返回Oracle

国内数据库 作者:崖山数据库系统YashanDB 时间:2024-09-25 10:49:07 0 删除 编辑

本文转自YashanDB官网,具体内容请见 https://www.yashandb.com/newsinfo/7352676.html?templateId=1718516

问题现象

某些三方件,例如 工作流引擎activiti,暂未适配yashandb,使用中会出现如下异常:

image2024-6-24_17-24-17

问题的风险及影响

影响客户业务无法进行。

问题影响的版本

所有的yashandb jdbc驱动版本。

问题发生原因

工作流引擎activiti在启动时,会检测数据库厂商。其目前并未适配yashandb,故不认识yashandb

conn.getMetaData().getDatabaseProductName()方法返回的YashanDB,进而抛出异常退出。

解决方法及规避方式

yashandb jdbc 1.7.1及以后版本在连接串中提供了productName选项,可以指定为Oracle(activiti是支持oracle的)。

image2024-6-24_17-29-41

问题分析和处理过程

activiti在启动时会进行databaseProductName的判断,如果不匹配会异常退出:

image2024-6-24_17-43-42

上面截图中的databaseTypeMappings初始化如下:

image2024-6-24_17-44-51

可以看到,并不支持yashandb。所以yashandb的jdbc驱动要加一个配置参数productName,可以在这种情况下返回Oracle。

经验总结

如下java代码可以检测当前jdbc驱动是否支持productName参数:

如果输出为Oracle,那么支持;如果输出为YashanDB,那么不支持。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70028812/viewspace-3029085/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
崖山数据库系统YashanDB是深圳计算科学研究院完全自主研发设计的新型数据库系统,融入原创理论,支持单机/主备、共享集群、分布式等多种部署方式,覆盖OLTP/HTAP/OLAP交易和分析混合负载场景,为客户提供一站式的企业级融合数据管理解决方案。

注册时间:2023-04-11

  • 博文量
    722
  • 访问量
    639765