Jboss 7 Destroy Singleton EJB


@Startup
@Singleton
@AccessTimeout(value = 0)
public class MyEJB {
@Schedule(dayOfWeek = "*", hour = "*", minute = "*", second = "*/20", year = "*", persistent = false, info = "MyEjb Job.................")
    @AccessTimeout(value = 0)
    public void execute() {
        try {
            lgg.debug("starting...........");
            Thread.sleep(35000);
            lgg.debug("ending.............");
        } catch (InterruptedException e1) {
        }
}

我有以下代码。我想在20秒后停止(销毁)当前的EJB工作,然后启动另一个Singltone EJB实例。如何实现?

这是不可能的。您不能安全地强制螺纹在JVM中停止,并且EJB中没有任何机制可以中断线程。您能做的最好的方法是合作中断:调用Singleton上的另一种方法以通知其醒来(也就是说,将螺纹。sleep更改为诸如CountDownLatch之类的其他东西)。请注意,您需要更改默认的@Lock@ConcurrencyManagement才能重新进入BEAN。

最新更新