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

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 = ?

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值