finally里面的东西写起来有学问,要把ResultSet, statement,connection分别判断,并用分别用Try去close.否则可能关闭前面的对象的时候就遇到异常了,后面的语句无法执行。别忘了对Context执行setRollbackOnly().

解决方案 »

  1.   

    我用的是weblogic8.1服务器.容器的分布式事务在我们控制代码的外层,想控件它不知有没有什么方法。
    我现在到是有一个方法,但我感觉不能很好,就是把数据库连接放在实例的成员变量,每个方法开始前使用数据源得到连接,赋于这个数据库连接实例成员,然后在方法中使用这个连接,如果事务超时失败,在调用ejb的客户端调用代码中,捕获,并调用ejb中的一个专门关闭数据资源的方法.关闭所有的数据库资源。但本实例用在无状态的sessionBean中可以,如果用在有状态的sessionBean还要考虑,激活和钝化。不知还有没有什么好的方法.如果用上面的方法,客户端调用代码会变的更复杂。谢谢