使用JOTM實現分布式事務管理 多資料來源

2021-04-09 09:29:56 字數 1051 閱讀 8034

使用spring和hibernate可以很方便的實現乙個資料來源的事務管理,但是如果需要同時對多個資料來源進行事務控制,並且不想使用重量級容器提供的機制的話,可以使用jotm達到目的.

jotm的配置十分簡單,spring已經內建了對jotm的支援,一.

首先定義如上的兩個bean,利用spring對jotm進行初始化.

二.接下來定義所需的資料來源

oracle.jdbc.driver.oracledriver

jdbc:oracle:thin:@192.168.1.224:1521:speed 5

2stms

speed

三.如果還需要定義多個資料來源的話,就照如上的格式定義即可.

org.hibernate.dialect.oracle9dialect

mysessionfactory使用datasource這個資料來源

五.定義乙個進行事務控制的**

六.以上都是一些準備工作,完成後,接下來就可以對我們自己的需要進行事務控制的bean進行定義了

hqlexecutor1使用mysessionfactory來對資料來源進行操作

而hqlexecutor2使用mysessionfactory2來對資料來源進行操作

tt這個bean中使用了hqlexecutor1和hqlexecutor2來進行操作.

看一下配置例項

<?xml version="1.0" encoding="utf-8"?>

oracle.jdbc.driver.oracledriver

jdbc:oracle:thin:@192.168.1.224:1521:speed 5

2stms

speed

org.hibernate.dialect.oracle9dialect

oracle.jdbc.driver.oracledriver

jdbc:oracle:thin:@192.168.1.224:1521:speed 5

2swms

speed

org.hibernate.dialect.oracle9dialect

事務管理之分布式事務

當資料庫單錶一年產生的資料超過1000w,那麼就要考慮分庫分表,具體分庫分表的原理在此不做解釋,以後有空詳細說,簡單的說就是原來的乙個資料庫變成了多個資料庫。這時候,如果乙個操作既訪問01庫,又訪問02庫,而且要保證資料的一致性,那麼就要用到分布式事務。所謂的soa化,就是業務的服務化。比如原來單機...

分布式事務管理 筆記

1.分布式事務的特點 全域性事務 分布式資料庫的事務。乙個全域性事務在執行時分解為由若干與相應站點有關的操作序列組成的 子事務 和集中式事務一樣,都要有 原子性 隔離性 一致性 永續性 還要注意的是 系統效率 系統可用性 既不能影響本站點上事務的執行,也不能影響其他站點上事務的執行 2.分布式事務 ...

分布式事務 分布式事務的實現

如果在多個服務中需要對不同的資料庫進行操作。因為不同服務操作的資料庫都不同,所以保證在同乙個事務中完成操作顯然是不科學的。那實現分布式事務的思想 1 方法入口,建立一條日誌記錄,狀態定義為初始狀態,即儲存本條日誌記錄 可以儲存在資料庫中,也可以寫出到本地磁碟檔案 2 可以在非同步執行緒或在定時任務中...