Я пытаюсь вставить данные в БД. При вставке данных я получаю сообщение от vert.x о том, что
vertx 4.4.0 error => io/vertx/sqlclient/ClosedConnectionException
vertx 4.3.8 error => Fail to read any response from the server, the underlying connection might get lost unexpectedly.
Эта ошибка возникает каждый раз при INSERT в БД. Но работа над чтением из БД
public static MSSQLPool createMssqlDbPool(Vertx vertx, DbConfig dbConfig) {
MSSQLConnectOptions connectOptions = new MSSQLConnectOptions()
.setHost(System.getenv().getOrDefault("DB_HOST", dbConfig.getHost()))
.setPort(Integer.parseInt(System.getenv().getOrDefault("DB_PORT", dbConfig.getPort())))
.setDatabase(System.getenv().getOrDefault("DB_NAME", dbConfig.getDatabase()))
.setUser(System.getenv().getOrDefault("DB_USER", dbConfig.getUser()))
.setPassword(System.getenv().getOrDefault("DB_PASSWORD", dbConfig.getPassword()));
// Pool options
PoolOptions poolOptions = new PoolOptions()
.setMaxSize(5);
LOG.info("DB connection : {}", connectOptions.toJson());
return MSSQLPool.pool(vertx, connectOptions, poolOptions);
}
Я пробовал много вещей
- Я добавил тайм-аут с 3 секунд до 5 минут, но все равно получаю ту же ошибку.
- Я попытался создать нового пользователя для БД, но это не сработало.
- Я попытался изменить версию mssql-клиента.
- Когда я запускаю тот же код в более низких средах, он работает нормально. Выдает ошибку только на производстве. Так что я не уверен, нужно ли нам делать изменения в коде или должны быть какие-то изменения на стороне БД.
Теперь у меня есть варианты, почему это не работает. Не могли бы вы помочь?
Я нашел два решения.
Таблица совместимости
Ms-sql Client 4.3.8 RDS(Sql server) 15.00.4236.7.v1
4.3.1 15.00.4073.23.v1