indirect proxy and ObjectNotExistException
I have noticed that when the Ice core in the client gets an ConnectionRefusedException, it will contact IceGrid again to refresh the locator cache and then use these new endpoints to make another try. However, when it gets an ObjectNotExistException, it will simply throw the exception. I think the latter will be misleading in some cases and sometimes will never recover. For example:
1.Suppose the OA1server's ObjectAdapter selects tcp port randomly: OA1.Endpoints=tcp -h 10.10.10.1 Suppose OA1 listens on -p 10001 now. OA1 also register dynamically to IceGrid. 2.Suppose the client is using indirect proxy([email protected]). The client make an invocation and it gets an item from IceGrid:[email protected] --> [email protected] -h 10.10.10.1 -p 10001. Of course, the client's invocation succeeds. 3.Now the following events: 1)time1: The OA1's server restarts and listens on a new port: -p 10002 2)time2: Another server starts and it listens on -p 10001 3)time3: The previous client makes an invocation on [email protected] and it will get an ObjectNotException.