Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Неправильный логин или пароль при регистрации внешней БД #157

Closed
gsbelarus opened this issue Jun 23, 2019 · 10 comments
Assignees
Labels
bug Something isn't working gdmn-back Related to gdmn-back package gdmn-front Related to gdmn-front package ui

Comments

@gsbelarus
Copy link
Owner

Если при регистрации внешней БД указать неверный логин или пароль, то система повисит-повисит и вернет список баз данных в исходное состояние при этом никаких сообщений не будет ни на экране, ни в логе. А должно сказать что-то понятное пользователю.

@gsbelarus gsbelarus added bug Something isn't working gdmn-back Related to gdmn-back package gdmn-front Related to gdmn-front package ui labels Jun 23, 2019
@gsbelarus
Copy link
Owner Author

То есть сейчас рассматриваем два варианта:

  1. Сначала отдельно подключаемся к БД без пула. Если ошибка, то вы водим ее в лог и передаем на клиента. Если успех, то отключаемся и подключаемся уже через пул. Выглядит конечно не очень профессионально. Как затычка какая-то.
  2. Сделать форк библиотеки пула и подправить там все, что нам надо. Отправить PR автору. Пока он не подправит -- использовать наш форк. Выглядит уже получше.

@gsbelarus
Copy link
Owner Author

И, как я понял, еще и на клиенте что-то придется допиливать, чтобы ловились ошибки правильно.

@sywka
Copy link
Collaborator

sywka commented Jun 26, 2019

По поводу пункта 2 - уже есть PR, но без апрува coopernurse/node-pool#184

@gsbelarus
Copy link
Owner Author

Судя по датам там этот PR никогда не будет смержен. Надо делать свой форк и подправить или вообще выкинуть эту библиотеку. Она у нас только для конектов к БД используется?

@sywka
Copy link
Collaborator

sywka commented Jun 26, 2019

Скорее всего да, не будут его мержить). Кроме драйвера эта либа используется для реализации пула дочерних процессов.

В идеале, конечно нужно доделать либу пулов, но сейчас мне кажется нет смысла тратить силы на совершенствование своего пула, если с выходом Firebird 4, его скорее всего заменит встроенный. Чисто для процессов разве что.

Самый оптимальный вариант, как мне кажется, сделать затычку (1 пункт)
Добавить в ADatabase метод:

public async ping(): Promise<void> {
  const {driver, connectionOptions} = this.dbDetail;
  const testConnection = driver.newConnection();

  try {
    await testConnection.connect(connectionOptions);
  } finally {
    if (testConnection.connected) {
      await testConnection.disconnect();
    }
  }
}

и внутри реализации команды CREATE_APP вызывать.

По сути мы это же делаем только с целым приложением. И там у нас идет полная инициализация приложения, а с этим методом мы ограничимся только коннектом к БД. Будет быстрее

@ilonaand
Copy link
Collaborator

ilonaand commented Jun 26, 2019

Уже написали метод, показывает ошибку правильно

@sywka
Copy link
Collaborator

sywka commented Jun 26, 2019

А вообще повторюсь, основная проблема в драйвере, т.к при большом количестве реконнектов (в следствии особенности работы пула), драйвер кладет весь процесс с каким-то error кодом

@gsbelarus
Copy link
Owner Author

gsbelarus commented Jun 26, 2019 via email

@sywka
Copy link
Collaborator

sywka commented Jun 26, 2019

Я думаю да, но нужно проверить. Заодно посмотреть с каким кодом процесс завершается на windows

IharOknorp added a commit that referenced this issue Jun 27, 2019
gsbelarus added a commit that referenced this issue Jun 27, 2019
@IharOknorp
Copy link
Contributor

Сообщение выводится:
Your user name and password are not defined. Ask your database administrator to set up a Firebird login.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working gdmn-back Related to gdmn-back package gdmn-front Related to gdmn-front package ui
Projects
None yet
Development

No branches or pull requests

4 participants