Beispiel #1
0
        /// <summary>
        /// Returns the proper ShardManagementException corresponding to given error code in
        /// <paramref name="result"/> for ShardMap operations.
        /// </summary>
        /// <param name="result">Operation result object.</param>
        /// <param name="shardMap">Shard map object.</param>
        /// <param name="location">Location of operation.</param>
        /// <param name="errorCategory">Error category to use for raised errors.</param>
        /// <param name="operationName">Operation being performed.</param>
        /// <param name="storedProcName">Stored procedure being executed.</param>
        /// <returns>ShardManagementException to be raised.</returns>
        internal static ShardManagementException OnRecoveryErrorLocal(
            IStoreResults result,
            IStoreShardMap shardMap,
            ShardLocation location,
            ShardManagementErrorCategory errorCategory,
            string operationName,
            string storedProcName)
        {
            switch (result.Result)
            {
            case StoreResult.ShardMapDoesNotExist:
                return(new ShardManagementException(
                           errorCategory,
                           ShardManagementErrorCode.ShardMapDoesNotExist,
                           Errors._Store_ShardMap_DoesNotExistLocal,
                           shardMap.Name,
                           location,
                           storedProcName,
                           operationName));

            case StoreResult.StoreVersionMismatch:
            case StoreResult.MissingParametersForStoredProcedure:
            default:
                return(StoreOperationErrorHandler.OnCommonErrorLocal(
                           result,
                           location,
                           operationName,
                           storedProcName));
            }
        }
Beispiel #2
0
 /// <summary>
 /// Returns the proper ShardManagementException corresponding to given error code in
 /// <paramref name="result"/> for ShardMapper operations.
 /// </summary>
 /// <param name="result">Operation result object.</param>
 /// <param name="location">Location of LSM operation.</param>
 /// <param name="operationName">Operation being performed.</param>
 /// <param name="storedProcName">Stored procedure being executed.</param>
 /// <returns>ShardManagementException to be raised.</returns>
 internal static ShardManagementException OnShardMapperErrorLocal(
     IStoreResults result,
     ShardLocation location,
     string operationName,
     string storedProcName)
 {
     switch (result.Result)
     {
     case StoreResult.StoreVersionMismatch:
     case StoreResult.MissingParametersForStoredProcedure:
     default:
         return(StoreOperationErrorHandler.OnCommonErrorLocal(
                    result,
                    location,
                    operationName,
                    storedProcName));
     }
 }
Beispiel #3
0
        /// <summary>
        /// Returns the proper ShardManagementException corresponding to given error code in
        /// <paramref name="result"/> for ShardMap operations.
        /// </summary>
        /// <param name="result">Operation result object.</param>
        /// <param name="shardMap">Shard map object.</param>
        /// <param name="location">Location of LSM operation.</param>
        /// <param name="errorCategory">Error category to use for raised errors.</param>
        /// <param name="operationName">Operation being performed.</param>
        /// <param name="storedProcName">Stored procedure being executed.</param>
        /// <returns>ShardManagementException to be raised.</returns>
        internal static ShardManagementException OnShardMapErrorLocal(
            IStoreResults result,
            IStoreShardMap shardMap,
            ShardLocation location,
            ShardManagementErrorCategory errorCategory,
            string operationName,
            string storedProcName)
        {
            switch (result.Result)
            {
            case StoreResult.UnableToKillSessions:
                return(new ShardManagementException(
                           errorCategory,
                           ShardManagementErrorCode.MappingsKillConnectionFailure,
                           Errors._Store_ShardMapper_UnableToKillSessions,
                           location,
                           shardMap.Name,
                           operationName,
                           storedProcName,
                           location));

            case StoreResult.StoreVersionMismatch:
            case StoreResult.MissingParametersForStoredProcedure:
            case StoreResult.ShardDoesNotExist:
                // ShardDoesNotExist on local shard map can only occur in Recovery scenario.
                // For normal UpdateShard operation, we will get this error from GSM operation first.
                return(new ShardManagementException(
                           ShardManagementErrorCategory.Recovery,
                           ShardManagementErrorCode.ShardDoesNotExist,
                           Errors._Store_Validate_ShardDoesNotExist,
                           location,
                           shardMap.Name,
                           operationName,
                           storedProcName));

            default:
                return(StoreOperationErrorHandler.OnCommonErrorLocal(
                           result,
                           location,
                           operationName,
                           storedProcName));
            }
        }
Beispiel #4
0
        /// <summary>
        /// Returns the proper ShardManagementException corresponding to given error code in
        /// <paramref name="result"/> for ShardMap operations.
        /// </summary>
        /// <param name="result">Operation result object.</param>
        /// <param name="shardMap">Shard map object.</param>
        /// <param name="location">Location of LSM operation.</param>
        /// <param name="operationName">Operation being performed.</param>
        /// <param name="storedProcName">Stored procedure being executed.</param>
        /// <returns>ShardManagementException to be raised.</returns>
        internal static ShardManagementException OnValidationErrorLocal(
            IStoreResults result,
            IStoreShardMap shardMap,
            ShardLocation location,
            string operationName,
            string storedProcName)
        {
            switch (result.Result)
            {
            case StoreResult.ShardMapDoesNotExist:
                return(new ShardManagementException(
                           ShardManagementErrorCategory.Validation,
                           ShardManagementErrorCode.ShardMapDoesNotExist,
                           Errors._Store_Validate_ShardMapDoesNotExist,
                           shardMap.Name,
                           location,
                           operationName,
                           storedProcName));

            case StoreResult.ShardDoesNotExist:
                return(new ShardManagementException(
                           ShardManagementErrorCategory.Validation,
                           ShardManagementErrorCode.ShardDoesNotExist,
                           Errors._Store_Validate_ShardDoesNotExist,
                           location,
                           shardMap.Name,
                           operationName,
                           storedProcName));

            case StoreResult.ShardVersionMismatch:
                return(new ShardManagementException(
                           ShardManagementErrorCategory.Validation,
                           ShardManagementErrorCode.ShardVersionMismatch,
                           Errors._Store_Validate_ShardVersionMismatch,
                           location,
                           shardMap.Name,
                           operationName,
                           storedProcName));

            case StoreResult.MappingDoesNotExist:
                return(new ShardManagementException(
                           ShardManagementErrorCategory.Validation,
                           ShardManagementErrorCode.MappingDoesNotExist,
                           Errors._Store_Validate_MappingDoesNotExist,
                           location,
                           shardMap.Name,
                           operationName,
                           storedProcName));

            case StoreResult.MappingIsOffline:
                return(new ShardManagementException(
                           ShardManagementErrorCategory.Validation,
                           ShardManagementErrorCode.MappingIsOffline,
                           Errors._Store_Validate_MappingIsOffline,
                           location,
                           shardMap.Name,
                           operationName,
                           storedProcName));

            case StoreResult.StoreVersionMismatch:
            case StoreResult.MissingParametersForStoredProcedure:
            default:
                return(StoreOperationErrorHandler.OnCommonErrorLocal(
                           result,
                           location,
                           operationName,
                           storedProcName));
            }
        }