From 639f6060d367b7862b94e45d4e4404d975eb2a75 Mon Sep 17 00:00:00 2001 From: Kaur-Parminder Date: Thu, 14 Oct 2021 17:30:47 -0700 Subject: [PATCH 01/11] Move to Shared-SqlTransaction --- .../src/Microsoft.Data.SqlClient.csproj | 7 +- .../netfx/src/Microsoft.Data.SqlClient.csproj | 10 +- .../Data/SqlClient/SqlTransaction.cs | 175 ++++++++++++++++ .../Data/SqlClient/SqlTransaction.netcore.cs} | 173 +--------------- .../Data/SqlClient/SqlTransaction.netfx.cs} | 195 ++---------------- 5 files changed, 215 insertions(+), 345 deletions(-) create mode 100644 src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.cs rename src/Microsoft.Data.SqlClient/{netcore/src/Microsoft/Data/SqlClient/SqlTransaction.cs => src/Microsoft/Data/SqlClient/SqlTransaction.netcore.cs} (52%) rename src/Microsoft.Data.SqlClient/{netfx/src/Microsoft/Data/SqlClient/SqlTransaction.cs => src/Microsoft/Data/SqlClient/SqlTransaction.netfx.cs} (62%) diff --git a/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj b/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj index 1bd80ed583..459416f96d 100644 --- a/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj +++ b/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj @@ -558,7 +558,12 @@ Microsoft\Data\SqlClient\SqlStatistics.cs - + + Microsoft\Data\SqlClient\SqlTransaction.netcore.cs + + + Microsoft\Data\SqlClient\SqlTransaction.cs + Microsoft\Data\SqlClient\SqlUdtInfo.cs diff --git a/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj b/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj index c88a172035..139a7c50ae 100644 --- a/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj +++ b/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj @@ -323,6 +323,7 @@ Microsoft\Data\SqlClient\SqlCommandBuilder.cs + Component Microsoft\Data\SqlClient\SqlCommandSet.cs @@ -545,7 +546,12 @@ Microsoft\Data\SqlClient\SqlStatistics.cs - + + Microsoft\Data\SqlClient\SqlTransaction.netfx.cs + + + Microsoft\Data\SqlClient\SqlTransaction.cs + Microsoft\Data\SqlClient\SqlUdtInfo.cs @@ -670,4 +676,4 @@ - + \ No newline at end of file diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.cs new file mode 100644 index 0000000000..2f38034e31 --- /dev/null +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.cs @@ -0,0 +1,175 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Data; +using System.Data.Common; +using System.Diagnostics; +using Microsoft.Data.Common; + +namespace Microsoft.Data.SqlClient +{ + /// + public sealed partial class SqlTransaction : DbTransaction + { + private static int s_objectTypeCount; // EventSource Counter + internal readonly int _objectID = System.Threading.Interlocked.Increment(ref s_objectTypeCount); + internal readonly IsolationLevel _isolationLevel = IsolationLevel.ReadCommitted; + + private SqlInternalTransaction _internalTransaction; + private readonly SqlConnection _connection; + + private bool _isFromAPI; + + internal SqlTransaction(SqlInternalConnection internalConnection, SqlConnection con, + IsolationLevel iso, SqlInternalTransaction internalTransaction) + { +#if NETFRAMEWORK + SqlConnection.VerifyExecutePermission(); +#endif + _isolationLevel = iso; + _connection = con; + + if (internalTransaction == null) + { + _internalTransaction = new SqlInternalTransaction(internalConnection, TransactionType.LocalFromAPI, this); + } + else + { + Debug.Assert(internalConnection.CurrentTransaction == internalTransaction, "Unexpected Parser.CurrentTransaction state!"); + _internalTransaction = internalTransaction; + _internalTransaction.InitParent(this); + } + } + + //////////////////////////////////////////////////////////////////////////////////////// + // PROPERTIES + //////////////////////////////////////////////////////////////////////////////////////// + + /// + new public SqlConnection Connection + {// MDAC 66655 + get + { + if (IsZombied) + { + return null; + } + else + { + return _connection; + } + } + } + + /// + override protected DbConnection DbConnection + { + get + { + return Connection; + } + } + + internal SqlInternalTransaction InternalTransaction + { + get + { + return _internalTransaction; + } + } + + /// + override public IsolationLevel IsolationLevel + { + get + { + ZombieCheck(); + return _isolationLevel; + } + } + + private bool IsYukonPartialZombie + { + get + { + return (null != _internalTransaction && _internalTransaction.IsCompleted); + } + } + + internal bool IsZombied + { + get + { + return (null == _internalTransaction || _internalTransaction.IsCompleted); + } + } + + internal int ObjectID + { + get + { + return _objectID; + } + } + + internal SqlStatistics Statistics + { + get + { + if (null != _connection) + { + if (_connection.StatisticsEnabled) + { + return _connection.Statistics; + } + } + return null; + } + } + + //////////////////////////////////////////////////////////////////////////////////////// + // INTERNAL METHODS + //////////////////////////////////////////////////////////////////////////////////////// + + internal void Zombie() + { + // For Yukon, we have to defer "zombification" until + // we get past the users' next rollback, else we'll + // throw an exception there that is a breaking change. + // Of course, if the connection is already closed, + // then we're free to zombify... + SqlInternalConnection internalConnection = (_connection.InnerConnection as SqlInternalConnection); + if (null != internalConnection +#if NETFRAMEWORK + && internalConnection.IsYukonOrNewer +#endif + && !_isFromAPI) + { + SqlClientEventSource.Log.TryAdvancedTraceEvent("SqlTransaction.Zombie | ADV | Object Id {0} yukon deferred zombie", ObjectID); + } + else + { + _internalTransaction = null; // pre-yukon zombification + } + } + + //////////////////////////////////////////////////////////////////////////////////////// + // PRIVATE METHODS + //////////////////////////////////////////////////////////////////////////////////////// + + private void ZombieCheck() + { + // If this transaction has been completed, throw exception since it is unusable. + if (IsZombied) + { + if (IsYukonPartialZombie) + { + _internalTransaction = null; // yukon zombification + } + + throw ADP.TransactionZombied(this); + } + } + } +} diff --git a/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlTransaction.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.netcore.cs similarity index 52% rename from src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlTransaction.cs rename to src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.netcore.cs index 63e0e0d10e..3d17aa6162 100644 --- a/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlTransaction.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.netcore.cs @@ -4,135 +4,21 @@ using System; using System.ComponentModel; -using System.Data; using System.Data.Common; -using System.Diagnostics; using Microsoft.Data.Common; namespace Microsoft.Data.SqlClient { - /// - public sealed class SqlTransaction : DbTransaction + /// + public sealed partial class SqlTransaction : DbTransaction { - private static readonly SqlDiagnosticListener s_diagnosticListener = new SqlDiagnosticListener(SqlClientDiagnosticListenerExtensions.DiagnosticListenerName); - private static int _objectTypeCount; // EventSource Counter - internal readonly int _objectID = System.Threading.Interlocked.Increment(ref _objectTypeCount); - internal readonly IsolationLevel _isolationLevel = IsolationLevel.ReadCommitted; - - private SqlInternalTransaction _internalTransaction; - private SqlConnection _connection; - - private bool _isFromAPI; - - internal SqlTransaction(SqlInternalConnection internalConnection, SqlConnection con, - IsolationLevel iso, SqlInternalTransaction internalTransaction) - { - _isolationLevel = iso; - _connection = con; - - if (internalTransaction == null) - { - _internalTransaction = new SqlInternalTransaction(internalConnection, TransactionType.LocalFromAPI, this); - } - else - { - Debug.Assert(internalConnection.CurrentTransaction == internalTransaction, "Unexpected Parser.CurrentTransaction state!"); - _internalTransaction = internalTransaction; - _internalTransaction.InitParent(this); - } - } - - //////////////////////////////////////////////////////////////////////////////////////// - // PROPERTIES - //////////////////////////////////////////////////////////////////////////////////////// - - /// - new public SqlConnection Connection - { - get - { - if (IsZombied) - { - return null; - } - else - { - return _connection; - } - } - } - - /// - override protected DbConnection DbConnection - { - get - { - return Connection; - } - } - - internal SqlInternalTransaction InternalTransaction - { - get - { - return _internalTransaction; - } - } - - /// - override public IsolationLevel IsolationLevel - { - get - { - ZombieCheck(); - return _isolationLevel; - } - } - - private bool IsYukonPartialZombie - { - get - { - return (null != _internalTransaction && _internalTransaction.IsCompleted); - } - } - - internal bool IsZombied - { - get - { - return (null == _internalTransaction || _internalTransaction.IsCompleted); - } - } - - internal int ObjectID - { - get - { - return _objectID; - } - } - - internal SqlStatistics Statistics - { - get - { - if (null != _connection) - { - if (_connection.StatisticsEnabled) - { - return _connection.Statistics; - } - } - return null; - } - } + private static readonly SqlDiagnosticListener s_diagnosticListener = new(SqlClientDiagnosticListenerExtensions.DiagnosticListenerName); //////////////////////////////////////////////////////////////////////////////////////// // PUBLIC METHODS //////////////////////////////////////////////////////////////////////////////////////// - /// + /// override public void Commit() { Exception e = null; @@ -157,8 +43,7 @@ override public void Commit() // GitHub Issue #130 - When a timeout exception has occurred on transaction completion request, // this connection may not be in reusable state. // We will abort this connection and make sure it does not go back to the pool. - var innerException = ex.InnerException as Win32Exception; - if (innerException != null && innerException.NativeErrorCode == TdsEnums.SNI_WAIT_TIMEOUT) + if (ex.InnerException is Win32Exception innerException && innerException.NativeErrorCode == TdsEnums.SNI_WAIT_TIMEOUT) { _connection.Abort(ex); } @@ -187,7 +72,7 @@ override public void Commit() } } - /// + /// protected override void Dispose(bool disposing) { if (disposing) @@ -200,7 +85,7 @@ protected override void Dispose(bool disposing) base.Dispose(disposing); } - /// + /// override public void Rollback() { Exception e = null; @@ -250,7 +135,7 @@ override public void Rollback() } } - /// + /// public void Rollback(string transactionName) { Exception e = null; @@ -290,7 +175,7 @@ public void Rollback(string transactionName) } } - /// + /// public void Save(string savePointName) { ZombieCheck(); @@ -310,45 +195,5 @@ public void Save(string savePointName) } } } - - //////////////////////////////////////////////////////////////////////////////////////// - // INTERNAL METHODS - //////////////////////////////////////////////////////////////////////////////////////// - - internal void Zombie() - { - // For Yukon, we have to defer "zombification" until - // we get past the users' next rollback, else we'll - // throw an exception there that is a breaking change. - // Of course, if the connection is already closed, - // then we're free to zombify... - SqlInternalConnection internalConnection = (_connection.InnerConnection as SqlInternalConnection); - if (null != internalConnection && !_isFromAPI) - { - SqlClientEventSource.Log.TryAdvancedTraceEvent("SqlTransaction.Zombie | ADV | Object Id {0} yukon deferred zombie", ObjectID); - } - else - { - _internalTransaction = null; // pre-yukon zombification - } - } - - //////////////////////////////////////////////////////////////////////////////////////// - // PRIVATE METHODS - //////////////////////////////////////////////////////////////////////////////////////// - - private void ZombieCheck() - { - // If this transaction has been completed, throw exception since it is unusable. - if (IsZombied) - { - if (IsYukonPartialZombie) - { - _internalTransaction = null; // yukon zombification - } - - throw ADP.TransactionZombied(this); - } - } } } diff --git a/src/Microsoft.Data.SqlClient/netfx/src/Microsoft/Data/SqlClient/SqlTransaction.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.netfx.cs similarity index 62% rename from src/Microsoft.Data.SqlClient/netfx/src/Microsoft/Data/SqlClient/SqlTransaction.cs rename to src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.netfx.cs index e9116df172..b339b889e5 100644 --- a/src/Microsoft.Data.SqlClient/netfx/src/Microsoft/Data/SqlClient/SqlTransaction.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.netfx.cs @@ -3,138 +3,22 @@ // See the LICENSE file in the project root for more information. using System.ComponentModel; -using System.Data; using System.Data.Common; -using System.Diagnostics; using System.Runtime.CompilerServices; using Microsoft.Data.Common; namespace Microsoft.Data.SqlClient { - /// - public sealed class SqlTransaction : DbTransaction + /// + public sealed partial class SqlTransaction : DbTransaction { - private static int _objectTypeCount; // EventSource Counter - internal readonly int _objectID = System.Threading.Interlocked.Increment(ref _objectTypeCount); - internal readonly IsolationLevel _isolationLevel = IsolationLevel.ReadCommitted; - - private SqlInternalTransaction _internalTransaction; - private SqlConnection _connection; - - private bool _isFromAPI; - - internal SqlTransaction(SqlInternalConnection internalConnection, SqlConnection con, - IsolationLevel iso, SqlInternalTransaction internalTransaction) - { - SqlConnection.VerifyExecutePermission(); - - _isolationLevel = iso; - _connection = con; - - if (internalTransaction == null) - { - _internalTransaction = new SqlInternalTransaction(internalConnection, TransactionType.LocalFromAPI, this); - } - else - { - Debug.Assert(internalConnection.CurrentTransaction == internalTransaction, "Unexpected Parser.CurrentTransaction state!"); - _internalTransaction = internalTransaction; - _internalTransaction.InitParent(this); - } - } - - //////////////////////////////////////////////////////////////////////////////////////// - // PROPERTIES - //////////////////////////////////////////////////////////////////////////////////////// - - /// - new public SqlConnection Connection - { // MDAC 66655 - get - { - if (IsZombied) - { - return null; - } - else - { - return _connection; - } - } - } - - /// - override protected DbConnection DbConnection - { - get - { - return Connection; - } - } - - internal SqlInternalTransaction InternalTransaction - { - get - { - return _internalTransaction; - } - } - - /// - override public IsolationLevel IsolationLevel - { - get - { - ZombieCheck(); - return _isolationLevel; - } - } - - private bool IsYukonPartialZombie - { - get - { - return (null != _internalTransaction && _internalTransaction.IsCompleted); - } - } - - internal bool IsZombied - { - get - { - return (null == _internalTransaction || _internalTransaction.IsCompleted); - } - } - - internal int ObjectID - { - get - { - return _objectID; - } - } - - internal SqlStatistics Statistics - { - get - { - if (null != _connection) - { - if (_connection.StatisticsEnabled) - { - return _connection.Statistics; - } - } - return null; - } - } //////////////////////////////////////////////////////////////////////////////////////// // PUBLIC METHODS //////////////////////////////////////////////////////////////////////////////////////// - /// + /// override public void Commit() { SqlConnection.ExecutePermission.Demand(); // MDAC 81476 @@ -151,14 +35,14 @@ override public void Commit() try { #if DEBUG - TdsParser.ReliabilitySection tdsReliabilitySection = new TdsParser.ReliabilitySection(); + TdsParser.ReliabilitySection tdsReliabilitySection = new(); RuntimeHelpers.PrepareConstrainedRegions(); try { tdsReliabilitySection.Start(); #else - { + { #endif //DEBUG bestEffortCleanupTarget = SqlInternalConnection.GetBestEffortCleanupTarget(_connection); statistics = SqlStatistics.StartTimer(Statistics); @@ -195,8 +79,7 @@ override public void Commit() // GitHub Issue #130 - When a timeout exception has occurred on transaction completion request, // this connection may not be in reusable state. // We will abort this connection and make sure it does not go back to the pool. - var innerException = e.InnerException as Win32Exception; - if (innerException != null && innerException.NativeErrorCode == TdsEnums.SNI_WAIT_TIMEOUT) + if (e.InnerException is Win32Exception innerException && innerException.NativeErrorCode == TdsEnums.SNI_WAIT_TIMEOUT) { _connection.Abort(e); } @@ -211,7 +94,7 @@ override public void Commit() } } - /// + /// protected override void Dispose(bool disposing) { if (disposing) @@ -221,7 +104,7 @@ protected override void Dispose(bool disposing) try { #if DEBUG - TdsParser.ReliabilitySection tdsReliabilitySection = new TdsParser.ReliabilitySection(); + TdsParser.ReliabilitySection tdsReliabilitySection = new(); RuntimeHelpers.PrepareConstrainedRegions(); try @@ -263,7 +146,7 @@ protected override void Dispose(bool disposing) base.Dispose(disposing); } - /// + /// override public void Rollback() { if (IsYukonPartialZombie) @@ -287,14 +170,14 @@ override public void Rollback() try { #if DEBUG - TdsParser.ReliabilitySection tdsReliabilitySection = new TdsParser.ReliabilitySection(); + TdsParser.ReliabilitySection tdsReliabilitySection = new(); RuntimeHelpers.PrepareConstrainedRegions(); try { tdsReliabilitySection.Start(); #else - { + { #endif //DEBUG bestEffortCleanupTarget = SqlInternalConnection.GetBestEffortCleanupTarget(_connection); statistics = SqlStatistics.StartTimer(Statistics); @@ -336,7 +219,7 @@ override public void Rollback() } } - /// + /// public void Rollback(string transactionName) { SqlConnection.ExecutePermission.Demand(); // MDAC 81476 @@ -351,14 +234,14 @@ public void Rollback(string transactionName) try { #if DEBUG - TdsParser.ReliabilitySection tdsReliabilitySection = new TdsParser.ReliabilitySection(); + TdsParser.ReliabilitySection tdsReliabilitySection = new(); RuntimeHelpers.PrepareConstrainedRegions(); try { tdsReliabilitySection.Start(); #else - { + { #endif //DEBUG bestEffortCleanupTarget = SqlInternalConnection.GetBestEffortCleanupTarget(_connection); statistics = SqlStatistics.StartTimer(Statistics); @@ -399,7 +282,7 @@ public void Rollback(string transactionName) } } - /// + /// public void Save(string savePointName) { SqlConnection.ExecutePermission.Demand(); // MDAC 81476 @@ -415,14 +298,14 @@ public void Save(string savePointName) try { #if DEBUG - TdsParser.ReliabilitySection tdsReliabilitySection = new TdsParser.ReliabilitySection(); + TdsParser.ReliabilitySection tdsReliabilitySection = new(); RuntimeHelpers.PrepareConstrainedRegions(); try { tdsReliabilitySection.Start(); #else - { + { #endif //DEBUG bestEffortCleanupTarget = SqlInternalConnection.GetBestEffortCleanupTarget(_connection); statistics = SqlStatistics.StartTimer(Statistics); @@ -458,49 +341,5 @@ public void Save(string savePointName) } } } - - //////////////////////////////////////////////////////////////////////////////////////// - // INTERNAL METHODS - //////////////////////////////////////////////////////////////////////////////////////// - - internal void Zombie() - { - // SQLBUDT #402544 For Yukon, we have to defer "zombification" until - // we get past the users' next rollback, else we'll - // throw an exception there that is a breaking change. - // Of course, if the connection is aready closed, - // then we're free to zombify... - SqlInternalConnection internalConnection = (_connection.InnerConnection as SqlInternalConnection); - - if (null != internalConnection && internalConnection.IsYukonOrNewer && !_isFromAPI) - { - SqlClientEventSource.Log.TryAdvancedTraceEvent(" {0} yukon deferred zombie", ObjectID); - } - else - { - _internalTransaction = null; // pre-yukon zombification - } - - } - - //////////////////////////////////////////////////////////////////////////////////////// - // PRIVATE METHODS - //////////////////////////////////////////////////////////////////////////////////////// - - private void ZombieCheck() - { - // If this transaction has been completed, throw exception since it is unusable. - if (IsZombied) - { - - if (IsYukonPartialZombie) - { - _internalTransaction = null; // yukon zombification - } - - throw ADP.TransactionZombied(this); - } - } } } - From ab69f7e743158315586eb70a56d73137a3d24001 Mon Sep 17 00:00:00 2001 From: Kaur-Parminder Date: Sun, 17 Oct 2021 21:07:05 -0700 Subject: [PATCH 02/11] code style changes --- .../Data/SqlClient/SqlTransaction.cs | 40 +++---------------- 1 file changed, 5 insertions(+), 35 deletions(-) diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.cs index 2f38034e31..49eb024c69 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.cs @@ -63,21 +63,9 @@ internal SqlTransaction(SqlInternalConnection internalConnection, SqlConnection } /// - override protected DbConnection DbConnection - { - get - { - return Connection; - } - } + override protected DbConnection DbConnection => Connection; - internal SqlInternalTransaction InternalTransaction - { - get - { - return _internalTransaction; - } - } + internal SqlInternalTransaction InternalTransaction => _internalTransaction; /// override public IsolationLevel IsolationLevel @@ -89,29 +77,11 @@ override public IsolationLevel IsolationLevel } } - private bool IsYukonPartialZombie - { - get - { - return (null != _internalTransaction && _internalTransaction.IsCompleted); - } - } + private bool IsYukonPartialZombie => _internalTransaction !=null && _internalTransaction.IsCompleted; - internal bool IsZombied - { - get - { - return (null == _internalTransaction || _internalTransaction.IsCompleted); - } - } + internal bool IsZombied => _internalTransaction == null || _internalTransaction.IsCompleted; - internal int ObjectID - { - get - { - return _objectID; - } - } + internal int ObjectID => _objectID; internal SqlStatistics Statistics { From e24c8cb049fdf5540479c85047bcebcf4e78fb44 Mon Sep 17 00:00:00 2001 From: Kaur-Parminder Date: Sun, 17 Oct 2021 21:09:19 -0700 Subject: [PATCH 03/11] Removing unintentional previous change --- .../netfx/src/Microsoft.Data.SqlClient.csproj | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj b/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj index 139a7c50ae..a4f3d0303c 100644 --- a/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj +++ b/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj @@ -323,7 +323,6 @@ Microsoft\Data\SqlClient\SqlCommandBuilder.cs - Component Microsoft\Data\SqlClient\SqlCommandSet.cs @@ -676,4 +675,4 @@ - \ No newline at end of file + From 7aebf45737714e5fa2b1e8e7d3193b78f0d27da3 Mon Sep 17 00:00:00 2001 From: Kaur-Parminder Date: Mon, 7 Mar 2022 09:49:11 -0800 Subject: [PATCH 04/11] SNI Update SNI Update --- tools/props/Versions.props | 6 +++--- tools/specs/Microsoft.Data.SqlClient.nuspec | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tools/props/Versions.props b/tools/props/Versions.props index 44002cbbae..d58b93e218 100644 --- a/tools/props/Versions.props +++ b/tools/props/Versions.props @@ -6,7 +6,7 @@ 5.0.0.0 - 5.0.0-dev + 5.0.0-preview1.22062.1 $(NugetPackageVersion) @@ -20,7 +20,7 @@ - 4.0.0 + 5.0.0-preview1.22062.1 4.3.1 4.3.0 @@ -38,7 +38,7 @@ 5.0.0 - 4.0.0 + 5.0.0-preview1.22062.1 5.0.0 5.0.0 5.0.0 diff --git a/tools/specs/Microsoft.Data.SqlClient.nuspec b/tools/specs/Microsoft.Data.SqlClient.nuspec index 750ee2f48a..7f5ed91f43 100644 --- a/tools/specs/Microsoft.Data.SqlClient.nuspec +++ b/tools/specs/Microsoft.Data.SqlClient.nuspec @@ -28,7 +28,7 @@ When using NuGet 3.x this package requires at least version 3.4. sqlclient microsoft.data.sqlclient - + @@ -42,7 +42,7 @@ When using NuGet 3.x this package requires at least version 3.4. - + @@ -60,7 +60,7 @@ When using NuGet 3.x this package requires at least version 3.4. - + @@ -78,7 +78,7 @@ When using NuGet 3.x this package requires at least version 3.4. - + From e7931b534e06d5eae68421c3eb5d7e52ee19d6e0 Mon Sep 17 00:00:00 2001 From: Kaur-Parminder Date: Mon, 7 Mar 2022 10:11:45 -0800 Subject: [PATCH 05/11] Revert "SNI Update" This reverts commit 7aebf45737714e5fa2b1e8e7d3193b78f0d27da3. --- tools/props/Versions.props | 6 +++--- tools/specs/Microsoft.Data.SqlClient.nuspec | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tools/props/Versions.props b/tools/props/Versions.props index d58b93e218..44002cbbae 100644 --- a/tools/props/Versions.props +++ b/tools/props/Versions.props @@ -6,7 +6,7 @@ 5.0.0.0 - 5.0.0-preview1.22062.1 + 5.0.0-dev $(NugetPackageVersion) @@ -20,7 +20,7 @@ - 5.0.0-preview1.22062.1 + 4.0.0 4.3.1 4.3.0 @@ -38,7 +38,7 @@ 5.0.0 - 5.0.0-preview1.22062.1 + 4.0.0 5.0.0 5.0.0 5.0.0 diff --git a/tools/specs/Microsoft.Data.SqlClient.nuspec b/tools/specs/Microsoft.Data.SqlClient.nuspec index 7f5ed91f43..750ee2f48a 100644 --- a/tools/specs/Microsoft.Data.SqlClient.nuspec +++ b/tools/specs/Microsoft.Data.SqlClient.nuspec @@ -28,7 +28,7 @@ When using NuGet 3.x this package requires at least version 3.4. sqlclient microsoft.data.sqlclient - + @@ -42,7 +42,7 @@ When using NuGet 3.x this package requires at least version 3.4. - + @@ -60,7 +60,7 @@ When using NuGet 3.x this package requires at least version 3.4. - + @@ -78,7 +78,7 @@ When using NuGet 3.x this package requires at least version 3.4. - + From 584e95402846f3850302266a4584223cb59ba892 Mon Sep 17 00:00:00 2001 From: Kaur-Parminder Date: Thu, 31 Mar 2022 09:12:37 -0700 Subject: [PATCH 06/11] resolve conflicts --- .../src/Microsoft.Data.SqlClient.csproj | 727 ++++++++++-------- .../netfx/src/Microsoft.Data.SqlClient.csproj | 484 ++++++------ .../Data/SqlClient/SqlTransaction.cs | 6 +- .../Data/SqlClient/SqlTransaction.netcore.cs | 167 ++-- .../Data/SqlClient/SqlTransaction.netfx.cs | 18 +- 5 files changed, 734 insertions(+), 668 deletions(-) diff --git a/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj b/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj index 459416f96d..4a30ac4d74 100644 --- a/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj +++ b/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj @@ -34,53 +34,50 @@ - - Microsoft\Data\SqlClient\SqlClientEventSource.cs - - - Microsoft\Data\SqlClient\SqlClientLogger.cs - - - Microsoft\Data\Sql\SqlNotificationRequest.cs - Microsoft\Data\Common\ActivityCorrelator.cs - - Microsoft\Data\Common\DbConnectionStringCommon.cs + + Microsoft\Data\Common\AdapterUtil.cs + + + Microsoft\Data\Common\DbConnectionOptions.Common.cs Microsoft\Data\Common\DbConnectionPoolKey.cs + + Microsoft\Data\Common\DbConnectionStringCommon.cs + Microsoft\Data\Common\MultipartIdentifier.cs Microsoft\Data\Common\NameValuePair.cs - - Microsoft\Data\Common\DbConnectionOptions.Common.cs + + Microsoft\Data\DataException.cs - - Microsoft\Data\SqlClient\DataClassification\SensitivityClassification.cs + + Microsoft\Data\OperationAbortedException.cs - - Microsoft\Data\ProviderBase\DbConnectionPoolProviderInfo.cs + + Microsoft\Data\ProviderBase\DbConnectionPoolAuthenticationContext.cs - - Microsoft\Data\ProviderBase\DbConnectionPoolOptions.cs + + Microsoft\Data\ProviderBase\DbConnectionPoolAuthenticationContextKey.cs Microsoft\Data\ProviderBase\DbConnectionPoolGroupProviderInfo.cs - - Microsoft\Data\ProviderBase\DbConnectionPoolAuthenticationContext.cs + + Microsoft\Data\ProviderBase\DbConnectionPoolOptions.cs - - Microsoft\Data\ProviderBase\DbConnectionPoolAuthenticationContextKey.cs + + Microsoft\Data\ProviderBase\DbConnectionPoolProviderInfo.cs - Common\Microsoft\Data\ProviderBase\DbMetaDataFactory.cs + Microsoft\Data\ProviderBase\DbMetaDataFactory.cs Microsoft\Data\ProviderBase\FieldNameLookup.cs @@ -88,6 +85,21 @@ Microsoft\Data\ProviderBase\TimeoutTimer.cs + + Microsoft\Data\Sql\SqlDataSourceEnumerator.cs + + + Microsoft\Data\Sql\SqlDataSourceEnumeratorManagedHelper.cs + + + Microsoft\Data\Sql\SqlDataSourceEnumeratorUtil.cs + + + Microsoft\Data\Sql\SqlNotificationRequest.cs + + + Microsoft\Data\SqlClient\ActiveDirectoryAuthenticationProvider.cs + Microsoft\Data\SqlClient\ActiveDirectoryAuthenticationTimeoutRetryHelper.cs @@ -97,18 +109,78 @@ Microsoft\Data\SqlClient\AssemblyRef.cs - - Microsoft\Data\SqlClient\ActiveDirectoryAuthenticationProvider.cs + + Microsoft\Data\SqlClient\ColumnEncryptionKeyInfo.cs + + + Microsoft\Data\SqlClient\DataClassification\SensitivityClassification.cs + + + Microsoft\Data\SqlClient\EnclaveDelegate.cs + + + Microsoft\Data\SqlClient\EnclavePackage.cs Microsoft\Data\SqlClient\LocalAppContextSwitches.cs + + Microsoft\Data\SqlClient\OnChangedEventHandler.cs + + + Microsoft\Data\SqlClient\ParameterPeekAheadValue.cs + + + Microsoft\Data\SqlClient\PoolBlockingPeriod.cs + + + Microsoft\Data\SqlClient\Reliability\AppConfigManager.cs + + + Microsoft\Data\SqlClient\Reliability\SqlRetryingEventArgs.cs + + + Microsoft\Data\SqlClient\Reliability\SqlRetryIntervalBaseEnumerator.cs + + + Microsoft\Data\SqlClient\Reliability\SqlRetryLogic.cs + + + Microsoft\Data\SqlClient\Reliability\SqlRetryLogicBase.cs + + + Microsoft\Data\SqlClient\Reliability\SqlRetryLogicBaseProvider.cs + + + Microsoft\Data\SqlClient\Reliability\SqlRetryLogicProvider.cs + + + Microsoft\Data\SqlClient\Reliability\SqlConfigurableRetryFactory.cs + + + Microsoft\Data\SqlClient\Reliability\SqlConfigurableRetryLogicLoader.cs + + + Microsoft\Data\SqlClient\Reliability\SqlConfigurableRetryLogicManager.cs + + + Microsoft\Data\SqlClient\Reliability\SqlRetryIntervalEnumerators.cs + + + Microsoft\Data\SqlClient\RowsCopiedEventArgs.cs + + + Microsoft\Data\SqlClient\RowsCopiedEventHandler.cs + Microsoft\Data\SqlClient\Server\ExtendedClrTypeCode.cs Microsoft\Data\SqlClient\Server\IBinarySerialize.cs + + Microsoft\Data\SqlClient\Server\InvalidUdtException.cs + Microsoft\Data\SqlClient\Server\ITypedGetters.cs @@ -124,15 +196,45 @@ Microsoft\Data\SqlClient\Server\MemoryRecordBuffer.cs + + Microsoft\Data\SqlClient\Server\MetadataUtilsSmi.cs + + + Microsoft\Data\SqlClient\Server\SmiEventSink.cs + + + Microsoft\Data\SqlClient\Server\SmiEventSink_Default.Common.cs + Microsoft\Data\SqlClient\Server\SmiGettersStream.cs + + Microsoft\Data\SqlClient\Server\SmiMetaData.cs + + + Microsoft\Data\SqlClient\Server\SmiMetaDataProperty.cs + + + Microsoft\Data\SqlClient\Server\SmiRecordBuffer.cs + Microsoft\Data\SqlClient\Server\SmiSettersStream.cs + + Microsoft\Data\SqlClient\Server\SmiTypedGetterSetter.cs + + + Microsoft\Data\SqlClient\Server\SmiXetterAccessMap.Common.cs + Microsoft\Data\SqlClient\Server\SmiXetterTypeCode.cs + + Microsoft\Data\SqlClient\Server\SqlDataRecord.cs + + + Microsoft\Data\SqlClient\Server\SqlDataRecord.netcore.cs + Microsoft\Data\SqlClient\Server\SqlFacetAttribute.cs @@ -148,45 +250,24 @@ Microsoft\Data\SqlClient\Server\SqlNormalizer.cs - - Microsoft\Data\SqlClient\Server\SqlUserDefinedTypeAttribute.cs + + Microsoft\Data\SqlClient\Server\SqlRecordBuffer.cs Microsoft\Data\SqlClient\Server\SqlUserDefinedAggregateAttribute.cs - - Microsoft\Data\SqlClient\Server\SmiMetaData.cs - - - Microsoft\Data\SqlClient\Server\SqlDataRecord.cs - - - Microsoft\Data\SqlClient\Server\SqlDataRecord.netcore.cs - - - Microsoft\Data\SqlClient\ColumnEncryptionKeyInfo.cs - - - Microsoft\Data\SqlClient\OnChangedEventHandler.cs - - - Microsoft\Data\SqlClient\ParameterPeekAheadValue.cs - - - Microsoft\Data\SqlClient\PoolBlockingPeriod.cs + + Microsoft\Data\SqlClient\Server\SqlUserDefinedTypeAttribute.cs - - Microsoft\Data\SqlClient\RowsCopiedEventArgs.cs + + Microsoft\Data\SqlClient\Server\ValueUtilsSmi.cs - - Microsoft\Data\SqlClient\RowsCopiedEventHandler.cs + + Microsoft\Data\SqlClient\SignatureVerificationCache.cs Microsoft\Data\SqlClient\SortOrder.cs - - Microsoft\Data\SqlClient\SqlAuthenticationToken.cs - Microsoft\Data\SqlClient\SqlAeadAes256CbcHmac256Algorithm.cs @@ -202,18 +283,24 @@ Microsoft\Data\SqlClient\SqlAuthenticationProvider.cs + + Microsoft\Data\SqlClient\SqlAuthenticationToken.cs + Microsoft\Data\SqlClient\SqlBulkCopyColumnMapping.cs - - Microsoft\Data\SqlClient\SqlBulkCopyOptions.cs + + Microsoft\Data\SqlClient\SqlBulkCopyColumnMappingCollection.cs Microsoft\Data\SqlClient\SqlBulkCopyColumnOrderHint.cs - + Microsoft\Data\SqlClient\SqlBulkCopyColumnOrderHintCollection.cs + + Microsoft\Data\SqlClient\SqlBulkCopyOptions.cs + Microsoft\Data\SqlClient\SqlCachedBuffer.cs @@ -229,6 +316,12 @@ Microsoft\Data\SqlClient\SqlClientEncryptionType.cs + + Microsoft\Data\SqlClient\SqlClientEventSource.cs + + + Microsoft\Data\SqlClient\SqlClientLogger.cs + Microsoft\Data\SqlClient\SqlClientMetaDataCollectionNames.cs @@ -250,21 +343,66 @@ Microsoft\Data\SqlClient\SqlConnectionPoolGroupProviderInfo.cs + + Microsoft\Data\SqlClient\SqlConnectionPoolKey.cs + Microsoft\Data\SqlClient\SqlConnectionPoolProviderInfo.cs + + Microsoft\Data\SqlClient\SqlConnectionString.cs + + + Microsoft\Data\SqlClient\SqlConnectionStringBuilder.cs + + + Microsoft\Data\SqlClient\SqlConnectionTimeoutErrorInternal.cs + Microsoft\Data\SqlClient\SqlCredential.cs Microsoft\Data\SqlClient\SqlDataAdapter.cs + + Microsoft\Data\SqlClient\SqlDependency.cs + + + Microsoft\Data\SqlClient\SqlDependencyListener.cs + + + Microsoft\Data\SqlClient\SqlEnclaveSession.cs + + + Microsoft\Data\SqlClient\SqlEnums.cs + + + Microsoft\Data\SqlClient\SqlError.cs + Microsoft\Data\SqlClient\SqlErrorCollection.cs + + Microsoft\Data\SqlClient\SqlException.cs + + + Microsoft\Data\SqlClient\SQLFallbackDNSCache.cs + + + Microsoft\Data\SqlClient\SqlInfoMessageEvent.cs + Microsoft\Data\SqlClient\SqlInfoMessageEventHandler.cs + + Microsoft\Data\SqlClient\SqlInternalTransaction.cs + + + Microsoft\Data\SqlClient\SqlMetadataFactory.cs + + + Microsoft\Data\SqlClient\SqlNotificationEventArgs.cs + Microsoft\Data\SqlClient\SqlNotificationInfo.cs @@ -274,15 +412,18 @@ Microsoft\Data\SqlClient\SqlNotificationType.cs - - Microsoft\Data\SqlClient\SqlParameterCollection.cs - Microsoft\Data\SqlClient\SqlObjectPool.cs + + Microsoft\Data\SqlClient\SqlParameterCollection.cs + Microsoft\Data\SqlClient\SqlQueryMetadataCache.cs + + Microsoft\Data\SqlClient\SqlReferenceCollection.cs + Microsoft\Data\SqlClient\SqlRowUpdatedEvent.cs @@ -297,36 +438,24 @@ Microsoft\Data\SqlClient\SqlSecurityUtility.cs - - - Microsoft\Data\SqlClient\SqlSymmetricKeyCache.cs - - - Microsoft\Data\SQLTypes\SQLResource.cs - - - Microsoft\Data\SqlTypes\SqlTypeWorkarounds.cs - - Microsoft\Data\SqlClient\SQLFallbackDNSCache.cs - - - Microsoft\Data\OperationAbortedException.cs + + Microsoft\Data\SqlClient\SqlSequentialStream.cs - - Microsoft\Data\DataException.cs + + Microsoft\Data\SqlClient\Server\SqlSer.cs - - Microsoft\Data\SqlClient\Server\InvalidUdtException.cs + + Microsoft\Data\SqlClient\SqlStatistics.cs - - Microsoft\Data\SqlClient\Server\SqlRecordBuffer.cs + + Microsoft\Data\SqlClient\SqlSymmetricKeyCache.cs - - Microsoft\Data\SqlClient\SignatureVerificationCache.cs + + Microsoft\Data\SqlClient\SqlUdtInfo.cs - - Microsoft\Data\SqlClient\TdsValueSetter.cs + + Microsoft\Data\SqlClient\SqlUtil.cs Microsoft\Data\SqlClient\TdsParameterSetter.cs @@ -334,55 +463,17 @@ Microsoft\Data\SqlClient\TdsRecordBufferSetter.cs - - Microsoft\Data\SqlClient\Server\SmiRecordBuffer.cs + + Microsoft\Data\SqlClient\TdsValueSetter.cs - - Microsoft\Data\SqlClient\Server\SmiTypedGetterSetter.cs + + Microsoft\Data\SQLTypes\SQLResource.cs - - Microsoft\Data\SqlClient\Server\SmiEventSink.cs - - - Microsoft\Data\SqlClient\Server\SmiEventSink_Default.Common.cs - - - Microsoft\Data\SqlClient\Reliability\SqlRetryingEventArgs.cs - - - Microsoft\Data\SqlClient\Reliability\SqlRetryIntervalBaseEnumerator.cs - - - Microsoft\Data\SqlClient\Reliability\SqlRetryLogic.cs - - - Microsoft\Data\SqlClient\Reliability\SqlRetryLogicBase.cs - - - Microsoft\Data\SqlClient\Reliability\SqlRetryLogicBaseProvider.cs - - - Microsoft\Data\SqlClient\Reliability\SqlRetryLogicProvider.cs - - - Microsoft\Data\SqlClient\Reliability\SqlConfigurableRetryFactory.cs - - - Microsoft\Data\SqlClient\Reliability\SqlRetryIntervalEnumerators.cs - - - Microsoft\Data\SqlClient\Reliability\SqlConfigurableRetryLogicManager.cs - - - Microsoft\Data\SqlClient\Reliability\SqlConfigurableRetryLogicLoader.cs - - - Microsoft\Data\SqlClient\Reliability\AppConfigManager.cs + + Microsoft\Data\SqlTypes\SqlTypeWorkarounds.cs - - - - Microsoft\Data\SqlClient\SqlUtil.cs + + Microsoft\Data\SqlClient\SqlStream.cs Resources\ResCategoryAttribute.cs @@ -393,9 +484,6 @@ Resources\StringsHelper.cs - - Microsoft\Data\Common\AdapterUtil.cs - @@ -409,12 +497,12 @@ + + - - @@ -423,29 +511,32 @@ Microsoft\Data\SqlClient\AlwaysEncryptedEnclaveProviderUtils.cs - + + Microsoft\Data\SqlClient\AzureAttestationBasedEnclaveProvider.cs + + + Microsoft\Data\SqlClient\EnclaveDelegate.Crypto.cs + Microsoft\Data\SqlClient\EnclaveProviderBase.cs Microsoft\Data\SqlClient\EnclaveSessionCache.cs - Microsoft\Data\SqlClient\SqlEnclaveAttestationParameters.Crypto.cs - - Microsoft\Data\SqlClient\EnclaveDelegate.Crypto.cs - - - Microsoft\Data\SqlClient\AzureAttestationBasedEnclaveProvider.cs - Microsoft\Data\SqlClient\VirtualSecureModeEnclaveProvider.cs + + Microsoft\Data\SqlClient\NoneAttestationEnclaveProvider.cs + Microsoft\Data\SqlClient\VirtualSecureModeEnclaveProviderBase.cs + + @@ -453,18 +544,14 @@ - - - - - + + + - - - - + + @@ -480,93 +567,79 @@ Strings.Designer.cs System - - - - - - - - - Common\Microsoft\Data\ProviderBase\DbConnectionInternal.cs + + Common\CoreLib\System\Threading\Tasks\TaskToApm.cs + + + Common\Microsoft\Data\ProviderBase\DbConnectionClosed.cs Common\Microsoft\Data\ProviderBase\DbConnectionFactory.cs + + Common\Microsoft\Data\ProviderBase\DbConnectionInternal.cs + Common\Microsoft\Data\ProviderBase\DbConnectionPoolGroup.cs Common\Microsoft\Data\ProviderBase\DbReferenceCollection.cs - - Common\Microsoft\Data\ProviderBase\DbConnectionClosed.cs - + + + - - Microsoft\Data\SqlClient\EnclaveDelegate.cs - - - Microsoft\Data\SqlClient\EnclavePackage.cs - - - - + + + + + + + + + + + + + + + + + + + + + + - + - - - - - Microsoft\Data\SqlClient\SqlConnectionTimeoutErrorInternal.cs - - - + - - - - Microsoft\Data\SqlClient\SqlEnclaveSession.cs - - - - - - - - - - Microsoft\Data\SqlClient\SqlStatistics.cs - - Microsoft\Data\SqlClient\SqlTransaction.netcore.cs Microsoft\Data\SqlClient\SqlTransaction.cs - - Microsoft\Data\SqlClient\SqlUdtInfo.cs - @@ -574,36 +647,17 @@ - - - - Common\CoreLib\System\Threading\Tasks\TaskToApm.cs - - - - - - - - - - - - - - - - - - - - - - + + + Microsoft\Data\Sql\SqlDataSourceEnumeratorNativeHelper.cs + + + Microsoft\Data\Sql\SqlDataSourceEnumerator.Windows.cs + @@ -638,14 +692,14 @@ Common\Interop\Windows\Interop.UNICODE_STRING.cs - - Common\Interop\Windows\Kernel32\Interop.IoControlCodeAccess.cs - Common\Interop\Windows\Kernel32\Interop.CTL_CODE.cs - Common\Interop\Windows\kernel32\Interop.DeviceIoControl.cs + Common\Interop\Windows\Kernel32\Interop.DeviceIoControl.cs + + + Common\Interop\Windows\Kernel32\Interop.IoControlCodeAccess.cs Common\Interop\Windows\Kernel32\Interop.IoControlTransferType.cs @@ -660,219 +714,220 @@ Common\Interop\Windows\NtDll\Interop.NtCreateFile.cs - Common\Interop\Windows\Interop.RtlNtStatusToDosError.cs + Common\Interop\Windows\NtDll\Interop.RtlNtStatusToDosError.cs - + - - - - + + + + - + + Common\Interop\Windows\kernel32\Interop.LoadLibraryEx.cs + - + - + + - - Common\Interop\Windows\kernel32\Interop.LoadLibraryEx.cs - - + + Common\CoreLib\Microsoft\Win32\SafeHandles\SafeLibraryHandle.cs + Common\Interop\Windows\kernel32\Interop.FreeLibrary.cs Common\Interop\Windows\kernel32\Interop.GetProcAddress.cs - - Common\CoreLib\Microsoft\Win32\SafeHandles\SafeLibraryHandle.cs - + + + Common\CoreLib\Interop\Windows\Kernel32\Interop.CloseHandle.cs + + + Common\Interop\Windows\Crypt32\Interop.certificates.cs + + + Common\Interop\Windows\Crypt32\Interop.certificates_types.cs + + + Common\Interop\Windows\Interop.Libraries.cs + Common\Interop\Windows\SChannel\Interop.SecPkgContext_ApplicationProtocol.cs - - Common\System\Net\Security\NegotiateStreamPal.Windows.cs + + Common\Interop\Windows\SChannel\Interop.SECURITY_STATUS.cs - - Common\Interop\Windows\sspicliSafeDeleteContext.cs + + Common\Interop\Windows\SChannel\SecPkgContext_ConnectionInfo.cs - - Common\Interop\Windows\sspicli\SecuritySafeHandles.cs + + Common\Interop\Windows\sspicli\GlobalSSPI.cs Common\Interop\Windows\sspicli\Interop.SSPI.cs - - Common\System\Net\Security\SecurityContextTokenHandle.cs - - - Common\Interop\Windows\Interop.Libraries.cs + + Common\Interop\Windows\sspicli\NegotiationInfoClass.cs - - Common\Interop\Windows\SChannel\Interop.SECURITY_STATUS.cs + + Common\Interop\Windows\sspicli\SafeDeleteContext.cs Common\Interop\Windows\sspicli\SecPkgContext_Bindings.cs - - Common\System\Net\DebugCriticalHandleZeroOrMinusOneIsInvalid.cs - - - Common\System\Net\Security\NetEventSource.Security.cs + + Common\Interop\Windows\sspicli\SecPkgContext_NegotiationInfoW.cs - - Common\CoreLib\Interop\Windows\Kernel32\Interop.CloseHandle.cs + + Common\Interop\Windows\sspicli\SecPkgContext_Sizes.cs - - Common\Interop\Windows\sspicli\GlobalSSPI.cs + + Common\Interop\Windows\sspicli\SecPkgContext_StreamSizes.cs - - Common\Interop\Windows\sspicli\SSPIInterface.cs + + Common\Interop\Windows\sspicli\SecurityPackageInfo.cs Common\Interop\Windows\sspicli\SecurityPackageInfoClass.cs - - Common\Interop\Windows\sspicli\SecurityPackageInfo.cs + + Common\Interop\Windows\sspicli\SecuritySafeHandles.cs Common\Interop\Windows\sspicli\SSPIAuthType.cs + + Common\Interop\Windows\sspicli\SSPIInterface.cs + Common\Interop\Windows\sspicli\SSPISecureChannelType.cs Common\Interop\Windows\sspicli\SSPIWrapper.cs - - Common\System\Net\Security\NetEventSource.Security.Windows.cs - - - Common\Interop\Windows\sspicli\SecPkgContext_Sizes.cs - - - Common\Interop\Windows\sspicli\SecPkgContext_StreamSizes.cs + + Common\System\Collections\Generic\BidirectionalDictionary.cs - - Common\Interop\Windows\sspicli\SecPkgContext_NegotiationInfoW.cs + + Common\System\Net\ContextFlagsAdapterPal.Windows.cs - - Common\Interop\Windows\SChannel\SecPkgContext_ConnectionInfo.cs + + Common\System\Net\DebugCriticalHandleZeroOrMinusOneIsInvalid.cs - - Common\Interop\Windows\sspicli\NegotiationInfoClass.cs + + Common\System\Net\Security\NegotiateStreamPal.Windows.cs - - Common\Interop\Windows\Crypt32\Interop.certificates.cs + + Common\System\Net\Security\NetEventSource.Security.cs - - Common\Interop\Windows\Crypt32\Interop.certificates_types.cs + + Common\System\Net\Security\NetEventSource.Security.Windows.cs - - Common\System\Net\ContextFlagsAdapterPal.Windows.cs + + Common\System\Net\Security\SecurityContextTokenHandle.cs Common\System\Net\SecurityStatusAdapterPal.Windows.cs - - Common\System\Collections\Generic\BidirectionalDictionary.cs - Common\System\Net\ContextFlagsPal.cs - - Common\System\Net\SecurityStatusPal.cs - - - Common\System\Net\Security\SecurityBufferType.cs - - - Common\System\Net\Security\SecurityBuffer.cs + + Common\System\Net\DebugCriticalHandleMinusOneIsInvalid.cs Common\System\Net\DebugSafeHandle.cs - - Common\System\Net\DebugCriticalHandleMinusOneIsInvalid.cs - - - Common\System\Net\Logging\NetEventSource.Common.cs + + Common\System\Net\InternalException.cs Common\System\Net\Logging\DebugThreadTracking.cs - - Common\System\Net\InternalException.cs + + Common\System\Net\Logging\NetEventSource.Common.cs Common\System\Net\NegotiationInfoClass.cs + + Common\System\Net\Security\SecurityBuffer.cs + + + Common\System\Net\Security\SecurityBufferType.cs + + + Common\System\Net\SecurityStatusPal.cs + - - - - Common\System\Net\Security\NegotiateStreamPal.Unix.cs - - - Common\System\Net\Security\Unix\SafeDeleteContext.cs + + Common\Interop\Unix\Interop.Libraries.cs - - Common\System\Net\Security\Unix\SafeFreeCredentials.cs + + Common\Interop\Unix\System.Net.Security.Native\Interop.GssApiException.cs - - Common\Microsoft\Win32\SafeHandles\GssSafeHandles.cs + + Common\Interop\Unix\System.Net.Security.Native\Interop.GssBuffer.cs Common\Interop\Unix\System.Net.Security.Native\Interop.NetSecurityNative.cs - - Common\System\Net\Security\Unix\SafeFreeNegoCredentials.cs + + Common\Microsoft\Win32\SafeHandles\GssSafeHandles.cs - - Common\Interop\Unix\Interop.Libraries.cs + + Common\System\Net\ContextFlagsAdapterPal.Unix.cs - - Common\Interop\Unix\System.Net.Security.Native\Interop.GssBuffer.cs + + Common\System\Net\Security\NegotiateStreamPal.Unix.cs + + + Common\System\Net\Security\Unix\SafeDeleteContext.cs Common\System\Net\Security\Unix\SafeDeleteNegoContext.cs - - Common\Interop\Unix\System.Net.Security.Native\Interop.GssApiException.cs + + Common\System\Net\Security\Unix\SafeFreeCredentials.cs - - Common\System\Net\ContextFlagsAdapterPal.Unix.cs + + Common\System\Net\Security\Unix\SafeFreeNegoCredentials.cs - - + + + - + + + diff --git a/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj b/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj index a4f3d0303c..9d2541e544 100644 --- a/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj +++ b/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj @@ -89,21 +89,18 @@ - - Microsoft\Data\SqlClient\LocalAppContextSwitches.cs - - - Microsoft\Data\SqlClient\SqlClientEventSource.cs - - - Microsoft\Data\SqlClient\SqlClientLogger.cs - Microsoft\Data\Common\ActivityCorrelator.cs + + Microsoft\Data\Common\AdapterUtil.cs + Microsoft\Data\Common\DbConnectionStringCommon.cs + + Microsoft\Data\Common\DbConnectionOptions.Common.cs + Microsoft\Data\Common\DbConnectionPoolKey.cs @@ -113,29 +110,26 @@ Microsoft\Data\Common\NameValuePair.cs - - Microsoft\Data\Common\DbConnectionOptions.Common.cs - - - Microsoft\Data\Sql\SqlNotificationRequest.cs + + Microsoft\Data\DataException.cs - - Microsoft\Data\SqlClient\DataClassification\SensitivityClassification.cs + + Microsoft\Data\OperationAbortedException.cs - - Microsoft\Data\ProviderBase\DbConnectionPoolProviderInfo.cs + + Microsoft\Data\ProviderBase\DbConnectionPoolAuthenticationContext.cs - - Microsoft\Data\ProviderBase\DbConnectionPoolOptions.cs + + Microsoft\Data\ProviderBase\DbConnectionPoolAuthenticationContextKey.cs Microsoft\Data\ProviderBase\DbConnectionPoolGroupProviderInfo.cs - - Microsoft\Data\ProviderBase\DbConnectionPoolAuthenticationContext.cs + + Microsoft\Data\ProviderBase\DbConnectionPoolOptions.cs - - Microsoft\Data\ProviderBase\DbConnectionPoolAuthenticationContextKey.cs + + Microsoft\Data\ProviderBase\DbConnectionPoolProviderInfo.cs Microsoft\Data\ProviderBase\DbMetaDataFactory.cs @@ -146,6 +140,21 @@ Microsoft\Data\ProviderBase\TimeoutTimer.cs + + Microsoft\Data\Sql\SqlDataSourceEnumerator.cs + + + Microsoft\Data\Sql\SqlDataSourceEnumerator.Windows.cs + + + Microsoft\Data\Sql\SqlDataSourceEnumeratorNativeHelper.cs + + + Microsoft\Data\Sql\SqlDataSourceEnumeratorUtil.cs + + + Microsoft\Data\Sql\SqlNotificationRequest.cs + Microsoft\Data\SqlClient\ActiveDirectoryAuthenticationTimeoutRetryHelper.cs @@ -158,13 +167,21 @@ Microsoft\Data\SqlClient\ActiveDirectoryAuthenticationProvider.cs + + Microsoft\Data\SqlClient\AlwaysEncryptedAttestationException.cs + Microsoft\Data\SqlClient\AlwaysEncryptedEnclaveProviderUtils.cs - Microsoft\Data\SqlClient\AzureAttestationBasedEnclaveProvider.cs + + Microsoft\Data\SqlClient\ColumnEncryptionKeyInfo.cs + + + Microsoft\Data\SqlClient\DataClassification\SensitivityClassification.cs + Microsoft\Data\SqlClient\EnclaveDelegate.cs @@ -174,12 +191,69 @@ Microsoft\Data\SqlClient\EnclavePackage.cs + + Microsoft\Data\SqlClient\EnclaveProviderBase.cs + + + Microsoft\Data\SqlClient\EnclaveSessionCache.cs + + + Microsoft\Data\SqlClient\LocalAppContextSwitches.cs + + + Microsoft\Data\SqlClient\NoneAttestationEnclaveProvider.cs + + + Microsoft\Data\SqlClient\OnChangedEventHandler.cs + + + Microsoft\Data\SqlClient\ParameterPeekAheadValue.cs + + + Microsoft\Data\SqlClient\PoolBlockingPeriod.cs + + + Microsoft\Data\SqlClient\Reliability\AppConfigManager.cs + + + Microsoft\Data\SqlClient\Reliability\SqlRetryingEventArgs.cs + + + Microsoft\Data\SqlClient\Reliability\SqlRetryIntervalBaseEnumerator.cs + + + Microsoft\Data\SqlClient\Reliability\SqlRetryLogic.cs + + + Microsoft\Data\SqlClient\Reliability\SqlRetryLogicBase.cs + + + Microsoft\Data\SqlClient\Reliability\SqlRetryLogicBaseProvider.cs + + + Microsoft\Data\SqlClient\Reliability\SqlRetryLogicProvider.cs + + + Microsoft\Data\SqlClient\Reliability\SqlConfigurableRetryFactory.cs + + + Microsoft\Data\SqlClient\Reliability\SqlConfigurableRetryLogicLoader.cs + + + Microsoft\Data\SqlClient\Reliability\SqlConfigurableRetryLogicManager.cs + + + Microsoft\Data\SqlClient\Reliability\SqlRetryIntervalEnumerators.cs + + + Microsoft\Data\SqlClient\RowsCopiedEventArgs.cs + + + Microsoft\Data\SqlClient\RowsCopiedEventHandler.cs + Microsoft\Data\SqlClient\Server\ExtendedClrTypeCode.cs - - Microsoft\Data\SqlClient\Server\IBinarySerialize.cs - Microsoft\Data\SqlClient\Server\ITypedGetters.cs @@ -195,35 +269,41 @@ Microsoft\Data\SqlClient\Server\MemoryRecordBuffer.cs - - Microsoft\Data\SqlClient\Server\SmiGettersStream.cs + + Microsoft\Data\SqlClient\Server\MetadataUtilsSmi.cs - - Microsoft\Data\SqlClient\Server\SmiSettersStream.cs + + Microsoft\Data\SqlClient\Server\SmiEventSink.cs - - Microsoft\Data\SqlClient\Server\SmiXetterTypeCode.cs + + Microsoft\Data\SqlClient\Server\SmiEventSink_Default.Common.cs - - Microsoft\Data\SqlClient\Server\SqlFacetAttribute.cs + + Microsoft\Data\SqlClient\Server\SmiEventSink_Default.netfx.cs - - Microsoft\Data\SqlClient\Server\SqlFunctionAttribute.cs + + Microsoft\Data\SqlClient\Server\SmiGettersStream.cs - - Microsoft\Data\SqlClient\Server\SqlMetaData.cs + + Microsoft\Data\SqlClient\Server\SmiMetaData.cs - - Microsoft\Data\SqlClient\Server\SqlMethodAttribute.cs + + Microsoft\Data\SqlClient\Server\SmiMetaDataProperty.cs - - Microsoft\Data\SqlClient\Server\SqlUserDefinedTypeAttribute.cs + + Microsoft\Data\SqlClient\Server\SmiRecordBuffer.cs - - Microsoft\Data\SqlClient\Server\SqlUserDefinedAggregateAttribute.cs + + Microsoft\Data\SqlClient\Server\SmiSettersStream.cs - - Microsoft\Data\SqlClient\Server\SqlRecordBuffer.cs + + Microsoft\Data\SqlClient\Server\SmiTypedGetterSetter.cs + + + Microsoft\Data\SqlClient\Server\SmiXetterAccess.Common.cs + + + Microsoft\Data\SqlClient\Server\SmiXetterTypeCode.cs Microsoft\Data\SqlClient\Server\SqlDataRecord.cs @@ -231,42 +311,30 @@ Microsoft\Data\SqlClient\Server\SqlDataRecord.netfx.cs - - Microsoft\Data\SqlClient\Server\SmiMetaData.cs - - - Microsoft\Data\SqlClient\ColumnEncryptionKeyInfo.cs - - - Microsoft\Data\SqlClient\Server\SmiEventSink.cs - - - Microsoft\Data\SqlClient\Server\SmiEventSink_Default.Common.cs + + Microsoft\Data\SqlClient\Server\SqlMetaData.cs - - Microsoft\Data\SqlClient\Server\SmiEventSink_Default.netfx.cs + + Microsoft\Data\SqlClient\Server\SqlNormalizer.cs - - Microsoft\Data\SqlClient\OnChangedEventHandler.cs + + Microsoft\Data\SqlClient\Server\SqlRecordBuffer.cs - - Microsoft\Data\SqlClient\ParameterPeekAheadValue.cs + + Microsoft\Data\SqlClient\Server\ValueUtilsSmi.cs - - Microsoft\Data\SqlClient\PoolBlockingPeriod.cs + + Microsoft\Data\SqlClient\Server\ValueUtilsSmi.netfx.cs - - Microsoft\Data\SqlClient\RowsCopiedEventArgs.cs + + Microsoft\Data\SqlClient\Server\SqlSer.cs - - Microsoft\Data\SqlClient\RowsCopiedEventHandler.cs + + Microsoft\Data\SqlClient\SignatureVerificationCache.cs Microsoft\Data\SqlClient\SortOrder.cs - - Microsoft\Data\SqlClient\SqlAuthenticationToken.cs - Microsoft\Data\SqlClient\SqlAeadAes256CbcHmac256Algorithm.cs @@ -282,11 +350,14 @@ Microsoft\Data\SqlClient\SqlAuthenticationProvider.cs + + Microsoft\Data\SqlClient\SqlAuthenticationToken.cs + Microsoft\Data\SqlClient\SqlBulkCopyColumnMapping.cs - - Microsoft\Data\SqlClient\SqlBulkCopyOptions.cs + + Microsoft\Data\SqlClient\SqlBulkCopyColumnMappingCollection.cs Microsoft\Data\SqlClient\SqlBulkCopyColumnOrderHint.cs @@ -294,6 +365,9 @@ Microsoft\Data\SqlClient\SqlBulkCopyColumnOrderHintCollection.cs + + Microsoft\Data\SqlClient\SqlBulkCopyOptions.cs + Microsoft\Data\SqlClient\SqlCachedBuffer.cs @@ -309,6 +383,12 @@ Microsoft\Data\SqlClient\SqlClientEncryptionType.cs + + Microsoft\Data\SqlClient\SqlClientEventSource.cs + + + Microsoft\Data\SqlClient\SqlClientLogger.cs + Microsoft\Data\SqlClient\SqlClientMetaDataCollectionNames.cs @@ -330,24 +410,69 @@ Microsoft\Data\SqlClient\SqlConnectionPoolGroupProviderInfo.cs + + Microsoft\Data\SqlClient\SqlConnectionPoolKey.cs + Microsoft\Data\SqlClient\SqlConnectionPoolProviderInfo.cs + + Microsoft\Data\SqlClient\SqlConnectionString.cs + + + Microsoft\Data\SqlClient\SqlConnectionStringBuilder.cs + + + Microsoft\Data\SqlClient\SqlConnectionTimeoutErrorInternal.cs + + + Microsoft\Data\SqlClient\SqlCredential.cs + Microsoft\Data\SqlClient\SqlDataAdapter.cs + + Microsoft\Data\SqlClient\SqlDependency.cs + + + Microsoft\Data\SqlClient\SqlDependencyListener.cs + Microsoft\Data\SqlClient\SqlEnclaveAttestationParameters.Crypto.cs Microsoft\Data\SqlClient\SqlEnclaveSession.cs + + Microsoft\Data\SqlClient\SqlEnums.cs + + + Microsoft\Data\SqlClient\SqlError.cs + Microsoft\Data\SqlClient\SqlErrorCollection.cs + + Microsoft\Data\SqlClient\SqlException.cs + + + Microsoft\Data\SqlClient\SQLFallbackDNSCache.cs + + + Microsoft\Data\SqlClient\SqlInfoMessageEvent.cs + Microsoft\Data\SqlClient\SqlInfoMessageEventHandler.cs + + Microsoft\Data\SqlClient\SqlInternalTransaction.cs + + + Microsoft\Data\SqlClient\SqlMetaDataFactory.cs + + + Microsoft\Data\SqlClient\SqlNotificationEventArgs.cs + Microsoft\Data\SqlClient\SqlNotificationInfo.cs @@ -363,6 +488,9 @@ Microsoft\Data\SqlClient\SqlQueryMetadataCache.cs + + Microsoft\Data\SqlClient\SqlReferenceCollection.cs + Microsoft\Data\SqlClient\SqlRowUpdatedEvent.cs @@ -378,50 +506,23 @@ Microsoft\Data\SqlClient\SqlSecurityUtility.cs - - Microsoft\Data\SqlClient\SqlSymmetricKeyCache.cs + + Microsoft\Data\SqlClient\SqlSequentialStream.cs - - Microsoft\Data\SqlClient\VirtualSecureModeEnclaveProvider.cs - - - Microsoft\Data\SqlClient\VirtualSecureModeEnclaveProviderBase.cs - - - Microsoft\Data\SqlTypes\SQLResource.cs - - - Microsoft\Data\SqlTypes\SqlTypeWorkarounds.cs - - - Microsoft\Data\SqlClient\SQLFallbackDNSCache.cs - - - Microsoft\Data\OperationAbortedException.cs - - - Microsoft\Data\DataException.cs - - - Microsoft\Data\SqlClient\Server\InvalidUdtException.cs - - - Microsoft\Data\SqlClient\Server\SmiTypedGetterSetter.cs + + Microsoft\Data\SqlClient\SqlStream.cs - - Microsoft\Data\SqlClient\AlwaysEncryptedAttestationException.cs - - - Microsoft\Data\SqlClient\EnclaveProviderBase.cs + + Microsoft\Data\SqlClient\SqlStatistics.cs - - Microsoft\Data\SqlClient\EnclaveSessionCache.cs + + Microsoft\Data\SqlClient\SqlSymmetricKeyCache.cs - - Microsoft\Data\SqlClient\SignatureVerificationCache.cs + + Microsoft\Data\SqlClient\SqlUdtInfo.cs - - Microsoft\Data\SqlClient\TdsValueSetter.cs + + Microsoft\Data\SqlClient\SqlUtil.cs Microsoft\Data\SqlClient\TdsParameterSetter.cs @@ -429,47 +530,20 @@ Microsoft\Data\SqlClient\TdsRecordBufferSetter.cs - - Microsoft\Data\SqlClient\Server\SqlNormalizer.cs - - - Microsoft\Data\SqlClient\Server\SmiRecordBuffer.cs - - - Microsoft\Data\SqlClient\Reliability\SqlRetryingEventArgs.cs - - - Microsoft\Data\SqlClient\Reliability\SqlRetryIntervalBaseEnumerator.cs - - - Microsoft\Data\SqlClient\Reliability\SqlRetryLogic.cs - - - Microsoft\Data\SqlClient\Reliability\SqlRetryLogicBase.cs - - - Microsoft\Data\SqlClient\Reliability\SqlRetryLogicBaseProvider.cs - - - Microsoft\Data\SqlClient\Reliability\SqlRetryLogicProvider.cs - - - Microsoft\Data\SqlClient\Reliability\SqlConfigurableRetryFactory.cs - - - Microsoft\Data\SqlClient\Reliability\SqlRetryIntervalEnumerators.cs + + Microsoft\Data\SqlClient\TdsValueSetter.cs - - Microsoft\Data\SqlClient\Reliability\SqlConfigurableRetryLogicManager.cs + + Microsoft\Data\SqlClient\VirtualSecureModeEnclaveProvider.cs - - Microsoft\Data\SqlClient\Reliability\SqlConfigurableRetryLogicLoader.cs + + Microsoft\Data\SqlClient\VirtualSecureModeEnclaveProviderBase.cs - - Microsoft\Data\SqlClient\Reliability\AppConfigManager.cs + + Microsoft\Data\SqlTypes\SQLResource.cs - - Microsoft\Data\SqlClient\SqlUtil.cs + + Microsoft\Data\SqlTypes\SqlTypeWorkarounds.cs Resources\ResCategoryAttribute.cs @@ -477,31 +551,54 @@ Resources\ResDescriptionAttribute.cs - - Microsoft\Data\Common\AdapterUtil.cs - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + @@ -510,50 +607,23 @@ - - - - - Microsoft\Data\SqlClient\SqlConnectionTimeoutErrorInternal.cs - - - Microsoft\Data\SqlClient\SqlCredential.cs - - - - - - - - - - - - - - Microsoft\Data\SqlClient\SqlStatistics.cs - - Microsoft\Data\SqlClient\SqlTransaction.netfx.cs Microsoft\Data\SqlClient\SqlTransaction.cs - - Microsoft\Data\SqlClient\SqlUdtInfo.cs - @@ -562,52 +632,18 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - + - + True True - $(ResxFileName).resx + Strings.resx Resources\StringsHelper.cs diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.cs index 49eb024c69..b678146ae0 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.cs @@ -77,7 +77,7 @@ override public IsolationLevel IsolationLevel } } - private bool IsYukonPartialZombie => _internalTransaction !=null && _internalTransaction.IsCompleted; + private bool Is2005PartialZombie => _internalTransaction !=null && _internalTransaction.IsCompleted; internal bool IsZombied => _internalTransaction == null || _internalTransaction.IsCompleted; @@ -112,7 +112,7 @@ internal void Zombie() SqlInternalConnection internalConnection = (_connection.InnerConnection as SqlInternalConnection); if (null != internalConnection #if NETFRAMEWORK - && internalConnection.IsYukonOrNewer + && internalConnection.Is2005OrNewer #endif && !_isFromAPI) { @@ -133,7 +133,7 @@ private void ZombieCheck() // If this transaction has been completed, throw exception since it is unusable. if (IsZombied) { - if (IsYukonPartialZombie) + if (Is2005PartialZombie) { _internalTransaction = null; // yukon zombification } diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.netcore.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.netcore.cs index 3d17aa6162..9e20238cb7 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.netcore.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.netcore.cs @@ -21,53 +21,44 @@ public sealed partial class SqlTransaction : DbTransaction /// override public void Commit() { - Exception e = null; - Guid operationId = s_diagnosticListener.WriteTransactionCommitBefore(_isolationLevel, _connection, InternalTransaction); - - ZombieCheck(); - - SqlStatistics statistics = null; - using (TryEventScope.Create("SqlTransaction.Commit | API | Object Id {0}", ObjectID)) + using (DiagnosticTransactionScope diagnosticScope = s_diagnosticListener.CreateTransactionCommitScope(_isolationLevel, _connection, InternalTransaction)) { - SqlClientEventSource.Log.TryCorrelationTraceEvent("SqlTransaction.Commit | API | Correlation | Object Id {0}, Activity Id {1}, Client Connection Id {2}", ObjectID, ActivityCorrelator.Current, Connection?.ClientConnectionId); - try + ZombieCheck(); + + using (TryEventScope.Create("SqlTransaction.Commit | API | Object Id {0}", ObjectID)) { - statistics = SqlStatistics.StartTimer(Statistics); + SqlStatistics statistics = null; + SqlClientEventSource.Log.TryCorrelationTraceEvent("SqlTransaction.Commit | API | Correlation | Object Id {0}, Activity Id {1}, Client Connection Id {2}", ObjectID, ActivityCorrelator.Current, Connection?.ClientConnectionId); + try + { + statistics = SqlStatistics.StartTimer(Statistics); - _isFromAPI = true; + _isFromAPI = true; - _internalTransaction.Commit(); - } - catch (SqlException ex) - { - // GitHub Issue #130 - When a timeout exception has occurred on transaction completion request, - // this connection may not be in reusable state. - // We will abort this connection and make sure it does not go back to the pool. - if (ex.InnerException is Win32Exception innerException && innerException.NativeErrorCode == TdsEnums.SNI_WAIT_TIMEOUT) + _internalTransaction.Commit(); + } + catch (SqlException ex) { - _connection.Abort(ex); + diagnosticScope.SetException(ex); + // GitHub Issue #130 - When a timeout exception has occurred on transaction completion request, + // this connection may not be in reusable state. + // We will abort this connection and make sure it does not go back to the pool. + if (ex.InnerException is Win32Exception innerException && innerException.NativeErrorCode == TdsEnums.SNI_WAIT_TIMEOUT) + { + _connection.Abort(ex); + } + throw; } - e = ex; - throw; - } - catch (Exception ex) - { - e = ex; - throw; - } - finally - { - SqlStatistics.StopTimer(statistics); - if (e != null) + catch (Exception ex) { - s_diagnosticListener.WriteTransactionCommitError(operationId, _isolationLevel, _connection, InternalTransaction, e); + diagnosticScope.SetException(ex); + throw; } - else + finally { - s_diagnosticListener.WriteTransactionCommitAfter(operationId, _isolationLevel, _connection, InternalTransaction); + SqlStatistics.StopTimer(statistics); + _isFromAPI = false; } - - _isFromAPI = false; } } } @@ -77,7 +68,7 @@ protected override void Dispose(bool disposing) { if (disposing) { - if (!IsZombied && !IsYukonPartialZombie) + if (!IsZombied && !Is2005PartialZombie) { _internalTransaction.Dispose(); } @@ -88,48 +79,40 @@ protected override void Dispose(bool disposing) /// override public void Rollback() { - Exception e = null; - Guid operationId = s_diagnosticListener.WriteTransactionRollbackBefore(_isolationLevel, _connection, InternalTransaction); - - if (IsYukonPartialZombie) + using (DiagnosticTransactionScope diagnosticScope = s_diagnosticListener.CreateTransactionRollbackScope(_isolationLevel, _connection, InternalTransaction, null)) { - // Put something in the trace in case a customer has an issue - SqlClientEventSource.Log.TryAdvancedTraceEvent("SqlTransaction.Rollback | ADV | Object Id {0}, partial zombie no rollback required", ObjectID); - _internalTransaction = null; // yukon zombification - } - else - { - ZombieCheck(); - - SqlStatistics statistics = null; - using (TryEventScope.Create("SqlTransaction.Rollback | API | Object Id {0}", ObjectID)) + if (Is2005PartialZombie) { - SqlClientEventSource.Log.TryCorrelationTraceEvent("SqlTransaction.Rollback | API | Correlation | Object Id {0}, ActivityID {1}, Client Connection Id {2}", ObjectID, ActivityCorrelator.Current, Connection?.ClientConnectionId); - try + // Put something in the trace in case a customer has an issue + SqlClientEventSource.Log.TryAdvancedTraceEvent("SqlTransaction.Rollback | ADV | Object Id {0}, partial zombie no rollback required", ObjectID); + _internalTransaction = null; // 2005 zombification + } + else + { + ZombieCheck(); + + SqlStatistics statistics = null; + using (TryEventScope.Create("SqlTransaction.Rollback | API | Object Id {0}", ObjectID)) { - statistics = SqlStatistics.StartTimer(Statistics); + SqlClientEventSource.Log.TryCorrelationTraceEvent("SqlTransaction.Rollback | API | Correlation | Object Id {0}, ActivityID {1}, Client Connection Id {2}", ObjectID, ActivityCorrelator.Current, Connection?.ClientConnectionId); + try + { + statistics = SqlStatistics.StartTimer(Statistics); - _isFromAPI = true; + _isFromAPI = true; - _internalTransaction.Rollback(); - } - catch (Exception ex) - { - e = ex; - throw; - } - finally - { - SqlStatistics.StopTimer(statistics); - if (e != null) + _internalTransaction.Rollback(); + } + catch (Exception ex) { - s_diagnosticListener.WriteTransactionRollbackError(operationId, _isolationLevel, _connection, InternalTransaction, e); + diagnosticScope.SetException(ex); + throw; } - else + finally { - s_diagnosticListener.WriteTransactionRollbackAfter(operationId, _isolationLevel, _connection, InternalTransaction); + SqlStatistics.StopTimer(statistics); + _isFromAPI = false; } - _isFromAPI = false; } } } @@ -138,39 +121,31 @@ override public void Rollback() /// public void Rollback(string transactionName) { - Exception e = null; - Guid operationId = s_diagnosticListener.WriteTransactionRollbackBefore(_isolationLevel, _connection, InternalTransaction, transactionName); - - ZombieCheck(); - using (TryEventScope.Create(SqlClientEventSource.Log.TryScopeEnterEvent("SqlTransaction.Rollback | API | Object Id {0}, Transaction Name='{1}', ActivityID {2}, Client Connection Id {3}", ObjectID, transactionName, ActivityCorrelator.Current, Connection?.ClientConnectionId))) + using (DiagnosticTransactionScope diagnosticScope = s_diagnosticListener.CreateTransactionRollbackScope(_isolationLevel, _connection, InternalTransaction, transactionName)) { - SqlStatistics statistics = null; - try + ZombieCheck(); + + using (TryEventScope.Create(SqlClientEventSource.Log.TryScopeEnterEvent("SqlTransaction.Rollback | API | Object Id {0}, Transaction Name='{1}', ActivityID {2}, Client Connection Id {3}", ObjectID, transactionName, ActivityCorrelator.Current, Connection?.ClientConnectionId))) { - statistics = SqlStatistics.StartTimer(Statistics); + SqlStatistics statistics = null; + try + { + statistics = SqlStatistics.StartTimer(Statistics); - _isFromAPI = true; + _isFromAPI = true; - _internalTransaction.Rollback(transactionName); - } - catch (Exception ex) - { - e = ex; - throw; - } - finally - { - SqlStatistics.StopTimer(statistics); - if (e != null) + _internalTransaction.Rollback(transactionName); + } + catch (Exception ex) { - s_diagnosticListener.WriteTransactionRollbackError(operationId, _isolationLevel, _connection, InternalTransaction, e, transactionName); + diagnosticScope.SetException(ex); + throw; } - else + finally { - s_diagnosticListener.WriteTransactionRollbackAfter(operationId, _isolationLevel, _connection, InternalTransaction, transactionName); + SqlStatistics.StopTimer(statistics); + _isFromAPI = false; } - - _isFromAPI = false; } } } diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.netfx.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.netfx.cs index b339b889e5..5bdf2a10a0 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.netfx.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.netfx.cs @@ -10,7 +10,7 @@ namespace Microsoft.Data.SqlClient { - /// + /// public sealed partial class SqlTransaction : DbTransaction { @@ -18,7 +18,7 @@ public sealed partial class SqlTransaction : DbTransaction // PUBLIC METHODS //////////////////////////////////////////////////////////////////////////////////////// - /// + /// override public void Commit() { SqlConnection.ExecutePermission.Demand(); // MDAC 81476 @@ -94,7 +94,7 @@ override public void Commit() } } - /// + /// protected override void Dispose(bool disposing) { if (disposing) @@ -114,7 +114,7 @@ protected override void Dispose(bool disposing) { #endif //DEBUG bestEffortCleanupTarget = SqlInternalConnection.GetBestEffortCleanupTarget(_connection); - if (!IsZombied && !IsYukonPartialZombie) + if (!IsZombied && !Is2005PartialZombie) { _internalTransaction.Dispose(); } @@ -146,15 +146,15 @@ protected override void Dispose(bool disposing) base.Dispose(disposing); } - /// + /// override public void Rollback() { - if (IsYukonPartialZombie) + if (Is2005PartialZombie) { // Put something in the trace in case a customer has an issue SqlClientEventSource.Log.TryAdvancedTraceEvent(" {0} partial zombie no rollback required", ObjectID); - _internalTransaction = null; // yukon zombification + _internalTransaction = null; // 2005 zombification } else { @@ -219,7 +219,7 @@ override public void Rollback() } } - /// + /// public void Rollback(string transactionName) { SqlConnection.ExecutePermission.Demand(); // MDAC 81476 @@ -282,7 +282,7 @@ public void Rollback(string transactionName) } } - /// + /// public void Save(string savePointName) { SqlConnection.ExecutePermission.Demand(); // MDAC 81476 From accb92665ab7114cc8f553b2cf30f97f36b967ba Mon Sep 17 00:00:00 2001 From: Parminder Kaur <88398605+Kaur-Parminder@users.noreply.github.com> Date: Mon, 6 Jun 2022 17:06:30 -0700 Subject: [PATCH 07/11] Apply suggestions from code review review suggestions Co-authored-by: DavoudEshtehari <61173489+DavoudEshtehari@users.noreply.github.com> --- .../src/Microsoft/Data/SqlClient/SqlTransaction.cs | 10 +++++----- .../Microsoft/Data/SqlClient/SqlTransaction.netcore.cs | 4 ++-- .../Microsoft/Data/SqlClient/SqlTransaction.netfx.cs | 6 ++---- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.cs index b678146ae0..19996684b9 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.cs @@ -47,7 +47,7 @@ internal SqlTransaction(SqlInternalConnection internalConnection, SqlConnection //////////////////////////////////////////////////////////////////////////////////////// /// - new public SqlConnection Connection + public new SqlConnection Connection {// MDAC 66655 get { @@ -63,12 +63,12 @@ internal SqlTransaction(SqlInternalConnection internalConnection, SqlConnection } /// - override protected DbConnection DbConnection => Connection; + protected override DbConnection DbConnection => Connection; internal SqlInternalTransaction InternalTransaction => _internalTransaction; /// - override public IsolationLevel IsolationLevel + public override IsolationLevel IsolationLevel { get { @@ -120,7 +120,7 @@ internal void Zombie() } else { - _internalTransaction = null; // pre-yukon zombification + _internalTransaction = null; // pre SQL 2005 zombification } } @@ -135,7 +135,7 @@ private void ZombieCheck() { if (Is2005PartialZombie) { - _internalTransaction = null; // yukon zombification + _internalTransaction = null; // SQL 2005 zombification } throw ADP.TransactionZombied(this); diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.netcore.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.netcore.cs index 9e20238cb7..df414739da 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.netcore.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.netcore.cs @@ -19,7 +19,7 @@ public sealed partial class SqlTransaction : DbTransaction //////////////////////////////////////////////////////////////////////////////////////// /// - override public void Commit() + public override void Commit() { using (DiagnosticTransactionScope diagnosticScope = s_diagnosticListener.CreateTransactionCommitScope(_isolationLevel, _connection, InternalTransaction)) { @@ -77,7 +77,7 @@ protected override void Dispose(bool disposing) } /// - override public void Rollback() + public override void Rollback() { using (DiagnosticTransactionScope diagnosticScope = s_diagnosticListener.CreateTransactionRollbackScope(_isolationLevel, _connection, InternalTransaction, null)) { diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.netfx.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.netfx.cs index 5bdf2a10a0..1ee8ba3c1b 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.netfx.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.netfx.cs @@ -7,19 +7,17 @@ using System.Runtime.CompilerServices; using Microsoft.Data.Common; - namespace Microsoft.Data.SqlClient { /// public sealed partial class SqlTransaction : DbTransaction { - //////////////////////////////////////////////////////////////////////////////////////// // PUBLIC METHODS //////////////////////////////////////////////////////////////////////////////////////// /// - override public void Commit() + public override void Commit() { SqlConnection.ExecutePermission.Demand(); // MDAC 81476 @@ -147,7 +145,7 @@ protected override void Dispose(bool disposing) } /// - override public void Rollback() + public override void Rollback() { if (Is2005PartialZombie) { From 4d068797e957de9c48788932d40c9afc3d95e463 Mon Sep 17 00:00:00 2001 From: Kaur-Parminder Date: Wed, 8 Jun 2022 08:01:06 -0700 Subject: [PATCH 08/11] addressing comment addressing comment --- .../netcore/src/Microsoft.Data.SqlClient.csproj | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj b/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj index f0e556f5eb..778182946b 100644 --- a/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj +++ b/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj @@ -256,6 +256,12 @@ Microsoft\Data\SqlClient\Server\SqlRecordBuffer.cs + + Microsoft\Data\SqlClient\SqlTransaction.netcore.cs + + + Microsoft\Data\SqlClient\SqlTransaction.cs + Microsoft\Data\SqlClient\Server\SqlUserDefinedAggregateAttribute.cs @@ -645,12 +651,6 @@ - - Microsoft\Data\SqlClient\SqlTransaction.netcore.cs - - - Microsoft\Data\SqlClient\SqlTransaction.cs - From d37aa479307d4d6ad501c481c0d4f2a0c41e8065 Mon Sep 17 00:00:00 2001 From: Kaur-Parminder Date: Wed, 8 Jun 2022 14:24:51 -0700 Subject: [PATCH 09/11] review comments review comments --- .../netcore/src/Microsoft.Data.SqlClient.csproj | 4 +--- .../Data/SqlClient/SqlTransaction.netcore.cs | 12 ++++++------ 2 files changed, 7 insertions(+), 9 deletions(-) rename src/Microsoft.Data.SqlClient/{ => netcore}/src/Microsoft/Data/SqlClient/SqlTransaction.netcore.cs (87%) diff --git a/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj b/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj index 778182946b..0b0f1e19ea 100644 --- a/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj +++ b/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj @@ -256,9 +256,6 @@ Microsoft\Data\SqlClient\Server\SqlRecordBuffer.cs - - Microsoft\Data\SqlClient\SqlTransaction.netcore.cs - Microsoft\Data\SqlClient\SqlTransaction.cs @@ -651,6 +648,7 @@ + diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.netcore.cs b/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlTransaction.netcore.cs similarity index 87% rename from src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.netcore.cs rename to src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlTransaction.netcore.cs index df414739da..1c3df017dd 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.netcore.cs +++ b/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlTransaction.netcore.cs @@ -9,7 +9,7 @@ namespace Microsoft.Data.SqlClient { - /// + /// public sealed partial class SqlTransaction : DbTransaction { private static readonly SqlDiagnosticListener s_diagnosticListener = new(SqlClientDiagnosticListenerExtensions.DiagnosticListenerName); @@ -18,7 +18,7 @@ public sealed partial class SqlTransaction : DbTransaction // PUBLIC METHODS //////////////////////////////////////////////////////////////////////////////////////// - /// + /// public override void Commit() { using (DiagnosticTransactionScope diagnosticScope = s_diagnosticListener.CreateTransactionCommitScope(_isolationLevel, _connection, InternalTransaction)) @@ -63,7 +63,7 @@ public override void Commit() } } - /// + /// protected override void Dispose(bool disposing) { if (disposing) @@ -76,7 +76,7 @@ protected override void Dispose(bool disposing) base.Dispose(disposing); } - /// + /// public override void Rollback() { using (DiagnosticTransactionScope diagnosticScope = s_diagnosticListener.CreateTransactionRollbackScope(_isolationLevel, _connection, InternalTransaction, null)) @@ -118,7 +118,7 @@ public override void Rollback() } } - /// + /// public void Rollback(string transactionName) { using (DiagnosticTransactionScope diagnosticScope = s_diagnosticListener.CreateTransactionRollbackScope(_isolationLevel, _connection, InternalTransaction, transactionName)) @@ -150,7 +150,7 @@ public void Rollback(string transactionName) } } - /// + /// public void Save(string savePointName) { ZombieCheck(); From 607292fbccdbd54b2e559794741f17cb762b2193 Mon Sep 17 00:00:00 2001 From: Davoud Eshtehari Date: Wed, 8 Jun 2022 16:00:34 -0700 Subject: [PATCH 10/11] Restructured files SqlTransaction -> SqlTransaction.Common (renamed) SqlTransaction.netfx -> SqlTransaction (under netfx project hierarchy) SqlTransaction.netcore -> SqlTransaction (under netcore project hierarchy) --- .../netcore/src/Microsoft.Data.SqlClient.csproj | 6 +++--- .../{SqlTransaction.netcore.cs => SqlTransaction.cs} | 0 .../netfx/src/Microsoft.Data.SqlClient.csproj | 10 ++++------ .../src/Microsoft/Data/SqlClient/SqlTransaction.cs} | 12 ++++++------ .../{SqlTransaction.cs => SqlTransaction.Common.cs} | 0 5 files changed, 13 insertions(+), 15 deletions(-) rename src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/{SqlTransaction.netcore.cs => SqlTransaction.cs} (100%) rename src/Microsoft.Data.SqlClient/{src/Microsoft/Data/SqlClient/SqlTransaction.netfx.cs => netfx/src/Microsoft/Data/SqlClient/SqlTransaction.cs} (92%) rename src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/{SqlTransaction.cs => SqlTransaction.Common.cs} (100%) diff --git a/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj b/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj index 0b0f1e19ea..fbd76789e7 100644 --- a/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj +++ b/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj @@ -256,8 +256,8 @@ Microsoft\Data\SqlClient\Server\SqlRecordBuffer.cs - - Microsoft\Data\SqlClient\SqlTransaction.cs + + Microsoft\Data\SqlClient\SqlTransaction.Common.cs Microsoft\Data\SqlClient\Server\SqlUserDefinedAggregateAttribute.cs @@ -648,7 +648,7 @@ - + diff --git a/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlTransaction.netcore.cs b/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlTransaction.cs similarity index 100% rename from src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlTransaction.netcore.cs rename to src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlTransaction.cs diff --git a/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj b/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj index 221a3b3a5b..b659a27953 100644 --- a/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj +++ b/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj @@ -320,6 +320,9 @@ Microsoft\Data\SqlClient\Server\SqlRecordBuffer.cs + + Microsoft\Data\SqlClient\SqlTransaction.Common.cs + Microsoft\Data\SqlClient\Server\ValueUtilsSmi.cs @@ -632,12 +635,7 @@ - - Microsoft\Data\SqlClient\SqlTransaction.netfx.cs - - - Microsoft\Data\SqlClient\SqlTransaction.cs - + diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.netfx.cs b/src/Microsoft.Data.SqlClient/netfx/src/Microsoft/Data/SqlClient/SqlTransaction.cs similarity index 92% rename from src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.netfx.cs rename to src/Microsoft.Data.SqlClient/netfx/src/Microsoft/Data/SqlClient/SqlTransaction.cs index 1ee8ba3c1b..d5a93b1b86 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.netfx.cs +++ b/src/Microsoft.Data.SqlClient/netfx/src/Microsoft/Data/SqlClient/SqlTransaction.cs @@ -9,14 +9,14 @@ namespace Microsoft.Data.SqlClient { - /// + /// public sealed partial class SqlTransaction : DbTransaction { //////////////////////////////////////////////////////////////////////////////////////// // PUBLIC METHODS //////////////////////////////////////////////////////////////////////////////////////// - /// + /// public override void Commit() { SqlConnection.ExecutePermission.Demand(); // MDAC 81476 @@ -92,7 +92,7 @@ public override void Commit() } } - /// + /// protected override void Dispose(bool disposing) { if (disposing) @@ -144,7 +144,7 @@ protected override void Dispose(bool disposing) base.Dispose(disposing); } - /// + /// public override void Rollback() { if (Is2005PartialZombie) @@ -217,7 +217,7 @@ public override void Rollback() } } - /// + /// public void Rollback(string transactionName) { SqlConnection.ExecutePermission.Demand(); // MDAC 81476 @@ -280,7 +280,7 @@ public void Rollback(string transactionName) } } - /// + /// public void Save(string savePointName) { SqlConnection.ExecutePermission.Demand(); // MDAC 81476 diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.Common.cs similarity index 100% rename from src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.cs rename to src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlTransaction.Common.cs From 2f9cfdd10fcf7c46338ae9bf5d38ced5c091cd48 Mon Sep 17 00:00:00 2001 From: David Engel Date: Thu, 9 Jun 2022 13:50:13 -0700 Subject: [PATCH 11/11] Fix whitespace --- .../netcore/src/Microsoft.Data.SqlClient.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj b/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj index fbd76789e7..9e1df81f9c 100644 --- a/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj +++ b/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj @@ -648,7 +648,7 @@ - +