`
fansfirst2008
  • 浏览: 95552 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

从tomcat 的数据源组件获得连接,自动管理事务回滚

阅读更多

背景:java代码事务处理中,事务属性设置为手动提交,但是居然没有发现事务回滚,只有提交动作!服务器为tomcat,配置数据源为oracle!

 

疑问有二:1.如果一个事务调用oarcle存储过程正常,但是java代码有抛出异常,此代码能否自动回滚?

             2.如果一个事务中调用两次存储过程,第一个无误,第二个plsql代码有误,那么这个事务能否回滚?

 

针对这两个疑问,我手动写了些测试用例,但是是直接连接数据库的!

事实证明:如果没有回滚动作,那么事务是不正常执行的!

于是推理出,那些没有回滚的java代码是不严谨的!

 

但是当选用tomcat配置数据源获得连接时,似乎是没有事务异常,与之前的结论不符!

难道tomcat可以针对抛出异常的代码,会自动回滚事务?因为没有底层代码,所以这是有可能的!

 

但是当我不关闭数据库连接时,因为抛出异常,没有正常提交时,数据库肯定不会自动回滚的!

于是猜测:tomcat数据源获得的连接,close()函数并没有直接关闭数据库连接,而只是把它放到连接池中!

而且不会有提交这个动作!

 

这个是否是与close函数不符的地方呢?

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics