Welcome to MSDN Blogs Sign in | Join | Help

I'm sitting in the Vancouver airport reflecting on a very successful and interesting 2 day deep dive training course that we ran for our west coast partners. This was the first time that we ran the course over two days, and it allowed us to get a lot deeper into the code than we normally would in a one day session. Because of this, we received a lot of great questions from the developers who attended. While I'm waiting for my flight, I thought I'd blog about a couple of them.

Those of you familiar with the concept of Off-Ramps in the Microsoft ESB Guidance for BizTalk server will know that they are implemented using Dynamic BizTalk send ports. Dynamic ports have the ability to configure themselves at runtime based on contextual data stored within a message. The message itself is able to tell the dynamic port how to function, what transport protocol to use, what endpoint to point towards etc.   The ESB guidance contains an adapter provider mechanism and a resolver mechanism which allows you to store this configuration data in external data stores like a UDDI server, SQL Server, a rules engine etc.  The ESB resolver mechanism looks up this information from this remote data store and feeds it into an adapter provider. The adapter provider then converts this data into a format that a BizTalk dynamic port can use to configure itself.

BizTalk also has the concept of static ports which do not load configuration data at runtime but instead require an administrator to hard code configuration data right into the port. Static ports are not as flexible as dynamic ports and are therefore not as effective when implementing an ESB pattern. However, they do have a number of interesting features that aren't seen in dynamic ports. One of these features is the ability to define a retry interval and a set number of retries.  If the port fails to transmit a message successfully the first time, it will shut down and then retry the message after a set period of time. The port will continue to try and resend the message until it reaches a maximum number of retries. A BizTalk administrator can set the length of the retry interval and the number of retries for a static port directly in the BizTalk administration console.  However, when you create a dynamic port in the admin console, these configuration options do not show up. The question that one attendee asked was

"Since the ESB guidance is heavily dependant on dynamic ports , is it unable to support retries"?

Fortunately the answer is definite "NO". The ESB guidance with its adapter providers is able to support retries. To do this, you need to tweak the adapter providers classes to tell them to set this property for us.

The adapter providers effectively work like a dynamic runtime level BizTalk administrator, they provide a complete set of configuration information to the dynamic port.  The adapter providers pull this information from the resolver mechanism which is able to connect to the UDDI server, database server etc. In the basic guidance, the adapter providers pull down a small subset of configuration information from the resolver mechanism. We can modify this to pull additional information such as retry settings.

I've outlined the steps below that you need to follow in order to implement retry functionality. For this walk-through, I'm going to use the UDDI server to store our information. I'm also going to be working with the WCF-basicHTTP adapter provider that allows us to implement SOAP 1.1 messaging

1)  The first step is to modify the service entry in the UDDI server so that it contains the retry settings.  Open up the service entry in the ESB that you want to implement retries for. Add a new binding to this service call called "RetryCount" and give it a value of "5" (i.e. the adapter will retry 5 times). Create a second new binding called "RetryInterval" and set this equal to "1" (this means retry every 1 minute).

2) We don't need to modify the resolver mechanism as it is already built to automatically pull down any and all information from the UDDI registry. As long as we put the data in there, it will pull it down and given it to the adapter provider, which we'll do next.

3) Open up the Microsoft.Practices.ESB.sln solution file and open the ESB.Adapter.WCF-basicHTTP project. Inside this project, open the AdapterProvider.cs class.  If you scroll down to lines 82 and 83, you'll see where the adapter provider takes the settings retrieved from the resolver and attaches them to the outgoing message as adapter properties.  You will need to add the following 2 lines in the section.

pipelineContext.Write(BTS.RetryCount,"http://schemas.microsoft.com/BizTalk/2003"  , ResolverDictionary["Resolver.RetryCount"] );
pipelineContext.Write(BTS.RetryInterval, "http://schemas.microsoft.com/BizTalk/2003", ResolverDictionary["Resolver.RetryInterval"] );

