Hi, Firstly, thank you so much for reply My project's Nhibernate configuration is as follows. Is there anything wrong here, is there a point I'm missing?
public static IServiceCollection AddSniffactorNhibernate(this IServiceCollection services, string connectionString) { Check.NotNull(connectionString); ISessionFactory _sessionFactory = BuildSessionFactory(connectionString); services.AddSingleton(_sessionFactory); services.AddScoped<ISession>(factory => factory.GetServices<ISessionFactory>().First().OpenSession()); services.AddScoped(typeof(IRepository<>), typeof(NhRepositoryBase<>)); services.AddSingleton(typeof(IUnitOfWork), typeof(NhUnitOfWork)); ConsoleHelper.WriteWarningCommandLine(">>> NHibernate Configurasyonu tamamlandı."); return services; } private static ISessionFactory BuildSessionFactory(string connectionString) { FluentConfiguration configuration = Fluently.Configure() .Database(OracleManagedDataClientConfiguration.Oracle9.ConnectionString(connectionString)) .Mappings(m => m.FluentMappings .AddFromAssemblyOf<ISniffactorMapping>() .Conventions.Add( ConventionBuilder.Property.When(criteria => criteria.Expect(x => x.Nullable, Is.Not.Set), x => x.Not.Nullable())) .Conventions.Add<OtherConversions>() ); return configuration.BuildSessionFactory(); } private class OtherConversions : IHasManyConvention, IReferenceConvention { public void Apply(IOneToManyCollectionInstance instance) { instance.LazyLoad(); instance.AsBag(); instance.Cascade.SaveUpdate(); instance.Inverse(); } public void Apply(IManyToOneInstance instance) { instance.LazyLoad(Laziness.Proxy); instance.Cascade.None(); instance.Not.Nullable(); } } 30 Ekim 2020 Cuma tarihinde saat 22:57:18 UTC+3 itibarıyla Quicoli şunları yazdı: > Hi > > Open and close a session inside your for each loop and you will be fine > > On Fri, Oct 30, 2020, 17:46 Hakan karaoğlu <hknn.k...@gmail.com> 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 nhusers+u...@googlegroups.com. >> 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 nhusers+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/nhusers/7024ae71-4300-48f5-b5f7-23c3e35b2c1en%40googlegroups.com.