You really shouldn't combine Parallel.For and async. Ever. And NHibernate's session isn't thread safe, so it shouldn't be used from multiple threads.
/G On Fri, Oct 30, 2020 at 6:46 PM Hakan karaoğlu <[email protected]> wrote: > Hi, > > I'm using rabbitmq and nhibernate in a .net core project. I run > asynchronous queries for database operations on some consumers. For > example, I am sending a single message to the queue, the message is > processed successfully, but when I send 100 messages, database operations > start getting errors after a while. > > I tested the similar structure as follows. I did database transactions 100 > times in a loop and it didn't give an error. But when I tried it in > parallel loop, it gave an error like in rabbitmq. > > Is this from Nhibernate or is there a different logic? Nhibernate not > thread-safe? > > Sample Code with Error : > > Parallel.For(0, 100, async act => > { > var ws = await > _workspaceRepository.GetWorkspaceByIdAsync(66); > System.Console.WriteLine($"GetWorkspaceByIdAsync : > {ws.Name}"); > var keywords = await > _workspaceKeywordRepository.GetForbiddenKeywordsByWorkspaceAsync(66); > > System.Console.WriteLine($"GetForbiddenKeywordsByWorkspaceAsync : > {keywords.Count}"); > var IsforbiddenKeyword = await > HasForbiddenKeywordAsync(66, "facebook", "instagram"); > System.Console.WriteLine($"HasForbiddenKeywordAsync : > {IsforbiddenKeyword}"); > }); > > -- > You received this message because you are subscribed to the Google Groups > "nhusers" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/nhusers/15a15084-855f-4d1c-9ebd-ea1b62cf9a0cn%40googlegroups.com > <https://groups.google.com/d/msgid/nhusers/15a15084-855f-4d1c-9ebd-ea1b62cf9a0cn%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "nhusers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/nhusers/CAAOnFsPMiqskXZh3s2ETg67tZy%3DkNGwWTeO2iE-7ONEkY8LZpg%40mail.gmail.com.
