hang up of IceStorm

in Help Center
Hi,
Had anyone encountered hang up of IceStorm? My project uses IceStorm as message transmit center. So it is very important that IceStorm could work for long time and never hang up. But recently the test results were not fine. There are 2 subscribers and 1 publishers in my system. To prevent subscriber from losing subscription, the subscriber will perform unsubscription and subscription in time. Normally in one or two days, the IceStorm will hang up and the publisher will fail to publish the message. It can connect to the TopicMangaer and retreive the ObjectPrx.
My project is developed under Windows with Ice version 3.2. In fact, there are two problem. One is whether the IceStorm can work for long time. Another is how the subscriber know the subscription is active.
Regards,
Feng Xuebin
Had anyone encountered hang up of IceStorm? My project uses IceStorm as message transmit center. So it is very important that IceStorm could work for long time and never hang up. But recently the test results were not fine. There are 2 subscribers and 1 publishers in my system. To prevent subscriber from losing subscription, the subscriber will perform unsubscription and subscription in time. Normally in one or two days, the IceStorm will hang up and the publisher will fail to publish the message. It can connect to the TopicMangaer and retreive the ObjectPrx.
My project is developed under Windows with Ice version 3.2. In fact, there are two problem. One is whether the IceStorm can work for long time. Another is how the subscriber know the subscription is active.
Regards,
Feng Xuebin
0
Comments
Regarding your second question since subscribers are not persistent, they will be kicked whenever an error occurs. If this happens the subscriber is not notified (how can it be? its booted because of an error
A better solution is to add persistent subscribers. However, without commercial interest this is not a high priority. If you are interested in sponsoring such a development please contact us at [email protected].
The publisher, subscriber and IceStorm all reside on the same host. It is very strange.
A thread from the thread pool blocked in the select() call is expected. This simply means that the thread pool waits for additional data to be received over established TCP/IP connections.
What kind of invocations do you use to publish the messages to the topic, twoway or oneway? Can you get the strack trace of each thread from the publisher process and IceStorm process when you get the hang and post them here?
Cheers,
Benoit.
The connect timeout exception indicates that the publisher wasn't able to establish a network connection with the IceStorm service in a timely manner. This could be caused by a network issue (unlikely if you run everything on the same machine) or because IceStorm is for some reasons unable to answer the connection request.
The easiest would be to provide us a small self-contained example that we can use to duplicate your problem.
Cheers,
Benoit.
The attatchment is the examples include a publisher and a subscriber. It might take some days to re-occure the problem.
The problem re-occured this morning. I found out the publisher thread blocked in the following statement:
I suspected it is caused by subscription and unsubscription at the same time the publisher want to publish the message.
The problem re-occured this morning. I found out the publisher thread blocked in the following statement in TopicI.cpp:
I suspected it is caused by subscription and unsubscription at the same time the publisher want to publish the message.
The attachment is trace info when the IceStorm was blocked.