[
https://issues.apache.org/jira/browse/KARAF-7107?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Róbert Csákány updated KARAF-7107:
----------------------------------
Description:
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.
was:
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}
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.
> 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
> 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)