[ 
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}
 

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:

 

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

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 

 


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