BizTalk WCF адаптер SQL получает тайм-аут при попытке получить соединение из пула - PullRequest
2 голосов
/ 21 января 2011

У меня очень простая оркестровка BizTalk, которая принимает файл HIPAA 837, разбивает его на отдельные заявки и сохраняет полное XML-сообщение в базе данных. У меня есть порт отправки WCF SQL, который вызывает хранимую процедуру, чтобы сделать это ... proc просто делает вставку без возвращаемого значения. Проблема в том, что я получаю (случайно) ошибку тайм-аута:

Подробности: "Microsoft.ServiceModel.Channels.Common.InvalidUriException: Timeout expired. Время ожидания истекло до получения соединения из пула. Это могло произойти, потому что все соединения в пуле использовались и был достигнут максимальный размер пула.

Я только что попробовал это с небольшим файлом - только 5 отдельных заявок (так что мне нужно всего 5 соединений из пула, верно?). В течение последних 10 часов BT сервер больше ничего не делал (сообщения не обрабатывались). Тем не менее, я все еще получил эту ошибку ... Мой MaxConnectionPoolSize установлен на 100, так что 100 соединений были открыты и простаивали в течение не менее 10 часов ?? Что здесь происходит?

Спасибо.

1 Ответ

2 голосов
/ 22 января 2011

Я бы посмотрел здесь или здесь . Честно говоря, SQL-адаптер WCF очень требователен к тому, с каким SQL он работает, а с чем нет. Обычно я ищу нестандартное решение для вставки в SQL, чтобы иметь больше контроля над вставками или обновлениями без необходимости писать свой SQL, специфичный для адаптера SQL. Я обнаружил, что если я вставляю или обновляю более одной таблицы или возвращаю сложные записи, я избегаю адаптера WCF SQL.

Если это не вариант, посмотрите на переписывание вашего SQL.

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