CloseConnectionException and one_way tcp proxy

in Bug Reports
I'm using 2.1.0 version. My scenario is the following: a client uses uncheckedCast to get a one way tcp proxy to a server. After some period of inactivity a server 'closes' connection. After that a client tries to invoke some method through instantiated proxy but gets back CloseConnectionException, ConnectionI.cpp, 1993 exception. I thought that connection re-establishment is a part of ICE runtime.
0
Comments
So regardless of exception type, one_way is not retriable. Alhtough, I think, if connection is closed, we may retry, especially for nonmutating operations.
You're absolutely correct. This was changed recently with Ice 2.1.0, here's the entry from the CHANGES file:
The motivation behind this change is to inform the Ice client that the connection has been closed and that eventually some oneway or batch oneway which were still queued in the TCP/IP buffers might have been lost. Previously, if the connection was closed, some oneway or batch oneway might have been lost and because of the automatic retry you wouldn't have been aware of it.
As you have noticed, this doesn't play well with active connection management which closes connections if it's idle... So if you want to use oneway with your application, I would recommend disabling ACM (by setting Ice.ConnectionIdleTime to 0). You could also use twoway requests instead of oneway, twoway requests will always be retried (and are reliable unlike oneway).
Note that we are still discussing internally solutions to have oneway and ACM work better together... In the meantime, let us know if you need more information!
Benoit.
Benoit.