internal override void Visit(UpdateTxStatusRequest req) { this.HashId = req.TxId.ToString(); byte[] keyBytes = Encoding.ASCII.GetBytes(TxTableEntry.STATUS_STRING); byte[] valueBytes = BitConverter.GetBytes((int)req.TxStatus); this.RedisReq = new RedisRequest(this.HashId, keyBytes, valueBytes, RedisRequestType.HSet) { ParentRequest = req }; }
internal override void Visit(UpdateTxStatusRequest req) { try { long ret = (long)req.Result; req.Result = ret == 0L; } catch (Exception) { req.Result = false; } }
internal override void Visit(UpdateTxStatusRequest req) { TxTableEntry txEntry = req.RemoteTxEntry; if (txEntry == null) { txEntry = this.txTable[req.TxId]; } txEntry.Status = req.TxStatus; req.Result = null; req.Finished = true; }
internal override void Visit(UpdateTxStatusRequest req) { TxTableEntry txEntry = req.RemoteTxEntry; if (txEntry == null) { if (!this.txTable.TryGetValue(req.TxId, out txEntry)) { throw new TransactionException("The specified tx does not exist."); } } txEntry.Status = req.TxStatus; req.Result = null; req.Finished = true; }
internal override void Visit(UpdateTxStatusRequest req) { string hashId = req.TxId.ToString(); if (this.redisVersionDbMode == RedisVersionDbMode.Cluster) { hashId = RedisVersionDb.PACK_KEY(RedisVersionDb.TX_KEY_PREFIX, hashId); } byte[] keyBytes = Encoding.ASCII.GetBytes(TxTableEntry.STATUS_STRING); byte[] valueBytes = BitConverter.GetBytes((int)req.TxStatus); RedisRequest redisReq = this.NextRedisRequest(); redisReq.Set(hashId, keyBytes, valueBytes, RedisRequestType.HSet); redisReq.ParentRequest = req; }
internal virtual void Visit(UpdateTxStatusRequest req) { }