Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 石英群集不工作_Java_Quartz Scheduler - Fatal编程技术网

Java 石英群集不工作

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

我的应用程序在Jboss(数据库是informix)下,使用quartz进行调度。 当我在2个集群Jboss服务器上运行quartz时,我看到作业在两个服务器上同时启动(间隔几毫秒)

任何关于什么可以调整以使quartz能够在集群服务器上正确运行的指针都将非常有用

感谢您的时间和反馈

以下是我的quartz.properties的外观:

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上同步,我们成功了