IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Java Discussion :

Les JobStore de Quartz


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de reeda
    Formateur en informatique
    Inscrit en
    Août 2006
    Messages
    367
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 367
    Par défaut Les JobStore de Quartz
    salut,

    je commence à travailler avec les JobStore de Quartz, mais j'arrive pas à trouver un exemple complet qui explique bien le fonctionnement.

    j'ai fait les configurations suivantes :

    1- création de quartz.properties :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    #==========================================================================
    # Configure Main Scheduler Properties
    #==========================================================================
     
    org.quartz.scheduler.instanceName = TestQuartzScheduler
    #org.quartz.scheduler.instanceId = scheduler1
     
    #==========================================================================
    # Configure ThreadPool
    #==========================================================================
     
    org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
    org.quartz.threadPool.threadCount = 5
    org.quartz.threadPool.threadPriority = 4 
     
    #==========================================================================
    # Configure JobStore
    #==========================================================================
     
    org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
    org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
    org.quartz.jobStore.useProperties = false
    org.quartz.jobStore.dataSource = QRTZ_DS
    org.quartz.jobStore.tablePrefix = QRTZ_
    org.quartz.jobStore.misfireThreshold = 60000
    org.quartz.jobStore.isClustered = false
     
    #==========================================================================
    # Configure Datasources
    #==========================================================================
     
    org.quartz.dataSource.myDS.driver = org.gjt.mm.mysql.Driver
    org.quartz.dataSource.myDS.URL = jdbc:mysql://localhost:3306/quartz
    org.quartz.dataSource.myDS.user = root
    org.quartz.dataSource.myDS.password = root
    org.quartz.dataSource.myDS.maxConnections = 5
    org.quartz.dataSource.myDS.validationQuery = select lock_name from qrtz_locks where lock_name = 'TRIGGER_ACCESS';
    2-j'ai ajouté les JARs :
    • commons-collections.jar
    • commons-dbcp-1.1.jar
    • commons-pool-1.1.jar
    • mm.mysql-2.0.2-bin.jar


    3-j'ai créé les tables dans la BD Mysql
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
     
     
    DROP TABLE IF EXISTS QRTZ_JOB_LISTENERS;
    DROP TABLE IF EXISTS QRTZ_TRIGGER_LISTENERS;
    DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS;
    DROP TABLE IF EXISTS QRTZ_SIMPLE_TRIGGERS;
    DROP TABLE IF EXISTS QRTZ_CRON_TRIGGERS;
    DROP TABLE IF EXISTS QRTZ_TRIGGERS;
    DROP TABLE IF EXISTS QRTZ_JOB_DETAILS;
    DROP TABLE IF EXISTS QRTZ_CALENDARS;
     
    CREATE TABLE QRTZ_JOB_DETAILS
      (
            JOB_NAME  VARCHAR(80) NOT NULL,
            JOB_GROUP VARCHAR(80) NOT NULL,
            JOB_CLASS_NAME   VARCHAR(128) NOT NULL,
            IS_DURABLE VARCHAR(1) NOT NULL,
            IS_STATEFUL VARCHAR(1) NOT NULL,
            REQUESTS_RECOVERY VARCHAR(1) NOT NULL,
            JOB_DATA BLOB NULL,
            PRIMARY KEY (JOB_NAME,JOB_GROUP)
    );
     
    CREATE TABLE QRTZ_JOB_LISTENERS
      (
        JOB_NAME  VARCHAR(80) NOT NULL,
        JOB_GROUP VARCHAR(80) NOT NULL,
        JOB_LISTENER VARCHAR(80) NOT NULL,
        PRIMARY KEY (JOB_NAME,JOB_GROUP,JOB_LISTENER),
        FOREIGN KEY (JOB_NAME,JOB_GROUP)
            REFERENCES QRTZ_JOB_DETAILS(JOB_NAME,JOB_GROUP)
    );
     
    CREATE TABLE QRTZ_TRIGGERS
      (
        TRIGGER_NAME VARCHAR(80) NOT NULL,
        TRIGGER_GROUP VARCHAR(80) NOT NULL,
        JOB_NAME  VARCHAR(80) NOT NULL,
        JOB_GROUP VARCHAR(80) NOT NULL,
        NEXT_FIRE_TIME BIGINT(13) NULL,
        TRIGGER_STATE VARCHAR(16) NOT NULL,
        TRIGGER_TYPE VARCHAR(8) NOT NULL,
        START_TIME BIGINT(13) NOT NULL,
        END_TIME BIGINT(13) NULL,
        CALENDAR_NAME VARCHAR(80) NULL,
        MISFIRE_INSTR SMALLINT(2) NULL,
        PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),
        FOREIGN KEY (JOB_NAME,JOB_GROUP)
            REFERENCES QRTZ_JOB_DETAILS(JOB_NAME,JOB_GROUP)
    );
     
    CREATE TABLE QRTZ_SIMPLE_TRIGGERS
      (
        TRIGGER_NAME VARCHAR(80) NOT NULL,
        TRIGGER_GROUP VARCHAR(80) NOT NULL,
        REPEAT_COUNT BIGINT(7) NOT NULL,
        REPEAT_INTERVAL BIGINT(12) NOT NULL,
        TIMES_TRIGGERED BIGINT(7) NOT NULL,
        PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),
        FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)
            REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)
    );
     
    CREATE TABLE QRTZ_CRON_TRIGGERS
      (
        TRIGGER_NAME VARCHAR(80) NOT NULL,
        TRIGGER_GROUP VARCHAR(80) NOT NULL,
        CRON_EXPRESSION VARCHAR(80) NOT NULL,
        PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),
        FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)
            REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)
    );
     
    CREATE TABLE QRTZ_TRIGGER_LISTENERS
      (
        TRIGGER_NAME  VARCHAR(80) NOT NULL,
        TRIGGER_GROUP VARCHAR(80) NOT NULL,
        TRIGGER_LISTENER VARCHAR(80) NOT NULL,
        PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_LISTENER),
        FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)
            REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)
    );
     
    CREATE TABLE QRTZ_FIRED_TRIGGERS
      (
        ENTRY_ID VARCHAR(95) NOT NULL,
        TRIGGER_NAME VARCHAR(80) NOT NULL,
        TRIGGER_GROUP VARCHAR(80) NOT NULL,
        INSTANCE_NAME VARCHAR(80) NOT NULL,
        FIRED_TIME BIGINT(13) NOT NULL,
        TRIGGER_STATE VARCHAR(16) NOT NULL,
        PRIMARY KEY (ENTRY_ID)
    );
     
    CREATE TABLE QRTZ_CALENDARS
      (
        CALENDAR_NAME  VARCHAR(80) NOT NULL,
        CALENDAR BLOB NOT NULL,
        PRIMARY KEY (CALENDAR_NAME)
    );
     
    commit;
    4- quand j'execute un simple exemple qui marche sans les JobStore, il ne marche pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        public static void main(String[] args){
        	try{
        		SimpleExample sp=new SimpleExample();		
        	}
        	catch(SchedulerException se){
        		System.out.println("WALO !!");
        	}
        }
    et il me retourne l'erreur suivante :
    org.quartz.SchedulerConfigException: Failure occured during job recovery. [See nested exception: org.quartz.JobPersistenceException: Failed to obtain DB connection from data source 'QRTZ_DS': java.sql.SQLException: There is no DataSource named 'QRTZ_DS' [See nested exception: java.sql.SQLException: There is no DataSource named 'QRTZ_DS']]

    je ne sais pas quoi faire

    merci d'avance pour votre aide
    Bien cordialement

  2. #2
    Membre éclairé Avatar de reeda
    Formateur en informatique
    Inscrit en
    Août 2006
    Messages
    367
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 367
    Par défaut
    Bonjour,

    hamdoulilah j'ai pu résoudre le problème,
    au niveau du fichier de propriétés, il fallait spécifier les parametres de source de données en utilisant dans propre nom,

    le problème c'est j'ai suivi un tutoriel de developpez sur Quartz, et il s'est avéré qu'il ya une erreur, voila comment devrai être le fichier Quartz.properties :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    #==========================================================================
    # Configure Main Scheduler Properties
    #==========================================================================
     
    #org.quartz.scheduler.instanceName = TestQuartzScheduler
    #org.quartz.scheduler.instanceId = scheduler1
     
    #==========================================================================
    # Configure ThreadPool
    #==========================================================================
     
    org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
    org.quartz.threadPool.threadCount = 5
    org.quartz.threadPool.threadPriority = 4 
     
    #==========================================================================
    # Configure JobStore
    #==========================================================================
     
    org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
    org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
    org.quartz.jobStore.useProperties = false
    org.quartz.jobStore.dataSource = QRTZ_DS
    org.quartz.jobStore.tablePrefix = QRTZ_
    org.quartz.jobStore.misfireThreshold = 60000
    org.quartz.jobStore.isClustered = false
     
    #==========================================================================
    # Configure Datasources
    #==========================================================================
     
    org.quartz.dataSource.QRTZ_DS.driver = org.gjt.mm.mysql.Driver
    org.quartz.dataSource.QRTZ_DS.URL = jdbc:mysql://localhost/quartz
    org.quartz.dataSource.QRTZ_DS.user = root
    org.quartz.dataSource.QRTZ_DS.password = root
    org.quartz.dataSource.QRTZ_DS.maxConnections = 5
    org.quartz.dataSource.QRTZ_DS.validationQuery = select lock_name from qrtz_locks where lock_name = 'TRIGGER_ACCESS';

    Bien cordialement
    Mohammed Reda

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. spring quartz cron tous les 5 mn
    Par austin P. dans le forum Spring
    Réponses: 3
    Dernier message: 10/04/2013, 23h18
  2. [Quartz] problème avec les CronTrigger
    Par FrenchFrogger dans le forum Général Java
    Réponses: 1
    Dernier message: 24/04/2009, 17h07
  3. [Quartz] Cron tout les jours à 5h
    Par K-Kaï dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 17/01/2008, 15h22
  4. [Quartz] Quartz 2D le moyen le plus simple pour les images
    Par NiamorH dans le forum Développement OS X
    Réponses: 6
    Dernier message: 02/05/2007, 17h34
  5. [quartz] peut on créer les tables automatiquement ?
    Par deadstar62 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 26/04/2007, 14h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo