MantaRay JMS: код события 4226. Тайм-аут соединения TCP? - PullRequest
0 голосов
/ 05 февраля 2010

У меня проблема с MantaRay JMS: я использую статическую карту мира, потому что автообнаружение не будет работать в нашей сети. Если более 10 пиров находятся в автономном режиме, я получаю сообщение об ошибке 4226 .

Проблема в том, что Microsoft установила ограничение в 10 полуоткрытых соединений с Windows XP SP2. MantaRay пытается связаться с каждым пэром и запускает множество соединений. Первые 10 подключений в порядке, затем, когда начинается 11-е, наше программное обеспечение должно ожидать истечения времени ожидания другого подключения. Превышено время ожидания для любой другой программы, пытающейся получить доступ к сети на том же ПК.

Странно то, что на некоторых ПК время ожидания соединения составляет 1-2 секунды, и проблема почти не имеет последствий, на некоторых других приходится ждать 10 или 20 секунд. Но, по словам Microsoft, нет способа напрямую настроить тайм-аут соединения TCP по умолчанию, и на это могут влиять другие факторы (сетевые коммутаторы, маршрутизаторы, VPN ...).

Я посмотрел исходный код MantaRay и попытался найти способ установить тайм-аут соединения TCP, но MantaRay использует SohetChannels вместо «обычных» сокетов, а метод connect () не имеет времени ожидания , Я что-то упустил?

Ответы [ 2 ]

0 голосов
/ 24 июня 2011

Проблема решена.

Я заменил весь MantaRay гораздо более простым JMS-провайдером, которого я написал: я отправляю первое тестовое сообщение по UDP, одноранговому узлу разрешается открывать TCP-соединение только после получения этого первого сообщения.

Это научило меня быть осторожным при использовании программного обеспечения с открытым исходным кодом (GPL).

0 голосов
/ 16 февраля 2010

Вы также можете установить ограничение на количество соединений TCP / IP в WinXP ... если вы не против использовать такие вещи Есть несколько сайтов, предлагающих патчи. Просто поищите в Google «изменить лимит winxp tcp-соединения», и вы найдете большинство из них. Но используйте эти инструменты на свой страх и риск. Лучше всего подойдет исправление кода для обхода этого ограничения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...