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

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

问题现象

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

问题的风险及影响

影响客户业务无法进行。

问题影响的版本

所有的yashandb jdbc驱动版本。

问题发生原因

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

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

解决方法及规避方式

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

问题分析和处理过程

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

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

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

经验总结

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

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

相关推荐
怪兽20146 小时前
什么是 Redis?
java·数据库·redis·缓存·面试
wangmengxxw7 小时前
Redis概述
数据库·redis·缓存
笔生花7 小时前
【实战-12】flink版本表
数据库·sql·flink
花月C7 小时前
高效查找数据的数据结构—MySQL 索引
数据结构·数据库·mysql
我笔记8 小时前
关系型数据库RDBMS与非关系型数据库NoSQL区别
数据库·oracle
PiscesCanon8 小时前
达梦开启awr功能报错:[-7160]:Object [DBMS_WORKLOAD_REPOSITORY_DATA_LOW] is invalid
数据库·mysql
SZ1701102318 小时前
新机器 银河麒麟 安装 达梦数据库
数据库
清风6666668 小时前
基于单片机的图书馆智能座位管理平台
数据库·单片机·嵌入式硬件·毕业设计·课程设计
SirLancelot18 小时前
MongoDB-基本介绍(一)基本概念、特点、适用场景、技术选型
java·数据库·分布式·后端·mongodb·软件工程·软件构建
安冬的码畜日常9 小时前
【JUnit实战3_02】第二章:探索 JUnit 的核心功能(一)
数据库·junit·sqlserver