BizTalk Server MVP 2012

2 January 2012

Great news for me. Yesterday I received an e-mail from Microsoft telling me that I’ve been re-awarded the MVP title.

I would like to thank: – my MVP leads William Jansen and Jacqueline de Jong  – other Microsoft employees involved – people at Aviva Solutions – and finally many thanks to Ivanka for her support and patience

I’m looking forward to another great year!

Happy new year everyone!


BizTalk Server 2010 unleashed book

22 September 2011

Back in the days when I was working with BizTalk 2004 I always had the book
‘Microsoft BizTalk Server 2004 Unleashed‘ close by on my desk.
Later on, when BizTalk 2006 was released the same was the case for the book ‘Professional BizTalk Server 2006‘.

It is not my intention to fail other good BizTalk books, but in my view the
above mentioned books are the BizTalk bibles that every developer must have.

Good news is that such a bible is now also available for BizTalk Server 2010.
Yesterday, I received a copy from Jan Eliasen (one of the authors). The book is
called ‘BizTalk Server 2010 unleashed’.

I helped Jan out by reviewing his chapters while he was in the process of
writing. Currently I have only read his chapters but I can still say the book
looks very promising.

In my view this is the book that every BizTalk 2010 developer needs on his
desk! It is writing by BizTalk experts: Brian Loesgen, Charles Young, Jan
Eliasen, Scott Colestock, Anush Kumar and Jon Flanders.

So to all the authors: thanks for delivering a new version of the BizTalk
bible to the community :-)


Saravana Kumar at the Dutch BTUG

21 June 2011

I’m very happy to announce that Saravana Kumar has accepted my invitation to speak at the upcoming BizTalk User Group (BTUG) meeting in Almere on June, 29th. Saravana will talk about and demo BizTalk 360.

Saravana has been working with BizTalk Server since the first product release early in 2001, and has many years experience in architecture, design, and development of mission critical systems focusing mainly on Microsoft Technologies. He worked as one of the Lead BizTalk Server consultants in the National Health Service (NHS) project in UK for 3 years, one of the biggest public sector projects in the world and largest implementation of BizTalk Server 2004.
He is very passionate about upcoming Microsoft technologies. In year 2005 he won the Connected Systems Developer competition under MCP category for designing and building SQL Service Broker Management Studio 2005.
Currently, Saravana is an independent consultant focused solely on Microsoft based integration solutions using BizTalk Server. Microsoft published his white paper Understanding Design-Time Properties for Custom Pipeline Components in BizTalk Server.
Saravana is awarded "Most Valuable Professional (MVP)" for BizTalk Server every year since 2007. Finally Saravana owns and maintains the BizTalk 24*7 community site.

This is your chance to hear and meet one of the top international BizTalk community members. You can register here.


Warning – Cannot resolve the ‘schemaLocation’ attribute

17 June 2011

I always take compiler warnings seriously and at least investigate them before releasing.

In one of the solutions I work on I consequently received the warning  ‘Cannot resolve the ‘schemaLocation’ attribute’. This solution contains a BizTalk project with a lot of schemas. For each schema multiple occurrences of this warning where reported. This lead to a long list of warnings.

Although this is a warning and it didn’t seem to bother anything at run-time I didn’t like the excessive list of warnings.

It turned out that the BizTalk compiler is quite strict in the way the imports are defined for schemas in other assemblies. We have schema types defined in schemas in other assemblies. We reference those assemblies and use the types in the schemas. Something like this:

<xs:import namespace="http://biztalk_server_project1.myschematypes" schemaLocation="BizTalk_Server_Project1.MySchemaTypes" />

As you can see we had the ‘namespace’ before the ‘schemaLocation’ attribute in the import statement. We manually added the import statements and didn’t bother about the sequence of those attributes. However it seems the BizTalk compiler wants the imports to be defined as:

<xs:import schemaLocation="BizTalk_Server_Project1.MySchemaTypes" namespace="http://biztalk_server_project1.myschematypes" />

