Transactions and Exceptions

原创 2007年09月22日 22:52:00

Exceptions and Transactions
异常对事务的结果有很大的影响。
Application Exceptions Versus System Exceptions

系统异常代表未知的内部错误。当应用服务器发生内部错误时,EJB容器就会抛出系统异常。如

果希望终止业务流程的执行,业务逻辑也是可以抛出系统异常的。应用异常通常是业务逻辑的一

部分。他们代表了经过强类型定义之后的业务领域的特定问题或错误,这些问题或错误是不需要

终止或回滚的业务流程的。

系统异常
系统异常包括java.lang.RuntimeException及其子类(EJBException是RuntimeException的一个

子类)和java.rmi.RemoteException及其子类。RuntimeException子类和RemoteException子类

的区别在于,前者可藉由@java.ejb.ApplicationException注解转化为应用异常。

不标注@ApplicationException的RuntimeException都将由容器自动从方法中抛出,并引起事务

回滚。所以我们无需抛出也无需捕获。

容器在自动处理系统异常时,通常会做如下几件事情:
1.回滚事务
2.将异常记录到日志中,以警示系统管理员
3.丢弃EJB实例
丢弃EJB实例对SLSB影响不大,对SFSB影响非常严重。

作为经验法则,请将非业务子系统的异常(比如JDBC抛出的SQLException,或者JMS抛出

JMSException)作为EJBException(或者是可以引起回滚的@ApplicationException异常)重新

抛出,并允许EJB容器自动回滚事务,将bean实例丢弃。

应用异常
我们可以使用@java.ejb.ApplicationException注解来强制要求应用异常自动回滚事务:
此注解同样也可用于RuntimeException和RemoteException的子类。这一点非常有价值,因为你

可能并不希望将抛出的RuntimeException包装成EJBException,或者不希望某个

RemoteException的子类回滚事务。 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Distributed transactions in Spring, with and without XA

While it's common to use the Java Transaction API and the XA protocol for distributed transactions ...

SIP transactions and dialogs

理解事务(transaction)和对话(dialog)之间的区别是非常重要的。因为我们将在OpenSIPS脚本中使用它们。例如,有键值对属性依附于事务,有对话变量依附于对话。如果你不能识别对话和变量...

Large-scale Incremental Processing Using Distributed Transactions and Notifications

Percolator 中的分布式事务 下一代大规模增量索引平台 – Percolator   简介 继google的3大基石GFS, MapReduce,Big...

How To Join XLA_AE_HEADERS and RCV_TRANSACTIONS(子分类账到事务处理追溯)

转自:http://www.cnblogs.com/toowang/p/3346831.html Applies to:   Oracle Inventory Management - Vers...

Spring with Hibernate persistence and transactions example

In this tutorial you will learn how to implement Hibernate persistence using the Spring framework in...

Unit of work, Transactions and Grails

grails,transaction

知识库--Collections and Transactions Using TransactionalMap(136)

Akka && Java && Collections && Transactions 集合事务 public class Scores { final private T...

Optimizing Data Access and Messaging-Performing Entity Group Transactions

http://msdn.microsoft.com/en-us/library/dd894038.aspx Updated: September 13, 2011 The Tabl...

<Ejb3InAction> Sample06 for Weblogic - Transactions and Security

0. Prerequisite It is pity that this chapter has no sample, I add one by myself, just for security...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)