Трассировка сообщений по логам в WSO2 ESB 4.8.1

Мне нужно получить уникальный идентификатор для отслеживания сообщений через журналы. Я использую WSO2 ESB 4.8.1. Я нашел статью, посвященную WSO2 ESB 5.0.0. http://nuwanzone.blogspot.it/2016/12/wso2-esb-tracing-messages-through-logs.html . В нем описывается, как установить уникальный идентификатор для каждого сообщения с помощью объекта MessageContext, чтобы я мог получить к нему доступ из любого места в потоке сообщений. Возможно ли реализовать подобное решение и в WSO2 ESB 4.8.1? (портирование этого) решения в WSO2 ESB 4.8.1? Знаете разные решения?


person Stefano Lizzio    schedule 12.04.2017    source источник
comment
Если вы имеете дело с сообщениями SOAP, вы можете использовать свойство MessageID. Это свойство доступно с помощью обычной функции XPath get-property() в посреднике.   -  person Philippe Sevestre    schedule 12.04.2017
comment
Да, вы не можете использовать то же самое со старой версией.   -  person Thusitha Thilina Dayaratne    schedule 13.04.2017
comment
Спасибо @PhilippeSevestre за ваш ответ. Да, я работаю с сообщениями SOAP. Я постараюсь как можно скорее Заранее спасибо.   -  person Stefano Lizzio    schedule 13.04.2017
comment
Спасибо @ThusithaThilinaDayaratne за ваш ответ. Я попытался использовать решение MDC, описанное в статье, используя один из моих прокси-сервисов, но безуспешно. Log4j не записывает уникальный идентификатор в мой журнал. WSO2 ESB 4.8.1 использует jdk 1.7, а jar для добавления в wso2esb-4.8.1\repository\components\lib был скомпилирован с использованием jdk 1.8. Может в этом проблема? Заранее спасибо.   -  person Stefano Lizzio    schedule 13.04.2017


Ответы (1)


Вы можете сохранить MessageID в свойстве при запуске и добавить его в посредники журнала. Пример:

<property description="SetMessageUUID" expression="fn:substring-after(get-property('MessageID'), 'urn:uuid:')" name="MessageUUID" scope="default" type ="STRING"/>
<log>
    <property name="Step" expression="Request service A"/>
    <property name="ID" expression="get-property('MessageUUID')"/>
</log>
<call>
.....
</call>
<log>
    <property name="Step" expression="Response service A"/>
    <property name="ID" expression="get-property('MessageUUID')"/>
</log>
person Alemão    schedule 13.04.2017