1. 程式人生 > >Spring事務的7個傳播行為,4個隔離級別

Spring事務的7個傳播行為,4個隔離級別

Spring事務的傳播行為和隔離級別[transaction behavior and isolated level]

Spring中事務的定義: 

一、Propagation 

key屬性確定代理應該給哪個方法增加事務行為。這樣的屬性最重要的部份是傳播行為。有以下選項可供使用:

PROPAGATION_REQUIRED--支援當前事務,如果當前沒有事務,就新建一個事務。這是最常見的選擇。 

PROPAGATION_SUPPORTS--支援當前事務,如果當前沒有事務,就以非事務方式執行。 

PROPAGATION_MANDATORY--支援當前事務,如果當前沒有事務,就丟擲異常。 

PROPAGATION_REQUIRES_NEW--新建事務,如果當前存在事務,把當前事務掛起。 

PROPAGATION_NOT_SUPPORTED--以非事務方式執行操作,如果當前存在事務,就把當前事務掛起。 

PROPAGATION_NEVER--以非事務方式執行,如果當前存在事務,則丟擲異常。 

很多人看到事務的傳播行為屬性都不甚瞭解,我昨晚看了j2ee without ejb的時候,看到這裡也不瞭解,甚至重新翻起資料庫系統的教材書,但是也沒有找到對這個的分析。今天搜尋,找到一篇極好的分析文章,雖然這篇文章是重點分析PROPAGATION_REQUIRED 和 PROPAGATION_REQUIRED_NESTED的 

解惑 spring 巢狀事務

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 /**  * @author 王政  * @date 2006-11-24  * @note 轉載自http://www.iteye.com/topic/35907?page=1  */ ********TransactionDefinition 介面定義*******************  /**    * Support a current transaction, create a new one if none exists.    * Analogous to EJB transaction attribute of the same name.    * <p>This is typically the default setting of a transaction definition.    */    int PROPAGATION_REQUIRED = 0;    /**    * Support a current transaction, execute non-transactionally if none exists.    * Analogous to EJB transaction attribute of the same name.    * <p>Note: For transaction managers with transaction synchronization,    * PROPAGATION_SUPPORTS is slightly different from no transaction at all,    * as it defines a transaction scopp that synchronization will apply for.    * As a consequence, the same resources (JDBC Connection, Hibernate Session, etc)    * will be shared for the entire specified scope. Note that this depends on    * the actual synchronization configuration of the transaction manager.    * @see org.springframework.transaction.support.AbstractPlatformTransactionManager#setTransactionSynchronization   */    int 

相關推薦

Spring事務7傳播行為4隔離級別

Spring事務的傳播行為和隔離級別[transaction behavior and isolated level] Spring中事務的定義:  一、Propagation  key屬性確定代理應該給哪個方法增加事務行為。這樣的屬性最重要的部份是

理解 spring 事務傳播行為與數據隔離級別

spa 之間 項目 ext 基本 lock bbb 事務管理 only 事務,是為了保障邏輯處理的原子性、一致性、隔離性、永久性。 通過事務控制,可以避免因為邏輯處理失敗而導致產生臟數據等等一系列的問題。 事務有兩個重要特性: 事務的傳播行為 數據隔離級別 1、事務傳播

spring 事務的七中傳播行為五中隔離

