DOCUMENTAZIONE Esempio con Quartz Autore: Ivan Data: lunedì 10 marzo 2008 L’esempio provato si trova all’indirizzo: http://www-128.ibm.com/developerworks/java/library/j-quartz/?ca=dgr-jw17JavaQuartZ#download E’ stato creato un progetto in Eclipse con i cinque file dell’esempio. Sono state scaricate le librerie di Quartz all’indirizzo: http://www.opensymphony.com/quartz/download.action. L’ultima versione è la 1.6.0. L’esempio di funzionamento è stato svolto in locale, con un server-web Apache installato sulla macchina e con un database MySql. Tutto questo è stato ottenuto attraverso l’installazione di EasyPhp. Eseguire lo script appropriato all’interno della cartella “docs\dbTables” in base al database usato. Nel nostro caso è stato eseguito lo script “tables_mysql.sql” su phpMyAdmin nell’amministrazione di EasyPhp. Lo script creerà tutte le tabelle necessarie alla schedulazione dei job. Questo script ci dice quale driver utilizzare per far funzionare la connessione al db. In realtà io ho trovato un altro driver. Nel nostro esempio è stato scaricato e installato il driver “mysql-connector-java-5.1.6-bin.jar” dal sito http://dev.mysql.com/downloads/connector/j/5.1.html. Questo jar va inserito nella cartella del progetto e linkato al progetto come libreria attraverso le properties. Bisogna aggiungere al progetto anche le librerie (.jar) che si trovano nelle cartelle “quartz1.6.0\lib\core”, “quartz-1.6.0\lib\optional” e “quartz-1.6.0\lib\build”. NOTA: E’ stata aggiunta anche la libreria spJMS presente in Nemesi2007, perché altrimenti da 2 warning. Probabilmente perché quella già presente in quartz è meno aggiornata. In realtà dai warning non sembra quello il problema…però bo… log4j:WARN No appenders could be found for logger (org.quartz.simpl.SimpleThreadPool). log4j:WARN Please initialize the log4j system properly. Bisogna modificare il file “quartz.properties” settando i parametri per la connessione al db MySql nel nostro caso. Parte modificata del file quartz.properties # Define the datasource to use org.quartz.dataSource.qzDS.driver = org.gjt.mm.mysql.Driver #mm.mysql-2.0.7-bin.jar org.quartz.dataSource.qzDS.URL = jdbc:mysql://127.0.0.1:3306/provaQuartz org.quartz.dataSource.qzDS.user = root #org.quartz.dataSource.qzDS.password = org.quartz.dataSource.qzDS.maxConnections = 30 NOTA: E’ stata commentata la riga della password perché no c’è nessuna password per accedere al database. Nell’esempio ci sono due TriggerRunner che eseguono ciascuno lo stesso job ma con tempistiche diverse. Il SimpleTriggerRunner esegue il SimpleQuartzJob ogni 10 secondi per 100 volte, mentre il CronTriggerRunner esegue il SimpleQuartzJob (con un altro identificativo) ogni 5 secondi partendo dal secondo “0” qualunque giorno della settimana.