Ejemplo n.º 1
0
        /// <summary>
        /// Execute the operation against LSM in the current transaction scope.
        /// </summary>
        /// <param name="ts">Transaction scope.</param>
        /// <returns>
        /// Results of the operation.
        /// </returns>
        public override IStoreResults DoLocalExecute(IStoreTransactionScope ts)
        {
            IStoreResults result = ts.ExecuteCommandSingle(SqlUtils.CheckIfExistsLocalScript.Single());

            if (result.StoreVersion == null)
            {
                // Shard not deployed, which is an error condition.
                throw new ShardManagementException(
                          ShardManagementErrorCategory.Recovery,
                          ShardManagementErrorCode.ShardNotValid,
                          Errors._Recovery_ShardNotValid,
                          this.Location,
                          this.OperationName);
            }

            return(ts.ExecuteOperation(
                       StoreOperationRequestBuilder.SpGetAllShardsLocal,
                       StoreOperationRequestBuilder.GetAllShardsLocal()));
        }