This code will retrieve the settings we made in UDDI and will attach them to the outgoing message context. The dynamic adapter will then use these settings when it attempts to send the message.

4) Build and deploy the new version of the adapter provider project.

5) Restart the BizTalk host instance and the IIS service instance

That's it, you've implemented retry capabilities in ESB guidance for the WCF-basicHTTP OffRamp.

Cheers and keep on BizTalking

As part of a proof-of-concept I was working on last year, we needed to show that the BizTalk Business Rules could be created and managed via a Web Application instead of through the standard Business Rules Composer tool that we provide out of the box. The client had certain requirements that meant that using the standard Composer just wasn't viable. Therefore, I replicated a portion of the Composer as a Web based application. I thought I'd post some images from the app and see if this is something people are interested in. If you are, I'll work to clean up the code and post it to http://www.codeplex.com/. Let me know by posting a comment here.

 There were two tools in the. One let you view and edit vocabularies. The other let you view/author/edit/delete/publish/deploy policies and rules.

Image 1: The home page, gives the user the ability to access the 2 tools contained in the app.



Image 2: The Policy and Rule Explorer This screen lets a user select a specific Policy to review. Once they select a Policy, they are shown the entire version history for it. For each version, then can load up a list of all the rules contained within that version. At this point, they have the option to publish, deploy or copy that particular version. They also have the ability to select each rule and view its Conditions and actions.


<

Image 3: Adding a New Rule


<

Image 4: The Vocabulary Explorer. Lets a user view the definitions contained within all the Vocabularies and lets them alter the values of existing definitions.

<

Cheers and keep on BizTalking...

Peter

We had a great day yesterday at the Microsoft Canada office with over 50 people attending our ESB Guidance training course.  It was great to chat with so many great BizTalk developers and we had a ton of great questions.  A lot of people were interested in getting a copy of the content we presented, so here's a link. http://www.peterkelcey.com/downloads/Public_ESBG_Course_Module_1.zip

Thanks to everyone that attended!

Cheers and keep on BizTalking

Peter

Update: I've removed the attached lab for now while we rebundle it up with the other materials used during the ESBG course. Hopefully I will repost it in a few days. 

 

For those folks that attended the Canadian ESB Guidance course, here is a copy of the hands on labs manual.

 

 

The concept of Service Oriented Architecture and the Enterprise Service Bus is huge topic for many organizations now days.  To address this, our patterns and practices team have recently released the Enterprise Service Bus Guidance which organizations can use to implement an practical and effective ESB solution using our .NET technologies. 

In order to accelerate your understanding of this guidance, the Canadian BizTalk team is excited to announce that we will be running a one day deep dive training course focused entirely on the ESB Guidance.  We have created this training course to radically accelerate your understanding and adoption of it. The course will be held on April 16th at the Microsoft Canada Head Office in Mississauga (Full details are on the registration page).  This is significant event as there will be no cost to attend and attendees will get some real deep hands on experience with the solution.  This is the first public offering of a course that we recently delivered internally to our MCS community which received very positive reviews.  The course includes architectural discussions on the ESB concept, deep dive views into its internals as well as proctored hands-on labs.

This course will be focused towards the deeper technical components within the ESB, so this is best suited for architects, developers and other technical roles.

The agenda for the course is a follows:

1) The ESB as an architecture concept. What is it? What should it do? Why would I need it?

2) Getting Started – Installing and configuring the ESBG

3) The Core ESBG Engine: What are the core components and how do I use them?

4) ESBG External Services: How are these different from the Core Engine?

5) The ESB Exception Management Framework and Administration Portal

6) Introduction to Microsoft's ESB & SOA Governance Partners

7) Bits and Bites: Miscellaneous Topics

If you are interested in attending, you can access the registration page at:

http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032373531&Culture=en-CA

Hope to see you there.

Cheers and keep on BizTalking...

