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

Jörg Mattes commented on DELTASPIKE-542:
----------------------------------------

Thanks.
By the way, another thing that pops up with JdbcJobstore: I'm using 
@RunWith(CdiTestRunner.class) for my tests. I've noticed before that the 
SchedulerExtension is active in that case, but it didn't bother me much 
(although, if I had high-frequent batch jobs that started running in the middle 
of my unit test, it would have).
Now that I switched to JdbcJobstore it certainly bothers me because the unit 
tests fail:

java.sql.SQLException: Could not retrieve datasource via JNDI url 
'java:/comp/env/ics' [...]
        at 
org.quartz.utils.JNDIConnectionProvider.getConnection(JNDIConnectionProvider.java:163)
        at 
org.quartz.utils.DBConnectionManager.getConnection(DBConnectionManager.java:108)
        at 
org.quartz.impl.jdbcjobstore.JobStoreSupport.getConnection(JobStoreSupport.java:775)
        
To solve it, I had to extend CdiTestRunner to set a system property, and then 
use a ClassDeactivator that deactivates SchedulerExtension.class if that 
property is present. It works for me, but maybe it would be generally advisable 
to disable SchedulerExtension when using CdiTestRunner?

Should I open another issue?

> Problem with JdbcJobstore
> -------------------------
>
>                 Key: DELTASPIKE-542
>                 URL: https://issues.apache.org/jira/browse/DELTASPIKE-542
>             Project: DeltaSpike
>          Issue Type: Bug
>          Components: Scheduler
>    Affects Versions: 0.6
>         Environment: Tomcat 7
>            Reporter: Jörg Mattes
>            Assignee: Gerhard Petracek
>            Priority: Minor
>             Fix For: 0.7
>
>         Attachments: DELTASPIKE-542_first_draft.patch
>
>
> The Deltaspike Scheduler runs fine if Quartz is configured with RAMJobStore. 
> But if Quartz runs with JdbcJobstore, QuartzScheduler.registerNewJob() fails 
> (stacktrace below). I think a simple check like
>             if (this.scheduler.getJobDetail(jobKey) != null) {
>                 return;
>             }
> would already help.
> Caused by: org.quartz.ObjectAlreadyExistsException: Unable to store Job : 
> 'DEFAULT.PastDueScanJob', because one already exists with this identification.
>       at 
> org.quartz.impl.jdbcjobstore.JobStoreSupport.storeJob(JobStoreSupport.java:1108)
>       at 
> org.quartz.impl.jdbcjobstore.JobStoreSupport$2.executeVoid(JobStoreSupport.java:1062)
>       at 
> org.quartz.impl.jdbcjobstore.JobStoreSupport$VoidTransactionCallback.execute(JobStoreSupport.java:3703)
>       at 
> org.quartz.impl.jdbcjobstore.JobStoreSupport$VoidTransactionCallback.execute(JobStoreSupport.java:3701)
>       at 
> org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInNonManagedTXLock(JobStoreSupport.java:3787)
>       at 
> org.quartz.impl.jdbcjobstore.JobStoreTX.executeInLock(JobStoreTX.java:93)
>       at 
> org.quartz.impl.jdbcjobstore.JobStoreSupport.storeJobAndTrigger(JobStoreSupport.java:1058)
>       at org.quartz.core.QuartzScheduler.scheduleJob(QuartzScheduler.java:886)
>       at org.quartz.impl.StdScheduler.scheduleJob(StdScheduler.java:249)
>       at 
> org.apache.deltaspike.scheduler.impl.QuartzScheduler.registerNewJob(QuartzScheduler.java:107)
>       at 
> org.apache.deltaspike.scheduler.impl.SchedulerExtension.scheduleJobs(SchedulerExtension.java:126)
>       at 
> org.apache.deltaspike.scheduler.impl.SchedulerExtension$Proxy$_$$_WeldClientProxy.scheduleJobs(SchedulerExtension$Proxy$_$$_WeldClientProxy.java)



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to