Java 石英群集不工作
我的应用程序在Jboss(数据库是informix)下,使用quartz进行调度。 当我在2个集群Jboss服务器上运行quartz时,我看到作业在两个服务器上同时启动(间隔几毫秒) 任何关于什么可以调整以使quartz能够在集群服务器上正确运行的指针都将非常有用 感谢您的时间和反馈 以下是我的quartz.properties的外观:Java 石英群集不工作,java,quartz-scheduler,Java,Quartz Scheduler,我的应用程序在Jboss(数据库是informix)下,使用quartz进行调度。 当我在2个集群Jboss服务器上运行quartz时,我看到作业在两个服务器上同时启动(间隔几毫秒) 任何关于什么可以调整以使quartz能够在集群服务器上正确运行的指针都将非常有用 感谢您的时间和反馈 以下是我的quartz.properties的外观: org.quartz.scheduler.instanceName = MYQuartzScheduler org.quartz.scheduler.inst
org.quartz.scheduler.instanceName = MYQuartzScheduler
org.quartz.scheduler.instanceId = AUTO
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 5
org.quartz.threadPool.threadPriority = 5
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
org.quartz.jobStore.dataSource = myDS
org.quartz.jobStore.tablePrefix = quartz_
org.quartz.jobStore.useProperties = false
org.quartz.jobStore.misfireThreshold = 60000
org.quartz.jobStore.maxMisfiresToHandleAtATime = 20
org.quartz.dataSource.myDS.jndiURL= xyzTX
org.quartz.jobStore.isClustered = true
org.quartz.jobStore.clusterCheckinInterval = 20000
org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
org.quartz.plugin.jobInitializer.fileNames=abc_jobs.xml
org.quartz.plugin.jobInitializer.overWriteExistingJobs = true
org.quartz.plugin.jobInitializer.failOnFileNotFound = true
org.quartz.plugin.jobInitializer.scanInterval = 60
你在JBASE上运行石英,所以考虑使用Hasigelon来控制主节点——那么你不需要使用由石英提供的群集,它使用数据库并引起问题。
HASingleton从JBoss4或JBoss5开始提供。如果您使用的是版本7,那么您可以查看有关其实现的详细信息这是我的项目中的quartz服务定义。所有作业都在quartz-jobs.xml中描述,它使用EJB3Invoker触发ejb。我希望有帮助 quartz service.xml
<?xml version="1.0" encoding="UTF-8"?>
<server>
<mbean code="org.quartz.ee.jmx.jboss.QuartzService" name="user:service=QuartzService,name=QuartzService">
<depends>jboss.jca:service=DataSourceBinding,name=myDS</depends>
<attribute name="JndiName">Quartz</attribute>
<attribute name="Properties">
org.quartz.scheduler.instanceName = MyScheduler
org.quartz.scheduler.instanceId = AUTO
org.quartz.scheduler.rmi.export = false
org.quartz.scheduler.rmi.proxy = false
org.quartz.scheduler.xaTransacted = false
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 3
org.quartz.threadPool.threadPriority = 5
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
org.quartz.jobStore.tablePrefix = QRTZ_
org.quartz.jobStore.isClustered = true
org.quartz.jobStore.clusterCheckinInterval = 20000
org.quartz.jobStore.useProperties = false
org.quartz.jobStore.selectWithLockSQL = SELECT * FROM {0}LOCKS WHERE LOCK_NAME = ? FOR UPDATE
org.quartz.jobStore.txIsolationLevelSerializable = false
org.quartz.jobStore.dataSource = myDS
org.quartz.dataSource.myDS.jndiURL = java:myDS
org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
org.quartz.plugin.jobInitializer.fileName = quartz-jobs.xml
org.quartz.plugin.jobInitializer.failOnFileNotFound = true
org.quartz.plugin.jobInitializer.overWriteExistingJobs = true
org.quartz.plugin.jobInitializer.scanInterval = 600
</attribute>
</mbean>
</server>
jca:service=DataSourceBinding,name=myDS
石英
org.quartz.scheduler.instanceName=MyScheduler
org.quartz.scheduler.instanceId=AUTO
org.quartz.scheduler.rmi.export=false
org.quartz.scheduler.rmi.proxy=false
org.quartz.scheduler.xatransact=false
org.quartz.threadPool.class=org.quartz.siml.SimpleThreadPool
org.quartz.threadPool.threadCount=3
org.quartz.threadPool.threadPriority=5
org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
org.quartz.jobStore.tablePrefix=QRTZ_
org.quartz.jobStore.isClustered=true
org.quartz.jobStore.clusterCheckinInterval=20000
org.quartz.jobStore.useProperties=false
org.quartz.jobStore.selectWithLockSQL=SELECT*FROM{0}锁,其中LOCK_NAME=?更新
org.quartz.jobStore.txIsolationLevelSerializable=false
org.quartz.jobStore.dataSource=myDS
org.quartz.dataSource.myDS.jndill=java:myDS
org.quartz.plugin.jobInitialization.class=org.quartz.plugins.xml.JobInitializationPlugin
org.quartz.plugin.jobInitializer.fileName=quartz-jobs.xml
org.quartz.plugin.jobInitializer.failOnFileNotFound=true
org.quartz.plugin.jobInitializer.overWriteExistingJobs=true
org.quartz.plugin.jobInitializer.scanInterval=600
我想我找到了解决办法
我通过执行以下操作禁用了作业文件的自动扫描:
org.quartz.plugin.jobInitializer.scanInterval = 0
现在集群对我来说非常好
当计划程序首先启动时,
JobInitializationPlugin
仍将从xml文件创建作业,但之后不会扫描任何更改。感谢您的反馈。但是看起来他们想用石英来代替。请-不要这样做:-)我们已经尝试过了,通过在db上同步,我们成功了