|
|
|
||||||
|
Yes, IceStorm is expected to work for a long time. I'm afraid that you haven't given enough information to help solve your problem. What do you mean by hangup? Do you mean your subscriber stops receiving data? If that is the case most likely there was a communications problem between IceStorm and the subscriber. This could either be network related or could be caused by a bug in the subscriber itself causing a timeout exception. To find out more information I recommend enabling more tracing -- see the Ice manual for details.
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 . Since this is the case there is no generic way you can know -- instead, if this is important to you, you can do this in some application specific way. For example, have the subscriber ping the subscriber specific object (see subscribeAndGetPublisher) on a regular basis. Another approach is to send heartbeat messages through IceStorm. If no message arrives within a certain time limit you know there is a problem.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 sales@zeroc.com. |
|
||||||
|
I'm so sorry that I didn't describe the problem very clearly. The strange problem is publisher can't publish the message when the IceStorm hangs up. I debug the IceStorm and find out it is blocked at ThreadPool.cpp:
Quote:
__________________
Fengxb |
|
||||||
|
Hi,
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. |
|
||||||
|
When the IceStorm process hang up, the publisher process catch connect timeout exception. At the same time, the IceStorm has no any trace info.
__________________
Fengxb |
|
||||||
|
Hi,
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. |
|
||||||
|
Hi,
The attatchment is the examples include a publisher and a subscriber. It might take some days to re-occure the problem.
__________________
Fengxb Last edited by fengxb : 06-21-2007 at 09:56 AM. |
|
||||||
|
Hi,
The problem re-occured this morning. I found out the publisher thread blocked in the following statement: Quote:
__________________
Fengxb |
|
||||||
|
Hi,
The problem re-occured this morning. I found out the publisher thread blocked in the following statement in TopicI.cpp: Quote:
__________________
Fengxb |
|
||||||
|
I sent you an email and a private message regarding ongoing support. If you didn't get these, can you please get back to us at info@zeroc.com?
|
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Hang in activate() on Linux | walls1500 | Help Center | 8 | 03-01-2007 12:59 PM |
| waitForDeactivate hang amidst batch request | gsalazar | Help Center | 7 | 01-20-2005 01:09 PM |
| Unknown property "IceBox.DBEnvName.IceStorm" for IceStorm | wwwtiger | Help Center | 1 | 11-05-2004 03:23 PM |