your sample now works for me (commited) Some not related notes: 1) org.apache.openejb.client.LocalInitialContextFactory should be org.apache.openejb.core.LocalInitialContextFactory 2) log4j is no more used by default 3) instead of new INitialContext you can use EJBContainer API which is standard (and don't forget the close at the end ;))
- Romain 2012/8/11 Romain Manni-Bucau <[email protected]> > Hi, > > thks i'll have a look, > > why hsqldb you get: Caused by: java.sql.SQLSyntaxErrorException: user > lacks privilege or object not found: QRTZ_TRIGGERS > at org.hsqldb.jdbc.Util.sqlException(Unknown Source) > at org.hsqldb.jdbc.Util.sqlException(Unknown Source) > at org.hsqldb.jdbc.JDBCPreparedStatement.<init>(Unknown Source) > at org.hsqldb.jdbc.JDBCConnection.prepareStatement(Unknown Source) > at > org.apache.commons.dbcp.DelegatingConnection.prepareStatement(DelegatingConnection.java:281) > at > org.apache.commons.dbcp.DelegatingConnection.prepareStatement(DelegatingConnection.java:281) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:601) > at > org.quartz.impl.jdbcjobstore.AttributeRestoringConnectionInvocationHandler.invoke(AttributeRestoringConnectionInvocationHandler.java:73) > at $Proxy9.prepareStatement(Unknown Source) > at > org.quartz.impl.jdbcjobstore.StdJDBCDelegate.updateTriggerStatesFromOtherStates(StdJDBCDelegate.java:254) > at > org.quartz.impl.jdbcjobstore.JobStoreSupport.recoverJobs(JobStoreSupport.java:844) > ... 49 more > Caused by: org.hsqldb.HsqlException: user lacks privilege or object not > found: QRTZ_TRIGGERS > at org.hsqldb.error.Error.error(Unknown Source) > at org.hsqldb.error.Error.error(Unknown Source) > at org.hsqldb.SchemaManager.getTable(Unknown Source) > at org.hsqldb.ParserDQL.readTableName(Unknown Source) > at org.hsqldb.ParserDQL.readSimpleRangeVariable(Unknown Source) > at org.hsqldb.ParserDML.compileUpdateStatement(Unknown Source) > at org.hsqldb.ParserCommand.compilePart(Unknown Source) > at org.hsqldb.ParserCommand.compileStatement(Unknown Source) > at org.hsqldb.Session.compileStatement(Unknown Source) > at org.hsqldb.StatementManager.compile(Unknown Source) > at org.hsqldb.Session.execute(Unknown Source) > ... 61 more > > > - Romain > > > > 2012/8/11 Enrico Olivelli <[email protected]> > >> Attaching a simple Maven project with some simples test >> in contains: >> - CreateQuartzDatabase --> to create the database locally >> - RunTimerWithStardardQuartzConf**ig -> this works, uses standard >> OpenEJB Quartz configuration >> - RunClusteredTimerWithTXStore -> not working >> - RunClusteredTimerWithCMTStore -> not working >> >> When configuring JobStoreTX or CMT the bean is not deployed, I don't >> known it is a a hssqldb problem (in MySQL I got other errors) >> even when not configuring org.quartz.jobStore.**isClustered=true >> >> I hope it helps >> >> (I could not upload the ZIP on issues.apache.prg because it is >> out-of-order) >> >> example log... >> Informazioni - Using 'org.quartz.jobStore.class=** >> org.quartz.impl.jdbcjobstore.**JobStoreTX' >> Informazioni - Using 'org.quartz.jobStore.**dataSource=quartzdb' >> Informazioni - Using 'org.quartz.dataSource.**quartzdb.jndiURL=openejb:** >> Resource/quartzdb' >> Informazioni - Using 'org.quartz.jobStore.class=** >> org.quartz.impl.jdbcjobstore.**JobStoreTX' >> Informazioni - Using 'org.quartz.jobStore.**dataSource=quartzdb' >> Informazioni - Using 'org.quartz.dataSource.**quartzdb.jndiURL=openejb:** >> Resource/quartzdb' >> Informazioni - Using default implementation for ThreadExecutor >> Informazioni - Initialized Scheduler Signaller of type: class >> org.quartz.core.**SchedulerSignalerImpl >> Informazioni - Quartz Scheduler v.2.1.5 created. >> Informazioni - Using thread monitor-based data access locking >> (synchronization). >> Informazioni - JobStoreTX initialized. >> Informazioni - Scheduler meta-data: Quartz Scheduler (v2.1.5) >> 'OpenEJB-TimerService-**Scheduler' with instanceId 'NON_CLUSTERED' >> Scheduler class: 'org.quartz.core.**QuartzScheduler' - running locally. >> NOT STARTED. >> Currently in standby mode. >> Number of jobs executed: 0 >> Using thread pool >> 'org.apache.openejb.core.**timer.**DefaultTimerThreadPoolAdapter' >> - with 0 threads. >> Using job-store 'org.quartz.impl.jdbcjobstore.**JobStoreTX' - which >> supports persistence. and is not clustered. >> >> Informazioni - Quartz scheduler 'OpenEJB-TimerService-**Scheduler' >> initialized from an externally provided properties instance. >> Informazioni - Quartz scheduler version: 2.1.5 >> >> >> >> Il 07/08/2012 19:50, Romain Manni-Bucau ha scritto: >> >>> Hi, >>> >>> do you have a simple test you can share to ease the work on this topic? >>> >>> - Romain >>> >>> >>> 2012/8/7 Enrico Olivelli <[email protected]> >>> >>> Yep ! I didn't update my test server very well >>>> >>>> this is the new error... >>>> >>>> Grave: An error occurred while scanning for the next triggers to fire. >>>> org.quartz.****JobPersistenceException: Couldn't acquire next trigger: >>>> >>>> Couldn't retrieve trigger: No record found for selection of Trigger with >>>> key: 'OPEN_EJB_TIMEOUT_TRIGGER_****GROUP.OPEN_EJB_TIMEOUT_**** >>>> TRIGGER_MyTimer_1' >>>> >>>> and statement: SELECT * FROM QRTZ_CRON_TRIGGERS WHERE SCHED_NAME = >>>> 'OpenEJB-TimerService-****Scheduler' AND TRIGGER_NAME = ? AND >>>> TRIGGER_GROUP >>>> = ? [See nested exception: org.quartz.****JobPersistenceException: >>>> Couldn't >>>> >>>> retrieve trigger: No record found for selection of Trigger with key: >>>> 'OPEN_EJB_TIMEOUT_TRIGGER_****GROUP.OPEN_EJB_TIMEOUT_**** >>>> TRIGGER_MyTimer_1' >>>> >>>> and statement: SELECT * FROM QRTZ_CRON_TRIGGERS WHERE SCHED_NAME = >>>> 'OpenEJB-TimerService-****Scheduler' AND TRIGGER_NAME = ? AND >>>> TRIGGER_GROUP >>>> = ? [See nested exception: java.lang.****IllegalStateException: No >>>> record >>>> found for selection of Trigger with key: 'OPEN_EJB_TIMEOUT_TRIGGER_** >>>> GROUP.OPEN_EJB_TIMEOUT_****TRIGGER_MyTimer_1' and statement: SELECT * >>>> FROM >>>> QRTZ_CRON_TRIGGERS WHERE SCHED_NAME = 'OpenEJB-TimerService-**** >>>> Scheduler' >>>> >>>> AND TRIGGER_NAME = ? AND TRIGGER_GROUP = ?]] >>>> at org.quartz.impl.jdbcjobstore.****JobStoreSupport.** >>>> acquireNextTrigger(****JobStoreSupport.java:2840) >>>> at org.quartz.impl.jdbcjobstore.****JobStoreSupport$41.execute(** >>>> JobStoreSupport.java:2755) >>>> at org.quartz.impl.jdbcjobstore.****JobStoreSupport.** >>>> executeInNonManagedTXLock(****JobStoreSupport.java:3811) >>>> at org.quartz.impl.jdbcjobstore.****JobStoreSupport.** >>>> acquireNextTriggers(****JobStoreSupport.java:2751) >>>> at org.quartz.core.****QuartzSchedulerThread.run(** >>>> QuartzSchedulerThread.java:****264) >>>> Caused by: org.quartz.****JobPersistenceException: Couldn't retrieve >>>> >>>> trigger: No record found for selection of Trigger with key: >>>> 'OPEN_EJB_TIMEOUT_TRIGGER_****GROUP.OPEN_EJB_TIMEOUT_**** >>>> TRIGGER_MyTimer_1' >>>> >>>> and statement: SELECT * FROM QRTZ_CRON_TRIGGERS WHERE SCHED_NAME = >>>> 'OpenEJB-TimerService-****Scheduler' AND TRIGGER_NAME = ? AND >>>> TRIGGER_GROUP >>>> = ? [See nested exception: java.lang.****IllegalStateException: No >>>> record >>>> found for selection of Trigger with key: 'OPEN_EJB_TIMEOUT_TRIGGER_** >>>> GROUP.OPEN_EJB_TIMEOUT_****TRIGGER_MyTimer_1' and statement: SELECT * >>>> FROM >>>> QRTZ_CRON_TRIGGERS WHERE SCHED_NAME = 'OpenEJB-TimerService-**** >>>> Scheduler' >>>> >>>> AND TRIGGER_NAME = ? AND TRIGGER_GROUP = ?] >>>> at org.quartz.impl.jdbcjobstore.****JobStoreSupport.**** >>>> retrieveTrigger(** >>>> JobStoreSupport.java:1524) >>>> at org.quartz.impl.jdbcjobstore.****JobStoreSupport.** >>>> acquireNextTrigger(****JobStoreSupport.java:2790) >>>> ... 4 more >>>> Caused by: java.lang.****IllegalStateException: No record found for >>>> selection of Trigger with key: 'OPEN_EJB_TIMEOUT_TRIGGER_** >>>> GROUP.OPEN_EJB_TIMEOUT_****TRIGGER_MyTimer_1' and statement: SELECT * >>>> FROM >>>> QRTZ_CRON_TRIGGERS WHERE SCHED_NAME = 'OpenEJB-TimerService-**** >>>> Scheduler' >>>> >>>> AND TRIGGER_NAME = ? AND TRIGGER_GROUP = ? >>>> at org.quartz.impl.jdbcjobstore.****** >>>> CronTriggerPersistenceDelegate****.** >>>> loadExtendedTriggerProperties(******CronTriggerPersistenceDelegate** >>>> **.java:92) >>>> at org.quartz.impl.jdbcjobstore.****StdJDBCDelegate.** >>>> selectTrigger(** >>>> StdJDBCDelegate.java:1801) >>>> at org.quartz.impl.jdbcjobstore.****JobStoreSupport.**** >>>> retrieveTrigger(** >>>> >>>> JobStoreSupport.java:1520) >>>> ... 5 more >>>> >>>> ago 07, 2012 7:29:53 >>>> >>>> Il 07/08/2012 09:51, Romain Manni-Bucau ha scritto: >>>> >>>> Hi, >>>>> >>>>> sure you got the last revision? >>>>> >>>>> just enhanced the test to be sure: >>>>> http://svn.apache.org/repos/****asf/openejb/trunk/openejb/**<http://svn.apache.org/repos/**asf/openejb/trunk/openejb/**> >>>>> container/openejb-core/src/****test/java/org/apache/openejb/*** >>>>> *timer/** >>>>> EjbTimerImplSerializableTest.****java<http://svn.apache.org/** >>>>> repos/asf/openejb/trunk/**openejb/container/openejb-** >>>>> core/src/test/java/org/apache/**openejb/timer/** >>>>> EjbTimerImplSerializableTest.**java<http://svn.apache.org/repos/asf/openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/timer/EjbTimerImplSerializableTest.java> >>>>> > >>>>> >>>>> >>>>> seems jobdatamap is serializable >>>>> >>>>> - Romain >>>>> >>>>> >>>>> 2012/8/7 Enrico Olivelli <[email protected]> >>>>> >>>>> I'm sorry, >>>>> >>>>>> I does not work..... >>>>>> >>>>>> >>>>>> Avvertenza: Could not schedule timer Calendar scheduleExpression = >>>>>> [javax.ejb.ScheduleExpression@******4ed0efda] >>>>>> org.quartz.******JobPersistenceException: Couldn't store trigger >>>>>> 'OPEN_EJB_TIMEOUT_TRIGGER_******GROUP.OPEN_EJB_TIMEOUT_**** >>>>>> TRIGGER_MyTimer_1' >>>>>> for 'OPENEJB_TIMEOUT_GROUP.******OPENEJB_TIMEOUT_JOB' job:Unable to >>>>>> >>>>>> serialize >>>>>> >>>>>> JobDataMap for insertion into database because the value of property >>>>>> 'TIMER_DATA' is not serializable: org.apache.openejb.core.timer.**** >>>>>> **CalendarTimerData >>>>>> [See nested exception: java.io.******NotSerializableException: >>>>>> Unable to >>>>>> >>>>>> >>>>>> serialize JobDataMap for insertion into database because the value of >>>>>> property 'TIMER_DATA' is not serializable: >>>>>> org.apache.openejb.core.timer. >>>>>> *** >>>>>> *CalendarTimerData] >>>>>> using context file C:\work\MyTomEE11\TestQuartz\****** >>>>>> build\web\META-INF\context.xml >>>>>> at org.quartz.impl.jdbcjobstore.******JobStoreSupport.** >>>>>> storeTrigger(** >>>>>> ** >>>>>> JobStoreSupport.java:1212) >>>>>> at org.quartz.impl.jdbcjobstore.*** >>>>>> ***JobStoreSupport$4.execute(**** >>>>>> JobStoreSupport.java:1149) >>>>>> at org.quartz.impl.jdbcjobstore.*** >>>>>> ***JobStoreSupport$45.execute(**** >>>>>> JobStoreSupport.java:3739) >>>>>> at org.quartz.impl.jdbcjobstore.*** >>>>>> ***JobStoreCMT.executeInLock(**** >>>>>> JobStoreCMT.java:245) >>>>>> at org.quartz.impl.jdbcjobstore.******JobStoreSupport.** >>>>>> executeInLock(** >>>>>> JobStoreSupport.java:3735) >>>>>> at org.quartz.impl.jdbcjobstore.******JobStoreSupport.** >>>>>> storeTrigger(** >>>>>> ** >>>>>> JobStoreSupport.java:1145) >>>>>> at org.quartz.core.******QuartzScheduler.scheduleJob(** >>>>>> QuartzScheduler.java:886) >>>>>> at org.quartz.impl.StdScheduler.*** >>>>>> ***scheduleJob(StdScheduler.** >>>>>> java:**259) >>>>>> at org.apache.openejb.core.timer.******EjbTimerServiceImpl.** >>>>>> schedule(** >>>>>> EjbTimerServiceImpl.java:261) >>>>>> at org.apache.openejb.core.timer.******TimerData.** >>>>>> transactionComplete(** >>>>>> TimerData.java:183) >>>>>> at org.apache.openejb.core.timer.******TimerData.** >>>>>> registerTimerDataSynchronizati******on(TimerData.java:212) >>>>>> at org.apache.openejb.core.timer.******TimerData.newTimer(** >>>>>> TimerData.** >>>>>> java:147) >>>>>> at org.apache.openejb.core.timer.******EjbTimerServiceImpl.** >>>>>> initializeNewTimer(******EjbTimerServiceImpl.java:401) >>>>>> at org.apache.openejb.core.timer.** >>>>>> ****EjbTimerServiceImpl.start(**** >>>>>> EjbTimerServiceImpl.java:203) >>>>>> at org.apache.openejb.core.******stateless.StatelessContainer.* >>>>>> ***** >>>>>> deploy(StatelessContainer.******java:106) >>>>>> at org.apache.openejb.assembler.******classic.Assembler.** >>>>>> createApplication(Assembler.******java:788) >>>>>> at org.apache.openejb.assembler.******classic.Assembler.** >>>>>> createApplication(Assembler.******java:516) >>>>>> at org.apache.tomee.catalina.******TomcatWebAppBuilder.**** >>>>>> startInternal(** >>>>>> TomcatWebAppBuilder.java:755) >>>>>> at org.apache.tomee.catalina.******TomcatWebAppBuilder.**** >>>>>> configureStart(** >>>>>> TomcatWebAppBuilder.java:708) >>>>>> at org.apache.tomee.catalina.******GlobalListenerSupport.**** >>>>>> lifecycleEvent( >>>>>> **GlobalListenerSupport.java:******118) >>>>>> at org.apache.catalina.util.******LifecycleSupport.**** >>>>>> fireLifecycleEvent(** >>>>>> LifecycleSupport.java:119) >>>>>> at org.apache.catalina.util.******LifecycleBase.**** >>>>>> fireLifecycleEvent(** >>>>>> LifecycleBase.java:90) >>>>>> at org.apache.catalina.core.****** >>>>>> StandardContext.startInternal(****** >>>>>> StandardContext.java:5173) >>>>>> at org.apache.catalina.util.******LifecycleBase.start(** >>>>>> LifecycleBase.java:150) >>>>>> at org.apache.catalina.core.******ContainerBase.**** >>>>>> addChildInternal(** >>>>>> ContainerBase.java:901) >>>>>> at org.apache.catalina.core.******ContainerBase.addChild(** >>>>>> ContainerBase.java:877) >>>>>> at org.apache.catalina.core.******StandardHost.addChild(** >>>>>> StandardHost.java:618) >>>>>> at org.apache.catalina.startup.**** >>>>>> **HostConfig.deployDescriptor(**** >>>>>> HostConfig.java:650) >>>>>> at org.apache.catalina.startup.**** >>>>>> **HostConfig$DeployDescriptor.**** >>>>>> run(HostConfig.java:1582) >>>>>> at java.util.concurrent.******Executors$RunnableAdapter.** >>>>>> call(Executors.java:471) >>>>>> at java.util.concurrent.******FutureTask$Sync.innerRun(** >>>>>> FutureTask.java:334) >>>>>> at java.util.concurrent.******FutureTask.run(FutureTask.****** >>>>>> java:166) >>>>>> at java.util.concurrent.******ThreadPoolExecutor.runWorker(*** >>>>>> *** >>>>>> ThreadPoolExecutor.java:1110) >>>>>> at java.util.concurrent.******ThreadPoolExecutor$Worker.run(** >>>>>> **** >>>>>> ThreadPoolExecutor.java:603) >>>>>> at java.lang.Thread.run(Thread.******java:722) >>>>>> Caused by: java.io.******NotSerializableException: Unable to >>>>>> serialize >>>>>> >>>>>> >>>>>> JobDataMap for insertion into database because the value of property >>>>>> 'TIMER_DATA' is not serializable: org.apache.openejb.core.timer.** >>>>>> **** >>>>>> CalendarTimerData >>>>>> at org.quartz.impl.jdbcjobstore.******StdJDBCDelegate.**** >>>>>> serializeJobData(* >>>>>> *StdJDBCDelegate.java:3038) >>>>>> at org.quartz.impl.jdbcjobstore.******StdJDBCDelegate.** >>>>>> insertTrigger(** >>>>>> StdJDBCDelegate.java:1052) >>>>>> at org.quartz.impl.jdbcjobstore.******JobStoreSupport.** >>>>>> storeTrigger(** >>>>>> >>>>>> ** >>>>>> >>>>>> JobStoreSupport.java:1209) >>>>>> ... 34 more >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> Il 06/08/2012 10:03, Romain Manni-Bucau (JIRA) ha scritto: >>>>>> >>>>>> [ https://issues.apache.org/****** >>>>>> jira/browse/TOMEE-345?page=**<https://issues.apache.org/****jira/browse/TOMEE-345?page=**> >>>>>> <**https://issues.apache.org/****jira/browse/TOMEE-345?page=**<https://issues.apache.org/**jira/browse/TOMEE-345?page=**> >>>>>> > >>>>>> >>>>>>> com.atlassian.jira.plugin.******system.issuetabpanels:comment-****** >>>>>>> tabpanel&focusedCommentId=******13429016#comment-13429016<**http** >>>>>>> s://issues.apache.org/jira/****browse/TOMEE-345?page=com.**<http://issues.apache.org/jira/**browse/TOMEE-345?page=com.**> >>>>>>> atlassian.jira.plugin.system.****issuetabpanels:comment-** >>>>>>> >>>>>>> tabpanel&focusedCommentId=****13429016#comment-13429016<http** >>>>>>> s://issues.apache.org/jira/**browse/TOMEE-345?page=com.** >>>>>>> atlassian.jira.plugin.system.**issuetabpanels:comment-** >>>>>>> tabpanel&focusedCommentId=**13429016#comment-13429016<https://issues.apache.org/jira/browse/TOMEE-345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13429016#comment-13429016> >>>>>>> > >>>>>>> >>>>>>>> ] >>>>>>>> >>>>>>> >>>>>>> Romain Manni-Bucau commented on TOMEE-345: >>>>>>> ------------------------------******------------ >>>>>>> >>>>>>> >>>>>>> just made timerdata serializable >>>>>>> >>>>>>> >>>>>>> make EjbTimerServiceImpl serializable >>>>>>> >>>>>>>> ------------------------------******------- >>>>>>>> >>>>>>>> Key: TOMEE-345 >>>>>>>> URL: https://issues.apache.org/**** >>>>>>>> jira/browse/TOMEE-345<https://**issues.apache.org/**jira/** >>>>>>>> browse/TOMEE-345<https://issues.apache.org/**jira/browse/TOMEE-345> >>>>>>>> > >>>>>>>> <https://**issues.apache.org/**jira/browse/**TOMEE-345<http://issues.apache.org/jira/browse/**TOMEE-345> >>>>>>>> <https:**//issues.apache.org/jira/**browse/TOMEE-345<https://issues.apache.org/jira/browse/TOMEE-345> >>>>>>>> > >>>>>>>> >>>>>>>> Project: TomEE >>>>>>>> Issue Type: Improvement >>>>>>>> Reporter: Romain Manni-Bucau >>>>>>>> Fix For: 1.1.0 >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> >>>>>>> This message is automatically generated by JIRA. >>>>>>> If you think it was sent incorrectly, please contact your JIRA >>>>>>> administrators: >>>>>>> https://issues.apache.org/******jira/secure/**<https://issues.apache.org/****jira/secure/**> >>>>>>> <https://issues.**apache.org/**jira/secure/**<https://issues.apache.org/**jira/secure/**> >>>>>>> > >>>>>>> ContactAdministrators!default.******jspa<https://issues.**apache.<https://issues.apache.> >>>>>>> ** >>>>>>> org/jira/secure/****ContactAdministrators!default.****jspa< >>>>>>> https://issues.apache.**org/jira/secure/**ContactAdministrators%** >>>>>>> 21default.jspa<https://issues.apache.org/jira/secure/ContactAdministrators%21default.jspa> >>>>>>> > >>>>>>> >>>>>>> For more information on JIRA, see: http://www.atlassian.com/** >>>>>>> software/jira >>>>>>> <http://www.atlassian.com/****software/jira<http://www.atlassian.com/**software/jira> >>>>>>> <http://www.**atlassian.com/software/jira<http://www.atlassian.com/software/jira> >>>>>>> > >>>>>>> >>>>>>> >>>>>>> >>>>>>> >> >
