vrijdag 17 december 2010

Cumulative update package for BizTalk Server 2009

Recently Microsoft released a cumulative update package 1 for BTS 2009.
This package contains 60 fixes with 55 applying to BizTalk Server 2009 and 5 to UDDI as well as added support to HIPAA 5010. The release has 32 and 64bit downloads and can be obtained either by contacting Customer Services or by requesting the download via the online self-service feature.


link: http://support.microsoft.com/kb/2429050

another update package recently released by microsoft is the cumulative update package 1 for BizTalk adapter pack 2.0.  It includes 11 fixes that apply to the SAP Adapter, Oracle Adapter and the baseline framework itself. It applies to any system using the BizTalk Adapter Pack 2.0 (and .NET solutions consuming the adapters, BizTalk Server 2006 R2 SP1, and BizTalk Server 2009).


link: http://support.microsoft.com/kb/2444952

SQL Checklists

Just today I found some very handy check lists for SQL Server.
The check lists cover all possible topics, from installation, via maintainence and security to upgrading.

These are the links to the 2 check lists I'm referring to.

http://www.simple-talk.com/sql/database-administration/brads-sure-dba-checklist/
http://www.simple-talk.com/sql/database-administration/mission-critical-sql-server-2008-general-maintenance/

I myself, see the check list rather as a useful guideline with several handy tips.

dinsdag 14 december 2010

Replace multiple spaces by a single space

We had a problem with multiple spaces in the messages received from another party.
I'll provide you an answer to handle this problem in XSLT as well as for C#.

I'll start by explaining it for XSLT.
In this case it is really simple, there exists an XSLT function to do this for u. Simply make a call to the function 'normalize-space()', and that's it!
normalize-space will remove all leading and trailing spaces to the string you pass to it. And above this, it will also replace all multiple spaces with a single space. It is that easy.

    for example:
       <node>
          <value-of select="normalize-space(RootNode/SubNode/AnotherSubNode)" />
       </node>

In C# there is no build-in solution for this problem, at least none that I'm aware of.
I solved this by writing a simple function, as follows:

        public String RemoveMultipleSpaces(String phrase)
        {
            phrase = phrase.Trim();
            phrase = System.Text.RegularExpressions.Regex.Replace(phrase, "\\s+", " ");

            return phrase;
        }

This functions exists of 2 steps. First of all I'll remove all leading and trailing spaces in the string.
Then I replace all remaining multiple spaces by a single space. To do this I use the Regex.Replace(String, String, String) function. The first parameter is just the String that needs to be changed. The second parameter represents a regalur expression of the  pattern that needs to be replaced, in this case its mulitple spaces. And finally, the last parameter is the single space that will replace all matching substrings inside the original string.

maandag 13 december 2010

BTS 2009: Remove Byte Order Mark from messages

Some of our recipients where complaining that they received a '?' in front of the messages we send with BizTalk.
Now, when we view the messages we send to them from the tracked messages, nothing seems to be wrong at first.
As you can see in the below image, the sent message just starts with "<?xml version="1.0" encoding="utf-8"?>" like it should be.




When you look at the same message in the binary mode however, you'll see that there are several extra characters added in front of the actual message. These extra characters are called Byte Order Marks (BOM). These characters indicate which of the several unicode representations the text is encoded in. In my case, the message is encoded in UTF-8.
For UTF-8 the BOM is "
EF BB BF" (in hexadecimal), or "" (in ISO-8859-1), like shown in the below picture.


Although there's actually nothing wrong with the sent message, some client applications might have a problem reading your message.

I'll show you how easy it is to remove these extra characters. The solution for this problem is to just correctly configure your send port. I'm not sure of the older BizTalk versions, but in BizTalk 2009 there is a setting on the XML Assembler component called 'PreserveBOM'. When you change this setting to False, the Byte Order Mark characters will be omitted in the sent message.




When I now reprocess the same message with this setting, the resulting message will be without a BOM. The picture shows that, even in binary view, the message starts with "<?xml version="1.0" encoding="utf-8"?>".



donderdag 9 december 2010

What's new in BizTalk 2010

Recently I've been to a seminar on the new features of BizTalk 2010.
I like to share a brief summary of all new features in BizTalk 2010 that I've discovered on this seminar.


Platform Support

All latest Microsoft developments are supported.
·      Visual Studio 2010
·         Virtualization support for Hyper-V
·         SQL Server 2008 R2
·         Windows Server 2008 R2
·         SharePoint 2010
·         Windows 7
·         .NET Framework 4.0


BizTalk mapper

The BizTalk mapper is improved dramatically in this latest version, which makes the life of developers a lot easier. Productivity when designing new maps will increase with the more intelligent BizTalk mapper .
These are the added features for the BizTalk mapper:
·       Search functionality: it is now possible to search in your map, even inside the functoids
·         Cut / copy / paste / move / undo functions, makes it all easier to design maps
·         Improved support for documenting maps and readability
·         Predictive match: match all underlying nodes based on for example matching names
·         Some functionality to increase the readability when highlighting a functoid or a binding:
o   Highlight propagation
o   Auto-scrolling: scrolls your schema’s to the right spot
o   Coalescing sibling nodes: all unused nodes of the schema’s will collapse


