[jboss-user] [JBoss Seam] - Re: Quartz TimerService

dilator do-not-reply at jboss.com
Sat Dec 16 12:58:30 EST 2006


Ok getting a bit closer - been rooting about FishEye and I came across a new ejb-timer-service.xml yay!


  | <?xml version="1.0" encoding="UTF-8"?>
  | <server>
  | 	<!-- TODO: the ejb deployer must depend on this -->
  | 	
  | 	<!--  ================================================ -->
  | 	<!--  Defines the Quartz configuration for             -->
  | 	<!--  the EJB3 Timer Service                           -->
  | 	<!--  ================================================ -->
  | 	<mbean code="org.jboss.ejb3.timerservice.quartz.jmx.EJB3TimerService" name="jboss.ejb:service=EJB3TimerService">
  | 		<depends>jboss:service=Naming</depends>
  | 
  | 		<depends>jboss:service=TransactionManager</depends>
  | 		<depends optional-attribute-name="DataSource">jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
  | 		
  | 		<attribute name="Properties">
  |         	org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreCMT
  |             org.quartz.jobStore.nonManagedTXDataSource=myDS
  |             org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.HSQLDBDelegate
  |             org.quartz.jobStore.tablePrefix=QRTZ_
  |             org.quartz.jobStore.dataSource=myDS
  |          
  | 	        # To get it to work with hypersonic
  | 	        # FIXME: this doesn't lock the row
  |             org.quartz.jobStore.selectWithLockSQL=SELECT * FROM qrtz_locks WHERE lock_name = ?
  |          
  |         	# from quartz.properties
  |             org.quartz.scheduler.instanceName=JBossEJB3QuartzScheduler
  |             org.quartz.scheduler.rmi.export=false
  |             org.quartz.scheduler.rmi.proxy=false
  |             org.quartz.scheduler.wrapJobExecutionInUserTransaction=false
  |    
  |             org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool
  |             org.quartz.threadPool.threadCount=10
  |             org.quartz.threadPool.threadPriority=5
  |             org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread=true
  |    
  |         	org.quartz.jobStore.misfireThreshold=60000
  | 		</attribute>
  | 		<attribute name="SqlProperties">
  | 			CREATE_DB_ON_STARTUP = TRUE
  | 			
  | 			CREATE_TABLE_JOB_DETAILS = CREATE TABLE qrtz_job_details(JOB_NAME VARCHAR(80) NOT NULL, JOB_GROUP VARCHAR(80) NOT NULL, \
  | 			   DESCRIPTION VARCHAR(120) NULL, JOB_CLASS_NAME VARCHAR(128) NOT NULL, IS_DURABLE VARCHAR(1) NOT NULL, \
  | 			   IS_VOLATILE VARCHAR(1) NOT NULL, IS_STATEFUL VARCHAR(1) NOT NULL, REQUESTS_RECOVERY VARCHAR(1) NOT NULL, \
  | 			   JOB_DATA BINARY NULL, PRIMARY KEY (JOB_NAME,JOB_GROUP))
  | 			CREATE_TABLE_JOB_LISTENERS = CREATE TABLE qrtz_job_listeners(JOB_NAME VARCHAR(80) NOT NULL, JOB_GROUP VARCHAR(80) NOT NULL, \
  | 			   JOB_LISTENER VARCHAR(80) NOT NULL, PRIMARY KEY (JOB_NAME,JOB_GROUP,JOB_LISTENER), FOREIGN KEY (JOB_NAME,JOB_GROUP) \
  | 			   REFERENCES QRTZ_JOB_DETAILS(JOB_NAME,JOB_GROUP))
  | 			CREATE_TABLE_TRIGGERS = CREATE TABLE qrtz_triggers(TRIGGER_NAME VARCHAR(80) NOT NULL, TRIGGER_GROUP VARCHAR(80) NOT NULL, \
  | 			   JOB_NAME VARCHAR(80) NOT NULL, JOB_GROUP VARCHAR(80) NOT NULL, IS_VOLATILE VARCHAR(1) NOT NULL, DESCRIPTION VARCHAR(120) NULL, \
  | 			   NEXT_FIRE_TIME NUMERIC(13) NULL, PREV_FIRE_TIME NUMERIC(13) NULL, TRIGGER_STATE VARCHAR(16) NOT NULL, \
  | 			   TRIGGER_TYPE VARCHAR(8) NOT NULL, START_TIME NUMERIC(13) NOT NULL, END_TIME NUMERIC(13) NULL, CALENDAR_NAME VARCHAR(80) NULL, \
  | 			   MISFIRE_INSTR NUMERIC(2) NULL, JOB_DATA BINARY NULL, PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP), FOREIGN KEY (JOB_NAME,JOB_GROUP) \
  | 			   REFERENCES QRTZ_JOB_DETAILS(JOB_NAME,JOB_GROUP))
  | 			CREATE_TABLE_SIMPLE_TRIGGERS = CREATE TABLE qrtz_simple_triggers(TRIGGER_NAME VARCHAR(80) NOT NULL, \
  | 			   TRIGGER_GROUP VARCHAR(80) NOT NULL, REPEAT_COUNT NUMERIC(7) NOT NULL, REPEAT_INTERVAL NUMERIC(12) NOT NULL, \
  | 			   TIMES_TRIGGERED NUMERIC(7) NOT NULL, PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP), FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP) \
  | 			   REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP))
  | 			CREATE_TABLE_CRON_TRIGGERS = CREATE TABLE qrtz_cron_triggers(TRIGGER_NAME VARCHAR(80) NOT NULL, \
  | 			   TRIGGER_GROUP VARCHAR(80) NOT NULL, CRON_EXPRESSION VARCHAR(80) NOT NULL, TIME_ZONE_ID VARCHAR(80), \
  | 			   PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP), FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP) \
  | 			   REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP))
  | 			CREATE_TABLE_BLOB_TRIGGERS = CREATE TABLE qrtz_blob_triggers(TRIGGER_NAME VARCHAR(80) NOT NULL, \
  | 			   TRIGGER_GROUP VARCHAR(80) NOT NULL, BLOB_DATA BINARY NULL, PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP), \
  | 			   FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP) REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP))
  | 			CREATE_TABLE_TRIGGER_LISTENERS = CREATE TABLE qrtz_trigger_listeners(TRIGGER_NAME VARCHAR(80) NOT NULL, \
  | 			   TRIGGER_GROUP VARCHAR(80) NOT NULL, TRIGGER_LISTENER VARCHAR(80) NOT NULL, \
  | 			   PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_LISTENER), FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP) \
  | 			   REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP))
  | 			CREATE_TABLE_CALENDARS = CREATE TABLE qrtz_calendars(CALENDAR_NAME VARCHAR(80) NOT NULL, CALENDAR BINARY NOT NULL, \
  | 			   PRIMARY KEY (CALENDAR_NAME))
  | 			CREATE_TABLE_PAUSED_TRIGGER_GRPS = CREATE TABLE qrtz_paused_trigger_grps(TRIGGER_GROUP VARCHAR(80) NOT NULL, \
  | 			   PRIMARY KEY (TRIGGER_GROUP))
  | 			CREATE_TABLE_FIRED_TRIGGERS = CREATE TABLE qrtz_fired_triggers(ENTRY_ID VARCHAR(95) NOT NULL, TRIGGER_NAME VARCHAR(80) NOT NULL, \
  | 			   TRIGGER_GROUP VARCHAR(80) NOT NULL, IS_VOLATILE VARCHAR(1) NOT NULL, INSTANCE_NAME VARCHAR(80) NOT NULL, \
  | 			   FIRED_TIME NUMERIC(13) NOT NULL, STATE VARCHAR(16) NOT NULL, JOB_NAME VARCHAR(80) NULL, JOB_GROUP VARCHAR(80) NULL, \
  | 			   IS_STATEFUL VARCHAR(1) NULL, REQUESTS_RECOVERY VARCHAR(1) NULL, PRIMARY KEY (ENTRY_ID))
  | 			CREATE_TABLE_SCHEDULER_STATE = CREATE TABLE qrtz_scheduler_state(INSTANCE_NAME VARCHAR(80) NOT NULL, \
  | 			   LAST_CHECKIN_TIME NUMERIC(13) NOT NULL, CHECKIN_INTERVAL NUMERIC(13) NOT NULL, RECOVERER VARCHAR(80) NULL, \
  | 			   PRIMARY KEY (INSTANCE_NAME))
  | 			CREATE_TABLE_LOCKS = CREATE TABLE qrtz_locks(LOCK_NAME VARCHAR(40) NOT NULL, PRIMARY KEY (LOCK_NAME))
  | 			INSERT_TRIGGER_ACCESS = INSERT INTO qrtz_locks values('TRIGGER_ACCESS')
  | 			INSERT_JOB_ACCESS = INSERT INTO qrtz_locks values('JOB_ACCESS')
  | 			INSERT_CALENDAR_ACCESS = INSERT INTO qrtz_locks values('CALENDAR_ACCESS')
  | 			INSERT_STATE_ACCESS = INSERT INTO qrtz_locks values('STATE_ACCESS')
  | 			INSERT_MISFIRE_ACCESS = INSERT INTO qrtz_locks values('MISFIRE_ACCESS')
  | 		</attribute>
  | 
  | 	</mbean>
  | </server>
  | 

And that seems to get the Quartz implementation going.  But looks like it's not quite finished :D


  | Caused by: java.lang.RuntimeException: NYI
  | 	at org.jboss.ejb3.timerservice.quartz.TimerServiceImpl.getTimers(TimerServiceImpl.java:207)
  | 

Getting there!

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3994438#3994438

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3994438



More information about the jboss-user mailing list