Class FailoverEndpoint

  • All Implemented Interfaces:
    Endpoint, ManagedLifecycle, Nameable, PropertyInclude, SynapseArtifact

    public class FailoverEndpoint
    extends AbstractEndpoint
    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.
    • Constructor Detail

      • FailoverEndpoint

        public FailoverEndpoint()
    • Method Detail

      • init

        public void init​(SynapseEnvironment synapseEnvironment)
        Description copied from interface: ManagedLifecycle
        This method should implement the initialization of the implemented parts of the configuration.
        Specified by:
        init in interface ManagedLifecycle
        Overrides:
        init in class AbstractEndpoint
        Parameters:
        synapseEnvironment - SynapseEnvironment to be used for initialization
      • send

        public void send​(MessageContext synCtx)
        Description copied from interface: Endpoint
        Sends the message context according to an endpoint specific behavior.
        Specified by:
        send in interface Endpoint
        Overrides:
        send in class AbstractEndpoint
        Parameters:
        synCtx - MessageContext to be sent.
      • onChildEndpointFail

        public void onChildEndpointFail​(Endpoint endpoint,
                                        MessageContext synMessageContext)
        Description copied from interface: Endpoint
        Endpoints that contain other endpoints should implement this method. It will be called if a child endpoint causes an exception. Action to be taken on such failure is up to the implementation. But it is good practice to first try addressing the issue. If it can't be addressed propagate the exception to parent endpoint by calling parent endpoint's onChildEndpointFail(...) method.
        Specified by:
        onChildEndpointFail in interface Endpoint
        Overrides:
        onChildEndpointFail in class AbstractEndpoint
        Parameters:
        endpoint - The child endpoint which caused the exception.
        synMessageContext - MessageContext that was used in the failed attempt.
      • readyToSend

        public boolean readyToSend()
        Description copied from interface: Endpoint
        Returns true to indicate that the endpoint is ready to service requests
        Specified by:
        readyToSend in interface Endpoint
        Overrides:
        readyToSend in class AbstractEndpoint
        Returns:
        true if endpoint is ready to service requests
      • isDynamic

        public boolean isDynamic()
      • isBuildMessageAtt

        public boolean isBuildMessageAtt()
      • setDynamic

        public void setDynamic​(boolean dynamic)
      • setBuildMessageAtt

        public void setBuildMessageAtt​(boolean buildMessage)
        Set buildMessage Attribute from failover config
        Parameters:
        buildMessage - true or false
      • setBuildMessageAttAvailable

        public void setBuildMessageAttAvailable​(boolean available)
        Set whether failover config has the buildMessage config
        Parameters:
        available - true or false