1. 程式人生 > >J2EE技術規範(六)——JTA(核心概念,ACID屬性)

J2EE技術規範(六)——JTA(核心概念,ACID屬性)

理解事務處理的核心概念

 什麼是事務?

  • 事務是一種機制,把成組的操作視為一個操作進行處理
  • 在事務處理中,要麼所有的操作都執行,要麼所有的操作都不執行
  • 在事務中涉及的操作可能依賴於很多不同的資料庫和伺服器

事務處理的ACID屬性

  • 事務是由一系列首字母縮略詞ACID屬性定義的
  • ACID代表:
    • Atomic 原子性
    • Consistent 一致性
    • Isolated 獨立性
    • Durable 永續性

我們來看一個例子:未使用事務的資金轉賬過程:

成功的轉賬:

失敗的轉賬過程:


我們看到失敗的轉賬過程:總額減少,賬戶達到不一致的狀態。

我們再看一下使用事務的成功轉賬過程:

A、將使用事務的變化進行緩衝


如果轉賬成功,將提交變化(使永久改變)


什麼是分散式事務

  • 一種資源,如資料庫,是由被稱為資源管理器(RM)的軟體控制的。
  • 本地事務是處理單個資源管理器的事務
  • 分散式事務是協同或橫跨多個資源管理器的事務
  • 多個資源管理器的協作是由事務管理器完成的
  • 事務通常是指事務上下文(transaction context)。

兩階段提交協議

  • 2PC(兩階段提交)協議使用兩個步驟提交一個分散式事務的變化
  • 階段1請求所有的資源管理器準備實現改變,如果其中任何一個沒有準備好,則該事務將異常中斷
  • 階段2請求所有的資源管理器實際提交併且實現永久的改變
  • 全域性事務ID(XID)用於跟蹤所有與分散式事務相關的改變。

XA(擴充套件的體系結構)

XA:

  • 是在WebLogic Server和資源管理器之間使用的介面
  • 實現兩階段提交協議
  • 允許程式設計控制由分散式事務所涉及的資源管理器


事務和資源管理器

  • 一個事務管理器協同幾個資源管理器


  • 兩階段提交協議被用於協同事務

我們看一下成功的兩階段提交:


我們很容易的看得出來:

階段1:準備階段

階段2:實現提交

我們這部分主要講解了事務的核心概念與ACID屬性。

相關推薦

J2EE技術規範——JTA核心概念ACID屬性

理解事務處理的核心概念  什麼是事務? 事務是一種機制,把成組的操作視為一個操作進行處理在事務處理中,要麼所有的操作都執行,要麼所有的操作都不執行在事務中涉及的操作可能依賴於很多不同的資料庫和伺服器 事務處理的ACID屬性 事務是由一系列首字母縮略詞ACID屬性定義的A

J2EE技術規範——JTA理解JTA編寫簡單的事務客戶程式

之前的內容中,寫了幾篇關於J2EE規範的部落格,現在繼續來完善這些內容,這次內容主要補充上一篇部落格。 WebLogic Server使用JTA1.0.1a實現和管理事務 WebLogic Server提供以下支援: 建立唯一的事務標記符(XID)支援可選的事務名稱跟

J2EE技術規範——JDBC

一、瞭解JDBC (1) JDBC是以統一方式訪問資料庫的API (2) JDBC提供:     獨立於平臺的資料庫訪問     位置透明     對專有資料庫的問題時透明的 二、瞭解JDBC驅動程式 (1) JDBC Drivers是實現資料庫操作的類

觸發器、instead of觸發器實現檢視增刪改

