Вопрос к dbConn.executeCachedQuery (SQLStatement) на движке интерфейса Mirth Connect - PullRequest
2 голосов
/ 10 января 2020

Из-за слишком низкого набора максимального лимита процессов и сеансов в БД Oracle иногда возникает следующая ошибка:

DBConnection - java. sql .SQLException : Слушатель отклонил соединение со следующей ошибкой: ORA-12516, TNS: слушателю не удалось найти доступный обработчик с соответствующим стеком протоколов

из-за dbConn.executeCachedQuery (SQLStatement) с DatabaseConnection Class in Mirth

Так вот мои вопросы:

  1. Можно ли как-нибудь добавить этот ответ / исключение в канал?
  2. Все ли данные запрос SQL с исключением «потерян», если возникает эта ошибка или существует автоматическая c повторная попытка?
  3. И есть ли лучший способ справиться с этим (например, сначала проверить соединение с метод getConnection () )?

1 Ответ

2 голосов
/ 13 января 2020

Я отвечу на ваши вопросы по порядку:

1) Если вы используете разъем javascript, то вы должны попытаться это сделать при попытке установить соединение. В подвохе просто поместите ошибку как Logger.Error (exceptionGoesHere).

Если вы используете коннектор db, он должен автоматически генерироваться в журналах. Чтобы убедиться, что у вас включено ведение журнала на уровне канала, откройте диспетчер сервера Mirth Connect, перейдите на вкладку «Сервер» и убедитесь, что для уровня журнала канала установлено значение «Ошибка».

2) Способ подключения Mirth Connect работает, каждый раз, когда сообщение инициируется, оно попадает в определенные точки БД Mirth, чтобы сохранить состояние сообщения в данный момент времени. Так Мирт гарантирует доставку сообщений. При этом вы всегда можете «повторить» отправку вручную. В противном случае, если вы используете коннектор DB, есть опция, которая обрабатывает это для вас в разделе «Настройки чтения базы данных». Повторная попытка дает вам возможность выбрать количество повторных попыток, а также интервал повторных попыток в мс. Когда я работал там, по умолчанию было установлено 3 попытки через 10 секунд.

3) Использовать соединитель базы данных по умолчанию. Все уже встроено для вас. Поместите дополнительную обработку в трансформатор, чтобы справиться с чем-либо еще. Не пытайтесь заново изобрести колесо, если все уже построено - лучшая практика.

Если вы настаиваете на использовании решения для кода, убедитесь, что весь ваш код находится в режиме перехвата, и убедитесь, что ваш перехват фактически выводит исключение ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...