WebSphere 集群环境下配置 Quartz集群
转载:http://hyamine.iteye.com/blog/397708
1. websphere工作管理器引用
WEB-INF/ibm-web-bnd.xmi
- <?xml version="1.0" encoding="UTF-8"?>
- <webappbnd:WebAppBinding xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:webappbnd="webappbnd.xmi" xmi:id="WebAppBinding_1237946146690" virtualHostName="default_host">
- <webapp href="WEB-INF/web.xml#WebApp_1237946146690"/>
- <resRefBindings xmi:id="ResourceRefBinding_1238122581560" jndiName="wm/default">
- <bindingResourceRef href="WEB-INF/web.xml#ResourceRef_1238122581560"/>
- </resRefBindings>
- </webappbnd:WebAppBinding>
web.xml
- <resource-ref id="ResourceRef_1238122581560">
- <res-ref-name>wm/default</res-ref-name>
- <res-type>commonj.work.WorkManager</res-type>
- <res-auth>Container</res-auth>
- <res-sharing-scope>Unshareable</res-sharing-scope>
- </resource-ref>
2. Spring配置
注意:
- dataSource请不要使用Spring注入
- job bean需要实现Serializable接口以序列化
- <!-- 定义调度器 -->
- <bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
- <property name="triggers">
- <list>
- <ref local="myStatefulJobBean"/>
- </list>
- </property>
- <!--注入事务管理器-->
- <property name="transactionManager" ref="transactionManager"/>
- <!-- 引用配置文件 -->
- <property name="configLocation" value="classpath:conf/quartz.properties"/>
- <!-- 应用WorkManager -->
- <property name="taskExecutor" ref="taskExecutor"></property>
- </bean>
- <!-- 定义事务引用 -->
- <bean id="transactionManager" class="org.springframework.transaction.jta.WebSphereUowTransactionManager"/>
- <!--配置使用IBM commonj WorkManager-->
- <bean id="taskExecutor" class="org.springframework.scheduling.commonj.WorkManagerTaskExecutor">
- <property name="workManagerName" value="wm/default"/>
- <property name="resourceRef" value="false"/>
- </bean>
- <!-- 声明有状态Job-->
- <bean id="myStatefulJobBean" class="org.springframework.scheduling.quartz.JobDetailBean">
- <property name="jobClass" value="com.test.quartz.MyStatefulJobBean"/>
- </bean>
- <!-- 简单触发器 -->
- <bean id="hibernateTestTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
- <property name="jobDetail" ref="myStatefulJobBean"/>
- <property name="startDelay">
- <value>60000</value>
- </property>
- <property name="repeatInterval">
- <value>60000</value>
- </property>
- </bean>
job bean
- package com.test.quartz;
- import java.io.Serializable;
- import org.quartz.JobExecutionContext;
- import org.quartz.JobExecutionException;
- import org.quartz.SchedulerContext;
- import org.quartz.SchedulerException;
- import org.quartz.StatefulJob;
- import com.achievo.framework.workflow.HibernateSessionEnable;
- public class MyStatefulJobBean implements StatefulJob,Serializable{
- @HibernateSessionEnable
- public void execute(JobExecutionContext context) throws JobExecutionException {
- String triggerName = context.getTrigger().getName();
- String jobName = context.getJobDetail().getName();
- System.out.println("触发器"+triggerName+"触发作业"+jobName);
- }
- }
3. 配置quartz相关信息
配置JobStoreCMT 需要两个数据源: 容器管理的数据源 和 JDBC连接数据源
# to create a Quartz Scheduler Instance, if a different
# properties file is not explicitly specified.
#
org.quartz.scheduler.instanceName = MyClusteredScheduler
org.quartz.scheduler.instanceId = AUTO
org.quartz.scheduler.wrapJobExecutionInUserTransaction = false
#org.quartz.scheduler.userTransactionURL=jta/usertransaction
#org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.class = org.springframework.scheduling.quartz.LocalTaskExecutorThreadPool
#org.quartz.threadPool.threadCount = 10
#org.quartz.threadPool.threadPriority = 5
#org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = true
org.quartz.jobStore.misfireThreshold = 60000
#配置使用数据库存储调度信息 (JobStoreCMT 需要两个数据源)
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreCMT
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
org.quartz.jobStore.isClustered = true
org.quartz.jobStore.clusterCheckinInterval = 20000
org.quartz.jobStore.dataSource = wasDataSource
org.quartz.jobStore.nonManagedTXDataSource = oracleDS
org.quartz.jobStore.tablePrefix = QRTZ_
#配置容器管理的数据源
org.quartz.dataSource.wasDataSource.jndiURL = java:comp/env/jdbc/oracleDataSource
#org.quartz.dataSource.wasDataSource.java.naming.factory.initial=
#org.quartz.dataSource.wasDataSource.java.naming.provider.url=
#org.quartz.dataSource.wasDataSource.java.naming.security.principal=
#org.quartz.dataSource.wasDataSource.java.naming.security.credentials=
#配置非容器管理的数据源(JDBC数据源)
org.quartz.dataSource.oracleDS.driver = oracle.jdbc.driver.OracleDriver
org.quartz.dataSource.oracleDS.URL = jdbc:oracle:thin:@10.244.150.20:1521:orcl
org.quartz.dataSource.oracleDS.user = oracleuser
org.quartz.dataSource.oracleDS.password = password
org.quartz.dataSource.oracleDS.maxConnections = 5
org.quartz.dataSource.oracleDS.validationQuery = select 0 from dual
4. 创建调度表
在quartz下载目录docs/dbTables 目录下有针对各种数据库的sql script文件
本文使用oracle,所以登录oracle sqlplus 执行 @quartz下载目录/docs/dbTables/tables_oracle.sql
WebSphere 集群环境下配置 Quartz集群的更多相关文章
- windows单机环境下配置tomcat集群
场景:我们在平常联系中,需要涉及到tomcat中,但是电脑不够怎么办,肯定是在自己的电脑上模拟集群,就是装多个tomcat,这时候需要稍微配置下.如果是多个服务器,那不用配置,直接怼!!! 这里介绍的 ...
- 在Windows中单机环境下创建RabbitMQ集群
本文根据:http://www.360doc.com/content/15/0312/17/20874412_454622619.shtml整理而来 RabbitMQ具有很好的消息传递性能,同时又是开 ...
- redis 与java的连接 和集群环境下Session管理
redis 的安装与设置开机自启(https://www.cnblogs.com/zhulina-917/p/11746993.html) 第一步: a) 搭建环境 引入 jedis jar包 co ...
- quartz在集群环境下的最终解决方案
在集群环境下,大家会碰到一直困扰的问题,即多个 APP 下如何用 quartz 协调处理自动化 JOB . 大家想象一下,现在有 A , B , C3 台机器同时作为集群服务器对外统一提供 SERVI ...
- 在Hadoop1.2.1分布式集群环境下安装hive0.12
在Hadoop1.2.1分布式集群环境下安装hive0.12 ● 前言: 1. 大家最好通读一遍过后,在理解的基础上再按照步骤搭建. 2. 之前写过两篇<<在VMware下安装Ubuntu ...
- zookeeper集群环境安装配置
众所周知,Zookeeper有三种不同的运行环境,包括:单机环境.集群环境和集群伪分布式环境 在此介绍的是集群环境的安装配置 一.下载: http://apache.fayea.com/zookeep ...
- Ubuntu14(64位) 集群环境下安装Hadoop2.4
经过前边的积累,今天最终实现了集群环境下部署Hadoop.并成功执行了官方的样例. 工作例如以下: 两台机器: NameNode:上网小本,3G内存.机器名:YP-X100e,IP:192.168.1 ...
- docker环境下solrcloud+zookeeper集群部署教程
前言:两个月前的16年11月份完成的配置,使用的solr6.1和zookeeper3.4,刚刚写成blog,目前版本可能有小版本的变化. 本例完成结果为:在docker环境下部署solrcloud集群 ...
- weblogic 12C集群环境下的session复制
做过weblogic集群环境的人应该都清楚,要想实现session同步,必须满足两个条件:第一,在weblogic.xml里面增加session同步相关的代码:第二,所有放入session的类都要序列 ...
随机推荐
- 关于"user.dir"的认识
最近阅读了一些tomcat源码,看到tomcat在读取jar包外配置文件,是将“user.dir”的路径作为home path文件即 通过System.getProperty("user.d ...
- KVM虚拟化技术简介
kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中.它使用Linux自身的调度器进行管理,所 ...
- 3500常用汉字与标点符号(已排除不支持GB2312的)
.?!,.::“”‘’…()<>〈〉[].,:;!?-'_"'()[]<>|&~;+-*/=<>0123456789ABCEFGHIJKLMNOP ...
- C#隐式运行CMD命令(隐藏命令窗口)
原文 C#隐式运行CMD命令(隐藏命令窗口) 本文实现了C#隐式运行CMD命令的功能.下图是实例程序的主画面.在命令文本框输入DOS命令,点击"Run"按钮,在下面的文本框中输出运 ...
- iOS 复选框风格转换 Switchery 开关效果
Switchery 是个简单的 JavaScript 组件,只要几个简单的步骤就可以帮助用户把默认的 HTML 复选框转换成漂亮 iOS 7 样式风格.用户可以很方便的自定义这种转换,所以可以很好的配 ...
- Android Application 深入分析
http://blog.csdn.net/rain_butterfly/article/details/37598939
- reCAPTCHA 简单分析
CAPTCHA项目是Completely Automated Public Turing Test to Tell Computers and Humans Apart (全自动区分计算机和人类的图灵 ...
- cocos2dx 2.x 版本+Windows+ADT Bundle 配置
昨天解决了cocos2dx 3.x版本+Windows+ADT Bundle的配置,今天来解决cocos2dx 2.x版本的配置. 整体来说,2.x的配置相对麻烦一点,不过一旦解决了,就一路畅通无阻了 ...
- Learning Vector
题意: 给出n组x,y增量,从(0,0)开始以x,y坐标增加后等到的终点坐标,可以构成一个面积,再以这个终点为起点再增加,以此类推,使用增量顺序不同,得到的面积不,求用k组增量能得到的最大的面积. 分 ...
- SqlServer 列的增加和删除
有些时候我们需要删除或增加数据库中有数据中表的列.总结一下列的删除和增加. 1. 删除列 当表中存在数据时,删除列后,数据也会被删除. sql语句: alter table 表名 drop colum ...