WEB开发网
开发学院操作系统Linux/Unix 如何实现WebSphere Application Server 6集群环境... 阅读

如何实现WebSphere Application Server 6集群环境下的定时服务

 2010-09-27 08:31:05 来源:WEB开发网   
核心提示: com.ibm.websphere.scheduler.TaskHandlerHomecom.ibm.websphere.scheduler.TaskHandler通过使用以下示例工厂方法创建 BeanTaskInfo 接口的一个实例, 使用 JSP 文件、servlet 或 EJB 组件创建实

com.ibm.websphere.scheduler.TaskHandlerHome
com.ibm.websphere.scheduler.TaskHandler

通过使用以下示例工厂方法创建 BeanTaskInfo 接口的一个实例。 使用 JSP 文件、servlet 或 EJB 组件创建实例,如以下代码示例所示。此代码必须与先前创建的 TaskHandler EJB 模块位于同一应用程序中:

Object schedulerObj = initialContext.lookup("java:comp/env/Scheduler");
BeanTaskInfo taskInfo = (BeanTaskInfo) schedulerObj.createTaskInfo(BeanTaskInfo.class)

注: 创建 BeanTaskInfo 对象并不会将任务添加到持久存储中。它将为必要的数据创建一个占位符。直到调用调度程序中的 create() 方法,才会将任务添加到持久存储中。设置 BeanTaskInfo 对象中的参数。 这些参数定义了调用哪些会话 bean 以及何时调用它们。TaskInfo 接口包含可用于控制任务执行的各种 set() 方法,其中包括运行任务的时间以及运行任务时它执行的操作。

BeanTaskInfo 接口要求使用 setTaskHandler 方法设置 TaskHandler JNDI 名称或 TaskHandlerHome。如果使用 WASScheduler MBean API 来设置任务处理程序,则 JNDI 名称必须是标准的全局 JNDI 名称。

使用 TaskInfo 接口 API 方法设置参数,如以下代码示例所示:

java.util.Date startDate = new java.util.Date(System.currentTimeMillis()+30000);
Object reportGenHomeObj = initialContext.lookup("java:comp/env/ejb/ReportGenerator");
TaskHandlerHome reportGenHome = (TaskHandlerHome)PortableRemoteObject.narrow
(reportGenHomeObj,TaskHandlerHome.class); taskInfo.setTaskHandler(home);
taskInfo.setStartTime(startDate);
scheduler.create(taskInfo);

那么EJB容器将在当前时间的30000毫秒后触发process方法,在taskinfo里面可以设置一些其他schduler的属性,比如运行次数,运行间隔等。

文章里涉及的J2EE标准的定时服务程序在附件的testTimer.ear里面,使用WAS Scheduler的程序在附件的AccountReport.ear里。其中AccountReport.ear是使用WAS自带的Sample程序修改后的程序。

上一页  3 4 5 6 7 8 

Tags:如何 实现 WebSphere

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接