This also the sequence used when you import a schema in the BizTalk schema editor.

After putting all the ‘schemaLocation’ attributes before the ‘namespace’ attributes the warnings were gone.

Not a showstopper but still worth mentioning in my view.


BizTalk 360

7 June 2011

I assume anybody in the BizTalk space would have known BizTalk 360 by this time. I though I’ll just give my view of the product here.

BizTalk 360 tries to address some of the real challenges we face on a BizTalk environment, especially controlled environments like Production and Test environments. There are 3 core features I personally like about BizTalk 360

Governance/Auditing: This is such an invaluable addition to the tool, on a controlled environment it’s very important to know “who did what”. There were so many instances in the past, where we struggle to identify who stopped the host instance or who Unenlisted a send port etc. With BizTalk 360 we’ll know exactly who did that activity.

Fine Grained Authorization: This allows controlling the user’s access to the environment in a fine grained manner. It helps us reuse the environment by multiple departments/projects, without the fear of one interfering with other resources. We also don’t need to provide direct access for users to access the physical machines.

Topology: We got multiple environments with multiple configurations. In the past when we need to understand the network topology we either need to login to the server and work out BizTalk/SQL server configurations. But with BizTalk 360, it just dynamically plots the network diagram.

The great thing about it, there is a free version as well. The free developer version got pretty much all the essential things that will be useful for development purpose. The only downside I can see is, BizTalk 360 reached the market bit late. If this product was available 3 years ago, I’m pretty sure by this time every reasonable sized company would have got one. But late is better than never.

The commercial editions are also priced reasonably given the amount of functionality it got. I personally know Saravana Kumar, the fellow Microsoft BizTalk Server MVP who is one of the founders of BizTalk 360. I will hugely recommend anyone using Microsoft BizTalk Serer to take a look at BizTalk 360.


How to survive the XmlDisassembler

22 April 2011

The XmlDisassembler pipeline component in BizTalk Server basically does three things:

  1. promoting properties (including the message type)
  2. validating incoming documents (if turned on)
  3. disassemble batches into body messages

Sometimes situations can occur where you want to process an envelope message but you don’t want to have it disassembled into separate body messages.

For example when receiving a message that contains a lot of data in the header of the envelope that is needed in the body of a message further on in the process. You then ideally want to use a map to copy over this header data into another message. If the port receiving this message uses the XmlDisassembler component the envelope will be processed and the header information is “gone”.

You can of course promote everything in the header to the context but that leads to a lot of data in the context. Besides that a considerable amount of code (distinguished fields and xpath statements in expression shapes) is needed to get the context properties into the message later on.

Another and, in my view, more elegant way to do this is by setting the value of a special property to true on the context of the envelope message before it is processed by the XmlDisassembler. The property is called ‘PromotePropertiesOnly’ and resides in the ‘http://schemas.microsoft.com/BizTalk/2003/xmlnorm-properties’ namespace.

A very simple pipeline component can be used to do this:

public IBaseMessage Execute(IPipelineContext pContext, IBaseMessage pInMsg)
{
pInMsg.Context.Promote("PromotePropertiesOnly",
"http://schemas.microsoft.com/BizTalk/2003/xmlnorm-properties", true);

return pInMsg;
}

After setting this property will still have the functionality of the XmlDisassembler (like property promotion, setting the message type, etc.) but the debatching is skipped.

The property is available and can be used in all versions of BizTalk Server (2004, 2006 (R2), 2009 and 2010).


PowerShell provider 1.2.0.1 released

25 February 2011

A short post to let the users of the PowerShell provider for BizTalk know we have released a new version.

In the previous versions in some circumstances the provider (and PowerShell runtime) crashed when adding a new resource using the new-item cmdlet. This, among some other things, has now been fixed in release (v 1.2.0.1).

You can download the new version from here.

Thanks to Maxime for helping me fix this bug.


Follow

Get every new post delivered to your Inbox.