Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -33,19 +33,30 @@ override public DbProviderFactory ProviderFactory
}
}

override protected DbConnectionInternal CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, object poolGroupProviderInfo, IDbConnectionPool pool, DbConnection owningConnection)
protected override DbConnectionInternal CreateConnection(
DbConnectionOptions options,
DbConnectionPoolKey poolKey,
DbConnectionPoolGroupProviderInfo poolGroupProviderInfo,
IDbConnectionPool pool,
DbConnection owningConnection)
{
return CreateConnection(options, poolKey, poolGroupProviderInfo, pool, owningConnection, userOptions: null);
}

override protected DbConnectionInternal CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, object poolGroupProviderInfo, IDbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
protected override DbConnectionInternal CreateConnection(
DbConnectionOptions options,
DbConnectionPoolKey poolKey,
DbConnectionPoolGroupProviderInfo poolGroupProviderInfo,
IDbConnectionPool pool,
DbConnection owningConnection,
DbConnectionOptions userOptions)
{
SqlConnectionString opt = (SqlConnectionString)options;
SqlConnectionPoolKey key = (SqlConnectionPoolKey)poolKey;
SessionData recoverySessionData = null;

SqlConnection sqlOwningConnection = (SqlConnection)owningConnection;
bool applyTransientFaultHandling = sqlOwningConnection != null ? sqlOwningConnection._applyTransientFaultHandling : false;
bool applyTransientFaultHandling = sqlOwningConnection?._applyTransientFaultHandling ?? false;

SqlConnectionString userOpt = null;
if (userOptions != null)
Expand Down Expand Up @@ -137,7 +148,20 @@ override protected DbConnectionInternal CreateConnection(DbConnectionOptions opt
opt = new SqlConnectionString(opt, instanceName, userInstance: false, setEnlistValue: null);
poolGroupProviderInfo = null; // null so we do not pass to constructor below...
}
return new SqlInternalConnectionTds(identity, opt, key.Credential, poolGroupProviderInfo, "", null, redirectedUserInstance, userOpt, recoverySessionData, applyTransientFaultHandling, key.AccessToken, pool, key.AccessTokenCallback);
return new SqlInternalConnectionTds(
identity,
opt,
key.Credential,
poolGroupProviderInfo,
newPassword: string.Empty,
newSecurePassword: null,
redirectedUserInstance,
userOpt,
recoverySessionData,
applyTransientFaultHandling,
key.AccessToken,
pool,
key.AccessTokenCallback);
}

protected override DbConnectionOptions CreateConnectionOptions(string connectionString, DbConnectionOptions previous)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,18 +31,30 @@ override public DbProviderFactory ProviderFactory
}
}

override protected DbConnectionInternal CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, object poolGroupProviderInfo, IDbConnectionPool pool, DbConnection owningConnection)
protected override DbConnectionInternal CreateConnection(
DbConnectionOptions options,
DbConnectionPoolKey poolKey,
DbConnectionPoolGroupProviderInfo poolGroupProviderInfo,
IDbConnectionPool pool,
DbConnection owningConnection)
{
return CreateConnection(options, poolKey, poolGroupProviderInfo, pool, owningConnection, userOptions: null);
}

override protected DbConnectionInternal CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, object poolGroupProviderInfo, IDbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
protected override DbConnectionInternal CreateConnection(
DbConnectionOptions options,
DbConnectionPoolKey poolKey,
DbConnectionPoolGroupProviderInfo poolGroupProviderInfo,
IDbConnectionPool pool,
DbConnection owningConnection,
DbConnectionOptions userOptions)
{
SqlConnectionString opt = (SqlConnectionString)options;
SqlConnectionPoolKey key = (SqlConnectionPoolKey)poolKey;
SessionData recoverySessionData = null;

SqlConnection sqlOwningConnection = owningConnection as SqlConnection;
bool applyTransientFaultHandling = sqlOwningConnection != null ? sqlOwningConnection._applyTransientFaultHandling : false;
bool applyTransientFaultHandling = sqlOwningConnection?._applyTransientFaultHandling ?? false;

SqlConnectionString userOpt = null;
if (userOptions != null)
Expand All @@ -51,7 +63,7 @@ override protected DbConnectionInternal CreateConnection(DbConnectionOptions opt
}
else if (sqlOwningConnection != null)
{
userOpt = (SqlConnectionString)(sqlOwningConnection.UserConnectionOptions);
userOpt = (SqlConnectionString)sqlOwningConnection.UserConnectionOptions;
}

if (sqlOwningConnection != null)
Expand Down Expand Up @@ -138,13 +150,14 @@ override protected DbConnectionInternal CreateConnection(DbConnectionOptions opt
instanceName,
userInstance: false,
setEnlistValue: null); // Do not modify the enlist value
poolGroupProviderInfo = null;
}

