分散式資料庫系統—商旅預定系統的實現(10)

來源:互聯網
上載者:User
事務儲存

       事務有了統一的規範和編碼,下一步就需要考慮具體該怎樣儲存一個事務了。首先,一個操作有它的唯一編碼,通過String類型來儲存ID編碼值。其次需要儲存的就是參數列表,因為每一個操作所需要的參數時不同的,所以考慮用List<String>是首選方案。

    具體代碼實現:

    /// <summary>    /// 儲存一次操作過程的所有方法編號和方法的參數列表    /// </summary>    [Serializable()]     public class TransactionEntity    {        public TransactionEntity()        {            TransactionID = new List<String>();            TransactionParam = new List<object[]>();            Success = new List<bool>();        }        /// <summary>        /// 清空內部的資訊        /// </summary>        public void Clear()        {            TransactionID.Clear();            TransactionParam.Clear();            Success.Clear();        }        //每一個方法編號,相當於hashtable裡面的KEY        private List<String> m_TransactionID;        public List<String> TransactionID        {            get;            set;        }        //對應方法編號的參數列表,相當於hashtable裡面的value        private List<object[]> m_TransactionParam;        public List<object[]> TransactionParam        {            get;            set;        }        //對應方法是否執行成功        private List<Boolean> m_Success;        public List<Boolean> Success        {            get;            set;        }    }

一個事務的結構實體類

 

一個事務實體的結構圖

 

        一個事務裡麵包含了很多原子操作,每個原子操作對應自己的參數列表。而且在每一個原子操作後面都有一個是否成功的表示。當一個事務執行完畢後,程式會自動執行檢查其是否每個操作都成功了,如果沒有成功,那麼整個操作將回退,事務執行結束。

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.