場景描述 開發中遇到一個情況:前臺頁面是一個角色對使用者的批量授權,其中使用者是多選,多選的結果是控制元件裡會填入逗號分隔的使用者ID字串,比如“TOM,JERRY”,最終要分別插入2張一對多的主從表中。 --主表 CREATE TABLE T_MAIN (

Redis 深入瞭解redis核心

### 記憶體淘汰 redis記憶體不足時,有兩種處理方式: (1)啟用虛擬記憶體:將vm-enabled設定為yes (2)啟用記憶體淘汰:將maxmemory設定為一個大於0的整數 redis的使用記憶體大於最大分配可用記憶體時,開始進行淘汰,memcache

第五天-css基礎浮動 網頁布局 定位方式清除定位

gin 相對 hid col 絕對定位 左右 color 問題 oot 基礎知識-css第五天,今天學習了css主要知識浮動,和定位,都是關於網頁布局的。這個2塊知識用好了,後期做好看的動畫,布局就不成問題了。 浮動left 浮動的框可以向左或是向右移動,直到它的邊緣碰到包

使用RabbitMQ放置自己定義對象不借助序列化工具比如protobufferV2.0

還原 pac 數據 展示 投放 模型 例如 erp per 怎樣使用RabbitMQ盛放自己定義的對象呢?一般都會使用序列化工具在投放之前轉換一次。從MQ取回的時候再逆序列化還原為本地對象。這裏使用C++自帶的強制類型裝換,將本地對象的內存模型當做自然的序列化之後的數據

Maven學習-- Maven的核心概念

pue nlj 人員 gbk provided spi vts 源代碼 -s 摘自:http://www.cnblogs.com/xdp-gacl/p/4051819.html 一、Maven坐標 1.1、什麽是坐標?   在平面幾何中坐標(x,y)可以標識平面中唯一的一

2017.11.30 Reat前後端數據交互之Button提交數據處理ajax方法單獨封裝成API不用Form

logs 處理 mage mongoose 技術 module strong 輸入框 reat 1.按鈕定義: 2.引入外部js文件(封裝了ajax方法的文件):註意目錄結構 3.調用ajax文件中的具體方法: 4.關於ajax文件中方法的編寫語法: 寫

26、【華為HCIE-Storage】--Hyper Clone不支持外部存儲同一控制器

HCIE Storage hostman ------------------------------------重要說明------------------------------------以下部分內容來網絡,部分自華為存儲官方教材具體教材內容請移步華為存儲官網進行教材下載 網絡引用內容

分塊簡單版樹狀數組線段樹

cli i++ lose 預處理 查詢 lan \n strong 格式 前言 首先,在NOIP的比賽裏分塊是一個很好的水分神器,因為它可以代替樹狀數組,線段樹,但是如果出題人要卡你的程序的話...... 分塊思想 包含n個元素的整數數組A,每次可以 C(i, j)

返回一個二維整數陣列中最大子陣列的和小組成員:侯誠超滕達

小組成員:侯誠超,滕達   設計思想 1.設計視窗:使用了textbox,button,Label視窗控制元件 2.程式編輯:(1).先編寫txt匯入程式,確保txt檔案能匯入到文字框中              

安裝caffe所用到的Makefileopencv裝得3.4.0cuda9.0

#在caffe目錄下輸入  sudo gedit Makefile,按照以下進行修改。   PROJECT := caffe CONFIG_FILE := Makefile.config # Explicitly check for the config file,

maven介紹作用核心概念用法常用命令擴張及配置

maven介紹(作用,核心概念,用法,常用命令,擴張及配置) maven作用,核心概念(pom,repositories,artifact,build lifecycle,goal),用法(archetype意義及建立各種專案),maven常用引數和命令以及簡單故障排除 1、maven的作用 &

LeetCode 124. Binary Tree Maximum Path Sum樹中最長路徑和遞迴

Given a non-empty binary tree, find the maximum path sum. For this problem, a path is defined as any sequence of nodes from some starting node t

滑鼠點選按鈕控制圖片移動或者鍵盤控制圖片移動解決問題:parseInt失效問題用Number

在測試用滑鼠點選按鈕,使圖片左右上下移動: 效果如下: 程式碼如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title><

【BZOJ4815】[CQOI2017]小Q的表格莫比烏斯反演分塊

【BZOJ4815】[CQOI2017]小Q的表格(莫比烏斯反演,分塊) 題面 BZOJ 洛谷 題解 神仙題啊。 首先\(f(a,b)=f(b,a)\)告訴我們矩陣只要算一半就好了。 接下來是\(b*f(a,a+b)=(a+b)*f(a,b)\) 這個式子怎麼看呢? \[\begin{aligned}

Spark學習- Spark Streaming核心概念與程式設計

文章目錄 核心概念之StreamingContext 核心概念之DStream 核心概念之Input DStreams和Receivers 基本資源 高階資源 核心概念之Transformat

緩衝區溢位漏洞CVE-2018-4407可導致核心崩潰蘋果多款作業系統均受影響

該漏洞使得攻擊者只要接入同一Wi-Fi網路,即可向其他毫不知情的使用者傳送惡意資料包來觸發任何Mac或iOS裝置的崩潰和重啟。由於該漏洞存在於系統網路核心程式碼,因此任何反病毒軟體均無法防禦。 執行以下作業系統的裝置易受攻擊: Apple iOS 11及更早版本:所有裝置(升級

5988 運用log轉乘法為加法費用流

Coding Contest A coding contest will be held in this university, in a huge playground. The whole playground would be divided into N blo