eth 事務隔離級別 true 操作 似的 拋出異常 default res pla 事務的傳播行為(七): public enum Propagation { REQUIRED(TransactionDefinition.PROPAGATION_REQUIRED

spring事務(Transaction)的七種事務傳播行為及五種隔離級別

1. 首先,說說什麼事務(Transaction) 事務,就是一組操作資料庫的動作集合。事務是現代資料庫理論中的核心概念之一。 如果一組處理步驟或者全部發生或者一步也不執行,我們稱該組處理步驟為一個事務。 當所有的步驟像一個操作一樣被完整地執行,我們稱該事務被

spring4事務特性5種隔離級別7傳播行為

spring事務: 什麼是事務: 事務邏輯上的一組操作,組成這組操作的各個邏輯單元,要麼一起成功,要麼一起失敗. 事務特性(4種): 原子性 (atomicity):強調事務的不可分割. 一致

spring4事務特性、4隔離級別7傳播行為

1.事務概念事務是程式中一系列嚴密的操作,所有操作執行必須成功完成,否則在每個操作所做的更改將會被撤銷,這也是事務的原子性(要麼成功,要麼失敗)。2.事務特性(4種)事務特性分為四個:原子性(Atomi

Spring學習34】Spring事務(4):事務屬性之7傳播行為

事務傳播行為 什麼叫事務傳播行為?聽起來挺高階的,其實很簡單。 即然是傳播,那麼至少有兩個東西,才可以發生傳播。單體不存在傳播這個行為。 事務傳播行為(propagation behavior)指的就是當一個事務方法被另一個事務方法呼叫時,這個事務方法應該

spring事務7傳播行為整理一下方便記憶

事務的傳播行為分為三種類型: 1.建立型的:巢狀建立、掛起建立、加入建立 巢狀建立(nested):存在當前事務則巢狀建立,不存在就新建。 掛起建立(requires_new):存在當前事務則掛起

數據庫事務4隔離級別7傳播行為

事物 程序 單位 oracle 異常 邏輯 封裝 supported dbms   隔離級別越高,越能保證數據的完整性和一致性,但是對並發性能的影響也越大。對於多數應用程序,可以優先考慮把數據庫系統的隔離級別設為Read Committed。它能夠避免臟讀取,而且具有較

MYSQL資料庫事務4隔離級別7傳播行為

事務的特性: 原子性:事務的不可分割,組成事務的各個邏輯單元不可分割。 一致性:事務執行的前後,資料完整性保持一致。 隔離性:事務執行不應該受到其他事務的干擾。 永續性:事務一旦結束,資料就持久化到資料庫中。 檢視/設定隔離級別    檢視:SELECT @@tx

事務的5隔離級別7傳播行為

隔離級別: 1、ISOLATION_DEFAULT: 預設的隔離級別,使用資料庫預設的事務隔離級別 . 另外四個與 JDBC 的隔離級別相對應 2、ISOLATION_READ_UNCOMMITTED: 這是事務最低的隔離級別,它充許別外一個事務可以看到這個事務未提交的資料。

Spring事務的(特性,傳播行為隔離級別不合理現象丟失更新案例..)

事務 事務的特性4個: 原子性   事務必須是原子工作單元;對於其資料修改,要麼全都執行,要麼全都不執行。通常,與某個事務關聯的操作具有共同的目標,並且是相互依賴的。如果系統只執行這些操作的一個子集,則可能會破壞事務的總體目標。原子性消除了系統處理操作子集的可能性

Spring的四種事務特性五種隔離級別七種傳播行為

Spring事務:什麼是事務:事務邏輯上的一組對資料對操作,組成這些操作的各個邏輯單元,要麼一起成功,要麼一起失敗。事務特性(4種):原子性(atomicity):強調事務的不可分割;一致性(consistency):事務的執行前後資料的完整性保持一致;隔離性(isolati

資料庫事務4隔離級別7傳播行為

如果使用鎖機制來實現這兩種隔離級別,在可重複讀中,該sql第一次讀取到資料後,就將這些資料加鎖,其它事務無法修改這些資料,就可以實現可重複 讀了。但這種方法卻無法鎖住insert的資料,所以當事務A先前讀取了資料,或者修改了全部資料,事務B還是可以insert資料提交,這時事務A就會 發現莫名其妙多了一條之前

spring事物的7傳播行為

@Transactional之propagation      Propagation支援7種不同的傳播機制:      REQUIRED -- required                業務方法需要在一個事務中執行,如果方法執行時,已處在一個事務中,那麼就加入該事務

事務的特性事務隔離級別傳播行為為什麼要有隔離級別

事務(Transaction)概念:一個sql語句就是一個事務,事務可以保證一組sql語句要麼都成功,要麼都失敗。事務,就是一組操作資料庫的動作集合。事務是現代資料庫理論中的核心概念之一。如果一組處理步驟或者全部發生或者一步也不執行,我們稱該組處理步驟為一個事務。當所有的步驟

事務457——事務的七傳播行為

繼上一篇文章,我們講到了事務的傳播行為,具體是那七個。我們在羅列一遍: PROPAGATION_REQUIRED 如果存在一個事務,則支援當前事務。如果沒有事務則開啟一個新的事務。 PROPAGATION_SUPPORTS 如果存在一個事務,支援當前

事務的七傳播行為

PROPAGATION_REQUIRED 如果存在一個事務,則支援當前事務。如果沒有事務則開啟一個新的事務。 PROPAGATION_SUPPORTS 如果存在一個事務,支援當前事務。如果沒有事務,則非事務的執行。但是對於事務同步的事務管理器,PROPAG

雲計算之路-阿裏雲上:攻擊又來了4IP分別遭遇超過30G的流量攻擊

text htm 依次 lan cmt news 遭遇 target 正常 繼5月13日下午被攻擊之後,今天下午,攻擊又肆無忌憚地來了,14:35、14:39、14:40、14:41 ,依次有4個IP遭遇超過30G的流量攻擊,被阿裏雲“雲盾”關進

如何拉動內需擊中客戶深層需求4經典案例分析!

推銷員 機器 介紹 維生素 電話銷售 -s 綜合 就會 沒有 (第三個醫患案例僅作為啟發,不倡導醫生為之,在此聲明) 導讀:客戶的需求往往是多方面的、不確定的,需要去分析和引導。客戶的需求是指通過買賣雙方的長期溝通,對客戶購買產品的欲望、用途、功能、款