Archived

This forum has been archived. Please start a new discussion on GitHub.

Fault Tolerant IceStorm

Hello,
I'm new with ICE. I was used TAO Middleware in other projects.

Now I'm researching ICE middleware and testing ICEStorm.

In TAO Notify Service implementation, I have 2 kinds of fault tolerance
1- Connections Fault Tolerance. That permits that publishers, subscriber and service, restore all the information that need for reconnect to all participants.
For example, if a I have one subscriber and one publisher and the service of course. If I shutdown any of this application and later this application run again, all works like the first time.
Notify persist all the info of proxys, topics, etc.
I need shutdown any application and then when I restart this application all work like the first time.
I don't not need load balancer only this kind of fault tolerance.

2-Events loss tolerance. TAO Notifiy persist events sent for subscribers, Then if any application restart then service dispatch to all subscribers.

Can I use these options with ICEStorm o other components?
I run test and don't work with fault tolerance.

Thanks for all.

Moisés

Comments

  • bernard
    bernard Jupiter, FL
    Hi Moisés,

    Welcome to our forums! As of Ice 3.2.x, IceStorm persists only topics (and links between topics); it does not store subscribers persistently. So, if when you restart your IceStorm server, your subscribers need to resubscribe.

    IceStorm does not store any message (event) persistently. If a message cannot be delivered to a subscriber, for example because the subscriber is down or unreachable, IceStorm won't store the message for later delivery.

    We will most likely add subscriber persistence and various other features to IceStorm for the next Ice release. However at this point we have no plan to add message persistence to IceStorm.

    Best regards,
    Bernard
  • How subscriber detect that IceStorm is down?

    Thanks very much for your answer.

    Then the idea is that subscriber detect that the service is restarted to make a topic subscription again.

    Subscribers can obtain the state of IceStorm?
    IceStorm Service send a message for subscribers informing that service start again? Maybe some asynchronism mechanism.

    Thanks again

    Moises
  • matthew
    matthew NL, Canada
    As Bernard said with Ice 3.2.x there is no way with IceStorm itself to detect that IceStorm was restarted. The easiest way to do this is to send heatbeat messages from publishers through IceStorm to subscribers. If the heatbeat is not detected in the expected time interval then you can reasonably conclude there was a crash and re-subscribe. Also note that if you use the same identity for a given run of a subscriber if call Topic::subscribeAndGetPublisher and are already subscribed you'll get an exception so there should be no danger of accidentally subscribing twice.

    The next version of Ice will have an IceStorm built-in mechanism to avoid having to do this.
  • Thanks

    Thanks again

    Maybe I make my own monitor application that send heartbeat message and all subscribers can know when IceStorm is down.

    Thanks for a good project....

    Moisés