Jooq слишком много клиентов - PullRequest
1 голос
/ 03 марта 2020

Я сталкиваюсь с ошибкой "Слишком много клиентов" при использовании jooq в моем приложении для весенней загрузки. В настоящее время я автоматически подключаю свой DSLContext и надеялся, что jooq auto закроет соединения с моим postgres, что, по-видимому, работает неправильно. Есть ли способ освободить соединение вручную?

  @Autowired
  lateinit var dsl: DSLContext


  //further down
  dsl.close() //didn't help

Я нашел идеи, которые предлагают сделать что-то вроде этого (Java код, но вы понимаете;)), но я бы хотел придерживаться идея автоматического подключения DSLContext (как выше), а не самого источника данных:

@Autowired
private DataSource dataSource;
//Further down 
Connection con=dataSource.getConnection();
DSLContext create = DSL.using(con, SQLDialect.MYSQL);
//Execute code here
con.close();

1 Ответ

0 голосов
/ 03 марта 2020

Возможно, есть потоки управления, которые приводят к пропуску вашего con.close() вызова. Однако вам не нужно выполнять управление соединением вручную с помощью jOOQ. Просто передайте DataSource на ваш DSL.using() звонок вместо:

@Autowired
private DataSource dataSource;

//Further down 
DSLContext create = DSL.using(dataSource, SQLDialect.MYSQL);
...