BizTalk and around

Stas Kondratyev (MSFT)

  • BizTalk Server Performance Optimization Guide на MSDN и TechNet

    Я уже упоминал ранее о вышедшем недавно документе по оптимизации производительности BizTalk Server. Теперь он так же доступен on-line на MSDN и TechNet
  • Pipeline компонент для парсинга DBF и Excel сообщений

    Мэтт Мелески недавно опубликовал пост, в котором он описывает созданный им Pipeline компонент для преобразования в вид XML входящих сообщений через интерфейс ODBC (используя ADO.NET).

    Код компонента доступен для скачивания.

  • ARIS интегрирован с BizTalk Server!

    Два дня назад, IDS Scheer анонсировали интеграцию ARIS с BizTalk Server 2006 R2!

    Прочитать анонс.

    Статья в новостях.

     

  • BizTalk Performance Optimization Guide

    Недавно опубликован документ по оптимизации производительности BizTalk решений - Microsoft® BizTalk® Server Performance Optimizations Guide

     

     

  • Постер BAM

    К серии BizTalk постеров, недавно был добавлен постер Business Activity Monitoring, наглядно показывающий жизненный цикл реализации BAM решения: создание модели бизнес аналитиками, соединение модели и реализации конечного решения разработчиками, развертывание системными администратороми и использование информации конечными пользователями.

    Enjoy. http://www.microsoft.com/downloads/details.aspx?FamilyId=C2A332C7-687A-448A-BBDF-5FEC51476BF6&displaylang=en

     

  • Июньские MSDN веб-касты о WCF/WF

    Начиная со следующей среды (18.06) наши коллеги из Редмонда организуют серию MSDN веб-кастов о WCF и WF.

    Ссылки на касты доступны здесь: :  http://www.microsoft.com/events/series/msdnnetframework35.aspx?tab=webcasts&id=liveall

    Программа следующая:

     

    Webcast Title

    Date/ Time

    Presenter

    Beyond the Endpoints with Windows Communication Foundation

    6/18/2008 10:00 AM PST

    Juval Lowy

    geekSpeak: Workflow Services in .NET 3.5 with Jon Flanders

    6/18/2008 12:00 PM PST

    Jon Flanders

    Calling Services from Silverlight 2.0

    6/23/2008 09:00 AM PST

    Jon Flanders

    Windows Communication Foundation and Windows Workflow Foundation Integration in Depth

    6/25/2008 10:00 AM PST

    Jesus Rodriguez

    Windows Workflow Communication in Depth

    6/26/2008 09:00 AM PST

    Matt Milner

  • Кадры...

    У нас в консалтинге (MCS) есть открытые вакансии. В этом посте моего менеджера все описано подробно :)

  • Поддержка транзакций в WCF Oracle adapter

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

    Казалось бы, интутитивно, заключение двух Send форм в Atomic transaction scope должно привести к желаемому результату. Однако, такие транзакции выполняются на уровне MessageBox.

    Как всегда, решение имеет несколько вариантов. Стандартные варианты в таких случаях - иметь хранимую процедуру, выполняющую обновление двух таблиц и вызывать ее через адаптер, либо воспользовать Expression формой, где через средства .NET выполнить обновление в транзакции.

    С новым же WCF Oracle адаптером, у вас появилась возможность поддержки транзакций для серии отдельных сообщений. По этой ссылке можно прочитать про эту возможность. Далее я опишу, как это сделать своими словами.

    Итак, у вас есть набор сообщений для Oracle, которые вы хотите отправить в единой транзакции. Первое, что нужно сделать это установить у таких сообщений следующие свойства:

  • http://schemas.microsoft.com/BizTalk/2003/system-properties#SPID
  • Это стандартное свойство, которое устанавливается адаптером в идентификатор исходящего порта (в нашем случае Oracle порта). Все сообщения в транзакции должны иметь единое значение этого свойства. Т.е. все такие сообщения должны отправляться через единый исходящий порт (возможно с различными операциями на каждое действие).

     

  • http://schemas.microsoft.com/BizTalk/2003/system-properties#InterchangeID
  • InterchangeID так же стандартное свойство и оно позволяет отнести сообщения с единым значением InterchangeID к единой сессии передачи сообщений (например, при дебатчинге входящего сообщения, все получившиеся сообщения имеют одинаковое значение InterchangeID). Итак, вам придется установить это свойство в оркестровке для серии транзакционных сообщений в единое значение - это может быть просто сгенерированный Guid или взятый InterchangeID из входящего сообщения.

     

  • http://Microsoft.LobServices.OracleDB/2007/03/OracleDBSendContextProperties#TransactionState
  • Третье свойство определено в сборке Microsoft.Adapters.OracleDB.BiztalkPropertySchema.dll, которая идет в поставке с BizTalk Adapter Pack (находится в папке bin, где установлен пакет). Добавьте эту сборку, как ресурс через административную консоль BizTalk (например, в стандартное приложение BizTalk Application 1). В ваш проект же добавьте на нее ссылку (через Add Reference).

    TransactionState - это очень важное свойство, т.к. оно регулирует действия над транзакцией, и может принимать следующие значения:

    • BEGIN - сообщение, которое может быть либо данными или контрольным (об этом ниже) сообщением, иницирует транзакцию.
    • REUSE - сообщение включается в транзакцию.
    • COMMIT - контрольное сообщение подтверждает транзакцию.
    • ABORT - контрольное сообщение откатывает транзакцию.

    Контрольное сообщение имеет следующий вид: <Oracle_Transaction xmlns="http://Microsoft.LobServices.OracleDB/2007/03/Oracle_Transaction"></Oracle_Transaction>. Операция отправляющая контрольное сообщение в адаптер должна мэпиться на SOAP action "http://Microsoft.LobServices.OracleDB/2007/03/Oracle_Transaction".   

    Схема контрольного сообщения (дабы не создавать его руками) находится в папке Schemas, где установлен BizTalk Adapter Pack.

     

    Это все о свойствах.

    Сам WCF-custom адаптер с байндингом oracleDBBinding должен иметь свойство enableBizTalkCompatibilityMode установленным в true (по умолчанию, это так).

     

    Небольшой пример. Я получаю входящее сообщение, создаю два исходящих, каждое из которых обновляет различные таблицы Oracle и затем завершаю транзакцию.

    Моя оркестровка выглядит так:

    Ora1

     

    В форме MessageAssignment происходит самое интересное: я устанавливаю свойства всей серии Oracle сообщений:

     

    doc = new System.Xml.XmlDocument();
    doc.LoadXml("<ns0:Oracle_Transaction xmlns:ns0='http://Microsoft.LobServices.OracleDB/2007/03/Oracle_Transaction'></ns0:Oracle_Transaction>");

    mCommit = doc;

    mInsertProduct(Microsoft.Adapters.OracleDB.BiztalkPropertySchema.TransactionState) = "BEGIN";
    mInsertProduct(BTS.InterchangeID) = mInbound(BTS.InterchangeID);
    mInsertPO(Microsoft.Adapters.OracleDB.BiztalkPropertySchema.TransactionState) = "REUSE";
    mInsertPO(BTS.InterchangeID) = mInbound(BTS.InterchangeID);
    mCommit(Microsoft.Adapters.OracleDB.BiztalkPropertySchema.TransactionState) = "COMMIT";
    mCommit(BTS.InterchangeID) = mInbound(BTS.InterchangeID);

    Последовательность отправки сообщений: mInsertProduct, mInsertPO, mCommit.

    Порт Oracle в консоли администратора имеет следующие настройки WCF-Custom для SOAP Action Header:

    <BtsActionMapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <Operation Name="InsertProduct" Action="http://Microsoft.LobServices.OracleDB/2007/03/SUPPLIER/Table/PRODUCT/Insert" />
      <Operation Name="InsertPO" Action="http://Microsoft.LobServices.OracleDB/2007/03/SUPPLIER/Table/PURCHASEORDER/Insert" />
      <Operation Name="ControlTransaction" Action="http://Microsoft.LobServices.OracleDB/2007/03/Oracle_Transaction" />
    </BtsActionMapping>

    Вот пожалуй и все. Теперь вставка в две разные таблицы будет производится в единой транзакции.

    Стас

  • О будущем - Oslo

    Интересное вводное видео об Oslo и платформе Microsoft для SOA, записанное в Афинах с доклада нашего евангелиста Рона Якобса, доступно на technet по этой ссылке: http://www.microsoft.com/hellas/technet/spotlight/sessionh.aspx?videoid=812

    Приятного просмотра!

  • Безопасность WCF в вопросах и ответах

    На CodePlex вышел большой список ответов на вопросы, связанных с моделями и способами обеспечения безопасности в WCF.

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

  • RFID и суши :)

    Интересное видео, (я его почему-то упустил из виду), про использование технологий RFID и BizTalk Server RFID в сети суши баров Blue C sushi :)

    И еще одно про парня, имплантировавшего себе RFID тег в руку, для автоматического управления своей машиной :)))

  • BizTalk Server R3

    Интеграция с Visual Studio 2008, Windows Server 2008 и SQL Server 2008 будет реализована в BizTalk Server 2006 R3, о котором я уже успел упомянуть вчера на веб-касте.

    Помимо поддержки следующей версии линейки продуктов, планируются так же расширения в работе с веб-сервисами, поддержка UDDI v 3.0, RFID Mobile а так же в версию войдут SOA patterns and best practices guidance для более быстрого, удобного и правильного построения вашего сервис-ориентированного решения

    По поводу дат - CTP (Community Technical Preview) ожидается уже летом (Июнь - Сентябрь) - совсем скоро :)

    Релиз - пока первая половина 2009 года

  • Webcast: BizTalk Adapter Pack: Новые возможности интеграции

    Наконец-то все вопросы с размещением моего каста разрешили и перезапланировали его на Вторник, 22 апреля, 12:00 :) 

    Я расскажу о BizTalk Adapter Pack - новых WCF адаптерах SAP, Siebel и Oracle. Как и в каких приложениях их следует использовать.

    Несмотря на то, что в названии фигурирует слово BizTalk, эти адаптеры не являются "чисто" BizTalk адаптерами :). Вы их можете использовать из любого .NET приложения, SSIS или MOSS!

    Присоединяйтесь! Ссылка на каст: http://www.microsoft.com/Rus/events/detail.mspx?eventid=1032376700

     

     

  • BizTalk Best Practices Analyzer

    Вышел BizTalk Server Best Practices Analyzer v1.1!

    BizTalk Server Best Practices Analyzer – это супер утилита, которая производит проверку вашей конфигурации BizTalk Server и выдает отчет с рекомендациями по улучшению!

    Утилита производит чтение из различных источников: Windows Management Instrumentation (WMI) классы, SQL Server базы, и записи реестра. Собранные данные анализируются и генерируется отчет о состоянии текущей конфигурации и рекомендациями по улучшению, соответствующим лучшим практикам.

    Вот пример отчета по одной из моих виртуальных машин:

     

    1

    2

  • BizTalk Operations Guide

    Первый очень объемный документ о том, как правильно планировать, разрабатывать и разворачивать BizTalk Server решения. Покрывает максимально возможное количество аспектов! В частности, производительность.

     

    http://www.microsoft.com/downloads/details.aspx?FamilyId=5251F103-329D-4F8D-95B5-64F99F2F6DFC&displaylang=en

More Posts Next page »

© 2008 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Microsoft
Page view tracker