|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectjavax.management.NotificationBroadcasterSupport
org.jboss.system.ServiceMBeanSupport
org.backsource.jmx.ServiceMBeanSupport
org.backsource.qcron.CronManagerService
An MBean service of CronManager based on the Quartz scheduler.
This is an MBean wrapper on top of Quartz. It might be seen as a jboss-service configurable Quartz SchedulerFactory. Its is however also a CronManager,which gives a somewhat simpler API to place jobbs to be done int Quartz, and also makes it easier to call object and othet MBeans.
One thing is inportant to know: quartz does not seem to handle volatile jobbs correct when run with a JDBC store. To use volatile jobs one has to use an instance of this service wich ise configured with a org.quartz.simpl.RAMJobStore JobStoreClass.
Through this MBean Quartz is fully configurable throug an jboss-service.xml file; no Quartz property file is needed.There are a lot of options here is one example on an mbean stanza that uses the Hypersonic database as its persistant storage:
<mbean code="org.backsource.qcron.CronManagerService" name="cron:name=CronManagerService,service=test">
<attribute name="SchedulerInstanceName">service=test</attribute>
<attribute name="SchedLoggerClass">org.quartz.impl.Log4jLogger</attribute>
<attribute name="XaTransacted">false</attribute>
<attribute name="ThreadPoolClass">org.quartz.simpl.SimpleThreadPool</attribute>
<attribute name="ThreadPoolThreadCount">3</attribute>
<attribute name="ThreadPoolPrio">4</attribute>
<attribute name="JobStoreClass">org.quartz.impl.jdbcjobstore.JobStoreTX</attribute>
<attribute name="JobStoreDriverDelegateClass">org.quartz.impl.jdbcjobstore.MSSQLDelegate</attribute>
<attribute name="DataSourceDriver">org.hsqldb.jdbcDriver</attribute>
<attribute name="DataSourceJndiURL">java:/DefaultDS</attribute>
<attribute name="StorageCreateSqlFile">hsqldb-sql.xml</attribute>
</mbean>
| Field Summary | |
static java.lang.String |
DATASOURCE_NAME
|
protected javax.management.ObjectName |
name
|
static javax.management.ObjectName |
OBJECT_NAME
|
static java.lang.String |
PROP_DATASOURCE_DRIVER
|
static java.lang.String |
PROP_DATASOURCE_JNDI_URL
|
static java.lang.String |
PROP_DATASOURCE_MAX_CONNECTIONS
|
static java.lang.String |
PROP_DATASOURCE_PASSWORD
|
static java.lang.String |
PROP_DATASOURCE_PREFIX
|
static java.lang.String |
PROP_DATASOURCE_URL
|
static java.lang.String |
PROP_DATASOURCE_USER
|
static java.lang.String |
PROP_DATASOURCE_VALIDATION_QUERY
|
protected java.util.Properties |
quartzProp
|
protected javax.management.MBeanServer |
server
|
protected java.lang.String |
storageCreateSqlFile
|
static java.lang.String |
TABLE_CHECK
|
static java.lang.String |
TABLE_PREFIX
|
protected boolean |
usePropertyFile
|
| Fields inherited from class org.jboss.system.ServiceMBeanSupport |
log, serviceName |
| Fields inherited from interface org.jboss.system.ServiceMBean |
CREATE_EVENT, CREATED, DESTROY_EVENT, DESTROYED, FAILED, STARTED, STARTING, states, STOPPED, STOPPING |
| Constructor Summary | |
CronManagerService()
|
|
| Method Summary | |
void |
addCronEntry(CronEntry entry)
Ad cronEntry to the sceduler. |
protected void |
createTables(java.sql.Connection conn)
Create the Quartz db tables. |
CronEntry |
getCronEntry(java.lang.String group,
java.lang.String name)
Get cronEntry by name from the sceduler, null is returned if not found. |
java.util.List |
getCronEntryNames(java.lang.String group)
Get all current cronEntries in the scheduler that belongs to group. |
protected javax.management.ObjectName |
getObjectName(javax.management.MBeanServer server,
javax.management.ObjectName name)
|
java.util.Properties |
getProperties()
Get all properties Quartz was inited with. |
org.quartz.Scheduler |
getScheduler()
Return a synchronized Quartz scheduler. |
java.lang.String |
getStorageCreateSqlFile()
|
boolean |
getUsePropertyFile()
|
void |
removeCronEntry(CronEntry entry)
|
void |
removeCronEntry(java.lang.String group,
java.lang.String name)
Remove the cronEntry from the scheduler. |
void |
setDataSourceDriver(java.lang.String name)
JDBC driver if using jdbc. |
void |
setDataSourceJndiURL(java.lang.String name)
The JNDI url to a DataSource, J2EE fashion, currently the only supported way! |
void |
setDataSourceMaxCon(java.lang.Integer name)
Max open connections if not using tDataSourceJndiURL. |
void |
setDataSourcePassword(java.lang.String name)
JDBC password if not using tDataSourceJndiURL. |
void |
setDataSourceURL(java.lang.String name)
JDBC URL if not using tDataSourceJndiURL. |
void |
setDataSourceUser(java.lang.String name)
JDBC user if not using tDataSourceJndiURL. |
void |
setDataSourceValidationQuery(java.lang.String name)
? |
void |
setJobStoreClass(java.lang.String name)
Class to use for job store. |
void |
setJobStoreDriverDelegateClass(java.lang.String name)
Driver delegate if using jdbc. |
void |
setPostgresStyleBlob(java.lang.Boolean use)
Probably not used any more! |
void |
setSchedLoggerClass(java.lang.String name)
The logger class to use; the same for all components. |
void |
setSchedulerInstanceName(java.lang.String name)
A uniqe name for this Quartz instance. |
void |
setSqlServerStyleBlob(java.lang.Boolean use)
Probably not used any more! |
void |
setStorageCreateSqlFile(java.lang.String storageCreateSqlFile)
The name of an XML file containg SQL create table instruction to autmaticllat create the db tables; must be for the correct db and be part of the context class loader path. |
void |
setThreadPoolClass(java.lang.String name)
Thread pool class to use in Quartz. |
void |
setThreadPoolPrio(java.lang.Integer name)
No idea. |
void |
setThreadPoolThreadCount(java.lang.Integer name)
Number of Threads. |
protected void |
setUpJobbStore()
Set up the jobstorage, currently only if a jndi url was given. |
void |
setUsePropertyFile(boolean use)
Use property file instead of the Mbeans attributes. |
void |
setXaTransacted(java.lang.Boolean bool)
Set if Quartz should use XA transactio: does currently not work since Quartz expect user transaction to be in jndi: java:comp/UserTransaction. |
protected void |
startService()
|
protected void |
stopService()
|
| Methods inherited from class org.jboss.system.ServiceMBeanSupport |
create, createService, destroy, destroyService, getLog, getName, getNextNotificationSequenceNumber, getServer, getServiceName, getState, getStateString, postDeregister, postRegister, preDeregister, preRegister, start, stop |
| Methods inherited from class javax.management.NotificationBroadcasterSupport |
addNotificationListener, getNotificationInfo, removeNotificationListener, sendNotification |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface org.jboss.system.ServiceMBean |
getName, getState, getStateString |
| Methods inherited from interface org.jboss.system.Service |
create, destroy, start, stop |
| Field Detail |
public static final java.lang.String DATASOURCE_NAME
public static final java.lang.String PROP_DATASOURCE_PREFIX
public static final java.lang.String PROP_DATASOURCE_DRIVER
public static final java.lang.String PROP_DATASOURCE_URL
public static final java.lang.String PROP_DATASOURCE_USER
public static final java.lang.String PROP_DATASOURCE_PASSWORD
public static final java.lang.String PROP_DATASOURCE_MAX_CONNECTIONS
public static final java.lang.String PROP_DATASOURCE_JNDI_URL
public static final java.lang.String PROP_DATASOURCE_VALIDATION_QUERY
public static final java.lang.String TABLE_PREFIX
public static final java.lang.String TABLE_CHECK
public static final javax.management.ObjectName OBJECT_NAME
protected javax.management.ObjectName name
protected javax.management.MBeanServer server
protected java.util.Properties quartzProp
protected boolean usePropertyFile
protected java.lang.String storageCreateSqlFile
| Constructor Detail |
public CronManagerService()
| Method Detail |
protected javax.management.ObjectName getObjectName(javax.management.MBeanServer server,
javax.management.ObjectName name)
throws javax.management.MalformedObjectNameException
javax.management.MalformedObjectNameExceptionpublic void setSchedulerInstanceName(java.lang.String name)
setSchedulerInstanceName in interface org.backsource.qcron.CronManagerServiceMBeanpublic void setSchedLoggerClass(java.lang.String name)
setSchedLoggerClass in interface org.backsource.qcron.CronManagerServiceMBeanpublic void setXaTransacted(java.lang.Boolean bool)
setXaTransacted in interface org.backsource.qcron.CronManagerServiceMBeanpublic void setThreadPoolClass(java.lang.String name)
setThreadPoolClass in interface org.backsource.qcron.CronManagerServiceMBeanpublic void setThreadPoolThreadCount(java.lang.Integer name)
setThreadPoolThreadCount in interface org.backsource.qcron.CronManagerServiceMBeanpublic void setThreadPoolPrio(java.lang.Integer name)
setThreadPoolPrio in interface org.backsource.qcron.CronManagerServiceMBeanpublic void setJobStoreClass(java.lang.String name)
setJobStoreClass in interface org.backsource.qcron.CronManagerServiceMBeanpublic void setJobStoreDriverDelegateClass(java.lang.String name)
setJobStoreDriverDelegateClass in interface org.backsource.qcron.CronManagerServiceMBeanpublic void setDataSourceDriver(java.lang.String name)
setDataSourceDriver in interface org.backsource.qcron.CronManagerServiceMBeanpublic void setDataSourceURL(java.lang.String name)
setDataSourceURL in interface org.backsource.qcron.CronManagerServiceMBeanpublic void setDataSourceUser(java.lang.String name)
setDataSourceUser in interface org.backsource.qcron.CronManagerServiceMBeanpublic void setDataSourcePassword(java.lang.String name)
setDataSourcePassword in interface org.backsource.qcron.CronManagerServiceMBeanpublic void setDataSourceMaxCon(java.lang.Integer name)
setDataSourceMaxCon in interface org.backsource.qcron.CronManagerServiceMBeanpublic void setDataSourceJndiURL(java.lang.String name)
setDataSourceJndiURL in interface org.backsource.qcron.CronManagerServiceMBeanpublic void setDataSourceValidationQuery(java.lang.String name)
setDataSourceValidationQuery in interface org.backsource.qcron.CronManagerServiceMBeanpublic void setSqlServerStyleBlob(java.lang.Boolean use)
setSqlServerStyleBlob in interface org.backsource.qcron.CronManagerServiceMBeanpublic void setPostgresStyleBlob(java.lang.Boolean use)
setPostgresStyleBlob in interface org.backsource.qcron.CronManagerServiceMBeanpublic java.util.Properties getProperties()
getProperties in interface org.backsource.qcron.CronManagerServiceMBeanpublic void setUsePropertyFile(boolean use)
setUsePropertyFile in interface org.backsource.qcron.CronManagerServiceMBeanpublic boolean getUsePropertyFile()
getUsePropertyFile in interface org.backsource.qcron.CronManagerServiceMBeanpublic void setStorageCreateSqlFile(java.lang.String storageCreateSqlFile)
setStorageCreateSqlFile in interface org.backsource.qcron.CronManagerServiceMBeanpublic java.lang.String getStorageCreateSqlFile()
getStorageCreateSqlFile in interface org.backsource.qcron.CronManagerServiceMBean
protected void startService()
throws java.lang.Exception
java.lang.Exception
protected void stopService()
throws java.lang.Exception
java.lang.Exception
protected void setUpJobbStore()
throws java.lang.Exception
if the db tables is not found they will be automatically created.
java.lang.Exception
protected void createTables(java.sql.Connection conn)
throws java.lang.Exception
java.lang.Exception
public org.quartz.Scheduler getScheduler()
throws org.quartz.SchedulerException
getScheduler in interface org.backsource.qcron.CronManagerServiceMBeanorg.quartz.SchedulerException
public void addCronEntry(CronEntry entry)
throws CronException
CronManager
addCronEntry in interface org.backsource.qcron.CronManagerServiceMBeanCronException
public java.util.List getCronEntryNames(java.lang.String group)
throws CronException
CronManager
getCronEntryNames in interface CronManagerCronExceptionCronEntry.getEntryGroup()
public CronEntry getCronEntry(java.lang.String group,
java.lang.String name)
throws CronException
CronManager
getCronEntry in interface CronManagerCronException
public void removeCronEntry(CronEntry entry)
throws CronException
removeCronEntry in interface org.backsource.qcron.CronManagerServiceMBeanCronException
public void removeCronEntry(java.lang.String group,
java.lang.String name)
throws CronException
CronManager
removeCronEntry in interface org.backsource.qcron.CronManagerServiceMBeanCronException
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||