/// <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="shardMapName">Name of shard map.</param> /// <param name="operationName">Operation being performed.</param> /// <param name="storedProcName">Stored procedure being executed.</param> /// <returns></returns> internal static ShardManagementException OnShardSchemaInfoErrorGlobal( IStoreResults result, string shardMapName, string operationName, string storedProcName) { switch (result.Result) { case StoreResult.SchemaInfoNameConflict: throw new SchemaInfoException( SchemaInfoErrorCode.SchemaInfoNameConflict, Errors._Store_SchemaInfo_NameConflict, shardMapName); case StoreResult.SchemaInfoNameDoesNotExist: throw new SchemaInfoException( SchemaInfoErrorCode.SchemaInfoNameDoesNotExist, Errors._Store_SchemaInfo_NameDoesNotExist, operationName, shardMapName); case StoreResult.StoreVersionMismatch: case StoreResult.MissingParametersForStoredProcedure: default: return(StoreOperationErrorHandler.OnCommonErrorGlobal( result, operationName, storedProcName)); } }
/// <summary> /// Handles errors from the undo of GSM operation prior to LSM operations. /// </summary> /// <param name="result">Operation result.</param> public virtual void HandleUndoGlobalPreLocalExecuteError(IStoreResults result) { // Possible errors are: // StoreResult.StoreVersionMismatch // StoreResult.MissingParametersForStoredProcedure throw StoreOperationErrorHandler.OnCommonErrorGlobal( result, StoreOperationErrorHandler.OperationNameFromStoreOperationCode(this.OperationCode), StoreOperationRequestBuilder.SpFindAndUpdateOperationLogEntryByIdGlobal); }
/// <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="shard">Shard object.</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 OnRecoveryErrorGlobal( IStoreResults result, IStoreShardMap shardMap, IStoreShard shard, ShardManagementErrorCategory errorCategory, string operationName, string storedProcName) { switch (result.Result) { case StoreResult.ShardLocationExists: return(new ShardManagementException( errorCategory, ShardManagementErrorCode.ShardLocationAlreadyExists, Errors._Store_Shard_LocationAlreadyExistsGlobal, shard.Location, shardMap.Name, storedProcName, operationName)); case StoreResult.ShardMapExists: Debug.Assert(shardMap != null); return(new ShardManagementException( errorCategory, ShardManagementErrorCode.ShardMapAlreadyExists, Errors._Store_ShardMap_AlreadyExistsGlobal, shardMap.Name, storedProcName, operationName)); case StoreResult.StoreVersionMismatch: case StoreResult.MissingParametersForStoredProcedure: default: return(StoreOperationErrorHandler.OnCommonErrorGlobal( result, operationName, storedProcName)); } }
/// <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="shard">Shard object.</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 OnShardMapErrorGlobal( IStoreResults result, IStoreShardMap shardMap, IStoreShard shard, ShardManagementErrorCategory errorCategory, string operationName, string storedProcName) { switch (result.Result) { case StoreResult.ShardMapDoesNotExist: return(new ShardManagementException( errorCategory, ShardManagementErrorCode.ShardMapDoesNotExist, Errors._Store_ShardMap_DoesNotExistGlobal, shardMap.Name, storedProcName, operationName, shard != null ? shard.Location.ToString() : "*")); case StoreResult.ShardExists: return(new ShardManagementException( errorCategory, ShardManagementErrorCode.ShardAlreadyExists, Errors._Store_Shard_AlreadyExistsGlobal, shard.Location, shardMap.Name, storedProcName, operationName)); case StoreResult.ShardLocationExists: return(new ShardManagementException( errorCategory, ShardManagementErrorCode.ShardLocationAlreadyExists, Errors._Store_Shard_LocationAlreadyExistsGlobal, shard.Location, shardMap.Name, storedProcName, operationName)); case StoreResult.ShardDoesNotExist: return(new ShardManagementException( errorCategory, ShardManagementErrorCode.ShardDoesNotExist, Errors._Store_Shard_DoesNotExistGlobal, shard.Location, shardMap.Name, storedProcName, operationName)); case StoreResult.ShardVersionMismatch: return(new ShardManagementException( errorCategory, ShardManagementErrorCode.ShardVersionMismatch, Errors._Store_Shard_VersionMismatchGlobal, shard.Location, shardMap.Name, storedProcName, operationName)); case StoreResult.ShardHasMappings: return(new ShardManagementException( errorCategory, ShardManagementErrorCode.ShardHasMappings, Errors._Store_Shard_HasMappingsGlobal, shard.Location, shardMap.Name, storedProcName, operationName)); case StoreResult.StoreVersionMismatch: case StoreResult.MissingParametersForStoredProcedure: default: return(StoreOperationErrorHandler.OnCommonErrorGlobal( result, operationName, storedProcName)); } }
/// <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="shardMap">Shard map object.</param> /// <param name="shard">Shard object.</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 OnShardMapperErrorGlobal( IStoreResults result, IStoreShardMap shardMap, IStoreShard shard, ShardManagementErrorCategory errorCategory, string operationName, string storedProcName) { switch (result.Result) { case StoreResult.ShardMapDoesNotExist: return(new ShardManagementException( errorCategory, ShardManagementErrorCode.ShardMapDoesNotExist, Errors._Store_ShardMap_DoesNotExistGlobal, shardMap.Name, storedProcName, operationName, shard != null ? shard.Location.ToString() : "*")); case StoreResult.ShardDoesNotExist: return(new ShardManagementException( errorCategory, ShardManagementErrorCode.ShardDoesNotExist, Errors._Store_Shard_DoesNotExistGlobal, shard.Location, shardMap.Name, storedProcName, operationName)); case StoreResult.ShardVersionMismatch: return(new ShardManagementException( errorCategory, ShardManagementErrorCode.ShardVersionMismatch, Errors._Store_Shard_VersionMismatchGlobal, shard.Location, shardMap.Name, storedProcName, operationName)); case StoreResult.MappingDoesNotExist: return(new ShardManagementException( errorCategory, ShardManagementErrorCode.MappingDoesNotExist, Errors._Store_ShardMapper_MappingDoesNotExistGlobal, shard.Location, shardMap.Name, storedProcName, operationName)); case StoreResult.MappingRangeAlreadyMapped: return(new ShardManagementException( errorCategory, ShardManagementErrorCode.MappingRangeAlreadyMapped, Errors._Store_ShardMapper_MappingPointOrRangeAlreadyMapped, shard.Location, shardMap.Name, "Range", storedProcName, operationName)); case StoreResult.MappingPointAlreadyMapped: return(new ShardManagementException( errorCategory, ShardManagementErrorCode.MappingPointAlreadyMapped, Errors._Store_ShardMapper_MappingPointOrRangeAlreadyMapped, shard.Location, shardMap.Name, "Point", storedProcName, operationName)); case StoreResult.MappingNotFoundForKey: Debug.Fail("MappingNotFoundForKey should not be raised during SqlOperation."); return(new ShardManagementException( errorCategory, ShardManagementErrorCode.MappingNotFoundForKey, Errors._Store_ShardMapper_MappingNotFoundForKeyGlobal, shardMap.Name, storedProcName, operationName)); case StoreResult.MappingIsAlreadyLocked: return(new ShardManagementException( errorCategory, ShardManagementErrorCode.MappingIsAlreadyLocked, Errors._Store_ShardMapper_LockMappingAlreadyLocked, shard.Location, shardMap.Name, storedProcName, operationName)); case StoreResult.MappingLockOwnerIdDoesNotMatch: return(new ShardManagementException( errorCategory, ShardManagementErrorCode.MappingLockOwnerIdDoesNotMatch, Errors._Store_ShardMapper_LockOwnerDoesNotMatch, shard.Location, shardMap.Name, storedProcName, operationName)); case StoreResult.MappingIsNotOffline: return(new ShardManagementException( errorCategory, ShardManagementErrorCode.MappingIsNotOffline, Errors._Store_ShardMapper_MappingIsNotOffline, shard.Location, shardMap.Name, storedProcName, operationName)); case StoreResult.StoreVersionMismatch: case StoreResult.MissingParametersForStoredProcedure: default: return(StoreOperationErrorHandler.OnCommonErrorGlobal( result, operationName, storedProcName)); } }