quartz调度框架和gbase8s适配过程中的四个报错

发布于:2024-07-04 ⋅ 阅读:(142) ⋅ 点赞:(0)

1.报错Caused by: java,sql.SOLException Create breakpoint . : 发生语法错误。

  • 程序与数据库通过jdbc连接时,为了保持连接,会向数据库发送sql语句验证连接有效
--如mysql的其他数据库
connection-test-query: "select 1;"
--gbase8s数据库需要修改
connection-test-query: "select 1 from dual;"

2.报错org.quartz.JobPersistenceException: Failure identifying failed instances when checking-in: 无此列名

现场场景使用的jdbc串:

jdbc:gbasedbt-sqli://IP地址:9088/数据库名:GBASEDBTSERVER=实例名;DB_LOCALE=zh_CN.utf8;CLIENT_LOCALE=zh_CN.utf8;NEWCODESET=UTF8,utf8,57372;GL_USEGLU=1;DELIMIDENT=Y

将参数DELIMIDENT=Y去掉

jdbc:gbasedbt-sqli://IP地址:9088/数据库名:GBASEDBTSERVER=实例名;DB_LOCALE=zh_CN.utf8;CLIENT_LOCALE=zh_CN.utf8;NEWCODESET=UTF8,utf8,57372;GL_USEGLU=1;

3.报错 create breakpoint:failure obtaining db row lock :语句不在事务中

  • 这是跟sql语法有关,其他数据库支持select * form table for update语法,但是gbase8s对这种语法不支持,所以需要删除sql语句中的for update
  • 或者需要添加或者修改配置参数org.quartz.jobStore.selectWithLockSQL
--其他数据库的配置
selectwithLockSOL:SELECT *FROM {O} WHERE {1}=? AND {2}= ? for update
--gbase8s需要去掉for update
selectwithLockSOL:SELECT *FROM {O} WHERE {1}=? AND {2}= ?

4.报错 org.quartz.impl.jdbcjobstore.LockException Create breakpoint o ungma*: Failure obtaining db row lock: 发生语法错误。

  • 这里本次调整同样是修改了配置参数org.quartz.jobStore.selectWithLockSQL
org.quartz.jobStore.selectWithLockSQL= SELECT * FROM {0}LOCKS WHERE SCHED_NAME = {1} AND LOCK_NAME = ?


网站公告

今日签到

点亮在社区的每一天
去签到