2017-10-18 5 views
0

J'utilise liquibase pour configurer les tables de base de données pour le quartz selon Bert R recipe.Quartz, mise en place du schéma postgres, que devrait être JOB_DATA?

Quel est le type correct pour les colonnes JOB_DATA pour postgres?

L'erreur première est

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) 

L'erreur de base est en PostgreSQlDelegate.java essayant de lire la colonne JOB_DATA de la table qrtz_triggers. Cette colonne a juste \ x dedans.

J'ai changé le fichier liquibase ci-dessus pour changer le type de blob à BYTEA que je recevais une erreur

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

Le fichier de propriétés de quartz comprend les paramètres suivants pour le magasin d'emploi

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

Répondre

1

Le type de données de la colonne doit être bytea. Une façon simple de confirmer

  1. Aller à http://www.quartz-scheduler.org/downloads/
  2. télécharger votre version de quartz et de l'extraire
  3. aller docs/DBTables et chercher tables_postgres.sql

Vous y trouverez les données type de données_data comme bytea

Maintenant au deuxième problème que vous rencontrez après avoir modifié le type de données à bytea consultez ce lien pour voir s'il résout le problème? PostgreSQL - Quartz JDBC-JobStoreTX - getTriggersForJob - ArrayIndexOutOfBoundsException