【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,那么不支持。

相关推荐
大明者省2 分钟前
Ubuntu22.04 宝塔面板与 XFCE 远程桌面端口兼容性分析
运维·服务器·数据库·笔记
liudanzhengxi27 分钟前
巧用ULN2003A轻松扩展单片机IO口
数据库·mongodb
Teable任意门互动35 分钟前
深度解析:AI 赋能开源多维表格,实现企业全场景数据整合与高效应用
数据库·人工智能·低代码·信息可视化·开源·数据库开发
DevOpenClub1 小时前
职教高考及高职分类招生控制线 API 接口
java·数据库·高考
funnycoffee1231 小时前
华为S5736交换机3层ECMP负载方式
linux·服务器·数据库
添砖java‘’1 小时前
MySQL复合查询
数据库·mysql
星川水月1 小时前
Access数据库快速入门——外部数据导入和SQL简单查询
数据库·sql·access
清平乐的技术专栏1 小时前
一文读懂Kafka中的“消费”(对标MySQL数据库)
数据库·mysql·kafka
i220818 Faiz Ul1 小时前
智慧养老平台|基于SprinBoot+vue的智慧养老平台系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·毕设·智慧养老平台