WSO2 ESB 消息 ID

Mar*_*ian 5 wso2 wso2-esb

我是否有可能通过 MessageId 在 WSO2 ESB 上查找消息,例如 urn:uuid:e11893c5-b033-4e99-9473-a43d66b65fbb ?例如,如果某些流程失败并且服务器记录了此类 ID。

Vla*_*vko 4

玛丽安,

ESB 本身不会在任何地方记录消息,除非您告诉它。

a)第一种方法是使用日志中介将传入和传出消息写入日志:

<proxy xmlns="http://ws.apache.org/ns/synapse" name="YourProxyService" transports="https http" startOnLoad="true">
<target>
    <inSequence>
        <log level="full">
           <property name="MESSAGE_ID" expression="get-property('MessageID')"/>
        </log>
         ...
    </inSequence>
    <outSequence>
        <log level="full">
           <property name="MESSAGE_ID" expression="get-property('MessageID')"/>
        </log>
         ...
    </outSequence>
</target>
</proxy>
Run Code Online (Sandbox Code Playgroud)

然后,您将能够在日志文件中找到传入和传出的消息,因为日志将包含如下内容:

 INFO {org.apache.synapse.mediators.builtin.LogMediator} -  To: http://localhost:9763/services/YourProxyService, From: 127.0.0.1, WSAction: urn:mediate, SOAPAction: urn:mediate, Direction: request, MESSAGE_ID = urn:uuid:e11893c5-b033-4e99-9473-a43d66b65fbb , Envelope:  <ENVELOPE_GOES_HERE>
Run Code Online (Sandbox Code Playgroud)

b)另一种方法是在数据库中创建表并将消息 ID 和信封存储到其中。

希望这可以帮助。弗拉基米尔。

UPD:您还可以使用内置的 SOAP 跟踪器,但要谨慎启用它 - 它会影响 ESB 性能。所以我建议仅将其用于短期调试活动。