We'll I just spent about three hours tonight fighting with this issue, so I thought I'd post about it to hopefully save someone else from having to go through this.

 

I was trying to run a couple of samples from the ESB and I noticed that whenever I used an example that had to use an orchestration, I received the following error in my event log

 

Event Type: Warning
Event Source: BizTalk Server 2006
Event Category: BizTalk Server 2006
Event ID: 5410
Date: 12/4/2007
Time: 4:08:39 PM
User: N/A
Computer: EDIBTS2006
Description:
An error occurred that requires the BizTalk service to terminate. The most common causes are the following:
1) An unexpected out of memory error.
OR
2) An inability to connect or a loss of connectivity to one of the BizTalk databases.
The service will shutdown and auto-restart in 1 minute. If the problematic database remains unavailable, this cycle will repeat.

Error message: Exception has been thrown by the target of an invocation.
Error source: mscorlib

 

My host instance would then shut down and try to restart itself every minute. Each retry would fail with this same error. I also ended up with a running service instance in the admin console that I couldn’t terminate.

 

Each time I sent another message, I would have to manually clean these left over instances from the DB before I could restart the host instance successfully.  I finally noticed that this error was only occurring whenever a component in my “In-proc” host instance tried to run.  Base on this I tracked the issue down the btsntsvc.exe.config file that we were suppose to edit during install. I had forgotten to remove the “[path]” place holder that is in the <ConfigurationFile> tag. We were suppose to replace this with the actual path to the Microsoft.Practices.ESB.PipelineComponents.config file. (I’ve did not have this step in my install checklists, so I have since added it). I realized that the AppDomains were not loading correctly and this caused my errors in every orchestration in that  tried to run in that AppDomain.

 

This is what I had left in my config file:

 

<ConfigurationFile>
                [path]\Microsoft.Practices.ESB.PipelineComponents.config
 </ConfigurationFile>

 

As I said, I had forgotten to replace the [path] place holder. Anyways, I put in the proper path and I expected this to correct the situation, but I kept getting the same annoying error. After another hour of frustrated debugging, I realized that I had entered the config data like this:

 

 <ConfigurationFile>

C:\Projects\Microsoft.Practices.ESB\source\code\core\config\Microsoft.Practices.ESB.PipelineComponents.config

</ConfigurationFile>

 

You’ll notice that I had put line breaks before and after the path and filename. It was these dam line break that were causing the problem. I took them out and and used this:


 
<ConfigurationFile>C:\Projects\Microsoft.Practices.ESB\source\code\core\config\Microsoft.Practices.ESB.PipelineComponents.config</ConfigurationFile>

 

Everything worked fine and the issues are gone.

 

I’ve seen a number of people asking about this on codeplex and other locations, so double check your settings and avoid the headaches.

 

Cheers and keep on BizTalking...

 

Peter

 

 

I spent an hour or so this morning working with a college to debug a strange error he was getting when he tried to use on of the Exception Management Framework samples that are in the ESB guidance for BizTalk.  He was intentionally creating exceptions and he expected to see them routed into the ESB exception database. However, every time the  ALL.Exception SQL Send port tried to route the message to the SQL Server, he got the following error.

The adapter failed to transmit message going to send port "ALL.Exceptions" with URL "SQL://VBROKERSERVER7/EsbExceptionDb/". It will be retransmitted after the retry interval specified for this Send Port. Details:"HRESULT="0x80040e07" Description="Error converting data type nvarchar to datetime."

Now we both expected that he had made a mistake during the installation and configuration phase, but after we spent a fair bit of time comparing his installation to my installation (which worked by the way!) we realized that we had identical configurations.  We finally realized that the only difference between the environments was that I had configured my Windows server to work with a regional setting of "English (United States)" while he was using "English (Canada)". The problem was occurring because the two countries store the day/month data in reversed order.  Once we changed his system so that the user account that BizTalk ran under used "English (United States)" his system was fine.

