ESB Guidance - Dynamic Resolution

The goal of dynamic resolution is to avoid defining end-points anywhere statically. The responsibility of carrying and managing this knowledge, which is specific to the interaction, is frequently given to the consumer. That is, the consumer statically binds to the service endpoint/s that is consumes. If the responsibility be lifted from the consumer (or providers) itself, and given to an intermediate layer, such as the ESB, the byproduct are mechanisms for coping with change and dealing with infrastructural complexity. While the concept may appear to be trivial, its contribution toward providing a more managed distributed environment (many interacting end-points and data exchanges, etc) is significant. ...

September 10, 2008 · 5 min

Sequential Receives

Today I came across an interesting compile time error, given a scenario I had never exercised before. I had a vanilla orchestration that was receiving the same message type (same schema different message instance) using two different receive ports. I wanted to correlate the orchestration, so the first receive shape was set to activate with an “Initialising Correlation Set” and the second receive shape was set with a “Following Correlation Set”. This setup produced the following compile time error: ...

September 2, 2008 · 2 min

ESB Guidance Package

Lately I’ve been having heaps of fun playing with what’s known as the “ESB Guidance” (ESBG). A community/open source driven initiative as an attempt to fill the gap Microsoft currently have in the SOA/ESB space. At a high level it augments its existing messaging/integration engine, BizTalk Server, by adding extended functionality. The ESB guidance aims to: Demonstrate how to implement an ESB pattern using BizTalk Outline best practices Reduce the amount of “plumbing” clients would have to implement themselves Reduce the total cost and effort of an ESB implementation As of the November 2007 release it contains: ...

August 29, 2008 · 6 min

Recent Orchestration Activity

Here is a simple TSQL query for the BizTalk tracking database, to summarise the orchestration instantiation head-count for a given host. Your mileage with this query may vary depending on how frequently your tracking data archive job is scheduled for (i.e. this query might not have much data to work with if the data has just been archived and purged). SELECT [Service/Name], COUNT(*) FROM dbo.dtav_ServiceFacts sf WHERE [Service/Type] = 'Orchestration' AND [ServiceInstance/Host] = 'FooHost' GROUP BY [Service/Name] ORDER BY 2 DESC

July 27, 2008 · 1 min

XLANGMessage Deserialization Issues

There have been a few scenarios where the complexity of using a standard BizTalk map, have far outweighed using some custom code. This approach, prescribed in Professional BizTalk Server 2006 as the “Manual Mapping” technique, involves code generating types (xsd.exe) from the message schema and using some simple BizTalk object model to stream-in the message, craft a response and return it back to the BizTalk runtime. C# snippet: ...

July 27, 2008 · 2 min

Pectoralis Major Tear

Firstly, I am not a doctor or qualified in a medical profession in any way, I am just documenting my personal experiences with this particular injury. Staying physically active plays a large role in my day-to-day routine. While I love to cut code and experiment with technology, it doesnt help me towards keeping a physically healthy body. To balance this, I mainly participate in solo sports (jogging and resistance training in the gym), this way I can exercise when I want, and how I want. ...

May 6, 2008 · 6 min

Orchestration Deployment Error 26

There seems to be an intermittent deployment problem with BizTalk 2006, that has been the cause of much time wasting. When attempting to deploy BizTalk artefacts either explicitly using the BizTalk Administration Console or the Visual Studio deploy functionality results in the following: Error 26 Failed to add resource(s). Change requests failed for some resources. BizTalkAssemblyResourceManager failed to complete end type change request. Failed to update binding information. Could not enlist orchestration ‘Net.Bencode.Orchestration,Orchestration, Version=1.0.0.0, Culture=neutral’. Could not enlist orchestration ‘Orchestration.TestProcess’. All orchestration ports must be bound and the host must be set. ...

April 25, 2008 · 1 min

MIME Decoder and 64bit

This week I got a great introduction to the subtle difficulties that are waiting to be encountered when running a 32-bit component in a 64-bit environment. In short, an orchestration that employed the standard (ships with BizTalk) MIME Decoder pipeline component was consistently failing with the following: The invocation of a pipeline component continued to raise the following exception. The pipeline “Net.Bencode.Pipeline.Decoder” could not be created for execution. Error Details: “Retrieving the COM class factory for component with CLSID {254B4004-2AA7-4C82-BB2E-18BA7F22DCD2} failed due to the following error: 80040154.” ...

April 22, 2008 · 2 min

WSE Adapter Woes

Every now and then I come across a solution that employs the BizTalk Web Service Enhancement (WSE) 2.0 adapter suite—a legacy technique for getting BizTalk to consume/expose web services. The WSE adapter pack includes the foundation runtime binaries and a cool schema generation wizard that neatly plugs into Visual Studio—the “Add Generated Items” option available in solution explorer will get options for doing WSE schema generation. Recently I had to maintain a legacy (2004) solution—among other activities this involved defining a number of new logical ports in an existing orchestration. After a typical BizTalk build-deploy-test cycle I soon discovered that the WSE adapter was not happy… ...

March 18, 2008 · 2 min

WMI with System.Management

Lately i’ve come across the requirement to provide diagnostic/environmental information from within BizTalk itself. Integration solutions can become unwieldy as the number of participating scheduled processes, windows services, web services, databases, COM+ components, queues and so on increases. The deployment of such scenarios often involves a number of independent installers and/or release procedures—eg. one for each vendor system and one for the integration (ie. BizTalk) solution itself. Ensuring that the correct environmental configuration files, databases, business rules etc. have been put in place, can make a sysadmins life rather tedious. Providing the ability to ascertain key environmental configuration can ease deployment headaches when things don’t seem to be working. ...

March 18, 2008 · 2 min