powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASA8+replication: Как отловить событие ...
6 сообщений из 6, страница 1 из 1
ASA8+replication: Как отловить событие ...
    #34224497
PaulJB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во первых - Всех с наступающим Новым Годом!
Хочу что-бы всем: Здоровья, удачи, щедрых заказчиков, внимательных юзеров и всего самого доброго !!! :)

Ну а теперь по теме:
Есть работающая система репликаций.
Протокол POP3/SMTP.
Иногда система (по независящим от неё причинам) не может выполнить отправку.
Обычно это сопровождается сообщением в окне обработчика "Повторно отправленные запросы поставлены в очередь".
Если у DBRemote установлен ключ "-k", тогда DBRemote молча закрывается.
Если ключ "-k" не указан, то окно остается висеть, но юзер (как обычно) не читает.

Как мне програмно определить: отправка прошла удачно или завершилась с ошибкой?

"Научи юзера читать ... " не предлагать - бесполезно :)
...
Рейтинг: 0 / 0
ASA8+replication: Как отловить событие ...
    #34224685
antand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Думаю надо посмотреть в сторону: Процедуры перехватчиков событий SQL Remote
sp_hook_dbremote_send_begin, sp_hook_dbremote_send_end и т.д.
Сам не пробовал, точно сказать не могу.
Нужно помнить, что сам успешный факт пересылки сообщения еще не является фактом успешной доставки и применения его в удаленной базе.
Сообщение "Повторно отправленные запросы поставлены в очередь" на самом деле не является критичным, т.к. это просто повторная передача сообщений. И даже, если Вы уведомите об этом сообщении пользователя, то он все равно не сможет что-то радикальное предпринять.
Уведомлять нужно наверно о критичных ошибках в репликации.
...
Рейтинг: 0 / 0
ASA8+replication: Как отловить событие ...
    #34225073
PaulJB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>Сообщение "Повторно отправленные запросы поставлены в очередь" на самом деле не является критичным ...

Как раз то и критично ...
Это обозначает, что сообщение сформировано, но не отправлено и будет предпринята попытка отправки при следующем сеансе. При этом надо обратить внимание юзера, что попытка отправки завершилась с ошибкой и инфа не ушла.

>>И даже, если Вы уведомите об этом сообщении пользователя, то он все равно не сможет что-то радикальное предпринять.

Не правда. Предпринять всегда можно. Ну, например, что бы юзер сообщил техническому работнику или начал что то предпринимать сам (если сможет).
Например, провайдер поменял код SMTP и не сообщил (примеры есть) - достаточно изменить этот код в настройках и всё ...
...
Рейтинг: 0 / 0
ASA8+replication: Как отловить событие ...
    #34225179
antand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подождите, что-то я не понял.
"Это обозначает, что сообщение сформировано, но не отправлено и будет предпринята попытка отправки при следующем сеансе".
Ведь dbremote в следующем сеансе по новой будет формировать сообщения и пытаться отправить.
Т.е. какой-то очереди из сформированных сообщений(но не отправленных) не существует между сеансами.
Или при использовании SMTP не так?
Я честно говоря SMTP не использовал, но думаю, что сам принцип отслеживания такой же как и по ftp.
В вашем случае нужно видимо отловить именно факт успешной неуспешной отправки на уровне SMTP.
...
Рейтинг: 0 / 0
ASA8+replication: Как отловить событие ...
    #34225295
antand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Похоже, что программно(не визуально в журнале) ошибки dbremote на уровне SMTP тяжело отловить.
Есть еще опция REPLICATION_ERROR, но она только для ошибок на уровне SQL.
Единственно что приходит в голову, это в процедурах перехватчиков событий SQL Remote
сравнивать значения log_sent SYSREMOTEUSER перед отправкой и после.
Ведь если будет ошибка SMTP, то по идее log_sent не изменится.
Хотя может как-то красивее можно.
...
Рейтинг: 0 / 0
ASA8+replication: Как отловить событие ...
    #34225725
PaulJB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про "сформировано" это я образно сказал :)
Ремоут отсылает (грубо говоря) участки лог-файла с указанного смещения.
Если он не отослал в этот раз и не пришло подтверждение о получении, то в следующий сканирование лога начнется именно с этого смещения.

А вот Ваша идея с сравнением значений полей системной таблицы хороша.
Проверю обязательно :)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASA8+replication: Как отловить событие ...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]