您的位置:首页 > 数据库

分布式数据库系统---商旅预定系统的实现(10)

2013-06-28 18:14 232 查看

事务存储

事务有了统一的规范和编码,下一步就需要考虑具体该怎样存储一个事务了。首先,一个操作有它的唯一编码,通过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;
        }
    }

一个事务的结构实体类




一个事务实体的结构图

一个事务里面包含了很多原子操作,每个原子操作对应自己的参数列表。而且在每一个原子操作后面都有一个是否成功的表示。当一个事务执行完毕后,程序会自动执行检查其是否每个操作都成功了,如果没有成功,那么整个操作将回退,事务执行结束。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: