[
https://issues.apache.org/jira/browse/KARAF-7107?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jean-Baptiste Onofré reassigned KARAF-7107:
-------------------------------------------
Assignee: Jean-Baptiste Onofré
> JDBC Persisted scheduler log errors after restart when the Job implemented as
> Runnable
> --------------------------------------------------------------------------------------
>
> Key: KARAF-7107
> URL: https://issues.apache.org/jira/browse/KARAF-7107
> Project: Karaf
> Issue Type: Bug
> Components: karaf
> Affects Versions: 4.2.9
> Reporter: Róbert Csákány
> Assignee: Jean-Baptiste Onofré
> Priority: Major
>
> I've made some JDBC persisted Quartz scheduler config. My problem is that
> after restart the scheduler cannot deserialize JobDetails, and log the
> following error message:
> We are using Runnable interface and whiteboiard patter to register scheduled
> services. We would like to use multiple nodes and there is jobs which cannot
> run on parallel nodes. So I decided to persist Jobs in JDBC DataSource and it
> have been set as NonParallel.
> The first run is okay. After karaf restart all of the JobDetails shown error
> messages:
> 22:34:51.795 *ERROR* [Judo_Worker-4] Scheduled job
> org.apache.karaf.scheduler.core.NonParallelQuartzJobExecutor@24569822 is
> neither a job nor a runnable
> I checked the code and karaf creating in QuartzScheduler.java:
> {code:java}
> /**
> * Create the job detail.
> */
> private JobDetail createJobDetail(final String name,
> final JobDataMap jobDataMap,
> final boolean concurrent) {
> return JobBuilder.newJob((concurrent ? QuartzJobExecutor.class :
> NonParallelQuartzJobExecutor.class))
> .withIdentity(name)
> .usingJobData(jobDataMap)
> .build();
> } {code}
> And it is saved to Database as JobDetail.
> The qrtz_job_details table contains:
> {code:java}
> Judo BejelentesekDetailProcessor.518 DEFAULT
> org.apache.karaf.scheduler.core.NonParallelQuartzJobExecutor false true
> false false
> Judo EmailSendingProcessor.519 DEFAULT
> org.apache.karaf.scheduler.core.NonParallelQuartzJobExecutor false true
> false false
> Judo SynchronizeNewBejelentesek.520 DEFAULT
> org.apache.karaf.scheduler.core.NonParallelQuartzJobExecutor false true
> false false
> Judo SynchronizeNewBejelentesek.521 DEFAULT
> org.apache.karaf.scheduler.core.NonParallelQuartzJobExecutor false true
> false false
> Judo SynchronizeUnprocessedErtesitesek.522 DEFAULT
> org.apache.karaf.scheduler.core.NonParallelQuartzJobExecutor false true
> false false
> Judo BejelentesekDetailProcessor.516 DEFAULT
> org.apache.karaf.scheduler.core.NonParallelQuartzJobExecutor false true
> false false
> Judo EmailSendingProcessor.517 DEFAULT
> org.apache.karaf.scheduler.core.NonParallelQuartzJobExecutor false true
> false false
> Judo SynchronizeNewBejelentesek.518 DEFAULT
> org.apache.karaf.scheduler.core.NonParallelQuartzJobExecutor false true
> false false
> Judo SynchronizeNewBejelentesek.519 DEFAULT
> org.apache.karaf.scheduler.core.NonParallelQuartzJobExecutor false true
> false false
> Judo SynchronizeUnprocessedErtesitesek.520 DEFAULT
> org.apache.karaf.scheduler.core.NonParallelQuartzJobExecutor false true
> false false
> {code}
> Configurations:
> {code:java}
> PID = org.apache.karaf.scheduler.quartz
> BundleLocation = ?
> .__createdBy =
> hu.kozut.e_ugyfelszolgalat.synchronizer.scheduler.RdbmsBasedSchedulerActivator
> org.quartz.dataSource.scheduler.jndiURL =
> osgi:service/javax.sql.DataSource/(managed.datasource.name=e_ugyfelszolgalat)
> org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
> org.quartz.jobStore.dataSource = scheduler
> org.quartz.jobStore.driverDelegateClass =
> org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
> org.quartz.jobStore.isClustered = true
> org.quartz.scheduler.instanceId = AUTO
> org.quartz.scheduler.instanceName = Judo
> org.quartz.scheduler.jmx.export = true
> org.quartz.scheduler.rmi.export = false
> org.quartz.scheduler.rmi.proxy = false
> org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
> org.quartz.threadPool.threadCount = 4
> org.quartz.threadPool.threadPriority = 5
> service.pid = org.apache.karaf.scheduler.quartz
> PID =
> hu.kozut.e_ugyfelszolgalat.synchronizer.job.BejelentesekDetailsProcessorJob
> BundleLocation = Unbound
> __osgi_templated_checksum =
> 1248829273739272171452486251334728918540454078316
> __osgi_templated_config_name =
> hu.kozut.e_ugyfelszolgalat.synchronizer.job.BejelentesekDetailsProcessorJob
> __osgi_templated_created_by = configset.acdc600e-f792-4424-a176-5cc47ce21650
> scheduler.concurrent = false
> scheduler.name = BejelentesekDetailProcessor
> scheduler.period = 10
> scheduler.times = -1
> service.pid =
> hu.kozut.e_ugyfelszolgalat.synchronizer.job.BejelentesekDetailsProcessorJob
> PID = hu.kozut.e_ugyfelszolgalat.synchronizer.job.EmailSendingProcessorJob
> BundleLocation = Unbound
> __osgi_templated_checksum = 686611006004284506808487604736328095268865193234
> __osgi_templated_config_name =
> hu.kozut.e_ugyfelszolgalat.synchronizer.job.EmailSendingProcessorJob
> __osgi_templated_created_by = configset.acdc600e-f792-4424-a176-5cc47ce21650
> scheduler.concurrent = false
> scheduler.name = EmailSendingProcessor
> scheduler.period = 60
> scheduler.times = -1
> service.pid =
> hu.kozut.e_ugyfelszolgalat.synchronizer.job.EmailSendingProcessorJob
> PID =
> hu.kozut.e_ugyfelszolgalat.synchronizer.job.SynchronizeExistingBejelentesekDetailsJob
> BundleLocation = Unbound
> __osgi_templated_checksum = 603454943405932697744922426812173262117830457407
> __osgi_templated_config_name =
> hu.kozut.e_ugyfelszolgalat.synchronizer.job.SynchronizeExistingBejelentesekDetailsJob
> __osgi_templated_created_by = configset.acdc600e-f792-4424-a176-5cc47ce21650
> pagesToSynchronize = 40
> scheduler.concurrent = false
> scheduler.name = SynchronizeNewBejelentesek
> scheduler.period = 600
> scheduler.times = -1
> service.pid =
> hu.kozut.e_ugyfelszolgalat.synchronizer.job.SynchronizeExistingBejelentesekDetailsJob
> PID =
> hu.kozut.e_ugyfelszolgalat.synchronizer.job.SynchronizeNewBejelentesekJob
> BundleLocation = Unbound
> // = scheduler.immediate=true
> __osgi_templated_checksum = 419815457051716921249617125515620429379727210664
> __osgi_templated_config_name =
> hu.kozut.e_ugyfelszolgalat.synchronizer.job.SynchronizeNewBejelentesekJob
> __osgi_templated_created_by = configset.acdc600e-f792-4424-a176-5cc47ce21650
> pagesToSynchronize = 40
> scheduler.concurrent = false
> scheduler.name = SynchronizeNewBejelentesek
> scheduler.period = 60
> scheduler.times = -1
> service.pid =
> hu.kozut.e_ugyfelszolgalat.synchronizer.job.SynchronizeNewBejelentesekJob
> PID =
> hu.kozut.e_ugyfelszolgalat.synchronizer.job.SynchronizeUnprocessedErtesitesekJob
> BundleLocation = Unbound
> __osgi_templated_checksum =
> 1202364653297725275903508563451782287792274883298
> __osgi_templated_config_name =
> hu.kozut.e_ugyfelszolgalat.synchronizer.job.SynchronizeUnprocessedErtesitesekJob
> __osgi_templated_created_by = configset.acdc600e-f792-4424-a176-5cc47ce21650
> scheduler.concurrent = false
> scheduler.immediate = false
> scheduler.name = SynchronizeUnprocessedErtesitesek
> scheduler.period = 60
> scheduler.times = -1
> service.pid =
> hu.kozut.e_ugyfelszolgalat.synchronizer.job.SynchronizeUnprocessedErtesitesekJob
> {code}
>
>
> And we are using Runnable as scheduled item. The other problem is the karaf
> Job interface is also not extending quartz Job or java Runnable interface, so
> the problem is same. I've checked the whiteboard tracker and it's only
> tracking for karaf Job and java Runnable.
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)