Author: echatellier Date: 2014-06-18 15:00:49 +0200 (Wed, 18 Jun 2014) New Revision: 216 Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/216 Log: Set quartz thread count to 1 to prevent shares objects Modified: trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/FaxToMailApplicationListener.java trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/EDIManagementJob.java trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/MailFilterJob.java trunk/faxtomail-ui-web/src/main/resources/quartz.properties Modified: trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/FaxToMailApplicationListener.java =================================================================== --- trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/FaxToMailApplicationListener.java 2014-06-18 12:57:41 UTC (rev 215) +++ trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/FaxToMailApplicationListener.java 2014-06-18 13:00:49 UTC (rev 216) @@ -44,7 +44,6 @@ import com.franciaflex.faxtomail.FaxToMailApplicationContext; import com.franciaflex.faxtomail.persistence.entities.FaxToMailTopiaPersistenceContext; import com.franciaflex.faxtomail.services.FaxToMailServiceContext; -import com.franciaflex.faxtomail.services.service.InitFaxToMailService; public class FaxToMailApplicationListener implements ServletContextListener { @@ -76,8 +75,6 @@ FaxToMailTopiaPersistenceContext persistenceContext = applicationContext.newPersistenceContext(); FaxToMailServiceContext serviceContext = applicationContext.newServiceContext(persistenceContext); - serviceContext.newService(InitFaxToMailService.class).init(); - data.put(MailFilterJob.SERVICE_CONTEXT, serviceContext); JobDetail mailFilteringJob = JobBuilder.newJob(MailFilterJob.class) @@ -91,7 +88,9 @@ .build(); try { - + + Scheduler scheduler = new StdSchedulerFactory().getScheduler(); + // schedule mail job (toutes les 5 minutes) Trigger trigger = TriggerBuilder .newTrigger() @@ -99,8 +98,6 @@ .withSchedule(CronScheduleBuilder.cronSchedule("0 */5 * * * ?")) .build(); - Scheduler scheduler = new StdSchedulerFactory().getScheduler(); - scheduler.start(); scheduler.scheduleJob(mailFilteringJob, trigger); // schedule EDI job (toutes les 5 minutes) @@ -109,11 +106,10 @@ .withIdentity("ediManagement", "ediManagementTrigger") .withSchedule(CronScheduleBuilder.cronSchedule("0 */5 * * * ?")) .build(); - - scheduler = new StdSchedulerFactory().getScheduler(); - scheduler.start(); + scheduler.scheduleJob(ediManagementJob, trigger); + scheduler.start(); log.debug("schedulers launched"); } catch (SchedulerException e) { Modified: trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/EDIManagementJob.java =================================================================== --- trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/EDIManagementJob.java 2014-06-18 12:57:41 UTC (rev 215) +++ trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/EDIManagementJob.java 2014-06-18 13:00:49 UTC (rev 216) @@ -45,6 +45,10 @@ public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { serviceContext = getServiceContext(jobExecutionContext); + if (log.isDebugEnabled()) { + log.debug("Running EDIManagementJob at " + serviceContext.getNow()); + } + EmailService emailService = serviceContext.newService(EmailService.class); emailService.transmitPendingDemandsToEdi(); Modified: trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/MailFilterJob.java =================================================================== --- trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/MailFilterJob.java 2014-06-18 12:57:41 UTC (rev 215) +++ trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/MailFilterJob.java 2014-06-18 13:00:49 UTC (rev 216) @@ -50,7 +50,6 @@ import javax.mail.Part; import javax.mail.Session; import javax.mail.Store; -import javax.mail.URLName; import javax.mail.internet.ContentType; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; @@ -75,7 +74,6 @@ import com.franciaflex.faxtomail.persistence.entities.Email; import com.franciaflex.faxtomail.persistence.entities.EmailAccount; import com.franciaflex.faxtomail.persistence.entities.EmailImpl; -import com.franciaflex.faxtomail.persistence.entities.EmailProtocol; import com.franciaflex.faxtomail.persistence.entities.MailFolder; import com.franciaflex.faxtomail.services.DecoratorService; import com.franciaflex.faxtomail.services.FaxToMailServiceContext; @@ -93,18 +91,19 @@ protected FaxToMailServiceContext serviceContext; - //TODO kmorin 20140414 handle imap protocol @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { serviceContext = getServiceContext(jobExecutionContext); + + if (log.isDebugEnabled()) { + log.debug("Running MailFilterJob at " + serviceContext.getNow()); + } ConfigurationService configurationService = serviceContext.newService(ConfigurationService.class); Collection<EmailAccount> emailAccounts = configurationService.getEmailAccounts(); for (EmailAccount account : emailAccounts) { - //if (account.getProtocol() == EmailProtocol.POP3) { - checkEmails(account); - //} + checkEmails(account); } } Modified: trunk/faxtomail-ui-web/src/main/resources/quartz.properties =================================================================== --- trunk/faxtomail-ui-web/src/main/resources/quartz.properties 2014-06-18 12:57:41 UTC (rev 215) +++ trunk/faxtomail-ui-web/src/main/resources/quartz.properties 2014-06-18 13:00:49 UTC (rev 216) @@ -22,5 +22,9 @@ # #L% ### org.quartz.scheduler.instanceName = FaxToMailScheduler -org.quartz.threadPool.threadCount = 3 + +# Set job count to 1 to avoid two job to run at the same time and avoid +# org.hibernate.HibernateException: Found shared references to a collection: com.franciaflex.faxtomail.persistence.entities.MailFolderImpl.replyAddresses +org.quartz.threadPool.threadCount = 1 + org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore \ No newline at end of file