Dashboard

A whole new settings dashboard consolidates all settings into a single place. These settings are used to tune your BizTalk environment to your needs.
All settings are now granular, so you can change your settings at different levels. You can change all settings on three different levels, namely on group, host or host instance.
There’s also support for automated settings deployment, which allows you to deploy your settings on all environments using scriptable import / export operations.
And last but definitely not the least is the improved admin concole.


System Center (SCOM)

This System Center Operation Manager  is used for monitoring and diagnose your BizTalk Environment. The SCOM has a new model with separate application and deployment views. They’ve also added new alerts and diagnostics for better monitoring the environment.
The SCOM can be also be used for clustered servers.
All these functionality contribute to an improved machine monitoring.


Adapters

BizTalk 2010 brings along a serie of new and enhanced adapters. They even provide a higher level of security and secure a better performance.
important adapter updates:
·         FTP adapter:
o   Added support for secure FTP with a new FTPS adapter and an improved FTP adapter
o   Possibility for read-only files: it will redownload when a file is changed
o   Atomic file transfer now also in ASCII mode


ESB Toolkit

The ESB toolkit already existed for previouses BizTalk versions, different is in BTS 2010 it gets installed along with BizTalk.
The BizTalk ESB Toolkit is a collection of tools and libraries that extend BizTalk Server capabilities of supporting a loosely coupled and dynamic messaging architectur
An Enterprise Service Bus (ESB) is an architectural pattern and a key enabler in implementing the infrastructure for a service-oriented architecture (SOA). It addresses integration problems in a way that maximizes the re-use of services and maintains flexibility.
This ESB toolkit is an abstraction layer on top of BTS, which brings several advantages, like:
·         Easier to redeploy
·         Reduces your necessary ports, which makes it all easier to manage
·         Faster response to changes
·         Higher level of reusability
·         High extensibility for future or special needs

For further info on the ESB toolkit I suggest this URL: http://www.microsoft.com/biztalk/en/us/esb-guidance.aspx


New trading partner model

You ‘ll probably know the old trading partner model (‘parties’ in the admin console), where you were able to configure the AS2, Edifact or X12 settings for a certain Customer. However this old trading partner model had a non-intuitive representation, where you had to make a new party for every new agreement.
The new trading partner model brings some new possibilities. It reflects typical B2B relationships and is easier to manage large scale TPM deployments. Each party can now possess several so called business profiles. Agreements have to be made between these  Business Profiles. Every agreement also have the possibility to manage an agreement lifecycle. Furthermore, you’ll have more control over the message types in the new partner model.
Thes changes contribute to following advantages:
·         Settings are more visible (improved UI)
·         Improved productivity(agreement protocols + protocol settings)


AppFabric

BizTalk Server 2010 includes easy to use tools that integrate Line-of-Business applications with Windows Server AppFabric Workflows.  This includes Workflow activities that provide access to the BizTalk Transformation Engine and Mapper, and the BizTalk Line-of-Business adapters.


Removed features

Some features are removed and replaced by new features in BizTalk Server 2010.
·         BizTalk Web Services Publishing Wizard: The BizTalk WCF Publishing Wizard can be used to publish Web services from BizTalk.  The BizTalk Web Services Publishing Wizard has been removed
·         Legacy adapters: they are replaced by the adapters in the BizTalk Adapter Pack (SQL, Oracle, Siebel, mySAP)
·         EDI pipeline and Context Properties:  The new Trading Partner Management feature in BizTalk Server 2010 provides the same capabilities as the EDI Pipeline and Context Properties and replaces these features


BTS 2010 upgrade path

They’ve added a new smart setup which scans and installs BizTalk upgrades automatically. You can upgrade from BizTalk Server 2006 R2 and BizTalk Server 2009.





All these new features make me really look forward to working with BizTalk 2010!

BTS 2009: "Failed to update binding information"

We were redeploying one of our mappings to Biztalk 2009 by just adding the assembly to the resources in the BizTalk Admin Console. By doing this we got a strange looking error as shown in below figure.







The error detail is : 'Receive Location 'Receive Order Port' has no Transport Type specified.


The actual error is quite clear, the strange thing however is that the receive location that is mentioned didn't exist anymore in our application.

After doing some research I found out that BizTalk stores info about the last deployments in a local folder, namely 'C:\Documents and Settings\[user name]\Application Data\Microsoft\BizTalk Server\Deployment\BindingFiles' (Or for windows Vista / windows 7 in 'C:\Users\[user name]\AppData\Roaming\Microsoft\BizTalk Server\Deployment\BindingFiles').
And when doing a redeploy of some resources, BizTalk will still use this locally stored information. When this information then is wrong, you'll get a 'failed to update binding information' error.

The solution to this problem is quite easy, just remove all binding info files. After this you shouldn't get any more errors, at least not of this kind :).