问题描述
Inclientsidethereisablockwhichinvoketheremove()methodtodestorythestatefulsessionbean.Butifthenetworkisunavailablebeforetheremove()isinvoked,whatshouldwedotodestorythatstatefulseesionbeantoreleasetheresourcesithasoccupiedinordertonotcausememoryleak?Thanksforyourreply....
解决方案
解决方案二:
嗨,英文不行。帮不了你了~
解决方案三:
就是说:对于有状态会话bean,在客户端我们会写一个remove()去销毁这个bean来释放他所占用的资源。但是如果在客户端执行remove()之前,网络断掉了,那么为了收回资源,防止内存泄漏,有什么方法可以让jboss在服务器端自动销毁这个sessionbean?
解决方案四:
session.remove();session.invalidate();
解决方案五:
首先jboss如何得知网络断掉这种异常呢?
解决方案六:
做了实验,发现jboss根本捕获不到网络断掉的异常。。。
解决方案七:
建议用下事务管理机制!
解决方案八:
楼上可不可以说的仔细一点啊?
解决方案九:
楼主能不能设置失效时间,让系统发送请求给连接,如果没有反应,就remove。
解决方案十:
我个人的建议是在服务器端控制客户端的活动时间,用时间片段轮换给客户端使用,如果连续的不可达,则表示网络断开,这个控制都是服务器端定义使用
解决方案十一:
这是不是违背了ejb的初衷?回复8楼:不知道去哪里设置这个实效时间。。。jboss中的standardjboss.xml的那个30分钟的设置没看出起到什么作用,30分钟後,服务器并没有remove()那个sessionbean因为资源没有被释放,内存还是被占用着。jboss-service.xml中也只是设置transaction的实效时间这个应该是和数据库的交互时间吧,服务器在时间到期之后并没有remove()。另外,还有这个remove()在服务器端可以自己调用吗?
解决方案十二:
引用5楼leleconnie的回复:
做了实验,发现jboss根本捕获不到网络断掉的异常。。。
ifConnection.colse
解决方案十三:
justasisaidtoyouattheotherreplaywithchinese....
解决方案十四:
session.remove();session.invalidate();