Reserved words and Distinguished Fields

The other day I built a schema that was the cause of much confusion and time wasting. Basically the tiny schema was being used by a centralised error handling process, that was designed to subscribe to and publish errors. The schema had a number of child elements, two of which were named “message” and “source”. Each field in the schema was distinguished (not promoted) to allow participating orchestrations to examine and/or manipulate the error message instances. ...

February 13, 2008 · 1 min

BizTalk Mapper Multiple Schemas

Today I was preparing to do some maintenance work, and while studying the relevant maps and schemas discovered a very unusual looking map—unusual to me anyway. I have included the XML source definition of the map below for reference. The source definition of the map was an aggregation of two schemas. That is, the source definition had two root elements InputMessagePart_0 and InputMessagePart_1 which contained XSD imports of two schemas. The thing that took me by surprise was that the source definition of this particular map was not actually explicitly defined through a “wrapping” schema definition. Instead the actual details of the aggregation was defined and stored in the map definition itself, under the target namespace of: http://schemas.microsoft.com/BizTalk/2003/aggschema ...

February 12, 2008 · 2 min

Web Service Proxies

Publishing BizTalk orchestrations (or schemas) as Web Services is a wonderful thing. A neat little code generator known as the BizTalk Web Service Publishing Wizard accompanies the standard suite of BizTalk development tools, and basically plumbs up a classic (asmx) web service that inherits parts of the BizTalk object model. The web service must be hosted-and-execute on a BizTalk Server that holds the “exposed” orchestration. It then becomes a simple affair of defining a SOAP Receive Location that binds to the generated web service. ...

February 4, 2008 · 2 min

Mapper Bug

In the process of maintaining some existing maps, I interestingly came across the following error message, whenever I attempted to build the associated schemas project. Node node name - Specify a valid .NET type name for this root node. The current .NET type name of this root node is a duplicate. When I opened the offending schema (which contained a number of imports) using the BizTalk mapper in VS.NET, the schema did indeed appear to contain repeating (or duplicate) nodes. After digging a little deeper by manually studying the schemas using a simple text editor notepad2, in-fact discovered that the schema definitions were sound. The mapper was misbehaving. After a quick google, soon located the official knowledge base article KB922431, including a hotfix and analysis of the problem. To get the hotfix a request must be submitted to Microsoft Online Customer Services. ...

February 4, 2008 · 1 min

Performance Analysis

Log Parser: An elegant utility that does all the real grunt work. It is well worth spending some time with this guy as it will come in handy for other unexpected situations, like analysing your web server logs, or parsing through custom CSV files etc. Microsoft Office 2003 Web Components: Some COM components that provide for graph generation of the statistical data. Performance Analysis of Logs: A script that automates the “leg work” involved in real-world performance analysis, such as managing the set of counters to be used for particular situations (eg. BizTalk 2006 analysis), invocation of log parser to do the actual analysis of each counter, detection of threshold breaches when things seem to be fishy. PAL is implemented as a VBScript, and comes with a little .NET WinForm GUI which can be (optionally) used to setup the arguments to be fed into the VBScript. The result, a comprehensive HTML report complete with alerts (threshold breaches), graphs and explanations. ...

January 28, 2008 · 2 min

Binding Dependencies

When ingesting (importing) BizTalk application bindings between different environments/machines it is important that its dependencies (hosts, host instances and adapters) are setup before running the import. Otherwise you run the risk of getting the following somewhat misleading error message: Failed to update binding information. The following items could not be matched up to hosts due to name and/or trust level mismatches: Item: ‘FILE’ Host: ‘MyBizTalkHost’ Trust level: ‘Untrusted’ You must do one of the following: ...

January 28, 2008 · 1 min

MSDTC and BizTalk

Last week I had to rebuild a BizTalk 2006 development box, running Windows Server 2003 R2. Im not sure where or how the base image came about, but through installing BizTalk I hit a number of interesting snags, all relating to not having a functional Distributed Transaction Coordinator or MSDTC; commonly employed for managing transactions across distributed resources. OK, so the basic “installation” procedure ran fine. That is the necessary files to facilitate a functional BizTalk Server were copied and registered without error. Running the BizTalk Configuration tool to actually get the various pieces working together were where things were halted to a stop. ...

January 28, 2008 · 3 min

TFS Get Latest = Unspecified Error

Last week, I needed branch a BizTalk codebase off so some enhancement work could take place. After re-jigging a dozen or so projects, was quiet proud of the new (and in my opinion) more logical solution structure. OK, first test… shut-down VS.NET, re-open it and do a get-latest. I get the following: Soon after I discovered this post by Michal Talaga. He suggests that a corruption to the VS.NET SUO (Solution User Options) file is responsible, and that simply deleting it and having VS.NET recreate it remedies the problem. While skeptical at first, was pleasantly surprised to find that it fixed the problem. ...

January 21, 2008 · 1 min

KB939373 Breaks IIS

I currently work in an environment where Windows XP is deployed across the organisation. Consequently, it is also the OS on which we write code. Today I booted my machine to find my IIS 5.0 web server was no longer functioning. When I attempted to fire up the service, I received a handy “The World Wide Web Publishing service terminated with the following error: The specified procedure could not be found”. Interesting…my box has been nice and stable for the last few months. What gives? ...

January 21, 2008 · 1 min

BizTalk Adapters

This is an unusual one. Today I was faced by a general question from management on the kind of technology we are capable of integrating with. We use (and love) BizTalk. My initial thoughts were “BizTalk can integrate with anything”… failing that a built-in adapter could do the job, one could then look to purchasing a third-party adapter or even look at rolling one in-house. Adapters plumb data to and/or from a variety of different mediums—that more or less fall into one of four categories: line-of business system (eg. SAP, Business Application XYZ), middleware (eg. TIBCO) , transport (eg. WCF, file system) or database (eg. SQL Server, Oracle). ...

January 17, 2008 · 1 min