I've since seen someone with a near similar problem using the Dutch regional settings. He found a code level work around that can be used to fix the problem and allow any country's setting to be used. Details are at http://www.codeplex.com/esb/workitem/view.aspx?workitemid=4430

Cheers and keep on BizTalk

Many people are eager to get their hands on the new Microsoft ESB Guidance for BizTalk and to start exploring all of the great stuff it contains. However, we’re seeing that a lot of people are struggling with the installation process. Therefore, I thought I’d put together some documentation on the process I followed and I also figured that it would be useful to create some simple checklists that outline all of the tasks, actions and software you need to complete. 

Based on my experiences (and backed up by my college Jim Bowyer’s experiences) most of your time will be spent installing the prerequisites that the ESB guidance requires. The guidance does include some fairly comprehensive help files that do outline all of the service packs, hot fixes etc that you need, however I’ve found that most people rush through this section a bit and miss one of two of the required components or required tasks. I myself spent several hours trying to debug the sample applications only to realize that I had missed one key hot fix and one key step in the configuration process. My strongest recommendation is to really take your time when setting up your environment and make sure you’ve got everything install and configured properly before you try and install the ESB guidance. A little care taken at early will save you massive amount of time later when you’re trying to debug malfunctioning components and sample applications.

After running through this process a couple of times, I’d estimate that I could do a complete installation in a little less than ½ a day. It took me almost two days the first time I did this due to fact that I rushed through the process and missing a couple of steps. The ½ day estimate is also based on the fact that I have a base Virtual PC image that I can start from. Without this image (I.e. if you’re building a machine from the O/S up), you’ll obviously need more time (perhaps even up to 2 days). Finally, please note documentation is not my day job; these are merely supplementary notes to help folks get started with the ESB Guidance. I hope you find this valuable and I welcome your feedback.

I've attached a PDF document containing the process overview and checklists.

Update: For those of you that are reading this through an RSS feed or from a syndicated blog site, you might not be able to see the attachment. Here's a link you can use to download the file. http://www.peterkelcey.com/downloads/ESBInstallProcess_V1.pdf

Cheers and keep on BizTalking..

 

The Connected Systems Divisions has announced an exciting new event that developers interested in RFID should check out!

 

Microsoft cordially invites you to participate in a 2 day solution extravaganza

At the first edition of our WW RFID Solution Days

18-19 February 2008

The event will showcase real-world RFID solutions being deployed across various

Industry verticals on the Microsoft platform today and innovations in the field of RFID via a partner expo.

Visit the event website (click here) to learn more.  We look forward to seeing you in February!

 

Venue:

Westin Bellevue
601 Bellevue Way NE
Bellevue, Washington 98004

+1.425.638.1000

 

Optional Post conference training:

Feb 20-21 @ the Microsoft Campus

 

Contact:

microsoftevents@dynamicevents.com

 

__________________________________________________________________________________

Invite courtesy of Connected Systems Team Canada

 

People have been asking, so here they are. I've attached all of the presentations that were presented during the recent Canadian Business Process/SOA Conference. All of the presentations from both technical days and the business day are included in the three attached ZIP files.

http://peterkelcey.com/downloads/businesspresentations.zip

http://peterkelcey.com/downloads/technicaltrack_1.zip

http://peterkelcey.com/downloads/technicaltrack_2.zip


Cheers and keep on BizTalking

 

Microsoft Canada is host a R2 launch conference in conjunction with a SOA conference. The conference will be held Calgary, Toronto and Montreal. The details and registration links are below.

2007 Microsoft SOA & Business Process Conference
 



 

