San*_*dal 3 java ejb transactions stateless-session-bean
关于EJB的问题:
假设我有一个具有无限循环的会话bean.它在EJB事务下运行.现在当EJB的事务超时时,会导致无限循环线程中断或容器将停止运行无限循环的线程.
现在当EJB的事务超时时,会导致无限循环线程中断或容器将停止运行infinte循环的线程.
这个答案基于我在OC4J 10.3.x,WebSphere 6.x和WebLogic 10.x上执行了几年的逆向工程,并且可能以类似的方式应用于其他容器.据我所知,事务超时检测在不同容器中的实现方式不同,但它们都采用了如下所述的某些共同原则:
XAResource
实例)进行交互以执行某些工作(例如,发出SQL查询)时,容器将确定事务已标记为回滚,并会抛出一个TransactionRolledBackException
.基于以上所述,可以推断,除非TransactionRolledBackException
抛出a,否则无限循环永远不会被破坏.换句话说,只有在循环内尝试事务活动时才会中断循环; 如果没有执行这样的活动,那么循环将保留它的属性以无限期地执行.
请注意,某些容器(如WebLogic)允许检测"卡住"线程.这意味着此类容器能够检测线程是否已执行超过配置持续时间的延长时间段.这并不意味着容器在检测到一个卡住时会终止或中断线程.
归档时间: |
|
查看次数: |
8100 次 |
最近记录: |