Hi,
I have high intensive writes to the database.
In my repositories which are extending RepositoryBase
I’m am accessing the database as the following: (Note, I’m not disposing anything here…)
await Db.SaveAsync(relatedEntity);
At the peak, I am getting 20 requests like that in a second.
this is how I inject my database, auth, and own repositories.
container.Register<IDbConnectionFactory>(c =>
new OrmLiteConnectionFactory(
AppSettings.Get<string>("MysqlConnection"), MySqlDialect.Provider));
container.Register<IAuthRepository>(c =>
new OrmLiteAuthRepository<AppUserAuth, AppUserAuthDetails>(container.Resolve<IDbConnectionFactory>())
{ UseDistinctRoleTables = true });
container.RegisterAutoWired<PostRepository>().ReusedWithin(ReuseScope.None);
container.RegisterAutoWiredAs<ResearchRepository, IResearchRepository>().ReusedWithin(ReuseScope.None);
container.RegisterAutoWiredAs<TimeLineRepository, ITimeLineRepository>().ReusedWithin(ReuseScope.None);
container.RegisterAutoWiredAs<RelatedRepository, IRelatedRepository>().ReusedWithin(ReuseScope.None);
container.RegisterAutoWiredAs<SearchEngineResultRepository, ISearchEngineResultRepository>().ReusedWithin(ReuseScope.None);
This is the error I’m experiancing
"Uncaute exception MySqlException { Number: 0, SqlState: null, Code: 0, ErrorCode: -2147467259, TargetSite: MySql.Data.MySqlClient.Driver GetConnection(), StackTrace: " at MySql.Data.MySqlClient.MySqlPool.GetConnection()
at MySql.Data.MySqlClient.MySqlConnection.Open()
at ServiceStack.OrmLite.OrmLiteConnection.Open() in C:\BuildAgent\work\27e4cc16641be8c0\src\ServiceStack.OrmLite\OrmLiteConnection.cs:line 91
at ServiceStack.OrmLite.OrmLiteConnectionFactory.OpenDbConnection() in C:\BuildAgent\work\27e4cc16641be8c0\src\ServiceStack.OrmLite\OrmLiteConnectionFactory.cs:line 96
at ServiceStack.RepositoryBase.get_Db() in C:\BuildAgent\work\3481147c480f4a2f\src\ServiceStack\ILogic.cs:line 43
at EyezServices.Client.Repository.ResearchRepository.HasMatch(Int64 emailId, String token) in /src/EyezServices.Client/Repository/ResearchRepository.cs:line 256
at EyezServices.Client.Services.MetchService.Any(HasMatchRequest matchRequest) in /src/EyezServices.Client/Services/MatchService.cs:line 35
at ServiceStack.Host.ServiceRunner`1.ExecuteAsync(IRequest req, Object instance, TRequest requestDto) in C:\BuildAgent\work\3481147c480f4a2f\src\ServiceStack\Host\ServiceRunner.cs:line 150", Message: "error connecting: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.", Data: [], InnerException: null, HelpLink: null, Source: "MySql.Data", HResult: -2147467259 }"
Thanks