コード例 #1
0
        public void DeleteEntityList(List <string> ids, ReckoningTransaction trans)
        {
            if (Utils.IsNullOrEmpty(ids))
            {
                return;
            }
            //陈武民修改 修改时间 2009年07月09日
            // TransactionManager tm = TransactionFactory.GetTransactionManager();
            //tm.BeginTransaction();

            try
            {
                // DataRepository.BdUnReckonedDealTableProvider.Delete(tm, id);
                // tm.Commit();
                BD_UnReckonedDealTableDal dal = new BD_UnReckonedDealTableDal();



                //lock (((ICollection) hasSendSet).SyncRoot)
                //    hasSendSet.Remove(id);

                hasSendSetLock.EnterWriteLock();
                try
                {
                    foreach (var id in ids)
                    {
                        dal.Delete(id, trans.Database, trans.Transaction);
                        hasSendSet.Remove(id);
                        LogHelper.WriteDebug("$-------$CrashManger.DeleteEntity成交回报删除成功!ID=" + id);
                    }
                }
                finally
                {
                    hasSendSetLock.ExitWriteLock();
                }
            }
            catch (Exception ex)
            {
                LogHelper.WriteError("$-------$CrashManager.SaveEntity成交回报删除失败!", ex);
                //tm.Rollback();
            }
        }
コード例 #2
0
        private void SaveEntity(BD_UnReckonedDealTableInfo table)
        {
            //陈武民修改 修改时间 2009年07月09日
            table.CounterID = CountID;
            BD_UnReckonedDealTableDal dal = new BD_UnReckonedDealTableDal();

            //TransactionManager tm = TransactionFactory.GetTransactionManager();
            //tm.BeginTransaction();

            try
            {
                dal.Add(table);
                // DataRepository.BdUnReckonedDealTableProvider.Insert(tm, table);
                //tm.Commit();
            }
            catch (Exception ex)
            {
                LogHelper.WriteError("$-------$CrashManager.SaveEntity成交回报保存失败!", ex);
                //tm.Rollback();
            }
        }
コード例 #3
0
        private void timer_Elapsed(object sender, ElapsedEventArgs e)
        {
            if (isChecking)
            {
                return;
            }

            isChecking = true;
            //LogHelper.WriteDebug("CrashManager.CheckUnReckonedDeal");
            //陈武民修改 2009年7月9日
            string where = string.Format("CounterId = '{0}' ", CountID);
            BD_UnReckonedDealTableDal dal = new BD_UnReckonedDealTableDal();
            //var tables = DataRepository.BdUnReckonedDealTableProvider.Find(where);
            var tables = dal.GetListArray(where);
            int i      = 0;

            foreach (BD_UnReckonedDealTableInfo table in tables)
            {
                if (IsReckoning(table.id))
                {
                    continue;
                }

                if (string.IsNullOrEmpty(table.CounterID))
                {
                    continue;
                }

                //if (!hasSendSet.Contains(table.Id))
                //{
                //    i++;
                //    ProcessTable(table);

                //    lock (((ICollection) hasSendSet).SyncRoot)
                //        hasSendSet.Add(table.Id);
                //}

                hasSendSetLock.EnterUpgradeableReadLock();
                try
                {
                    if (!hasSendSet.Contains(table.id))
                    {
                        i++;
                        ProcessTable(table);

                        hasSendSetLock.EnterWriteLock();
                        try
                        {
                            hasSendSet.Add(table.id);
                        }
                        finally
                        {
                            hasSendSetLock.ExitWriteLock();
                        }
                    }
                }
                finally
                {
                    hasSendSetLock.ExitUpgradeableReadLock();
                }
            }

            if (i > 0)
            {
                string format = "CrashManager.Timer进行故障恢复,当前数据库中未清算记录有{0}条,重新发送的记录有{1}条.";
                string desc   = string.Format(format, tables.Count, i);
                LogHelper.WriteDebug(desc);
            }

            isChecking = false;
        }