У меня MSMQ работает на двухузловом кластере Windows 2003. Когда я пытаюсь отправить транзакционные сообщения в очередь на сервере Windows 2008 в другом лесу, сообщения застревают в исходящей очереди кластера. В исходящей очереди написано «ожидает подключения» и указан IP-адрес целевого сервера для следующего перехода.
Я могу отправлять сообщения из кластера на серверы Windows 2008 в том же лесу. Я также могу отправлять сообщения с любого узла кластера на серверы Windows 2008 в том же лесу и в другом лесу. Я могу отправлять сообщения с сервера Windows 2008 в другом лесу обратно в кластер.
Изменить: запуск сетевого захвата на серверах показывает, что сервер Windows 2008 получает пакеты из кластера, но они не передаются по уровням процессу MSMQ.
Первое, что мне нужно сделать, это убедиться, что место назначения Windows 2008 прослушивает порт 3527. http://blogs.msdn.com/b/johnbreakwell/archive/2010/03/05/port-3527.aspx
[5 марта] Я бы посмотрел на сетевой трафик с помощью Network Monitor или Wireshark.
Что делает статус исходящей очереди? Вы можете перезапустить службу MSMQ, чтобы начать подключение исходящей очереди. Исходящая очередь может проходить цикл «подключение - подключение - отключение после тайм-аута простоя - ожидание подключения». Или это может быть цикл «подключение - сбой - ожидание подключения». Зависит от первопричины.
Если он никогда не подключается, трехстороннее TCP-рукопожатие никогда не завершается. Можете ли вы подключиться к общему сетевому ресурсу на удаленном сервере? Практически устранены все основные сетевые проблемы.
Тот факт, что сервер находится в другом лесу, не должен иметь большого значения. Отправителю просто нужно преобразовать пункт назначения в IP-адрес, при условии, что вы еще не адресовали сообщения по IP-адресу.
Ура
Джон