我在客户端的finally block里面调用了有状态会话bean的remove()保证了这个session bean在用完之后能够释放资源。
但是现在有一个问题,如果在客户端执行finally block之前 网络断了,
1.server端的ejb container 会自动调用ejbRemove()方法吗?
2.这个原理是怎样的?
3.或者说应该在服务器端写一个方法来捕获一些超时异常,然后再调用ejbRemove()?
4.如果服务器会在一段时间后自动调用ejbRemove(),那么我的ejbRemove()方法里面不能是空的,对不对?那里边应该怎么写呢?
但是现在有一个问题,如果在客户端执行finally block之前 网络断了,
1.server端的ejb container 会自动调用ejbRemove()方法吗?
2.这个原理是怎样的?
3.或者说应该在服务器端写一个方法来捕获一些超时异常,然后再调用ejbRemove()?
4.如果服务器会在一段时间后自动调用ejbRemove(),那么我的ejbRemove()方法里面不能是空的,对不对?那里边应该怎么写呢?
解决方案 »
- 文件删除时怎么支持通配符?? Java
- 最近领导让我用hibernate+Spring整合做个模块,但是不是很熟悉,会,但是不是很精通..大家有什么速成的好书或者资料推荐么,只有五天时间。
- 这是神马情况?求SSh大神···(空指针)
- 关于structs+hibernate+spring我迷惘了!!!!
- 高分求助:用poi生成Excel,如何才能保护工作表??
- tomcat5,配置好后管理工具Administration和Manager的用户名和密码是什么??
- 一个怪问题.
- 寻找空间,请大家帮我推荐一下!
- 一个可能是struts的bug的问题
- gson出问题..求大牛啊!!!
- 跪求,开发sip的代理服务器(proxy),大家给我点意见!
- 刚做了个BBS遇到问题了,急死了~~~~~
2、具体原理可以参照垃圾回收机制
3、不需要捕获,EJB容器内置,见第一点
4、服务器调用的REMOVE是针对与该客户端交互的SESSION BEAN ,因此不需要管。
如果程序正常执行完的话,在服务器端执行完那条命令,资源占用为零。
但是,在执行到builder.remove()之前把网线拔掉,过两个小时之后,再用相同的jmap命令检查,资源还是被占用着的,所以看起来那个延迟没有起作用。