I agree with your consideration, in general a SOAP fault could be a valid response for the client. The problem is that a SOAP fault *can *be also an invalid response from the service, and in current situation there is no way to manage this information in order to mark an endpoint suspended.
Using current configuration language, the only solution I have in mind is this: 1) Alter the IN sequence to store somewhere the request message 2) Alter the OUT sequence to analyze the body of the fault, to verify if the endpoint is unavailable 3) Reload the request from 1) 4) Send the request to the next endpoint (chosen by an hard-coded logic, storing somewhere the endpoints already used) 5) Repeat from 2 until success or no other endpoint is available. This solution is very very dirty, it makes useless all failover/loadbalancing/endpoint-groups framework because I have to hardcode all the logic and all the endpoints. I think a way to put a condition (for example a xpath-expression on the response body) in addition to standard error codes, could be a clean solution. Otherwise, do you have a suggestion to obtain this goal with a smarter solution? Thanks 2010/1/14 Asankha C. Perera <[email protected]> > Hi Roberto > >> The problem is that when I'm trying to access to an inactive > >> endpoint I don't obtain an error code in the 101XXX error codes list. I > >> obtain a SOAP fault... > >> > > Ah.. I get your point now! No, Synapse doesn't look at the message and > > mark the endpoint as failed.. this is a good suggestion for improvement > > though.. Let me see what can be done > > > I do not think your requirement is valid in general.. a SOAP fault can > be returned if your request data is invalid as an example - this does > not mean that the service is failing and its down - so marking it as > such is not generally applicable. > > In your case, unless you look at the response message received, you > cannot determine if its a service level fault, or something else.. at > least if we had a HTTP status code of 404 etc, it could be hard proof > the service is not available > > cheers > asankha > > -- > Asankha C. Perera > AdroitLogic, http://adroitlogic.org > > http://esbmagic.blogspot.com > > > > >
