Sunday, April 28, 2013

BizTalk Server Glossary – updated with ESB Toolkit terms

 

When i saw the BizTalk Glossary (http://social.technet.microsoft.com/wiki/contents/articles/16653.biztalk-server-glossary.aspx), and an excellent post on the ESB Toolkit (http://vikasbhardwaj15.blogspot.nl/2013/04/understanding-biztalk-esb-toolkit.html), i felt the urge to update the glossary with the ESB Toolkit aspects, as these are now an integral part of the BizTalk installation.

I’ve added some terms (Itinerary, Itinerary-Service, Resolver, BRI, BRE, On-Ramp) with my own knowlegde and information on the aforementioned blog, hoping to contribute a complete glossary.

My changes are part of changeset 81.

HTH,

Sander

Visual Studio 2012–changes necessary to start doing your work

 

Disclaimer: This post does not take any company security policies into account, actions suggested are merely provided to support getting things done as a developer…having said that Knipogende emoticon

What’s the first thing you probably will encounter when (implicitly) converting an existing solutions from an older Visual studio…

Security Bedroefde emoticon

You must ensure that you can do your work….especially when converting solutions from an older Visual studio version, it’s very annoying that solution will be migrated but are not able to change properties in projects etc.

clip_image001

Example of Zen demoter…..Changing the read-only bit from solutions (e.g. downloaded sourcecode);

clip_image003

How to start you work…and increase your Zen level?

Change User Access Control

clip_image004

clip_image006

Note: Personal judgement is necessary to determine whether this should be done!

Run Visual Studio as an administrator

You can do this by changing a property in the visual studio shortcut.

clip_image008

Now you can start doing your work

 

Glimlach

Welcome to cloud computing!, It’s called Windows Azure Table storage

I’m following the well written course Windows Azure architect (http://www.windowsazurearchitect.com), it provides the training as if you’re following the training of a couple of employees at company X. It’s written in a very interactive way. Mostly after each section/explanation, the ‘employees’ have some ‘smart’ comments/questions..…after reading the section on table storage, i couldn’t help laughing when it involved creating table storage by code;
client.CreateTable("demoTable");
“Developer” puts on an unhappy face…..
“But this is not a real Create Table statement”, he says. “There‟s just the table name and nothing about the column names, the column data types, or column constraints such as null and not null.”?
“Trainer” gives him a broad smile;
“Welcome to cloud computing!” he says. “It’s called Windows Azure Table Storage!”
Glimlach

Thursday, April 11, 2013

BizTalk + ESB Toolkit–flat file debatching

 

 

Problem (identfied with: BizTalk 2010 / ESB Toolkit 2.1 )

The ESB Toolkit is a set of components and artefacts which provide Enterprise service bus functionality on top of BizTalk. One of the capabilities of BizTalk is debatching (Xml, Flat files).

During debatching a single message is debatched into several messages (e.g. an OrderBatch containing multiple orders). The default behavior is that each message will be placed onto the messagebox for additional processing. In a business context it is desired that the entire batch is processed before the flat file is removed, thus Recoverable Interchange Processing should be set to FALSE.

 

In an ESB Toolkit context it is possible to follow the same approach, but not only debatch the message, but also start of a new process using an itinerary. This means that each individual messages leads to a new process.

 

In this case, the disassembler and the ESB Dispatcher are required to interoperate with eachother. This behavior is however, not supported and will result in the following error:

 

Reason: Cannot access a disposed object”. Object name: ‘DataReader’.

clip_image002[7]

 

http://www.richardhallgren.com/streaming-pipeline-and-using-resourcetracker-to-avoid-disposed-objects/

Solution

There are multiple approaches to circumvent this problem:

·         Customize the default Flat file adapter / ESB Toolkit components

o   This is an unsupported approach, complex and

·         Use InterchangeProcessing = TRUE

o   This would mean that messages are handled on an individual basis, which prevents that there is a dependency on the entire stream.

o   The drawback of this is that messages that fail can not be traced back to the entire batch

·         Use a 2 step appoach

o   First the flat file is debatched

o   In the second step the Itinerary is assigned

How-it-works.

·         Use a 2 step appoach (instead of 1 step)

clip_image004[4]

·         In step 1a, the flat file is debatched in a pipeline that contains a flat file disassembler (default pipeline component)

·         In step 1b, the debatched file files are send to an intermediate location, awaiting processing

·         In step 2, the Itinerary is assigned using a pipeline with an ESB Itinerary selector and ESB Dispatcher pipeline component (default pipeline)

 

HTH,

Sander Nefs