java - quartz ,设置 postgres 模式,JOB_DATA 应该是什么?

标签 java postgresql quartz-scheduler

我正在使用 liquibase 根据 Bert R recipe 为 quartz 设置数据库表.

postgres 的 JOB_DATA 列的正确类型是什么?

原始错误是

Caused by: org.quartz.JobPersistenceException: Couldn't retrieve trigger: 2
at org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveTrigger(JobStoreSupport.java:1538)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 2
at org.postgresql.util.PGbytea.toBytes(PGbytea.java:76)

基本错误是 PostgreSQlDelegate.java 试图从 qrtz_triggers 表中读取 JOB_DATA 列。此专栏中确实只有\x。

我已经更改了上面的 liquibase 文件以将类型从 BLOB 更改为 BYTEA,因为我遇到了错误

column "job_data" is of type oid but expression is of type bytea

quartz 属性文件包含作业存储的以下设置

# Job Store
org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass = 
org.quartz.impl.jdbcjobstore.PostgreSQLDelegate

最佳答案

该列的数据类型应该是bytea。简单的确认方式

  1. 转到 http://www.quartz-scheduler.org/downloads/
  2. 下载你的 quartz 版本并解压
  3. 转到 docs/dbTables 并查找 tables_postgres.sql

在那里你会发现job_data的数据类型为bytea

现在,将数据类型修改为 bytea 后,您面临的第二个问题请查看此链接是否可以解决问题? PostgreSQL - Quartz JDBC-JobStoreTX - getTriggersForJob - ArrayIndexOutOfBoundsException

关于java - quartz ,设置 postgres 模式,JOB_DATA 应该是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46800964/

相关文章:

java - columnDefinition ="DATE DEFAULT SYSDATE",不起作用

java - 在 Java 中运行 AWS CLI bash 命令时出现问题

postgresql - pcp_attach_node 之后 pgpool 丢失了 master

python - 无法在 AWS Elastic Beanstalk 上找到 Django 应用程序的模块

postgresql - 如何将序列关联到 PowerDesigner 中的列?

java - Quartz 不会从调度中删除已删除的作业

java - 我可以在扩展 java 中另一个类的类中增加变量的特异性吗?

java - 更改 web.xml 中的执行顺序后,Servlet 过滤器不起作用

c# - 在所有 Quartz .NET IInterruptableJob 上触发中断

grails - 在weblogic服务器10.3.6上部署grails项目大战时,由于 quartz 调度程序导致内存不足错误