Skip to content

Releases: softwarehelden-com/Softwarehelden.Transactions.Oletx

1.5.0

03 Apr 22:43
Compare
Choose a tag to compare

What's Changed

This release adds support for .NET 8 (#24). In .NET 8 the MsSqlPatcher and OletxPatcher are no longer necessary as the .NET team added support for distributed transactions starting with .NET 7. The OletxCompatibilityLoadContext is still required in .NET 8, for example to be able to load the unmanaged ODP.NET driver. Support for netcoreapp3.1 and net5.0 has been removed in this release.

Other changes in this release:

  • update sample project
  • add third party notices

Full Changelog: 1.4.0...1.5.0

1.4.0

27 May 15:16
Compare
Choose a tag to compare

What's Changed

This release contains a new patcher MsSqlPatcher for Microsoft.Data.SqlClient and System.Data.SqlClient to avoid connection pool corruption if the application explicitly aborts distributed transactions (#17). Call MsSqlPatcher.Patch(typeof(SqlConnection).Assembly) in the entry point of your application to patch the MARS TDS header write logic in the MSSQL data provider. Use this patcher as a temporary workaround until Microsoft releases a new version of the Microsoft.Data.SqlClient driver that includes the fix from dotnet/SqlClient#1624. Microsoft probably won't backport the bugfix to System.Data.SqlClient.

Other changes in this release:

  • fix build warning MSB3246 Resolved file has a bad image in #19
  • force aggressive JIT optimization and disable inlining for patching methods in #21

Full Changelog: 1.3.0...1.4.0

1.3.0

25 Apr 19:04
Compare
Choose a tag to compare

What's Changed

  • add OletxCompatibilityLoadContext to load .NET Framework data providers in compatibility mode (#11)
  • add sample project (#11)

Full Changelog: 1.2.0...1.3.0

1.2.0

20 Apr 15:17
Compare
Choose a tag to compare

What's Changed

It is now possible to enlist Oracle database servers and MSSQL servers in the same distributed transaction using the unmanaged ODP.NET driver Oracle.DataAccess (#8). Oracle.DataAccess actually targets .NET Framework 4 and uses System.EnterpriseServices for distributed transaction support that was not ported to .NET Core. Therefore, this project provides a compatibility library for such .NET framework data providers that require the COM transaction interface from System.EnterpriseServices.

Please make sure the following ODP.NET driver settings are set:

  • UseOraMTSManaged = false (Default = false): ODP.NET must use the unmanaged OraMTS implementation. This is the default setting. The managed OraMTS implementation is not supported.
  • CPVersion = 1.0 (Default = Unknown): ODP.NET must use the traditional connection pool implementation (1.0). This is the default connection pool unless the application uses Database Resident Connection Pooling (DRCP), or hosts multiple pluggable databases or editions in the same pool. The modern connection pool (2.0) required by DRCP is not supported.

Limitations due to .NET Framework and .NET Core incompatibility:

  • The (obsolete) entity framework functionality that is part of Oracle.DataAccess is not supported because it depends on System.Data.Entity. System.Data.Entity is not available in .NET Core. Use Oracle.DataAccess.EntityFramework that supports Code First and Entity Framework 6.
  • Operating system authentication is not supported.

The managed ODP.NET driver Oracle.ManagedDataAccess.Core is still not supported.

Full Changelog: 1.1.0...1.2.0

1.1.0

19 Apr 20:40
Compare
Choose a tag to compare

What's Changed

  • set distributed transaction identifier after MSDTC promotion in #2
  • enable multi targeting to support .NET Core 3.1 and .NET 5.0 in #4
  • enable code signing in #6

Full Changelog: 1.0.0...1.1.0

1.0.0

05 Apr 16:56
Compare
Choose a tag to compare

Initial release