Ich habe EventNotiferSupport erweitert und iEnable() auf True für alle Ereignisse eingestellt. Ich habe eine notify(), die protokolliert, welche Ereignisse ich erhalte und die entsprechende Exchange-ID für das Ereignis.Keine Apache Camel Ereignisbenachrichtigungen unter der kleinsten Auslastung empfangen
Ich habe meinen ExchangeMessageNotifier mit this.context.getManagementStrategy() hinzugefügt. AddEventNotifier (this.exchangeMessageNotifier);
Ich laufe mein Programm unter im Wesentlichen keine Last, Senden 1 Nachricht zu einer Zeit 1 Sekunde Verzögerung zwischen Nachrichten in Camel zu senden. Alles funktioniert so, wie ich es erwarte. Ich erhalte meine Veranstaltungen, alles sieht gut aus.
Ich verringere die Verzögerung zwischen Nachrichten auf 0 Millisekunden, und ich finde, dass 1 von ungefähr 20 Nachrichten ich eines der Ereignisse nicht erhalte (oft das Completed-Ereignis).
Fügen Sie einen zweiten Thread mit der gleichen Rate senden, und ich bekomme keine Ereignisse für keine Nachrichten.
Was fehlt mir? Ich habe Suchen durchgeführt und finde nichts, was ich anders machen müsste. Gibt es etwas, das mir fehlt?
Ich benutze Apache Camel 2.16.3, und bewegte sich nach 2.18.1 immer noch das gleiche Verhalten.
ich folgende bin Einstellung für Ereignisse behandeln zu: '@Override protected void doStart() throws Exception { this.setIgnoreCamelContextEvents (true); this.setIgnoreExchangeCompletedEvent (false); this.setIgnoreExchangeCreatedEvent (false); this.setIgnoreExchangeFailedEvents (false); this.setIgnoreExchangeRedeliveryEvents (false); this.setIgnoreExchangeSentEvents (false); this.setIgnoreRouteEvents (Wahr); this.setIgnoreServiceEvents (Wahr); } ' – GhostProgrammer
Ich füge diese Klasse als eine Bohne in Blueprint hinzu. Nachdem Sie die gewünschten Ereignisse aktiviert haben, sollten Sie die Ereignisse in Ihren Protokollen sehen. –