Today i had gone through the ecf generic code
It seems the code is handling the timeout (org.eclipse.ecf.provider.comm.tcp.Client ) it pings peers to keep the connection alive
if remote service execution exceeds 30 sec,i.e the time to get the response exceeds 30 sec ,ECF throws timeout error.The underlying tcp connection is still there.
If by any chance the network link gets broken,jmdns will anyway notify to remove the service and the consumer will remove the service to avoid service call failure.Once again when the network comes up consumer will be notified for the Remote Service again and consumer can successfully make use of this to perform the remote call and get the response.
So basically the container if gets disconnected(i could see only network down as one scenario for this) ,will be reconnected again
So i feel the doubt i raised is wrong ,ECF is handling the tcp connection timeout by making use of tcp ping.Please correct me if i am wrong
Thanks and Regards
Abhisek
On Sun, Jun 27, 2010 at 8:56 PM, Scott Lewis
<slewis@xxxxxxxxxxxxx> wrote:
Hi Abhisek,
abhisek saikia wrote:
Hi Scott
Thanks for sharing this information.I thought the remote service calls will never fail once discovered and added in consumer:) .
This would be impossible in a network environment...as the network can always fail :). If someone claims they can do such reliability with a distribution system then you should not believe them.
I want to have this reconnect logic on timeout in my local bundle.Is there any abstraction for ecf generic/jmdns to do so? Could you please give some hints which part of code do i need to modify to serve my purpose.
For ECF generic: See IContainerListener and the IContainerDisconnectedEvent and IContainerEjectedEvent