private void CreateConnection(UpgradeServiceAccessor serviceAccessor) { var driver = serviceAccessor.StorageDriver; var connection = driver.CreateConnection(null); driver.ApplyNodeConfiguration(connection, context.NodeConfiguration); try { driver.OpenConnection(null, connection); driver.BeginTransaction(null, connection, null); } catch { connection.Dispose(); throw; } if (driver.ProviderInfo.Supports(ProviderFeatures.SingleConnection)) { serviceAccessor.RegisterTemporaryResource(connection); } else { serviceAccessor.RegisterResource(connection); } serviceAccessor.Connection = connection; }
private async ValueTask CreateConnection( UpgradeServiceAccessor serviceAccessor, bool isAsync, CancellationToken token = default) { var driver = serviceAccessor.StorageDriver; var connection = driver.CreateConnection(null); driver.ApplyNodeConfiguration(connection, context.NodeConfiguration); try { if (isAsync) { await driver.OpenConnectionAsync(null, connection, token).ConfigureAwait(false); await driver.BeginTransactionAsync(null, connection, null, token).ConfigureAwait(false); } else { driver.OpenConnection(null, connection); driver.BeginTransaction(null, connection, null); } } catch { if (isAsync) { await connection.DisposeAsync().ConfigureAwait(false); } else { connection.Dispose(); } throw; } if (driver.ProviderInfo.Supports(ProviderFeatures.SingleConnection)) { serviceAccessor.RegisterTemporaryResource(connection); } else { serviceAccessor.RegisterResource(connection); } serviceAccessor.Connection = connection; }