<< Click to Display Table of Contents >> Обмен с контрагентами > Инструменты мониторинга и диагностики Логирование событий обмена с контрагентами |
Ошибки, предупреждения и информационные сообщения по взаимодействию с контрагентами через сервисы обмена фиксируются в лог-файл общего сервиса системы. Они позволяют администратору или разработчику найти причину ошибки и своевременно ее устранить.
СОВЕТ. Для удобства отслеживания записей в лог-файле рекомендуется использовать утилиту DirectumLogViewer. Она входит в стандартную поставку Directum RX.
Общие сведения
В процессе электронного обмена с контрагентами участвуют сервис обмена, система Directum RX и библиотека DCX. Чтобы определить, где возникла ошибка, можно использовать префиксы:
•Exchange, если сообщение обрабатывается в Directum RX;
•DCX, если сообщение обрабатывается на стороне коннектора к сервису обмена.
В лог-файле отображаются два уровня логирования:
•Debug – показывает отладочные сообщения. По ним можно выстроить всю цепочку выполнения процесса, а также точно определить, на каком этапе обработки находится документ;
•Error – показывает, на каком этапе процесс прервался, и по какой причине.
Для крупных этапов обработки документа, состоящих из нескольких строк, в лог-файле есть начало Execute и окончание логирования Done. Если Done отсутствует, это может означать, что крупный этап завершился с ошибкой. Для остальных этапов есть только начало записи.
Для точного анализа ошибок в лог-файле фиксируется информация по разным цепочкам обработки документа: по абонентскому ящику, по сообщению из сервиса обмена, по документу.
Поиск ошибок в лог-файле
Представим ситуацию, что при получении документа от контрагента элемент очереди завис и не обрабатывается. Чтобы найти ошибку в лог-файле, есть несколько способов.
Показывает полную цепочку обработки сообщения, включая базовые системные операции. Например, проверку на то, заблокирован входящий документ эл. обмена или нет: 1.В справочнике «Элементы очереди синхронизации сообщения» найдите запись со статусом Возникла ошибка или Не обработано. В карточке записи скопируйте значение из поля ИД сообщения в СО. 2.Запустите утилиту DirectumLogViewer и откройте лог-файл общего сервиса. В поле Filter введите скопированный ИД. В результате отобразятся все записи о том, что происходило с сообщением: создание, загрузка, обработка и пр. 3.В отфильтрованном списке записей найдите предполагаемую строку, где могла возникнуть ошибка, и выделите ее: 4.В области Details скопируйте номер Trace и вставьте его в поле Filter. В результате появится расширенная информация по сообщению: последовательность шагов, и как они выполнялись. Ошибки уровня Error подсветятся красным цветом: Ошибки уровня Debug найдите по описанию: Детали их возникновения можно найти в области Details. |
Используется, когда документ еще не загружен в Directum RX. Позволяет выстроить всю цепочку событий обработки конкретного сообщения. Например, выяснить, загрузилось ли сообщение из сервиса обмена в Directum RX, все ли этапы обработки завершились успешно. Чтобы найти ошибку: 1.В справочнике «Элементы очереди синхронизации сообщения» найдите запись со статусом Возникла ошибка или Не обработано. В карточке записи скопируйте значение из поля ИД сообщения в СО. 2.Запустите утилиту DirectumLogViewer и откройте лог-файл общего сервиса. В поле Filter введите скопированный ИД. В результате отобразятся все записи о том, что происходило с сообщением: создание, загрузка, обработка и пр. 3.В отфильтрованном списке записей найдите предполагаемую ошибку. 4.Чтобы понять причину ошибки, воспользуйтесь трассировкой по трейсу. Трассировка позволяет восстановить всю последовательность событий и найти место возникновения ошибки. Для этого выделите строку в лог-файле и в области Details скопируйте номер Trace. Вставьте его в поле Filter. Затем в отфильтрованном списке найдите строку с ошибкой: Debug – по описанию, Error – по красной подсветке. |
Позволяет восстановить последовательность действий асинхронного обработчика ProcessMessages, который отвечает за обработку сообщений из сервиса обмена. Используется для просмотра перезапусков асинхронного обработчика, когда вероятнее всего могла возникнуть ошибка. Чтобы найти ошибку: 1.Получите идентификатор асинхронного обработчика ProcessMessages. Для этого в справочнике «Элементы очереди синхронизации сообщения» найдите запись со статусом Возникла ошибка или Не обработано. В карточке записи скопируйте значение из поля ИД сообщения в СО. Затем запустите утилиту DirectumLogViewer и откройте лог-файл общего сервиса. В поле Filter введите скопированный ИД. В отфильтрованных строках рядом с ИД сообщения найдите атрибут AsyncHandlerId. В нем содержится ИД асинхронного обработчика. Скопируйте значение. Пример: Exchange. Done CreateLiteQueueItem. Queue item created successfully. ServiceMessageId: '68030214-4bc7-4d59-afb7-ee2fbbf9ed40'. ParentServiceMessageId: '9f8671eb-2f51-4181-8ac4-a7cae93db623'. MessageQueueItem: Id: '730', IsRootMessage: 'False', AsyncHandlerId: 'fed35815-f039-4352-a317-634c28333c0e', SessionId: ''. BoxId: '2' 2.В поле Filter введите ИД асинхронного обработчика. В результате отобразятся строки, в которых указано, когда асинхронный обработчик запускался. В атрибуте RetryIteration можно посмотреть количество попыток обработки сообщения: Exchange. Execute async handler ProcessMessages. AsyncHandlerId: fed35815-f039-4352-a317-634c28333c0e, RetryIteration: 4, QueueItemIds: 727,728,729,730 3.В отфильтрованном списке найдите предполагаемую ошибку. Примеры: Exchange. Unknown counterparty with OrganizationId: '7e355f55-d146-4417-8fea-53d773091dff'. It is necessary to synchronize counterparties. ServiceMessageId: '9f8671eb-2f51-4181-8ac4-a7cae93db623'. ParentServiceMessageId: ''. MessageQueueItem: Id: '727', IsRootMessage: 'True', AsyncHandlerId: 'fed35815-f039-4352-a317-634c28333c0e', SessionId: ''. BoxId: '2'. Exchange. Process message failed. MessageQueueItem: Id: '727', ExternalId: '9f8671eb-2f51-4181-8ac4-a7cae93db623', RootMessageId: '9f8671eb-2f51-4181-8ac4-a7cae93db623', IsRootMessage: 'True', AsyncHandlerId: 'fed35815-f039-4352-a317-634c28333c0e', SessionId: ''. Exchange. Has not processed message. Async handler sent to retry. AsyncHandlerId: fed35815-f039-4352-a317-634c28333c0e. NotProcessedMessageIds: 729,727,728,730. 4.Чтобы понять причину ошибки, воспользуйтесь трассировкой по трейсу. Трассировка позволяет восстановить всю последовательность событий и найти место возникновения ошибки. Для этого выделите строку в лог-файле и в области Details скопируйте номер Trace. Вставьте его в поле Filter. Затем в отфильтрованном списке найдите строку с ошибкой: Debug – по описанию, Error – по красной подсветке. |
Используется, когда документ эл. обмена уже загружен в Directum RX. Позволяет проверить, как обрабатывался документ в Direсtum RX, как загружались ответы на него и служебные документы. Чтобы найти ошибку: 1.В справочнике «Элементы очереди синхронизации сообщения» найдите запись со статусом Возникла ошибка или Не обработано. В карточке записи скопируйте значение из поля ИД документа в СО табличной части «Документы». 2.Запустите утилиту DirectumLogViewer и откройте лог-файл общего сервиса. В поле Filter введите скопированный ИД. В результате отобразятся все записи о том, как происходила обработка документа: загрузка служебных документов, подписей, содержимого основного документа и пр. 3.В отфильтрованном списке найдите предполагаемую ошибку: 4.Чтобы понять причину ошибки, воспользуйтесь трассировкой по трейсу. Трассировка позволяет восстановить всю последовательность событий и найти место возникновения ошибки. Для этого выделите строку в лог-файле и в области Details скопируйте номер Trace. Вставьте его в поле Filter. Затем в отфильтрованном списке найдите строку с ошибкой: Debug – по описанию, Error – по красной подсветке. |
© Компания Directum, 2024 |