You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomee.apache.org by tschuler <th...@opentext.com> on 2013/05/21 10:23:04 UTC
Timer service - different behaviour if external quartz tables are
used or not
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(JobStoreSupport.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(JobStoreSupport.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-behaviour-if-external-quartz-tables-are-used-or-not-tp4663101.html
Sent from the OpenEJB Dev mailing list archive at Nabble.com.
Re: Timer service - different behaviour if external quartz tables are
used or not
Posted by Romain Manni-Bucau <rm...@gmail.com>.
https://issues.apache.org/jira/browse/TOMEE-944
will work only for the StdJDBCDelegate class (not children) but works for
MySQL which is quite common.
Side note: you still need to use absolute names in tomee for its
datasources (openejb:Resource/<name>)
*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 <Th...@opentext.com>
> Hi Romain!
>
> Thanks for the explanation.
> Using a HashMap instead of the TimerData object is less comfortable but it
> works (for us).
>
> Best regards,
> Thomas
>
> -----Original Message-----
> From: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
> Sent: Dienstag, 21. Mai 2013 15:35
> To: dev@tomee.apache.org
> Subject: Re: Timer service - different behaviour if external quartz tables
> are used or not
>
> Remember this issue i think
>
> If that's what i think it is a limitation of quartz itself in
> org.quartz.impl.jdbcjobstore.StdJDBCDelegate#getObjectFromBlob
>
> it uses a ObjectInputStream which is not app classloader aware (weird
> since quartz itself has the info through its ClassLoadHelper).
>
> You can hack the org.quartz.impl.jdbcjobstore.DriverDelegate to workaround
> it. I decided to not hack it since that's a quartz issue for me.
>
> *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 <Th...@opentext.com>
>
> > Hi Romain!
> >
> > As I did for a different topic before (Use external database for
> > persistent timer service), I can offer you an eclipse project:
> > Attached the packed eclipse project.
> > As only mails within a size of 1 MB are allowed: please add
> > openejb-client-4.5.0.jar to the lib/clients folder and
> > javaee-api-6.0-4-tomcat.jar to the lib folder.
> >
> > Please check README.txt how to adapt to your local system.
> >
> > It includes a simple example "Timer" demonstrating a scheduled bean
> > without persistence.
> >
> > The example "Timer (persisted)" demonstrates a persisted scheduled
> > bean - the programmatic timer includes the TimerData object.
> >
> > Best regards,
> > Thomas
> >
> > -----Original Message-----
> > From: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
> > Sent: Dienstag, 21. Mai 2013 11:28
> > To: dev@tomee.apache.org
> > Subject: Re: Timer service - different behaviour if external quartz
> > tables are used or not
> >
> > No,
> >
> > should be fine, if you can share a failiing project (maven project on
> > github runnable with mvn tomee:run is the best you can do to ease our
> > work ;).
> >
> >
> > *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 <Th...@opentext.com>
> >
> > > 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:rmannibucau@gmail.com]
> > > Sent: Dienstag, 21. Mai 2013 11:14
> > > To: dev@tomee.apache.org
> > > 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 <Th...@opentext.com>
> > >
> > > > 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:rmannibucau@gmail.com]
> > > > Sent: Dienstag, 21. Mai 2013 10:27
> > > > To: dev@tomee.apache.org
> > > > Cc: dev@openejb.apache.org
> > > > 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 <th...@opentext.com>
> > > >
> > > > > 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(Jo
> > > > bS
> > > > to
> > > > 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(JobSt
> > > > or
> > > > eS
> > > > 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-beha
> > > > > vi
> > > > > ou
> > > > > r- if-external-quartz-tables-are-used-or-not-tp4663101.html
> > > > > Sent from the OpenEJB Dev mailing list archive at Nabble.com.
> > > > >
> > > >
> > >
> >
>
RE: Timer service - different behaviour if external quartz tables
are used or not
Posted by Thomas Schuler <Th...@opentext.com>.
Hi Romain!
Thanks for the explanation.
Using a HashMap instead of the TimerData object is less comfortable but it works (for us).
Best regards,
Thomas
-----Original Message-----
From: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
Sent: Dienstag, 21. Mai 2013 15:35
To: dev@tomee.apache.org
Subject: Re: Timer service - different behaviour if external quartz tables are used or not
Remember this issue i think
If that's what i think it is a limitation of quartz itself in org.quartz.impl.jdbcjobstore.StdJDBCDelegate#getObjectFromBlob
it uses a ObjectInputStream which is not app classloader aware (weird since quartz itself has the info through its ClassLoadHelper).
You can hack the org.quartz.impl.jdbcjobstore.DriverDelegate to workaround it. I decided to not hack it since that's a quartz issue for me.
*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 <Th...@opentext.com>
> Hi Romain!
>
> As I did for a different topic before (Use external database for
> persistent timer service), I can offer you an eclipse project:
> Attached the packed eclipse project.
> As only mails within a size of 1 MB are allowed: please add
> openejb-client-4.5.0.jar to the lib/clients folder and
> javaee-api-6.0-4-tomcat.jar to the lib folder.
>
> Please check README.txt how to adapt to your local system.
>
> It includes a simple example "Timer" demonstrating a scheduled bean
> without persistence.
>
> The example "Timer (persisted)" demonstrates a persisted scheduled
> bean - the programmatic timer includes the TimerData object.
>
> Best regards,
> Thomas
>
> -----Original Message-----
> From: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
> Sent: Dienstag, 21. Mai 2013 11:28
> To: dev@tomee.apache.org
> Subject: Re: Timer service - different behaviour if external quartz
> tables are used or not
>
> No,
>
> should be fine, if you can share a failiing project (maven project on
> github runnable with mvn tomee:run is the best you can do to ease our
> work ;).
>
>
> *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 <Th...@opentext.com>
>
> > 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:rmannibucau@gmail.com]
> > Sent: Dienstag, 21. Mai 2013 11:14
> > To: dev@tomee.apache.org
> > 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 <Th...@opentext.com>
> >
> > > 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:rmannibucau@gmail.com]
> > > Sent: Dienstag, 21. Mai 2013 10:27
> > > To: dev@tomee.apache.org
> > > Cc: dev@openejb.apache.org
> > > 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 <th...@opentext.com>
> > >
> > > > 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(Jo
> > > bS
> > > to
> > > 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(JobSt
> > > or
> > > eS
> > > 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-beha
> > > > vi
> > > > ou
> > > > r- if-external-quartz-tables-are-used-or-not-tp4663101.html
> > > > Sent from the OpenEJB Dev mailing list archive at Nabble.com.
> > > >
> > >
> >
>
Re: Timer service - different behaviour if external quartz tables are
used or not
Posted by Romain Manni-Bucau <rm...@gmail.com>.
Remember this issue i think
If that's what i think it is a limitation of quartz itself
in org.quartz.impl.jdbcjobstore.StdJDBCDelegate#getObjectFromBlob
it uses a ObjectInputStream which is not app classloader aware (weird since
quartz itself has the info through its ClassLoadHelper).
You can hack the org.quartz.impl.jdbcjobstore.DriverDelegate to workaround
it. I decided to not hack it since that's a quartz issue for me.
*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 <Th...@opentext.com>
> Hi Romain!
>
> As I did for a different topic before (Use external database for
> persistent timer service), I can offer you an eclipse project:
> Attached the packed eclipse project.
> As only mails within a size of 1 MB are allowed: please add
> openejb-client-4.5.0.jar to the lib/clients folder and
> javaee-api-6.0-4-tomcat.jar to the lib folder.
>
> Please check README.txt how to adapt to your local system.
>
> It includes a simple example "Timer" demonstrating a scheduled bean
> without persistence.
>
> The example "Timer (persisted)" demonstrates a persisted scheduled bean -
> the programmatic timer includes the TimerData object.
>
> Best regards,
> Thomas
>
> -----Original Message-----
> From: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
> Sent: Dienstag, 21. Mai 2013 11:28
> To: dev@tomee.apache.org
> Subject: Re: Timer service - different behaviour if external quartz tables
> are used or not
>
> No,
>
> should be fine, if you can share a failiing project (maven project on
> github runnable with mvn tomee:run is the best you can do to ease our work
> ;).
>
>
> *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 <Th...@opentext.com>
>
> > 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:rmannibucau@gmail.com]
> > Sent: Dienstag, 21. Mai 2013 11:14
> > To: dev@tomee.apache.org
> > 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 <Th...@opentext.com>
> >
> > > 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:rmannibucau@gmail.com]
> > > Sent: Dienstag, 21. Mai 2013 10:27
> > > To: dev@tomee.apache.org
> > > Cc: dev@openejb.apache.org
> > > 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 <th...@opentext.com>
> > >
> > > > 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(JobS
> > > to
> > > 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(JobStor
> > > eS
> > > 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-behavi
> > > > ou
> > > > r- if-external-quartz-tables-are-used-or-not-tp4663101.html
> > > > Sent from the OpenEJB Dev mailing list archive at Nabble.com.
> > > >
> > >
> >
>
RE: Timer service - different behaviour if external quartz tables
are used or not
Posted by Thomas Schuler <Th...@opentext.com>.
Hi Romain!
As I did for a different topic before (Use external database for persistent timer service), I can offer you an eclipse project:
Attached the packed eclipse project.
As only mails within a size of 1 MB are allowed: please add openejb-client-4.5.0.jar to the lib/clients folder and javaee-api-6.0-4-tomcat.jar to the lib folder.
Please check README.txt how to adapt to your local system.
It includes a simple example "Timer" demonstrating a scheduled bean without persistence.
The example "Timer (persisted)" demonstrates a persisted scheduled bean - the programmatic timer includes the TimerData object.
Best regards,
Thomas
-----Original Message-----
From: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
Sent: Dienstag, 21. Mai 2013 11:28
To: dev@tomee.apache.org
Subject: Re: Timer service - different behaviour if external quartz tables are used or not
No,
should be fine, if you can share a failiing project (maven project on github runnable with mvn tomee:run is the best you can do to ease our work ;).
*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 <Th...@opentext.com>
> 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:rmannibucau@gmail.com]
> Sent: Dienstag, 21. Mai 2013 11:14
> To: dev@tomee.apache.org
> 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 <Th...@opentext.com>
>
> > 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:rmannibucau@gmail.com]
> > Sent: Dienstag, 21. Mai 2013 10:27
> > To: dev@tomee.apache.org
> > Cc: dev@openejb.apache.org
> > 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 <th...@opentext.com>
> >
> > > 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(JobS
> > to
> > 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(JobStor
> > eS
> > 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-behavi
> > > ou
> > > r- if-external-quartz-tables-are-used-or-not-tp4663101.html
> > > Sent from the OpenEJB Dev mailing list archive at Nabble.com.
> > >
> >
>
Re: Timer service - different behaviour if external quartz tables are
used or not
Posted by Romain Manni-Bucau <rm...@gmail.com>.
No,
should be fine, if you can share a failiing project (maven project on
github runnable with mvn tomee:run is the best you can do to ease our work
;).
*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 <Th...@opentext.com>
> 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:rmannibucau@gmail.com]
> Sent: Dienstag, 21. Mai 2013 11:14
> To: dev@tomee.apache.org
> 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 <Th...@opentext.com>
>
> > 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:rmannibucau@gmail.com]
> > Sent: Dienstag, 21. Mai 2013 10:27
> > To: dev@tomee.apache.org
> > Cc: dev@openejb.apache.org
> > 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 <th...@opentext.com>
> >
> > > 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.
> > >
> >
>
RE: Timer service - different behaviour if external quartz tables
are used or not
Posted by Thomas Schuler <Th...@opentext.com>.
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:rmannibucau@gmail.com]
Sent: Dienstag, 21. Mai 2013 11:14
To: dev@tomee.apache.org
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 <Th...@opentext.com>
> 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:rmannibucau@gmail.com]
> Sent: Dienstag, 21. Mai 2013 10:27
> To: dev@tomee.apache.org
> Cc: dev@openejb.apache.org
> 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 <th...@opentext.com>
>
> > 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.
> >
>
Re: Timer service - different behaviour if external quartz tables are
used or not
Posted by Romain Manni-Bucau <rm...@gmail.com>.
i'll hack on it to ensure we can't have side effect (it is not the case
deploying a war in tomee): https://issues.apache.org/jira/browse/TOMEE-943
that said i just checked and openejb.quartz.use-TCCL should be set by bean
(in openejb-jar.xml for instance) -> i'll look in system.properties too
*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 Romain Manni-Bucau <rm...@gmail.com>
> 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 <Th...@opentext.com>
>
>> 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:rmannibucau@gmail.com]
>> Sent: Dienstag, 21. Mai 2013 10:27
>> To: dev@tomee.apache.org
>> Cc: dev@openejb.apache.org
>> 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 <th...@opentext.com>
>>
>> > 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(JobStoreSupport.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(JobStoreSupport.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-behaviour-
>> > if-external-quartz-tables-are-used-or-not-tp4663101.html
>> > Sent from the OpenEJB Dev mailing list archive at Nabble.com.
>> >
>>
>
>
Re: Timer service - different behaviour if external quartz tables are
used or not
Posted by Romain Manni-Bucau <rm...@gmail.com>.
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 <Th...@opentext.com>
> 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:rmannibucau@gmail.com]
> Sent: Dienstag, 21. Mai 2013 10:27
> To: dev@tomee.apache.org
> Cc: dev@openejb.apache.org
> 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 <th...@opentext.com>
>
> > 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(JobStoreSupport.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(JobStoreSupport.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-behaviour-
> > if-external-quartz-tables-are-used-or-not-tp4663101.html
> > Sent from the OpenEJB Dev mailing list archive at Nabble.com.
> >
>
RE: Timer service - different behaviour if external quartz tables
are used or not
Posted by Thomas Schuler <Th...@opentext.com>.
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:rmannibucau@gmail.com]
Sent: Dienstag, 21. Mai 2013 10:27
To: dev@tomee.apache.org
Cc: dev@openejb.apache.org
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 <th...@opentext.com>
> 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(JobStoreSupport.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(JobStoreSupport.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-behaviour-
> if-external-quartz-tables-are-used-or-not-tp4663101.html
> Sent from the OpenEJB Dev mailing list archive at Nabble.com.
>
Re: Timer service - different behaviour if external quartz tables are
used or not
Posted by Romain Manni-Bucau <rm...@gmail.com>.
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 <th...@opentext.com>
> 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(JobStoreSupport.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(JobStoreSupport.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-behaviour-if-external-quartz-tables-are-used-or-not-tp4663101.html
> Sent from the OpenEJB Dev mailing list archive at Nabble.com.
>