Exemple #1
0
        protected override void SaveLockData(LockManager.LockData aLockData)
        {
            try {
                //Writerロックを取得する
                _rwLock.AcquireWriterLock(_timeout);

                _lockDataSet.AddLast(aLockData);
            } finally {
                //Writerロックを開放する
                _rwLock.ReleaseWriterLock();
            }
        }
Exemple #2
0
        protected override void SaveLockData(LockManager.LockData aLockData)
        {
            try {
                //Writerロックを取得する
                _memLockData.AcquireWriterLock(_timeout);

                _memLockData.Add(aLockData);
            } finally {
                //Writerロックを開放する
                _memLockData.ReleaseWriterLock();
            }
        }
Exemple #3
0
        protected override void SaveLockData(LockManager.LockData aLockData)
        {
            //LockDataへのアクセスによるLockDataのアクセスを排除する
            //(LockDataに対するアクセスの場合、APトランザクションIDは-1である(暫定設計))
            if (aLockData.ApTranId == -1)
            {
                return;
            }

            //aLockData.PredicateStrがテーブル項目より大きいサイズであれば、途中でカットする
            if (aLockData.PredicateStr.Length > _maxLength)
            {
                aLockData.PredicateStr = aLockData.Predicate.ToString(_maxLength);
            }

            using (Tran aTran = _aDb.CreateTranWithoutLock()) {
                aTran.Save <LockData>(aLockData);
            }
        }