不明白
u.setAutoCommit(false)
while{
...
u.commit();
}
u.setAutoCommit(true);
u.setAutoCommit(false)
while{
...
u.commit();
}
u.setAutoCommit(true);
解决方案 »
- websevice服务获取SOAP消息并解析
- 分布式日志处理的模块的疑问
- 再发一贴球ext combo取值问题
- 谁能把这个flash制作思路给小弟讲一下分全部给他。详细点好
- 刚学完struts 下一步求指导。
- Hibernate里面的乱码问题
- 如何编程监控应用服务器的运行状态,并能在死机后自动重启
- 也许不该在这里问
- 求VE/GEF/EMF/Eclipse3.0M8的下载地址(速度较快的官方镜像或非官方)
- [[${#httpServletRequest.remoteUser}]]这个怎么理解?
- 哪里有EJB2.0的规范(中文)?EJB2.0与1.0的区别在哪里?
- 哪位大下指点一下:J2EE的含义
这次咱们一起来讨论这问题吧
我没有采用BEAN的事物属性,是在客户端控制事物机制
以前是成功的,现在不知为什么出问题了。
这里是不是与客户端的事物控制与BEAN的事物控制有冲突啊!
个人见解,供参考。
有人对这个问题感兴趣吗?
你为什么要在JAVABEAN端来手工管理事物呢?
建议最好不要在手工管理事务的SESSION BEAN中调用EntityBean,代替的方法是直接操作数据库!
在现在的情况下,我只是想明白,客户端控制的事物能否实现。
环境如前有说述。
请教!
Session Bean本来就是客户端程序的一种扩展
你将调用数据库的方法等功能封装在Session Bean的事务方法中,再由客户端来调用,难道不能实现吗?
不要理会JDO,JDO是Java Data Object,它从长远来看可以是EntityBean容器的一个很好实现技术,并不能完全取代EntityBean。而且JDO的事务处理不是分布式的,不能满足你的要求。
“要调用多个对数据库操作的方法也可以将业务逻辑封装在Session Bean中呀
Session Bean本来就是客户端程序的一种扩展
你将调用数据库的方法等功能封装在Session Bean的事务方法中,再由客户端来调用,难道不能实现吗?”
这是个很好的建议,尤其从性能上而言,SessionBean往往和EntityBean在一个容器中,因此EJB容器可以进行优化。
看来,需要在SessionBean来管理事务的划分。
由于J2EE不支持套用事务,准备把JavaBean中的事务控制去掉
贴子加分60,总分80,以答谢各位费心解答。
希望能深入讨论清楚EJB的各种事务机制。
希望感兴趣的朋友们踊跃参加。
因为J2EE强于在服务端做事务
这样效率最高你想想:
A
B
C
三个操作都是远程操作,如果在客户端作事务,需要3次远程交互后才能确定是否提交,从效率上是不佳的
在服务端,如SESSION BEAN中做事务,是极其容易的事,从效率上讲也强
从理论上来看,在客户端进行事物控制也成,姑且不谈效率的问题。
至于,现在我遇到的更新回滚成功,插入回滚不成功的的现象
我估计和CMP的EntityBean的Create方法未被客户端的事物控制,
至于为什么会这样,我再查查资料。
因为CMP的EntityBean中的所有方法都定义的同样的Request属性
没有道理,对数据库的Update和Insert方法会有不同。
再问一下,EJB与数据库交互并没有用到DataSource,这有什么关系吗?
因为配的DataSource是供SQL与数据库交互用的.
Thanks everyone.
simoncn is right,My DataSource should configured under TX_DataSource.
--EJB Container is using DataSource to obtain JDBC Connection. Stupid Weblogic architecture requries you explicitly specify the DataSource is should be managed by TPM.