求助:EBJ与多线程
现在遇到了一个很棘手的问题,跪求各位大侠帮助!
现在我们的系统要做一个定时任务,简单来说就是数据拷贝。每隔五分钟这个定时任务启动,然后从容器中获得一个EJB对象(假设叫做EJBCopyDataJob),调用EJBCopyDataJob里面的一个startCopyDataJob方法,开始数据拷贝。由于涉及到业务处理,我们不能简单的只是拷贝数据,而是必须通过调用其他EJB对象的方法来实现数据拷贝。伪代码如下:
startCopyDataJob(){
for(...){
EJBBussinessBean bean=EJBContainer.getEJBBussinessBean();
bean.bussinessLogic();
}
}
由于现在是单线程处理,所以startCopyDataJob里面的循环只能一条一条的处理,速度很慢,现在想换成多线程的方式:
startCopyDataJob(){
for(...){
EJBBussinessBean bean=EJBContainer.getEJBBussinessBean();
MyThread t=new MyThread(bean);
t.start();
}
}
现在自己按照上面的方式简单的尝试了一下,但是出现了很多错误,包括事务,连接池,死锁等等。
后来上网简单的搜索了一下,都说EJB好像是不支持多线程的。但是现在自己又找不到解决效率的方法。在此跪求各位大侠帮助,小弟感激不尽!