It seems like you are missing a session.Close() ... and perhaps also some
transaction handling with a commit() or rollback() (but that is not a cause
for your problem).

If you don’t close sessions and thus database connections, the database
layer will close them for you - but first after some idle timeout. If you
open more than you close, you eventually run out of connections.

/Jørn

tir. 5. jan. 2021 kl. 21.11 skrev Hakan karaoğlu <[email protected]>:

> Greetings,
> I have a question, I would be glad if you can help.
>
> Consider an application that heavily handles messages coming from Rabbitmq
> queue. Meanwhile, it queries the database and the data is saved and updated.
>
> My question is, it processes 500 of the 1000 incoming data, but the rest
> mostly gives the error I mentioned on the subject. "Pooled connection
> request timed out" I think the problem is from nhsession and somehow it
> fills the pool.
>
> What should I do, what would you recommend?
>
> Example configuration is below.
>
> *private static object lockObject = new object();*
> *        private static ISessionFactory sessionFactory;*
> *        private static FluentConfiguration configuration;*
> *        private static ISessionFactory SessionFactory*
> *        {*
> *            get  **{** lock (lockObject)**  {*
> *              if (sessionFactory == null)*
> *                    {*
> *                        sessionFactory =
> configuration.BuildSessionFactory();*
> *                    }*
> *                    return sessionFactory;*
> *                }*
> *            }*
> *        }*
>
>
>
>
>
>
>
>
>
>
>
> *public static IServiceCollection AddSniffactorNhibernate(this
> IServiceCollection services, string connectionString)        {
> Check.NotNull(connectionString);            configuration =
> Fluently.Configure()
> .Database(OracleManagedDataClientConfiguration.Oracle10
> .ConnectionString(connectionString)               Mappings(m =>
> m.FluentMappings.AddFromAssemblyOf<ISniffactorMapping>());
> services.AddSingleton(SessionFactory);
> services.AddScoped(factory =>
> configuration.BuildSessionFactory().OpenSession());
> services.AddScoped(typeof(IRepository<>), typeof(NhRepositoryBase<>));
>       services.AddScoped(typeof(IUnitOfWork), typeof(NhUnitOfWork));
>     services;        }And example a repopublic class
> KeywordDetectionViewRepository : NhRepositoryBase<KeywordDetectionView>,
> IKeywordDetectionViewRepository    {        private readonly ISession
> _session;        public KeywordDetectionViewRepository(ISession session) :
> base(session)        {            _session = session;        }
> public async Task<List<KeywordDetectionView>> GetKeywordsAsync(string
> source, string tag, LanguageTypes languageTypes)        {            var
> query = _session.CreateCriteria<KeywordDetectionView>();            int
> keywordId = int.Parse(tag.Substring(2));            if
> (tag.StartsWith("k_"))            {
> query.Add(Restrictions.Eq("KeywordId", keywordId));            }
> else if (tag.StartsWith("v_"))            {
> query.Add(Restrictions.Eq("VariationId", keywordId));            }
>   query.Add(Restrictions.Eq("SourceCode", source));
> query.Add(Restrictions.Or(Restrictions.Eq("LanguageCode",
> languageTypes.ToString().ToLowerInvariant()),
> Restrictions.IsNull("LanguageCode")));            var result = await
> query.SetCacheable(false).ListAsync<KeywordDetectionView>();
> return (List<KeywordDetectionView>)result;        }    }*
>
>
>
> --
> 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/ff0cbb51-f210-412e-9058-4db704eea99fn%40googlegroups.com
> <https://groups.google.com/d/msgid/nhusers/ff0cbb51-f210-412e-9058-4db704eea99fn%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
-- 
/Jørn

-- 
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/CALh-yk%2BPGmAjz8AFWi%2B6jGhPbOZiBHv4Jy_UZ2gAXVUcn0dS%2Bg%40mail.gmail.com.

Reply via email to