You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We are developing an http://ASP.NET Core (.NET Core Version 2.1.1) web application.
We are using a Firebird 3 Connection Pool with the following options in the connection string:
On serveral occasions we receive the following exception:
"Unable to enlist in transaction, a local transaction already exists".
This happens in our minimal breaking exampple, if we call the following code with a few threads over HTTP GET:
\[HttpGet\]
public async Task<IActionResult\> GetX\(\)
\{
IEnumerable<string\> x= null;
using \(var ts = new TransactionScope\( TransactionScopeAsyncFlowOption\.Enabled\)\)
\{
using \(var connection = new FbConnection\(connectionString\)\)
\{
roles = await connection\.QueryAsync<string\>\(
sql: "SELECT strField FROM X",
commandType: CommandType\.Text\);
\}
ts\.Complete\(\);
\}
return Ok\(x\);
\}
If we encapsulate the TransactionScope block with a Semaphore it runs fine.
Therefore the question: Does this library supporting multithreading or do we need to protect Firebird calls with a semaphore?
The text was updated successfully, but these errors were encountered:
Submitted by: Daniel H (daniel90)
Votes: 1
We are developing an http://ASP.NET Core (.NET Core Version 2.1.1) web application.
We are using a Firebird 3 Connection Pool with the following options in the connection string:
- Pooling: True
- MinPoolSize: 0
- MaxPoolSize: 50
- Auto_Commit: false
- Enlist: true
On serveral occasions we receive the following exception:
"Unable to enlist in transaction, a local transaction already exists".
This happens in our minimal breaking exampple, if we call the following code with a few threads over HTTP GET:
If we encapsulate the TransactionScope block with a Semaphore it runs fine.
Therefore the question: Does this library supporting multithreading or do we need to protect Firebird calls with a semaphore?
The text was updated successfully, but these errors were encountered: