[ 
https://issues.apache.org/jira/browse/KARAF-7107?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17320701#comment-17320701
 ] 

Jean-Baptiste Onofré commented on KARAF-7107:
---------------------------------------------

Thanks for the report. I will try to reproduce and "qualify" issue.

> 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)

Reply via email to