Description
Java version: Java 17
DB Packages:
runtimeOnly 'io.r2dbc:r2dbc-mssql:1.0.2.RELEASE'
implementation 'org.springframework.boot:spring-boot-starter-data-r2dbc'
Implementation DB config Snippet
` ConnectionFactoryOptions baseOptions = ConnectionFactoryOptions.parse(
"r2dbc:sqlserver://" + url);
ConnectionFactoryOptions ob = ConnectionFactoryOptions.builder().from(baseOptions)
.option(USER, user)
.option(PASSWORD, password)
.build();
ConnectionFactory connectionFactory = ConnectionFactories.get(ob);
ConnectionPoolConfiguration configuration = ConnectionPoolConfiguration.builder(
connectionFactory)
.maxIdleTime(Duration.ofMinutes(sqlTimeout))
.initialSize(pool)
.minIdle(minPoolSize)
.maxSize(maxPoolSize) // MAX_CONNECTIONS as per RDS instance of 8 GB RAM = 200.
.build();
return new ConnectionPool(configuration);
`
We are facing 2 intermittent issues.
1- Intermittently queries is taking more time and it is exceeding 1 sec timeout. Simple select query normally returning in 20ms but its P95 is 500ms. We are getting following exception.
TimeoutException: Did not observe any item or terminal signal within 1000ms in 'Mono.map ⇢ at com.thyrocare.laboms.dao.TechsoDbDao.getSampleDetails(TechsoDbDao.java:42)' (and no fallback has been configured)
2- Sometimes it is closing connections. We are getting MssqlconnectionclosedException.
ReactorNettyClient$MssqlConnectionClosedException: Connection closed
Pls suggest what we can do resolve these issues.