Несколько серверов BizTalk в группе BizTalk - Как обрабатывать параллелизм?

StackOverflow https://stackoverflow.com/questions/2174966

Вопрос

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

Наша забота сейчас - это то, как обрабатывать параллелизм для адаптеров, таких как WCF SQL и адаптеры файлов, потому что вполне вероятно, например, для адаптера SQL, что два BizTalk Pree Host будут поддерживать опрос на том же таблице БД.

Первоначально моя идея для SQL использует фиксирующие подсказки, но я не уверен, что есть какая-либо другая забота о том или если есть какое-либо другое проверенное решение.

Для адаптера файлов, то, что я знаю, можно ли установить адаптер приема для изменения имени файла файла во время обработки, чтобы другой хост BizTalk избегал, но я не очень уверен, что это решение достаточно, чтобы это было достаточно для обработки параллелизма. Отказ

Я был бы признателен за любую помощь / предложения.

Огромное спасибо

Это было полезно?

Решение

В Общая Большинство адаптеров BizTalk позволят избежать половых условий для вас из коробки.

Например, файловый адаптер BizTalk уже реализует блокировки файлов, поэтому несколько экземпляров файлового адаптера на разных хостах не будут читать один и тот же файл.

Использование функции переименования файлов объясняется ниже (из MSDN Документация)

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

Существует несколько адаптеров, которые не безопасны при запуске по нескольким экземплярам. К ним относятся (но могут быть другие) POP3, FTP, MSMQ / MSMQT и адаптеры базы данных в сценариях опроса.

Для тех адаптеров вы можете использовать функцию BizTalk из кластерных хостов. Есть пост здесь Объясняя использование и конфигурацию кластерных хостов. Это самый простой способ обеспечения того, чтобы ваш опрос SQL не будет производить дубликаты. Вы также можете добиться этого на уровне SQL, если вам нужно.

Кроме того, вы действительно попадаете в особенности бизнес-процессов, и вам нужно будет разработать для каждого случая. Например - что произойдет, если один и тот же файл предоставляется дважды по исходной системе?

Смотрите два следующих, так что посты для получения дополнительной информации по этому вопросу:

BizTalk - получение порта чтение дважды от дБ

Балансировка сетевых нагрузок BizTalk

Другие советы

Этот раздел MSDN также может помочь вам:

http://msdn.microsoft.com/en-us/library/aa558765((bts.20 ).aspx.

Спасибо за ответ и ссылки, которые вы предоставили. На самом деле я уже читал некоторые из них, и я также смогли провести тестирование в отношении этих решений. Для адаптера SQL Clustering Host Biztalk оказывается хорошим решением, но приведет к вам не максимизировать преимущество группы BizTalk (избыточность хоста) для масштабируемости. Поэтому по этой причине мы решили, что мы собираемся избежать раствора кластеризации, но для Messagebox, который действительно нужен кластеризация для высокой доступности. То, что мы пытаемся достичь, имеет активное / активное или я могу сказать, балансируя нагрузку с помощью группы BizTalk Server, что означает, что мы действительно будем иметь несколько опросов адаптера SQL, одновременно. Первоначально мое решение было в обработке уровней запроса, заблокируя подсказки, ниже образец моего SP.

MERGE INTO EmployeeComp
USING (SELECT EmployeeID
FROM
[AdventureWorks].[dbo].[EmployeeComp] 
WITH (READPAST, UPDLOCK) 
WHERE
[AdventureWorks].[dbo].[EmployeeComp].[Status] = 0) e(EmployeeID)
 ON EmployeeComp.EmployeeID = e.EmployeeID
WHEN MATCHED THEN
 UPDATE SET
 STATUS = 2

OUTPUT Inserted.EmployeeID, Inserted.Name, Inserted.Status;

Можете ли вы дать некоторые отзывы с SP, который я создал? Я сделал несколько тестирований с примерно 500 000 данных, прочитанных BizTalk WCF-SQL Adapter, а затем в то же время еще несколько тысяч данных пишут и оно оказывается работать как то, что я ожидал.

Хотя решение, кажется, в порядке, но я еще не уверен, что влияет на этот вид решений, может быть, вы можете пролить мне немного света с этим?

Также я думал, если можно использовать SQL Server Service Broker из этой статьи. http://blogs.msdn.com/adapters/Archive/2008/06/30/using-the-wcf-sql-adapter-to-wc-messages-from-ssb-queues-and-submit-them- biztalk.aspx.

Прямо сейчас я все еще проверяю его и еще не уверен, если насколько это возможно работать.

Огромное спасибо

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top