Самый очевидный ответ является брандмауэром где-нибудь - Вы проверили программное обеспечение filewall на mailserver и каких-либо аппаратных брандмауэрах/маршрутизаторах в пути?
Можете Вы, telnet к другим портам на внешнем разъединяет? Можете Вы ping/traceroute их?
Попытайтесь выполнить трассировку с SQL Server Profiler на обоих серверах, в то время как Вы пытаетесь выполнить действие в своем приложении, которое приводило к тайм-аутам. Это покажет Вам точно, что происходит на машинах, когда тайм-аут происходит.
И не забудьте относиться непредвзято в этом процессе. Я знаю, что Вы сказали, что думаете, что DTC вызывает проблему, но по моему опыту, DTC обычно не вызывает тайм-ауты. Это или работает, или это не делает, и ошибки, которые это бросает, когда это не настроено правильно явно, говорят, что DTC не может запустить транзакцию. Связанный сервер выходит, я видел, обычно включают или удаленный запрос, который не заканчивается или удаленный запрос, который должен передать много обратно данных к серверу вызова.
Да, Вы правы и выполняете профилировщика прежде, но не заметили некоторый ascects becuase, я был перенаправлен с моим умом, что проблемой является witht связанный сервер.
Проблемой была мертвая блокировка и мой совет для всех, которые имеют тайм-аут, является первым для проверки происшествия мертвой блокировки.
Спасибо.
Я не попробовал точно Вашу комбинацию. Но вот что-то, что Вы могли попробовать:
Вы могли также просмотреть монитор MSDTC, в то время как Вы тестируете. Тем путем Вы будете видеть, создаются ли транзакции и затем прерываются или не создаются вообще.
Две машины на той же подсети? Я никогда не мог заставлять DTC работать через маршрутизатор, брандмауэр или нет.
Для отладки попытайтесь использовать DTCPing и DTCTester Microsoft (Google для него).
Иногда перезагрузки требуются при изменении настроек DTC, даже при том, что система не говорит так.