Websphere 下部署TimeManager

为了在J2EE Application中实现定时运行的程序,我们需要借助Timer类。可供选择的有java.util.Timer,Commonj Timer和 WebSphere Application Server Scheduler。对于这三者的比较网上有诸多资料(可参:http://www.ibm.com/developerworks/cn/java/j-lo-timer/)。
方式一,使用起来很简单,但是如果Application采用JNDI来访问data source,你将无法访问到。因为,java.util.Timer启用的线程为非保护县城,不受Web Application Server Web容器的管辖,所以从上下文环境Context中无法获取。但是仅采用JDBC是可以的。
方式三,没有尝试过,在此不作多说。
方式二,是我所采用的,部署在Websphere server 6.0的服务器上,实现上述部署需要完成一下步骤:
一、下载Commonj Timer所需jar包,commonj-twm.jar并在当前web应用下引用。
二、在 web.xml 中增加 Timer 的资源描述

<resource-ref>
    <res-ref-name>timer/MyTimer</res-ref-name>
    <res-type>commonj.timer.TimerManager</res-type>
    <res-auth>Container</res-auth>
    <res-sharing-scope>Unshareable</res-sharing-scope>
</resource-ref>


三、实现 TimerListener 接口。

import commonj.timers.Timer;
import commonj.timers.TimerListener;

public class TestTimerListener implements TimerListener {
    private String input;

    public TestTimerListener(String input) {
        this.input = input;
    }

    public void timerExpired(Timer timer) {
        Date timeValue = new Date();
        System.out.println("In timerExpired method, time is " 
		    + timeValue.toString() + ", input value is " + input);
    }
}


四、在servlet中调用

InitialContext ctx = new InitialContext();
TimerManager mgr = (TimerManager)
	ctx.lookup("java:comp/env/timer/MyTimer");
TimerListener listener =new TestTimerListener ("test");
// 启动计时器
mgr.schedule(listener, 1000*60); 


五、部署到Websphere时,需要为你TimerManager关联到Websphere服务器的一个计时管理器(通常Websphere服务器有个默认计时管理器JNDI名为tm/default)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值