Hello, 

 

I am reviewing the failoverendpoint of synapse. I have looked into the samples 
and the javadoc, but I am still unsure about the descriptions, I guess there is 
some confusion here.

The description about failoverendpoints on 
http://synapse.apache.org/Synapse_Configuration_Language.html is:

 

"Failover endpoints send messages to the listed endpoints with the following 
failover behavior. At the start, the first listed endpoint is selected as the 
primary and all other endpoints are treated as backups. Incoming messages are 
always sent only to the primary endpoint. If the primary endpoint fails, next 
active endpoint is selected as the primary and failed endpoint is marked as 
inactive. Thus it sends messages successfully as long as there is at least one 
active endpoint among the listed endpoints. "

 

So it is about one primary endpoint and the following are the alternative 
endpoints that will become the primary endpoint if the former primary endpoint 
fails. Whenever the current primary endpoint fails, synapse will iterate the 
list of endpoints from the top to the bottom to find an active endpoint.

 

But in the javadoc of the FailoverEndpoint 
http://synapse.apache.org/apidocs/org/apache/synapse/endpoints/FailoverEndpoint.html
 says:

 

"FailoverEndpoint can have multiple child endpoints. It will always try to send 
messages to current endpoint. If the current endpoint is failing, it gets 
another active endpoint from the list and make it the current endpoint. Then 
the message is sent to the current endpoint and if it fails, above procedure 
repeats until there are no active endpoints. If all endpoints are failing and 
parent endpoint is available, this will delegate the problem to the parent 
endpoint. If parent endpoint is not available it will pop the next FaultHandler 
and delegate the problem to that."

 

Here it is about current endpoint, child endpoints and parent endpoint. While 
the child endpoints probably match to the alternative endpoints in the first 
description, I'm not sure about the the parent and the current endpoint term. 
My guess is that with the term "parent endpoint" the first child (<endpoint>) 
of the failover element and the "current endpoint" is the currently active one 
which make it match the "assigned  primary" endpoint in the first description.

Can anyone approve my guess?

I have to be picky about this as I am trying to reuse the Failoverendpoint 
class to write a custom mediator. 

 

Greetings,

 

 

Song Thuy Nguyen

 

 

Reply via email to