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