вопрос интеграции biztalk wcf - PullRequest
0 голосов
/ 02 марта 2012

Я пытаюсь получить доступ к сервису wcf через biztalk sendport (wcf-custom) с установитьsecuritycontext = false. Мое приложение генерирует 80 экземпляров orch, и каждый раз только 2 из них выдают следующую ошибку, а все остальные работают должным образом. Кроме того, если я увеличу значение retrycount = 1, два экземпляра orch будут выдавать предупреждение при первой попытке подключиться к службе и успешно завершиться. во 2-й попытке.

сообщение об ошибке

Ошибка Описание: System.TimeoutException: клиент не может завершить согласование безопасности в течение настроенного времени ожидания (00:10:00). Текущий этап переговоров - 1 (00:10:00). ; System.TimeoutException: истекло время ожидания канала запроса в ожидании ответа после 00:10:00. Увеличьте значение тайм-аута, передаваемое вызову Request, или увеличьте значение SendTimeout в Binding. Время, отведенное для этой операции, могло быть частью более длительного времени ожидания .; System.TimeoutException: HTTP-запрос к 'webservice-address' превысил установленное время ожидания 00:10:00. Время, отведенное для этой операции, могло быть частью более длительного времени ожидания. ; System.Net.WebException: истекло время ожидания операции

Ответы [ 2 ]

0 голосов
/ 06 марта 2012

Еще пара вариантов ...

Set Ordered Delivery на физическом порте отправки. Это повлияет на производительность, так как сообщения будут эффективно сериализованы, но они действительно быстро тестируются и могут / не могут оказаться подходящими в вашей ситуации ...

Установить Уведомление о доставке, переданное на порт логической отправки и перехватить DeliveryFailureException. Затем вы можете подождать заранее определенное / настраиваемое количество времени и повторить оркестровку. Это немного сложнее, но дает вам большую гибкость.

Удачи!

0 голосов
/ 02 марта 2012

Вероятно, происходит то, что ваш сервер Biztalk перегружает нисходящую службу WCF слишком большим количеством одновременных вызовов.

Ваша служба WCF будет принимать только конечное число одновременных подключений в зависимости от возможностей обработки службы WCF (например, количество серверов, количество потоков в пулах приложений и т. Д.).

Быстро и грязно, но не рекомендуется На адаптере BizTalk WCF есть ручки , чтобы уменьшить количество одновременных сообщений на портах отправки. Если ваши оркестровки запускаются пакетами входящих сообщений, вы также можете посмотреть на настройку адаптеров приема, а также параметры регулирования BizTalk на принимающем хосте, чтобы уменьшить количество поглощаемых сообщений.

Одиночки Однако рекомендуемый подход состоит в том, чтобы изменить вашу оркестровку, чтобы она стала одноэлементной, или 'N-ton' * Серотера , чтобы она ограничивала число одновременных сообщений, которые он обрабатывает (обычно путем корреляции сообщений, чтобы они складывались в окно сообщения).

Вы также можете улучшить производительность службы WCF - например, посмотрите на индексацию, если она использует базу данных, кэширование, если она выбирает данные и т. д.

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