У меня есть Appl A, который является клиентом JacORB, а Appl B является сервером TAO.
Детали исполнения:
a) Приложение A изначально создает объектную ссылку для серверного процесса (Appl B), используя свой URL-адрес corbaloc, и сохраняет эту ссылку на карте для последующего использования. Это означает, что одна и та же ссылка на объект используется для всех вызовов corba в приложении B.
b) Приложение A вызывает метод инвентаризации для суженной ссылки на объект Приложения B, созданной выше.
c) На стороне сервера (TAO) сервант завершает запрос и отправляет ответ.
d) Через долгое время (я думаю, после тайм-аута) на стороне клиента Jacorb я получаю исключение:
org.omg.CORBA.COMM_FAILURE: vmcid: 0x0 minor code: 0 completed: Maybe
at org.jacorb.orb.giop.ReplyPlaceholder.getInputStream(ReplyPlaceholder.java:133)
. e) В случае, если до истечения срока действия вышеуказанного запроса, если тот же запрос снова выполняется на сервере (используется тот же объект соединения), оба ответа принимаются и обрабатываются должным образом.
Любая идея, как действовать в этом случае? Я предполагаю, что буфер сокета ожидает сброса, поэтому он всегда работает во второй раз. Любая идея, как принудительно сбросить объект подключения?