论坛首页 入门讨论版 Java

websphere中的Scheduler使用笔记

浏览 568 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
时间:2007-10-17 关键字: Scheduler
资源底下->Scheduler 新建一个后,点击"创建表"、"验证表"。例JNDI名为:tfjtaskcall
配置一个无状态session bean。例JNDI名:TfjSchedule


调用代码:
InitialContext context;
try {
 out.println("test servlet initializing....");
 //begin to test schedule
 //1. init context
 context = new InitialContext();
 //2. lOOkup schedule using its jndi name
 Scheduler scheduler = (Scheduler) context.lookup("tfjtaskcall");
 //3. create Class BeanTaskInfo
 BeanTaskInfo taskInfo = (BeanTaskInfo) scheduler.createTaskInfo(BeanTaskInfo.class);
 //4. lookup sessoin bean using its jndi name
 Object obj = context.lookup("TfjSchedule");
 //5. Narrow session bean
 TaskHandlerHome home = (TaskHandlerHome) PortableRemoteObject.narrow(obj,TaskHandlerHome.class);
 //6. add the schedule implementation into taskinfo class
 taskInfo.setTaskHandler(home);
 //7. set UserCalendar for task
 Calendar now = Calendar.getInstance();
 taskInfo.setStartTime(now.getTime());
 //   taskInfo.setInitialState(BeanTaskInfo.RUNNING);
 //   taskInfo.setStartTimeInterval("0 * * * * ?");
 //   taskInfo.setRepeatInterval("0 * * * * ?");
 taskInfo.setRepeatInterval("20seconds"); //间隔20运行一次,格式为SIMPLE可这样设置
 taskInfo.setNumberOfRepeats( -1); //一直运行,不停止
 //   taskInfo.setUserCalendar("com/ibm/websphere/scheduler/calendar/DefaultUserCalendarHome", "SIMPLE");//CRON 设置格式,默认为SIMPLE
 //8. submit the task to scheduler
 TaskStatus ts = scheduler.create(taskInfo);
 out.println("user calendar is: " + taskInfo.getUserCalendarSpecifier());
 out.println("test servlet end.");

 out.println("...schedule taskId:" + ts.getTaskId());
 //9. cancle the task and purged immEDIatelly
 //scheduler.cancel(ts.getTaskId(),true);
 out.println("The schedule job has been created successfully!");
}
catch (Exception e) {
 e.printStackTrace(System.out);
}


一次启动,重启后将会自动启动
   
时间:2007-10-17
IBM帮忙:
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=/com.ibm.websphere.javadoc.doc/public_html/api/com/ibm/websphere/scheduler/TaskInfo.html
   
0 请登录后投票
时间:2007-10-21
根据经验,在集群环境中,Schedule必须得建立在某个节点上,而不是建立在多节点环境下, 要不然启动老不成功,会报以下错误:

The Scheduler tfjtaskcall has initialized.
The Scheduler Daemon for instance tfjtaskcall has started.
The Scheduler Service has completed starting the Schedulers.
Scheduler tfjtaskcall (tfjtaskcall) has lost its lease and will no longer run tasks on this application server. Tasks will now run on server bj-pay3Cell01\bj-bill3Node01\s51_server1.
DCS Stack DefaultCoreGroup at Member bj-pay3Cell01\bj-bill3Node01\s51_server3: Connected a defined member bj-pay3Cell01\bj-bill3Node01\s51_server4.
   
0 请登录后投票
论坛首页 入门讨论版 Java

跳转论坛:
JavaEye推荐