交易是定義工作邏輯單位的物件。 只要有參考交易的句柄,交易就會處於作用中狀態,如果交易尚未認可或回復,就會將其視為作用中。 如果已建立交易,而且在認可或回復發生之前,已關閉其所有句柄,則會回復交易。
請考慮建立交易以限定其作業範圍之使用者模式交易客戶端的情況,然後在一或多個資源管理員上執行更新。 發生下列情況:
用戶端會呼叫 createTransaction函式,以建立交易,並接收該交易的句柄做為傳回值。
交易可以由任意數目的進程開啟或繼承;因此,每個進程都會參與交易。 其中任何一個進程的失敗會導致交易中止。
此交易可能尚未持續。 如果交易使用假設中止記錄,則只有已達到備妥狀態的交易才能在系統失敗期間復原。
用戶端必須明確地將交易傳遞至資源管理員。
用戶端會使用一或多個 RM 執行其所有交易式作業,例如交易文件系統。
資源管理員會收到 KTM 的通知,以準備並認可其數據。
交易和線程
交易與線程不同。 多個線程或進程可以是單一交易的一部分。 相反地,線程可以是不同時間數種不同交易的一部分。
交易函式
下列函式會與交易搭配使用。
| 功能 | 描述 |
|---|---|
| CommitTransaction | 要求認可指定的交易。 |
| CommitTransactionAsync | 要求認可指定的交易。 |
| CreateTransaction | 建立新的交易物件。 |
| GetTransactionInformation | 傳回所要求之指定交易的相關信息。 |
| OpenTransaction | 開啟現有的交易。 |
| RollbackTransaction | 要求復原指定的交易。 |
| RollbackTransactionAsync | 要求復原指定的交易。 此函式會以異步方式傳回。 |
| SetTransactionInformation | 設定指定之交易的交易資訊。 |