return new SqlInternalConnectionTds(
identity,
opt,
key.Credential,
providerInfo: null,
poolGroupProviderInfo,
newPassword: string.Empty,
newSecurePassword: null,
redirectedUserInstance,
Expand All @@ -163,7 +176,7 @@ protected override DbConnectionOptions CreateConnectionOptions(string connection
return result;
}

override internal DbConnectionPoolProviderInfo CreateConnectionPoolProviderInfo(DbConnectionOptions connectionOptions)
internal override DbConnectionPoolProviderInfo CreateConnectionPoolProviderInfo(DbConnectionOptions connectionOptions)
{
DbConnectionPoolProviderInfo providerInfo = null;

Expand Down Expand Up @@ -233,12 +246,12 @@ override protected DbMetaDataFactory CreateMetaDataFactory(DbConnectionInternal
internalConnection.ServerVersion); //internalConnection.ServerVersionNormalized);
}

override internal DbConnectionPoolGroupProviderInfo CreateConnectionPoolGroupProviderInfo(DbConnectionOptions connectionOptions)
internal override DbConnectionPoolGroupProviderInfo CreateConnectionPoolGroupProviderInfo(
DbConnectionOptions connectionOptions)
{
return new SqlConnectionPoolGroupProviderInfo((SqlConnectionString)connectionOptions);
}


internal static SqlConnectionString FindSqlConnectionOptions(SqlConnectionPoolKey key)
{
SqlConnectionString connectionOptions = (SqlConnectionString)SingletonInstance.FindConnectionOptions(key);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -457,7 +457,7 @@ internal SqlInternalConnectionTds(
DbConnectionPoolIdentity identity,
SqlConnectionString connectionOptions,
SqlCredential credential,
object providerInfo,
DbConnectionPoolGroupProviderInfo providerInfo,
string newPassword,
SecureString newSecurePassword,
bool redirectedUserInstance,
Expand All @@ -467,7 +467,8 @@ internal SqlInternalConnectionTds(
string accessToken = null,
IDbConnectionPool pool = null,
Func<SqlAuthenticationParameters, CancellationToken,
Task<SqlAuthenticationToken>> accessTokenCallback = null) : base(connectionOptions)
Task<SqlAuthenticationToken>> accessTokenCallback = null)
: base(connectionOptions)
{
#if DEBUG
if (reconnectSessionData != null)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,10 +91,8 @@ public void ClearPool(DbConnectionPoolKey key)
}
}

internal virtual DbConnectionPoolProviderInfo CreateConnectionPoolProviderInfo(DbConnectionOptions connectionOptions)
{
return null;
}
internal abstract DbConnectionPoolProviderInfo CreateConnectionPoolProviderInfo(
DbConnectionOptions connectionOptions);

protected virtual DbMetaDataFactory CreateMetaDataFactory(DbConnectionInternal internalConnection, out bool cacheMetaDataFactory)
{
Expand Down Expand Up @@ -139,10 +137,8 @@ internal DbConnectionInternal CreatePooledConnection(IDbConnectionPool pool, DbC
return newConnection;
}

internal virtual DbConnectionPoolGroupProviderInfo CreateConnectionPoolGroupProviderInfo(DbConnectionOptions connectionOptions)
{
return null;
}
internal abstract DbConnectionPoolGroupProviderInfo CreateConnectionPoolGroupProviderInfo(
DbConnectionOptions connectionOptions);

private Timer CreatePruningTimer() =>
ADP.UnsafeCreateTimer(
Expand Down Expand Up @@ -646,12 +642,23 @@ internal void QueuePoolGroupForRelease(DbConnectionPoolGroup poolGroup)
SqlClientEventSource.Metrics.ExitActiveConnectionPoolGroup();
}

virtual protected DbConnectionInternal CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, object poolGroupProviderInfo, IDbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
protected virtual DbConnectionInternal CreateConnection(
DbConnectionOptions options,
DbConnectionPoolKey poolKey,
DbConnectionPoolGroupProviderInfo poolGroupProviderInfo,
IDbConnectionPool pool,
DbConnection owningConnection,
DbConnectionOptions userOptions)
{
return CreateConnection(options, poolKey, poolGroupProviderInfo, pool, owningConnection);
}

abstract protected DbConnectionInternal CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, object poolGroupProviderInfo, IDbConnectionPool pool, DbConnection owningConnection);
protected abstract DbConnectionInternal CreateConnection(
DbConnectionOptions options,
DbConnectionPoolKey poolKey,
DbConnectionPoolGroupProviderInfo poolGroupProviderInfo,
IDbConnectionPool pool,
DbConnection owningConnection);

abstract protected DbConnectionOptions CreateConnectionOptions(string connectionString, DbConnectionOptions previous);

Expand Down
Loading