_>пркатически. 2-я оркестровка состоит из 2-х: в первой перебираем сообщение, для каждого ID формируется отдельное сообщение и передается асинхронно (Start orchesration) в оркестровку отправки в целевую БД, которая выполняет п-ты 2.1 и 2.2. Т.е., видимо, получаем большое количество потоков для каждой оркестровки отправки. Я бы сделал синхронный вызов с ожиданием результата отправки, но пропарсить входящее сообщение по записям можно только в атомарной транзакции, из которой нельзя вызывать синхронно другие оркестровки. Это мой первый проект на БТС, такая схема показалась наиболее разумной
1. Чем обусловлено наличие первого оркестра, который сохраняет в файл?
2. Почему нельзя объеденить первую и вторую?(Сделать все в одной оркестровке)
Почему нельзя сделать сделать так:
1. Первый оркестр — формирует для каждого ID файл XML и передает его
2. Второй оркестр — получает файл XML и складывает его в БД
P. S. Настройки еще ищу, времени мало...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[7]: Вопросы для Татьяны Якушевой \ BizTalk 2004 \ SDE/T \
От:
Аноним
Дата:
27.01.06 15:39
Оценка:
Здравствуйте, SEDEGOFF, Вы писали:
_>>пркатически. 2-я оркестровка состоит из 2-х: в первой перебираем сообщение, для каждого ID формируется отдельное сообщение и передается асинхронно (Start orchesration) в оркестровку отправки в целевую БД, которая выполняет п-ты 2.1 и 2.2. Т.е., видимо, получаем большое количество потоков для каждой оркестровки отправки. Я бы сделал синхронный вызов с ожиданием результата отправки, но пропарсить входящее сообщение по записям можно только в атомарной транзакции, из которой нельзя вызывать синхронно другие оркестровки. Это мой первый проект на БТС, такая схема показалась наиболее разумной
SED>1. Чем обусловлено наличие первого оркестра, который сохраняет в файл? SED>2. Почему нельзя объеденить первую и вторую?(Сделать все в одной оркестровке)
SED>Почему нельзя сделать сделать так: SED>1. Первый оркестр — формирует для каждого ID файл XML и передает его SED>2. Второй оркестр — получает файл XML и складывает его в БД
SED>P. S. Настройки еще ищу, времени мало...
Так и сделал, в итоге.А сделал так, потому что пытался вызвать оркестр из атомарой транзакции синхронно через Call orchestration. Не смог и решил писать в файл. Как оказалось можно только асинхронно через Start orchestration. Что логично, но неудобно зачастую. Сейчас разнес по времени использование send порта, но при большом количестве записей блокировки все равно ловим.
Еще раз возникает вопрос: можно ли в БТС использовать send порт асинхронно из разных потоков? Сдается мне что нет. Судя по всему нужно писать свою синхронизацию, или делать этот вызов из своей сборки через SqlCommand.
тексты ошибок:
The adapter "SQL" raised an error message. Details "HRESULT="0x80004005" Description="Transaction (Process ID 90) was deadlocked on lock resources with another process and has been chosen as the deadlock victim.
The adapter failed to transmit message going to send port "SQL://TESTCFT/BizTalkEDIDb/". It will be retransmitted after the retry interval specified for this Send Port. Details:"Unknown Error Description ".
Re[7]: Вопросы для Татьяны Якушевой \ BizTalk 2004 \ SDE/T \
Читаю эту схему в ДатаСет. Заполняю датасет данными. Причем customer, в соответствии со схемой, является ChildTable. Поэтому читаю данные в ДАтаСет двумя адаптерами, первый заполняет таблицу Entreprise, второй — таблицу customer (и которые являются связанными DataRelations) Вот часть строки (которая получается из DataSet.GetXml()), которую надо проверить на соответствие со схемой:
Re[7]: Вопросы для Татьяны Якушевой \ BizTalk 2004 \ SDE/T \
От:
Аноним
Дата:
27.01.06 22:04
Оценка:
Я не совсем поняла откуда и каким образом вы получаете DataSet (XML).
Можно ли вам поменять схему?
Данная информация предоставляется на условиях «КАК ЕСТЬ», без предоставления каких-либо гарантий и прав. Используя данную информацию, Вы соглашаетесь с тем, что (i) Майкрософт не несет ответственности за использование Вами данной информации и (ii) Вы принимаете на себя весь риск, связанный с использованием данной информации
Вопросы для Татьяны Якушевой \ BizTalk 2004 \ SDE/T \ BizTal
От:
Аноним
Дата:
28.01.06 00:38
Оценка:
Здравствуйте, Татьяна.
У меня вопрос новичка. Ищу отправную точку в новом проекте.
Задача наша состоит в атоматизации системы заказов. Каждая транзакция включает около десятка вызовов асинхронных методов. Каждый вызов — посылка ebXML. Результат одного вызова определяет логику последующих. Естественно, что главный интерес — вся транзакция целиком.
Так ли уж нам нужен ebXMl адаптер для BizTalk? Или SOAP конверт со вложенным ebXML остается старым добрым XML и может быть прочитан-обработан как XML?
Вопросы по оркестрации:
Есть транзакция NewOrder = {addressSearch(); phoneSearch(); productSearch(); submit();}
Определяем порты 1,3,5,7 для вызова методов addressSearch, phoneSearch, productSearch, submit. и Порты 2,4,6,8 для получения ответов от сервера и для инициации каждого последующего шага. Пишем процедуры обращения к БД, и формируем сами методы поиска. Или я чего-то не учитываю или неправильно понимаю?
Какого типа при этом использовать порты, как подключать сертификаты, общаться с БД тоже через какие-то порты? или вызывать адптер?
Re[8]: Вопросы для Татьяны Якушевой \ BizTalk 2004 \ SDE/T \
От:
Аноним
Дата:
30.01.06 09:16
Оценка:
А>Так и сделал, в итоге.А сделал так, потому что пытался вызвать оркестр из атомарой транзакции синхронно через Call orchestration. Не смог и решил писать в файл. Как оказалось можно только асинхронно через Start orchestration. Что логично, но неудобно зачастую. Сейчас разнес по времени использование send порта, но при большом количестве записей блокировки все равно ловим. А>Еще раз возникает вопрос: можно ли в БТС использовать send порт асинхронно из разных потоков? Сдается мне что нет. Судя по всему нужно писать свою синхронизацию, или делать этот вызов из своей сборки через SqlCommand.
А>тексты ошибок:
А>The adapter "SQL" raised an error message. Details "HRESULT="0x80004005" Description="Transaction (Process ID 90) was deadlocked on lock resources with another process and has been chosen as the deadlock victim.
А>The adapter failed to transmit message going to send port "SQL://TESTCFT/BizTalkEDIDb/". It will be retransmitted after the retry interval specified for this Send Port. Details:"Unknown Error Description ".
Разобрался вроде. В процедуре для send port используется select перед insert. Он то и блокировал работу других потоков. SELECT * FROM xx(NOLOCK) надо было давать
Соединялся кто-ть с чем-ть отличным от MS SQL? с ORACLE например?
Re: Вопросы для Татьяны Якушевой \ BizTalk 2004 \ SDE/T \ Bi
Как можно заставить обрабатываться входящие сообщения синхронно, т.е. пока не обработалось предыдущее сообщение не преступать к обрабоке следующего? Использовать event'ы?
Re[7]: Вопросы для Татьяны Якушевой \ BizTalk 2004 \ SDE/T \
От:
Аноним
Дата:
30.01.06 07:38
Оценка:
Данные в DataSet я считываю из БД при помощи хранимых процедур используя DataAdapter. XML-схему я считываю в DataSet при помощи DataSet.ReadXmlSchema().
XML берется из DataSet.GetXml(),
схему, к сожалению менять нельзя.
Вопросы для Татьяны Якушевой \ BizTalk 2004 \ SDE/T \ BizTal
От:
Аноним
Дата:
31.01.06 21:38
Оценка:
Я не знакома с ebXML поэтому не знаю нужно ли его вам использовать.
Если вы решите не пользоваться ebXML то убедитесь что вы можете сделать без него не очень типичные случаи (когда что-нибудь работает не так как ожидается).
Сколько времени занимает выполнение addressSearch, phoneSearch etc? Может вас request-responce порты использовать?
Надо ли вам что-то откатывать обратно если какая-то операция прошла неудачно? Уже разобрались с compensation в оркестрациях?
Данная информация предоставляется на условиях «КАК ЕСТЬ», без предоставления каких-либо гарантий и прав. Используя данную информацию, Вы соглашаетесь с тем, что (i) Майкрософт не несет ответственности за использование Вами данной информации и (ii) Вы принимаете на себя весь риск, связанный с использованием данной информации
Re[7]: Вопросы для Татьяны Якушевой \ BizTalk 2004 \ SDE/T \
От:
Аноним
Дата:
31.01.06 21:41
Оценка:
vlamor,
Я не знакома с тем что вы используете и врядли смогу вам помочь.
Данная информация предоставляется на условиях «КАК ЕСТЬ», без предоставления каких-либо гарантий и прав. Используя данную информацию, Вы соглашаетесь с тем, что (i) Майкрософт не несет ответственности за использование Вами данной информации и (ii) Вы принимаете на себя весь риск, связанный с использованием данной информации
Re[7]: Вопросы для Татьяны Якушевой \ BizTalk 2004 \ SDE/T \
От:
Аноним
Дата:
01.02.06 08:51
Оценка:
Татьяна, а у кому можно задать этот вопрос по чтению данных в DataSet в соответствии с XML-схемой и выводом данных из DataSet в неправильном порядке?
Спасибо за Ваше сотрудничество.
Когда имеем большую нагрузку на BTS, получаем следующие сообщения в лог
The Messaging engine has throttled all inbound messages for the host "BizTalkServerApplication" due to high stress levels on the MessageBox database. All inbound messages will be throttled until the MessageBox stress level is reduced.
При этом, я заметил, иногда в HAT остается сообщение со статусом Active, причем висит достаточно долго (5-10 мин, дольше не ждал). Причем обычно это сообщение обрабатывается за 15-30 сек. Когда изменишь статус на Suspended а потом на Resume, то все обрабатывается нормально. Такое впечатление что под большой нагрузкой ссобщения "замирают". Никто не сталкивался с этим? Чем чревата большая нагрузка на MessageBox database?
Re: Вопросы для Татьяны Якушевой \ BizTalk 2004 \ SDE/T \ Bi
От:
Аноним
Дата:
02.02.06 16:21
Оценка:
Задача: пробежаться по каждой записи в сообщениии, обработать её, дождаться результата обработки и только после этого перейти к обработке следующего.
Проблема в следующем: бегать по записям (цикл по XmlNodeList) можно только в атомарной транзакции. Из этого типа транзакций нельзя вызывать request-responce порты, насколько я понял. Приходится вызывать асинхронно оркестр, который все это сделает. Но получить результаты работы этого оркестра я не могу. Поскольку shape "Start orchestration" не может получать out и ref параметров.
Кто-ть решал такую проблему?
Re[7]: Вопросы для Татьяны Якушевой \ BizTalk 2004 \ SDE/T \
От:
Аноним
Дата:
05.02.06 11:53
Оценка:
Здравствуйте, Татьяна.
Два вопроса:
1.Публицирую оркестрайшен как веб-сервис. Добавляю fault message в порт. Создаю xsd схему для передачи ошибки. Создаю сообщение об ошибке.
В веб-сервисе, который сгенерил мастер Response SOAP Headers НЕ ЗАПОЛНЯЕТСЯ (объект пустой).
Но при вызове Invoke генерируется исключение и внутри него (InnerException) содержится моё сообщение об ошибке.
Так и должо быть?
2. Было объявлено об новом адаптете для Oracle в BizTalk 2006
В beta2 его нет. Надо ждать релиза?
Вопросы для Татьяны Якушевой \ BizTalk 2004 \ SDE/T \ BizTal
От:
Аноним
Дата:
08.02.06 14:49
Оценка:
Здравствуйте!
С compensation в оркестрациях разбираемся потихоньку. Спасибо за подсказку. Можно ли использовать request/response порты при асинхронных вызовах? Например, мы посылаем запрос, а ответ приходит в течение часа и с другого адреса (https порт варьируется).
И самый главный вопрос для нас на сегодняшний день:
у нас в оркестрации насчиталось порядка 10 блоков(групп), которые выполняют построение ebXML+SOAP with attachment пакетов для отсылки их на сервер через http. Единственное различие — это входные данные. Построение пакетов выполняется через отдельные методы, использующие XML Serializer в С#.
Возможно ли определить что-то наподобие custom shape со входными параметрами для улучшения мвсштабируемости?
Re[7]: Вопросы для Татьяны Якушевой \ BizTalk 2004 \ SDE/T \
От:
Аноним
Дата:
08.02.06 15:41
Оценка:
> 2. Было объявлено об новом адаптете для Oracle в BizTalk 2006 > В beta2 его нет. Надо ждать релиза?
Oracle Adapter в BizTalk 2006 есть, но он идет в составе отдельного пакета адаптеров (включая PeopleSoft, Siebel и пр.). Работает через ODBC. Пока очень глючный, напр. возврат курсора из stored procedure не работает. Но поиграть с ним рекомендую.
Ни кто не сталкивался с проблемой при работе с типом данных double в бизтолке? К примеру из базы данных забираю значние такое: 7.599200000000000e+003 тоесть это равно 7599,2, и кладу в фаил как строку. получаю вот такую ерунду 7599.1999999999998 клевую вещь. Да я понимаю что можно округлять фанктойдами каждое поле =) но представте что таких полей очень много.
Вопросы для Татьяны Якушевой \ BizTalk 2004 \ SDE/T \ BizTal
От:
Аноним
Дата:
16.02.06 05:50
Оценка:
Татьяна! Подскажите пожалуйста можно ли с помощью BizTalk решить такую задачу. В некоторый ресурс выкладывется xls файл определенного формата. BizTalk берет этот файл и на основании определенного поля в нем (например код клиента) делает запрос в MS SQL базу данных для извлечения информации о клиенте. Далее на основании полученной информации копирует исходных xls файл либо в одну папку, либо в другую.
Можно ли какмими то стандартными средствами реализовать преобразование xls в xml формат BizTalk (с помощью Assembler\Disassembler внутри pipeline например), обращение к БД, копирование файлов...
Если да, будьте так добры подсказать какими — мы тока начинаем осваивать этот продукт и хотелось бы понять его возможности...Буду очень признателен если у вас окажется несколько ссылок на подобные примеры.