Hi Romain!
Attached application.properties and tomee.xml used for testing timer
persistence.
We did not configure org.quartz.scheduler.classLoadHelper.class.
The simple example is a war file.
Should I try openejb.quartz.use-TCCL=true with an ear file too?
Best regards,
Thomas
-----Original Message-----
From: Romain Manni-Bucau [mailto:[email protected]]
Sent: Dienstag, 21. Mai 2013 11:14
To: [email protected]
Subject: Re: Timer service - different behaviour if external quartz tables are
used or not
Did you configure org.quartz.scheduler.classLoadHelper.class? If not you should
be ok.
Which config do you use?
Do you deploy an ear?
*Romain Manni-Bucau*
*Twitter: @rmannibucau <https://twitter.com/rmannibucau>*
*Blog: **http://rmannibucau.wordpress.com/*<http://rmannibucau.wordpress.com/>
*LinkedIn: **http://fr.linkedin.com/in/rmannibucau*
*Github: https://github.com/rmannibucau*
2013/5/21 Thomas Schuler <[email protected]>
> Hi Romain!
>
> I tried both adding openejb.quartz.use-TCCL=true to
> application.properties or system.properties as you suggested.
> But I still got the same behavior as described before.
>
> Best regards,
> Thomas
>
> -----Original Message-----
> From: Romain Manni-Bucau [mailto:[email protected]]
> Sent: Dienstag, 21. Mai 2013 10:27
> To: [email protected]
> Cc: [email protected]
> Subject: Re: Timer service - different behaviour if external quartz
> tables are used or not
>
> hi
>
> did you try adding openejb.quartz.use-TCCL=true to either
> application.properties or system.properties?
>
> *Romain Manni-Bucau*
> *Twitter: @rmannibucau <https://twitter.com/rmannibucau>*
> *Blog: **http://rmannibucau.wordpress.com/*<
> http://rmannibucau.wordpress.com/>
> *LinkedIn: **http://fr.linkedin.com/in/rmannibucau*
> *Github: https://github.com/rmannibucau*
>
>
>
> 2013/5/21 tschuler <[email protected]>
>
> > Hi!
> >
> > We want to use scheduled beans (TomEE 1.6.0 snapshot - about two
> > weeks
> > old) and add an own Serializable object (TimerData) while timer
> creation, e.g.
> > timerService.createTimer(Date, TimerData).
> >
> > We observed a different behaviour if persistence for timers is used
> > or
> not.
> >
> > -----
> >
> > No timer persistence (as configured for an out of the box TomEE):
> > The scheduled bean is triggered, the TimerData object is available
> > (timer.getInfo())
> >
> > -----
> >
> > Timer persistence is activated and an external database is used:
> > The scheduled bean is not triggered, the following exception occurs:
> >
> > SCHWERWIEGEND: An error occurred while scanning for the next
> > triggers to fire.
> > org.quartz.JobPersistenceException: Couldn't acquire next trigger:
> > Couldn't retrieve trigger: java.lang.ClassNotFoundException:
> > timerPersisted.server.TimerData [See nested exception:
> > org.quartz.JobPersistenceException: Couldn't retrieve trigger:
> > java.lang.ClassNotFoundException: timerPersisted.server.TimerData
> > [See nested exception: java.io.IOException:
> > java.lang.ClassNotFoundException:
> > timerPersisted.server.TimerData]]
> > at
> >
> >
> org.quartz.impl.jdbcjobstore.JobStoreSupport.acquireNextTrigger(JobSto
> reSupport.java:2840)
> > [...]
> > Caused by: org.quartz.JobPersistenceException: Couldn't retrieve trigger:
> > java.lang.ClassNotFoundException: timerPersisted.server.TimerData
> > [See nested exception: java.io.IOException:
> > java.lang.ClassNotFoundException:
> > timerPersisted.server.TimerData]
> > at
> >
> >
> org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveTrigger(JobStoreS
> upport.java:1524)
> > [...]
> > Caused by: java.io.IOException: java.lang.ClassNotFoundException:
> > timerPersisted.server.TimerData
> > at
> > org.apache.openejb.core.timer.TimerData.readObject(TimerData.java:134)
> > [...]
> > Caused by: java.lang.ClassNotFoundException:
> > timerPersisted.server.TimerData
> > at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
> > [...]
> >
> > If the TimerData object is added to a jar file and the jar file is
> > inserted to the TomEE\lib directory:
> > The scheduled bean is triggered as expected.
> >
> > -----
> >
> > Why must the TimerData object be available in the global TomEE
> > classpath in case of timer persistence?
> > Is there a way to get it running without putting "application-specific"
> > classes to the global TomEE lib folder?
> >
> > Best regards,
> > Thomas
> >
> >
> >
> > --
> > View this message in context:
> > http://openejb.979440.n4.nabble.com/Timer-service-different-behaviou
> > r- if-external-quartz-tables-are-used-or-not-tp4663101.html
> > Sent from the OpenEJB Dev mailing list archive at Nabble.com.
> >
>
<Resource id="myDatabaseNoTX" type="DataSource">
JdbcDriver com.microsoft.sqlserver.jdbc.SQLServerDriver
JdbcUrl jdbc:sqlserver://localhost:1433;DatabaseName=tomee
UserName tomee
Password tomee
JtaManaged true
</Resource>
<Resource id="myDatabase" type="DataSource">
JdbcDriver com.microsoft.sqlserver.jdbc.SQLServerDriver
JdbcUrl jdbc:sqlserver://localhost:1433;DatabaseName=tomee
UserName tomee
Password tomee
JtaManaged false
</Resource>