2017-06-08 13 views
1

Wie würden Sie in Camel empfehlen, Schlüssel/Wert-Ausdrücke in Routen für Dinge zu definieren, die Sie für das Auditing speichern möchten, und diese dann transparent in eine Datenbank geschrieben werden?Erfassen von Kameldauschdaten in die Datenbank

d. H. Die Route enthält ein Array oder einen Satz von Ausdrücken für Dinge, die für das Auditing gespeichert werden, aber sie wissen nicht, wie sie tatsächlich aufgenommen und in eine Datenbank geschrieben werden.

Dies wäre wie Mule's Auditing-Funktion, wo Sie <flow> Elemente in die Mule-XML setzen und Ausdrücke definieren können, um sie in Mule's DB zu speichern.

Ich habe Interceptor, Event Notifiers, Tracer, WireTaps, MDC Logging betrachtet - ich bin sicher, die Antwort liegt in einem oder einer Kombination dieser Elemente, aber es ist mir nicht klar.

Ich verwende dieses Beispiel Mule Revision XML aus seiner Dokumentation zum Vergleich:

<flow name="bizFlow"> 
    <tracking:custom-event event-name="Retrieved Employee" doc:name="Custom Business Event"> 
     <tracking:meta-data key="Employee ID" value="#[payload['ID']]"/> 
     <tracking:meta-data key="Employee Email" value="#[payload['Email']]"/> 
     <tracking:meta-data key="Employee Git ID" value="#[payload['GITHUB_ID']]"/> 
    </tracking:custom-event> 
</flow> 

Vielen Dank

Antwort

0

Für I Revisions wireTap verwendet Austausch zu speziellen audit route zu schicken, wo ich das tun, was Ich brauche Auditing. Nicht eigentlich zur DB sondern zur JMS-Queue, aber das ist egal.

Es gibt nur eine Einschränkung: was auch immer für die Prüfung geht darf nicht nach wireTap durch Hauptweg (beide laufen parallel) geändert werden, so dass ich geklont solche Überwachungsdaten vor wireTap spezielle Exchange-Immobilie in Audit Route verwendet werden.

+0

Vielen Dank für Ihre Antwort. In diesem Fall erstellen Sie eine dedizierte Exchange-Eigenschaft, die Überwachungsdaten speichert. Sie müssen die Abzweigung jedoch explizit jeder Route hinzufügen. Ich frage mich, ob es einen Weg gibt, dies zu tun, so dass Sie nur die Eigenschaft erstellen müssen und den Abhörzettel nicht auf der Route ablegen müssen? – ludanna

+0

Ja, Sie sind richtig. Ich habe an allen Stellen, an denen ich auditieren muss, wireTap hinzugefügt. Es war genau das, was ich genau vom Auditing benötigte - auditieren, was ich an Punkten im Flow benötige, wo ich brauche. Ich bin mir nicht sicher, was Sie tatsächlich überprüfen müssen und wie, aber es gibt zwei Parameter in jeder Route "trace" und "messageHistory". Wie ich mich erinnere NachrichtHistory ist auch eine Exchange-Eigenschaft und kann auch angepasst und behandelt werden. Außerdem glaube ich nicht, dass es in Camel mehr für diesen Zweck gibt. Vielleicht können Sie eine solche Komponente erstellen und sie mit der Community teilen? wie wäre es? - :) – Vadim