axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Asankha C. Perera" <asan...@apache.org>
Subject Re: Problem
Date Tue, 09 Dec 2008 08:59:07 GMT
Hi Jeremy
> One of my clients has an interesting problem
>
> We have a messaging system (System A) that delivers messages to a simple web service
deployed in axis. the web service attempts to relay the message to a second System (System
B). If system B is up and running then all goes well and axis responds to system A with a
success msg. if System B is down then an error is thrown and axis responds to System A with
a failure error.The problem: If system A receives any response from axis at all it assumes
the message was delivered and does not try to resend the message. What we would like to happen
is if an error is thrown in the web service we would like to cut connection to System A so
it times out and attempts to resend the msg later. Has anyone tried to do this kind of thing
before? We do not have control over System A so we cannot change the code to check the response
from axis to see if it is an success or failure.
>   
You could use the Apache Synapse ESB (http://synapse.apache.org) and 
create a proxy service that fronts your real web service. Create the 
proxy similar to this example [150]. In the <outSequence>, use an XPath 
or other filter to find out if the message is a successful reply and put 
the <send/> within that filter. (See first few samples on how to do CBR) 
For the error case, if you don't pass it through the <send/>, the 
response will timeout to your system A since its dropped at the ESB

cheers
asankha

[150] http://synapse.apache.org/Synapse_Samples.html#Sample150

-- 
Asankha C. Perera
http://adroitlogic.org

http://esbmagic.blogspot.com


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


Mime
View raw message