private static ShardMapManager GetSqlShardMapManager( string connectionString, SqlCredential secureCredential, ShardMapManagerLoadPolicy loadPolicy, RetryBehavior retryBehavior, EventHandler <RetryingEventArgs> retryEventHandler, bool throwOnFailure) { Debug.Assert(connectionString != null); Debug.Assert(retryBehavior != null); SqlShardMapManagerCredentials credentials = new SqlShardMapManagerCredentials(connectionString, secureCredential); StoreOperationFactory storeOperationFactory = new StoreOperationFactory(); IStoreResults result; TransientFaultHandling.RetryPolicy retryPolicy = new TransientFaultHandling.RetryPolicy( new ShardManagementTransientErrorDetectionStrategy(retryBehavior), RetryPolicy.DefaultRetryPolicy.GetRetryStrategy()); EventHandler <TransientFaultHandling.RetryingEventArgs> handler = (sender, args) => { if (retryEventHandler != null) { retryEventHandler(sender, new RetryingEventArgs(args)); } }; try { retryPolicy.Retrying += handler; using (IStoreOperationGlobal op = storeOperationFactory.CreateGetShardMapManagerGlobalOperation( credentials, retryPolicy, throwOnFailure ? "GetSqlShardMapManager" : "TryGetSqlShardMapManager", throwOnFailure)) { result = op.Do(); } } finally { retryPolicy.Retrying -= handler; } return(result.Result == StoreResult.Success ? new ShardMapManager( credentials, new SqlStoreConnectionFactory(), storeOperationFactory, new CacheStore(), loadPolicy, RetryPolicy.DefaultRetryPolicy, retryBehavior, retryEventHandler) : null); }
public static ShardMapManager GetSqlShardMapManager( string connectionString, ShardMapManagerLoadPolicy loadPolicy) { return(GetSqlShardMapManager( connectionString, loadPolicy, RetryBehavior.DefaultRetryBehavior)); }
/// <summary> /// Gets <see cref="ShardMapManager"/> from persisted state in a SQL Server database. /// </summary> /// <param name="connectionInfo">Connection parameters used for performing operations against shard map manager database(s).</param> /// <param name="loadPolicy">Initialization policy.</param> /// <param name="retryBehavior">Behavior for detecting transient exceptions in the store.</param> /// <returns> /// A shard map manager object used for performing management and read operations for /// shard maps, shards and shard mappings. /// </returns> public static ShardMapManager GetSqlShardMapManager( SqlConnectionInfo connectionInfo, ShardMapManagerLoadPolicy loadPolicy, RetryBehavior retryBehavior) { return(GetSqlShardMapManager( connectionInfo, loadPolicy, retryBehavior, null)); }
public static bool TryGetSqlShardMapManager( string connectionString, ShardMapManagerLoadPolicy loadPolicy, out ShardMapManager shardMapManager) { return(TryGetSqlShardMapManager( connectionString, null, loadPolicy, out shardMapManager)); }
public static bool TryGetSqlShardMapManager( string connectionString, ShardMapManagerLoadPolicy loadPolicy, out ShardMapManager shardMapManager) { return(TryGetSqlShardMapManager( connectionString, loadPolicy, RetryBehavior.DefaultRetryBehavior, out shardMapManager)); }
/// <summary> /// Given the connection string, opens up the corresponding data source and obtains the ShardMapManager. /// </summary> /// <param name="credentials">Credentials for performing ShardMapManager operations.</param> /// <param name="storeConnectionFactory">Factory for store connections.</param> /// <param name="storeOperationFactory">Factory for store operations.</param> /// <param name="cacheStore">Cache store.</param> /// <param name="loadPolicy">Initialization policy.</param> /// <param name="retryPolicy">Policy for performing retries on connections to shard map manager database.</param> /// <param name="retryBehavior">Policy for detecting transient errors.</param> internal ShardMapManager( SqlShardMapManagerCredentials credentials, IStoreConnectionFactory storeConnectionFactory, IStoreOperationFactory storeOperationFactory, ICacheStore cacheStore, ShardMapManagerLoadPolicy loadPolicy, RetryPolicy retryPolicy, RetryBehavior retryBehavior) : this(credentials, storeConnectionFactory, storeOperationFactory, cacheStore, loadPolicy, retryPolicy, retryBehavior, null) { }
/// <summary> /// Gets <see cref="ShardMapManager"/> from persisted state in a SQL Server database. /// </summary> /// <param name="connectionString">Connection parameters used for performing operations against shard map manager database(s).</param> /// <param name="loadPolicy">Initialization policy.</param> /// <param name="retryBehavior">Behavior for detecting transient exceptions in the store.</param> /// <returns> /// A shard map manager object used for performing management and read operations for /// shard maps, shards and shard mappings. /// </returns> public static ShardMapManager GetSqlShardMapManager( string connectionString, ShardMapManagerLoadPolicy loadPolicy, RetryBehavior retryBehavior) { return(GetSqlShardMapManager( connectionString, loadPolicy, retryBehavior, null)); }
/// <summary> /// Gets <see cref="ShardMapManager"/> from persisted state in a SQL Server database. /// </summary> /// <param name="connectionString">Connection parameters used for performing operations against shard map manager database(s).</param> /// <param name="secureCredential">Secure credential used for performing operations against shard map manager database(s).</param> /// <param name="loadPolicy">Initialization policy.</param> /// <param name="retryBehavior">Behavior for detecting transient exceptions in the store.</param> /// <returns> /// A shard map manager object used for performing management and read operations for /// shard maps, shards and shard mappings. /// </returns> public static ShardMapManager GetSqlShardMapManager( string connectionString, SqlCredential secureCredential, ShardMapManagerLoadPolicy loadPolicy, RetryBehavior retryBehavior) { return(GetSqlShardMapManager( new SqlConnectionInfo( connectionString, secureCredential), loadPolicy, retryBehavior)); }
internal static ShardMapManager GetSqlShardMapManager( string connectionString, SqlCredential secureCredential, ShardMapManagerLoadPolicy loadPolicy, RetryBehavior retryBehavior, EventHandler <RetryingEventArgs> retryEventHandler) { ExceptionUtils.DisallowNullArgument(connectionString, "connectionString"); ExceptionUtils.DisallowNullArgument(retryBehavior, "retryBehavior"); using (ActivityIdScope activityIdScope = new ActivityIdScope(Guid.NewGuid())) { Tracer.TraceInfo( TraceSourceConstants.ComponentNames.ShardMapManagerFactory, "GetSqlShardMapManager", "Start; "); Stopwatch stopwatch = Stopwatch.StartNew(); ShardMapManager shardMapManager = ShardMapManagerFactory.GetSqlShardMapManager( connectionString, secureCredential, loadPolicy, retryBehavior, retryEventHandler, true); stopwatch.Stop(); Debug.Assert(shardMapManager != null); Tracer.TraceInfo( TraceSourceConstants.ComponentNames.ShardMapManagerFactory, "GetSqlShardMapManager", "Complete; Duration: {0}", stopwatch.Elapsed); return(shardMapManager); } }
public static bool TryGetSqlShardMapManager( string connectionString, SqlCredential secureCredential, ShardMapManagerLoadPolicy loadPolicy, RetryBehavior retryBehavior, out ShardMapManager shardMapManager) { ExceptionUtils.DisallowNullArgument(connectionString, "connectionString"); ExceptionUtils.DisallowNullArgument(retryBehavior, "retryBehavior"); using (ActivityIdScope activityIdScope = new ActivityIdScope(Guid.NewGuid())) { Tracer.TraceInfo( TraceSourceConstants.ComponentNames.ShardMapManagerFactory, "TryGetSqlShardMapManager", "Start; "); Stopwatch stopwatch = Stopwatch.StartNew(); shardMapManager = ShardMapManagerFactory.GetSqlShardMapManager( new SqlConnectionInfo( connectionString, secureCredential), loadPolicy, retryBehavior, null, false); stopwatch.Stop(); Tracer.TraceInfo( TraceSourceConstants.ComponentNames.ShardMapManagerFactory, "TryGetSqlShardMapManager", "Complete; Duration: {0}", stopwatch.Elapsed); return(shardMapManager != null); } }
/// <summary> /// Given the connection string, opens up the corresponding data source and obtains the ShardMapManager. /// </summary> /// <param name="credentials">Credentials for performing ShardMapManager operations.</param> /// <param name="storeConnectionFactory">Factory for store connections.</param> /// <param name="storeOperationFactory">Factory for store operations.</param> /// <param name="cacheStore">Cache store.</param> /// <param name="loadPolicy">Initialization policy.</param> /// <param name="retryPolicy">Policy for performing retries on connections to shard map manager database.</param> /// <param name="retryBehavior">Policy for detecting transient errors.</param> /// <param name="retryEventHandler">Event handler for store operation retry events.</param> internal ShardMapManager( SqlShardMapManagerCredentials credentials, IStoreConnectionFactory storeConnectionFactory, IStoreOperationFactory storeOperationFactory, ICacheStore cacheStore, ShardMapManagerLoadPolicy loadPolicy, RetryPolicy retryPolicy, RetryBehavior retryBehavior, EventHandler <RetryingEventArgs> retryEventHandler) { Debug.Assert(credentials != null); this.Credentials = credentials; this.StoreConnectionFactory = storeConnectionFactory; this.StoreOperationFactory = storeOperationFactory; this.Cache = cacheStore; this.RetryPolicy = new TransientFaultHandling.RetryPolicy( new ShardManagementTransientErrorDetectionStrategy(retryBehavior), retryPolicy.GetRetryStrategy()); // Register for TfhImpl.RetryPolicy.Retrying event. this.RetryPolicy.Retrying += this.ShardMapManagerRetryingEventHandler; // Add user specified event handler. if (retryEventHandler != null) { this.ShardMapManagerRetrying += retryEventHandler; } if (loadPolicy == ShardMapManagerLoadPolicy.Eager) { // We eagerly load everything from ShardMapManager. In case of lazy // loading policy, we will add things to local caches based on cache // misses on lookups. this.LoadFromStore(); } }
public static bool TryGetSqlShardMapManager( string connectionString, ShardMapManagerLoadPolicy loadPolicy, out ShardMapManager shardMapManager) { return TryGetSqlShardMapManager( connectionString, loadPolicy, RetryBehavior.DefaultRetryBehavior, out shardMapManager); }
internal static bool TryGetSqlShardMapManager( string connectionString, ShardMapManagerLoadPolicy loadPolicy, RetryBehavior retryBehavior, EventHandler<RetryingEventArgs> retryEventHandler, out ShardMapManager shardMapManager) { ExceptionUtils.DisallowNullArgument(connectionString, "connectionString"); ExceptionUtils.DisallowNullArgument(retryBehavior, "retryBehavior"); using (ActivityIdScope activityIdScope = new ActivityIdScope(Guid.NewGuid())) { Tracer.TraceInfo( TraceSourceConstants.ComponentNames.ShardMapManagerFactory, "TryGetSqlShardMapManager", "Start; "); Stopwatch stopwatch = Stopwatch.StartNew(); shardMapManager = ShardMapManagerFactory.GetSqlShardMapManager( connectionString, loadPolicy, retryBehavior, retryEventHandler, false); stopwatch.Stop(); Tracer.TraceInfo( TraceSourceConstants.ComponentNames.ShardMapManagerFactory, "TryGetSqlShardMapManager", "Complete; Duration: {0}", stopwatch.Elapsed); return shardMapManager != null; } }
private static ShardMapManager GetSqlShardMapManager( string connectionString, ShardMapManagerLoadPolicy loadPolicy, RetryBehavior retryBehavior, EventHandler<RetryingEventArgs> retryEventHandler, bool throwOnFailure) { Debug.Assert(connectionString != null); Debug.Assert(retryBehavior != null); SqlShardMapManagerCredentials credentials = new SqlShardMapManagerCredentials(connectionString); StoreOperationFactory storeOperationFactory = new StoreOperationFactory(); IStoreResults result; TransientFaultHandling.RetryPolicy retryPolicy = new TransientFaultHandling.RetryPolicy( new ShardManagementTransientErrorDetectionStrategy(retryBehavior), RetryPolicy.DefaultRetryPolicy.GetRetryStrategy()); EventHandler<TransientFaultHandling.RetryingEventArgs> handler = (sender, args) => { if (retryEventHandler != null) { retryEventHandler(sender, new RetryingEventArgs(args)); } }; try { retryPolicy.Retrying += handler; using (IStoreOperationGlobal op = storeOperationFactory.CreateGetShardMapManagerGlobalOperation( credentials, retryPolicy, throwOnFailure ? "GetSqlShardMapManager" : "TryGetSqlShardMapManager", throwOnFailure)) { result = op.Do(); } } finally { retryPolicy.Retrying -= handler; } return result.Result == StoreResult.Success ? new ShardMapManager( credentials, new SqlStoreConnectionFactory(), storeOperationFactory, new CacheStore(), loadPolicy, RetryPolicy.DefaultRetryPolicy, retryBehavior, retryEventHandler) : null; }
internal static ShardMapManager GetSqlShardMapManager( string connectionString, ShardMapManagerLoadPolicy loadPolicy, RetryBehavior retryBehavior, EventHandler<RetryingEventArgs> retryEventHandler) { ExceptionUtils.DisallowNullArgument(connectionString, "connectionString"); ExceptionUtils.DisallowNullArgument(retryBehavior, "retryBehavior"); using (ActivityIdScope activityIdScope = new ActivityIdScope(Guid.NewGuid())) { DateTime getStartTime = DateTime.UtcNow; Tracer.TraceInfo( TraceSourceConstants.ComponentNames.ShardMapManagerFactory, "GetSqlShardMapManager", "Start; "); ShardMapManager shardMapManager = ShardMapManagerFactory.GetSqlShardMapManager( connectionString, loadPolicy, retryBehavior, retryEventHandler, true); Debug.Assert(shardMapManager != null); Tracer.TraceInfo( TraceSourceConstants.ComponentNames.ShardMapManagerFactory, "GetSqlShardMapManager", "Complete; Duration: {0}", DateTime.UtcNow - getStartTime); return shardMapManager; } }
/// <summary> /// Gets <see cref="ShardMapManager"/> from persisted state in a SQL Server database. /// </summary> /// <param name="connectionString">Connection parameters used for performing operations against shard map manager database(s).</param> /// <param name="loadPolicy">Initialization policy.</param> /// <param name="retryBehavior">Behavior for detecting transient exceptions in the store.</param> /// <returns> /// A shard map manager object used for performing management and read operations for /// shard maps, shards and shard mappings. /// </returns> public static ShardMapManager GetSqlShardMapManager( string connectionString, ShardMapManagerLoadPolicy loadPolicy, RetryBehavior retryBehavior) { return GetSqlShardMapManager( connectionString, loadPolicy, retryBehavior, null); }
public static ShardMapManager GetSqlShardMapManager( string connectionString, ShardMapManagerLoadPolicy loadPolicy) { return GetSqlShardMapManager( connectionString, loadPolicy, RetryBehavior.DefaultRetryBehavior); }
public static bool TryGetSqlShardMapManager( string connectionString, ShardMapManagerLoadPolicy loadPolicy, RetryBehavior retryBehavior, out ShardMapManager shardMapManager) { ExceptionUtils.DisallowNullArgument(connectionString, "connectionString"); ExceptionUtils.DisallowNullArgument(retryBehavior, "retryBehavior"); using (ActivityIdScope activityIdScope = new ActivityIdScope(Guid.NewGuid())) { DateTime getStartTime = DateTime.UtcNow; Tracer.TraceInfo( TraceSourceConstants.ComponentNames.ShardMapManagerFactory, "TryGetSqlShardMapManager", "Start; "); shardMapManager = ShardMapManagerFactory.GetSqlShardMapManager( connectionString, loadPolicy, retryBehavior, null, false); Tracer.TraceInfo( TraceSourceConstants.ComponentNames.ShardMapManagerFactory, "TryGetSqlShardMapManager", "Complete; Duration: {0}", DateTime.UtcNow - getStartTime); return shardMapManager != null; } }