Mein Code konsumiert JMS-Warteschlange und über lb Weiterleitungen zu externen HTTP-Client. Ich muss die Originalnachricht für jede fehlgeschlagene Zustellung in das lokale Verzeichnis protokollieren. Problem ist, dass onException von jedem Failover abgefangen wird. Gibt es eine Möglichkeit, dies zu erreichen?Handle Ausnahme von Load Balancer nur einmal (wenn Failover erschöpft ist)
Pseudo-Code:
onException(Exception.class).useOriginalMessage()
.setHeader(...)
.to("file...")
.setHeader(...)
.to("file...")
from("activemq...")
.process(...)
.loadBalance().failover(...)
.to("lb-route1")
.to("lb-route2")
.end()
.process()
.to("file...")
from("lb-route1")
.recipientList("dynamic url")
.end()
from("lb-route2")
.recipientList("dynamic url")
.end()
Sie können die CircuitBreaker-Komponente zusammen mit errorHandler dazu verwenden und die Wiederholungsversuche auf 1 beschränken – Sundar