Microsoft Canada is pleased to announce the 2007 Microsoft SOA & Business Process Conference to be held in Calgary, Toronto, and Montreal. Be the first to hear about the new wave of innovation included in BizTalk Server 2006 R2, with enhanced capabilities such as native support for Electronic Data Interchange (EDI) and AS2 as well as RFID.  During these 2 days you will learn about both Microsoft’s current portfolio and long-term strategy for SOA & Business Process initiatives. Whether you are a developer, architect, or business decision maker we will have something for you with tracks spanning the full spectrum of technology, architecture, and business value topics.

What You Can Expect

• Keynote Sessions 

  • Business Value Track
    The Business Value track will have multiple sessions that will focus on issues such as establishing a SOA roadmap. We will provide case studies and guidance to help your SOA and business process initiatives demonstrate value quickly and stay focused on business goals. Whether you are a partner practice manager evaluating the business opportunity of SOA and business process or an enterprise decision maker evaluating the potential return on investment of your SOA and BPM initiatives, the Business Value track is for you.

 

  • Technical Track
    The Technical track will have multiple sessions that will focus on the design and implementation of service oriented and business process solutions. We will provide best practices and proven patterns for handling challenges with many aspects of solution architecture such as; data, identity, messaging, workflow, and rules.

• “Ask the Expert” Sessions *
• Technical Partner Business Planning Sessions *
• Evening Reception

The Microsoft SOA & Business Process Conference is the event for customers and technology partners to get detailed guidance for planning and delivering solutions for Service Oriented Architecture and Business Process Management. Guidance will be provided across 2 tracks focused on Technical and Business Value topics.

**Session agendas will be provided shortly.

***Please join us on Day 1 of this 2 Day event for a social reception***

_______________________________________________________________________________________

Microsoft Canada a le plaisir d’annoncer le Congrès de Microsoft sur l'architecture orientée sur les services et sur les processus d'affaires 2007 qui se tiendra à Calgary, à Toronto et à Montréal. Soyez les premiers à découvrir les toutes dernières innovations de BizTalk Server 2006 R2 ,  incluant des fonctionnalités plus performantes telles que (native support) pour EDI et AS2, ainsi que pour le RFID.   D’une durée de deux jours, le congrès vous offrira l’occasion de vous informer sur le portefeuille de produits actuel de Microsoft et sur sa stratégie à long terme en matière d’architecture orientée sur les services et de processus d’affaires. Que vous soyez un développeur, un spécialiste en architecture ou un décideur gestionnaire, nos ateliers qui couvrent le champ complet de la technologie, de l’architecture et de la valeur commerciale sauront vous intéresser.


Programme


• Discours d’ouverture

  • Atelier sur la valeur commerciale

L’atelier sur la valeur commerciale portera notamment sur l’établissement d’un guide relatif à l’architecture orientée sur les services. Nous présenterons des études de cas et donnerons des conseils pour que vos projets d’architecture orientée sur les services et de processus d’affaires génèrent rapidement de la valeur tout en respectant les objectifs de l’entreprise. Que vous soyez un directeur des services-conseils aux partenaires évaluant le potentiel commercial de l’architecture orientée sur les services ou un décideur-gestionnaire évaluant le rendement du capital investi potentiel de ses projets d’architecture orientée sur les services et de processus d’affaires, cet atelier s’adresse à vous.

 

  • Atelier technique

L’atelier technique portera sur la création et la mise en œuvre de solutions axées sur les services et les processus d’affaires.  Nous parlerons des meilleures pratiques et des modèles éprouvés permettant d’affronter les difficultés en faisant appel à de nombreux aspects de l’architecture de solutions, tels que les données, la messagerie, le flux de travaux et les règles.


• Ateliers « Demandez à l’expert »*
• Ateliers sur la planification des affaires à l’intention des partenaires techniques*
• Réception

Le Congrès de Microsoft sur l'architecture orientée sur les services et sur les processus d'affaires est l’événement par excellence destiné aux clients et aux partenaires technologiques qui désirent obtenir de l’information détaillée en vue de planifier et d’offrir des solutions orientées sur les services et la gestion des processus administratifs. Cette information sera transmise dans le cadre d’un atelier technique et d’un atelier sur la valeur commerciale.

