Не удается прочитать какой-либо ответ от сервера, базовое соединение может быть неожиданно потеряно (vert.x)

Я пытаюсь вставить данные в БД. При вставке данных я получаю сообщение от 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);

  }

Я пробовал много вещей

  1. Я добавил тайм-аут с 3 секунд до 5 минут, но все равно получаю ту же ошибку.
  2. Я попытался создать нового пользователя для БД, но это не сработало.
  3. Я попытался изменить версию mssql-клиента.
  4. Когда я запускаю тот же код в более низких средах, он работает нормально. Выдает ошибку только на производстве. Так что я не уверен, нужно ли нам делать изменения в коде или должны быть какие-то изменения на стороне БД.

Теперь у меня есть варианты, почему это не работает. Не могли бы вы помочь?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
53
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я нашел два решения.

  • Мы можем уменьшить версию mssql-client в vert.x до 4.3.1, которая совместима с текущей версией RDS 15.00.4073.23.v1.
  • В качестве альтернативы мы можем оставить версию vert.x для mssql-client 4.3.8 и обновить версию RDS рабочей базы данных до 15.00.4236.7.v1.

Таблица совместимости

Ms-sql Client 4.3.8 RDS(Sql server) 15.00.4236.7.v1
              4.3.1                 15.00.4073.23.v1

Другие вопросы по теме