**Les agendas des différentes sessions seront disponibles sous peu

*** Joignez-vous à nous le premier jour de cet événement de deux jours pour une réception ***

 

 

  Register for Calgary

 

Date

Time

Location

Address

EventID

A

September 25 - 26, 2007

7:30 am - 6:30pm

The Westin Calgary

320 4th Avenue SW 
Calgary, AB, T2P 2S6

1032350673

A

A

A

A

A

A


 Register for Mississauga


Date

Time

Location

Address

EventID

A

October 3 - 4 , 2007

7:30 am - 6:30pm

Microsoft Canada Head Office

1950 Meadowvale Blvd
Mississauga, Ontario,    L5N 8L9

1032351073

A

A

A

A

A

A


 Register for Montreal


Date

Time

Location

Address

EventID

A

October 24 - 25, 2007

7:30 am - 6:30pm

Hotel Place D'Armes

55 Saint-Jacques West
Montreal, Quebec,       H2Y 3X2

1032351086

A

A

A

A

A

A

©2007 Microsoft Corporation. All rights reserved. Microsoft is either a registered trademark or trademark of Microsoft Corporation in the United States and/or other countries.

Privacy Policy

Saw an interesting note come through and thought forward it out.

BizTalk Server 2006 R2 installation or configuration fails when you download the CAB files that contain the dependency software (942181)

 

When you try to install or configure Microsoft BizTalk Server 2006 R2, the installation process or the configuration process may fail unexpectedly.

This problem occurs if you downloaded the redistributable CAB files that contain the dependency software that is required by BizTalk Server R2 before trying to install or configure BizTalk Server 2006 R2.

Note This issue does not occur if you start the BizTalk Server 2006 R2 setup and then automatically download the CAB files during the installation.

BizTalk Server 2006 R2 installation or configuration fails when you download the CAB files that contain the dependency software (942181)

Cause Section

This problem occurs because of an error in the BizTalk Server 2006 R2 documentation. The installation guides for BizTalk Server 2006 R2 contain links to CAB files that contain the dependency software for Microsoft BizTalk Server 2006 instead of BizTalk Server 2006 R2.

Resolution Section

To resolve this issue, download the correct CAB files for the operating system version and BizTalk Server 2006 R2 language, and then try to install BizTalk Server 2006 R2 again. To determine the correct CAB files for the operating system and BizTalk Server 2006 R2 language, see the following tables:

Note If you were able to install BizTalk Server 2006 R2, but the configuration process failed, uninstall BizTalk Server 2006 R2. Then download the correct CAB files and install BizTalk Server 2006 R2 again.

Microsoft Windows Server 2003, 32-bit editions

BizTalk Server 2006 R2 language

Download link

CN

http://go.microsoft.com/fwlink/?LinkId=81466

 DE

http://go.microsoft.com/fwlink/?LinkId=81467

EN

http://go.microsoft.com/fwlink/?LinkId=81468

ES

http://go.microsoft.com/fwlink/?LinkId=81469

FR

http://go.microsoft.com/fwlink/?LinkId=81470

IT

http://go.microsoft.com/fwlink/?LinkId=81471

JA

http://go.microsoft.com/fwlink/?LinkId=81472

KO

http://go.microsoft.com/fwlink/?LinkId=81473

TW

http://go.microsoft.com/fwlink/?LinkId=81474

One of the most tricky aspects of developing BizTalk applications can be the performance tuning and optimization phase. A great new whitepaper has just been released to MSDN that has extremely deep and thorough coverage on how to configure, install and tune the a BizTalk database tier. This is a must have paper for anyone dealing with high load, high performance BizTalk applications

 http://msdn2.microsoft.com/en-us/library/bb743398.aspx

 Great work done by John B. Brockmeyer and team.

 Cheers and keep on BizTalking