Wednesday, December 26, 2007

BizTalk Custom Pipeline Components - Framework Overview Part-1

In this article I am trying to put consolidated information for developing custom pipeline components. Hope you like my efforts; frankly, there is nothing new in the article but it's all together.

Receive and Send pipeline performs below basic operations in BizTalk Solution,
- Encrypt outgoing and decrypt income message
- Handle digitally signed messages and verify them
- Validation
- Handling promotion
- Disassembling and assembling coming or processed messages.
- Wrapping header and footer into messages.

The below I have listed components and their jobs in BizTalk Solution.

Pipeline Components

Stages Employed


General Component Decode, Encode, Pre-assemble, Resolve Party or Validate Take one message process message and produce zero or one message
Disassemble ComponentDisassemble Split message, promote custom properties
Assemble Component Assemble Used to wrap message with head or trailer or both
Probe Component This is not an independent component. Any pipeline component can implement the IProbeMessage interface if it must support message-probing functionality. Enables the component to check the beginning part of the message

To develop general pipeline component we can use following interfaces. These are coming as part of SDK and BizTalk Solution (BTS).

IBaseComponent Interface
IComponentUI Interface
IComponent Interface

IBaseComponent Interface
Members Usage
Description Property. Used to specify small description about pipeline component. Description is visible on pipeline properties page at design time.
NameProperty used to specify name of pipeline component. Name is visible on pipeline properties page at design time.
VersionProperty used to specify version (example of pipeline component. Visible on pipeline properties page at design time.

IComponentUI Interface
Members Usage
IconProperty used to provide icon associated with pipeline component.
ValidateMethod. Pipeline designer before pipeline compilation to verify that all configuration properties are correctly set calls this.

IComponent Interface
Members Usage
ExecuteMethod. Does specific processing/massaging in inbound message and produces output message to be forwarded to next stages of pipeline or message box.

Members Usage
GetClassIDMethod. Retrieves the component's globally unique identifying value.
InitNewMethod. Initializes any objects needed by the component to use the persisted properties.
LoadMethod. Used to load property from property bag.
SaveMethod. Used to save property-to-property bag.

I will surly come back with more detail articles and implementation with sample code for the subject.

Thanks for visiting my blog and please send your feedback or queries to

Have a nice day!

Recoverable Interchange Processing - BizTalk Server Video Tutorial

Again I am coming with very good video demonstration by Stephen W. Thomas, the tutorial demonstrate Recoverable Interchange Processing in BizTalk Server 2004/2006/R2. Worth spending 9 minutes on the video.

To download the video please Click Here

Downloading the related sample files might also be helpful. They can be found here:
Click Here

Live Play (no need to download the file) of this video is available here:
Click Here

Tuesday, December 25, 2007

BizTalk Server R2 - WCF HTTP Binding through BizTalk WCF Adepter

A very good video demonstration by Stephen W. Thomas, the video demonstrate WCF HTTP Binding through BizTalk WCF Adepter. Worth spending 13 minutes on the video.

To download the video please Click Here

Downloading the related sample files might also be helpful. They can be found here:
Click Here

Live Play (no need to download the file) of this video is available here:
Click Here

Monday, December 24, 2007

Presentation on .NET 3.0/3.5 at Microsoft, NET C# ASP.NET VB.NET WCF WPF WF LINQ

Very good video presentation by instructor Andrew Troelsen delivers presentation on .NET 3.0/3.5 at Microsoft, NET C# ASP.NET VB.NET WCF WPF WF LINQ. Worth spending your busy time or office time ;-).

Sunday, December 23, 2007

BizTalk Server 2006 - Assert Functoid - Training Video

Another good video on YouTube, it demonstrates Assert Functoid.

BizTalk Server 2006 - Custom Mapping Functoid - Training Video

A good Video available on YouTube network, it's very good demonstration for Custom Mapping Funcatoid. Enjoy pie!

Friday, December 21, 2007

WCF - Microsoft Service Configuration Editor – Services - SvcConfigEditor.exe

Microsoft announced very recently about "Oslo" and their strategies about Enterprise Integrations and Service Orientation. The announcement made me tempt to explore WCF (bytheway I started calling me WCF professional few months ago ;-) ), and I come across to a very good tool called "Microsoft Service Configuration Editor". So grabbed the opportunity to document something and let's publish ;-) please bare one more article…

While learning WCF the first thing came to my mind was Enterprise Services Management (This days I am playing my cards with Live Service Management), it's ok if you plan 2-3-10-20-50 number of the services for your business but when you are planning services in big bulk, distributed deliveries of services, different assemblies, managing behaviors/contracts/endpoints for various clients/hosts, etc…. there could be N number of the possibilities for various service management scenarios. And my thoughts and excitement brought me to the administrative tool called "Microsoft Service Configuration Editor". Microsoft is supplying this tool with "Microsoft Windows SDK v6.0A" itself, it's very useful tool for the service management (especially WCF).

WCF is saving configuration settings in web.config / app.config files and it's very hard to manage manually by editing.

Below I am just trying to put some screens and my tutorial experience to you, hope you like it.

Here for the demonstration, I am using the sample scenario called "TrustedFacade " which you can find in Microsoft WCF Samples ("\WCF_WF_CardSpace_Samples\WCF\Scenario\TrustedFacade"). Not going inside the code or development part, I am going to focus only on the deployment and administration with the Configuration Editor.

Steps, for configuring the service:

  1. You can open the tool from "Start Menu\Programs\Microsoft Windows SDK v6.0A\Tools\ Microsoft Service Configuration Editor" or go to the next path "Microsoft SDKs\Windows\v6.0A\Bin\SvcConfigEditor.exe".

  2. Click on crate a new service, it will bring you one service creation wizard.

  3. Click on the Browse Button and drive the wizard to the service dll, it can be GAC or File Location.

  4. After selecting the service, click on Next button, it will bring you to service contract page. It will show you all contracts available in one dropdown list in service, an appropriate contract you select and then move ahead with the next phase of configuration.

  5. Next screen will give you option to decide the communication mode, where you can select an appropriate mode of communication channels.

  6. Next screen will bring you selection of interoperability option.

  7. Now, the coming screen will ask you the address of your endpoint.

  8. After performing the above steps, now your wizard is ready to create configuration.

Now your service has been configured, the tool also provide facility to manage other configuration like hosts, base addresses, multiple endpoints, binding configuration, contracts, listening uri, etc. I am here just focusing on the service configuration, later on I will publish client and other configuration options available with in the tool. So let's coming back to services, the below image shows you, how to add multiple base location in host.

You can also add multiple endpoints to the service, as well as you can add certifications, identity and headers to messages and channels. Please check the blow screens to understand the configurations options for end points.

After completion of configuration you can save it as *.config file, which need to manage with services at the IIS/service hosting location.

This tool can give very good flexibility with the management and administration of the WCF services on large scale.

I will back with some more interesting articles on WCF as my study progress with it.

Thanks to bear with me during the article, please send your feedback to


Thursday, December 20, 2007

Screencast: Microsoft BizTalk Server 2006 - A very good video

Screencast: Microsoft BizTalk Server 2006. Cool video to understand BizTalk and scope of implementation. The video content requirement scenarios, basic development tool introduction, various artifacts, etc...

Source: Youtube
From: InfoWorld


Now, we can chat live from Blog... :-) new cool chat tool

Let's Talk,

New widget I have added to my Blog , please feel free to put some line there and suggestions are welcome.

Find this new widget at left pan of the page,


Hope you like this...

Wednesday, December 19, 2007

Understand BizTalk – Performance Counters – Bottleneck Analysis (Counter: Low % Disk Idle on SQL Server High Avg. Disk Queue Length on SQL Server)

Counters: Low % Disk Idle on SQL Server High Avg. Disk Queue Length on SQL Server

Area of Analysis:
- Check whether the tracking database and Message box are on the same disks.
- Check whether the data and log files are on the same disks.
- Check the log sizes.

Possible Solutions:
- Use a SAN.
- Ensure that the tracking and Message-box databases are on different servers.
- If they are on the same server, ensure that they are on different disks.
- Ensure that the data and log files are not sharing the same disks.
Make sure the BizTalk agents are enabled on the server. The agents copy tracking data from the Message box to the tracking database. They also back up the databases and clean up the logs.

Understand BizTalk – Performance Counters – Bottleneck Analysis (Counter: Low % CPU Idle on SQL Server)

Counter: Low % CPU Idle on SQL Server

Area of Analysis:
- Check if DBA changed any of the default database settings set by the BizTalk installation.
- Max Degree of Parallelism are set to off Auto-Update Statistics and Max Degree of Parallelism are set to off and 1 respectively on purpose.

Possible Solutions:
- Minimize the number persistence points in your orchestrations.
- Use static methods instead of wrapping nonserializable components in atomic scopes.
- Avoid using Parallel shapes, except when needed.
- In a multi-Message box scenario, ensure that you have at least three Message boxes. The master Message box is doing all the routing to secondary Message boxes, which is CPU intensive. Whenever you are using multiple Message boxes, Microsoft’s distributed Transaction Coordinator (DTC) is involved; therefore you need to jump from one Message box to three instead of only two to offset that overhead.

Understand BizTalk – Performance Counters – Bottleneck Analysis (Counter: - Low % CPU Idle on BizTalk Server)

Counter: Low % CPU Idle (On BizTalk Server)

Area of Analysis:

- Too many hosts running on the server.
- Improper use of custom pipelines.
- Custom components requiring optimization.

Possible Solutions:
- Isolate receive, process, and send functionality into different hosts and run host instances on different servers within the BizTalk Server Group.
- Move message transformation out of orchestrations to your ports to avoid the creation of new copies.
- Move message filters to your ports and receive locations.
- Optimize your schema. Large schema reduce performance.
- Use distinguished fields in orchestrations rather than properties or XPath.
- Use pass-through pipelines whenever possible.

I will surely come back again on more performance & bottleneck analysis.

Exposing a simple BizTalk orchestration as WCF service

Very good article about the ESB solution approach. It explains how you can expose the BizTalk orchestration in WCF Services!

Please visit below link for full article.

Tuesday, December 18, 2007

Business Intelligence Demonstration - Case Study Video (SSAS/SSIS/SSRS)

Great video and case study for Microsoft BI. I will recommend to spend your 27 minutes behind it, it's really worth.

Microsoft BizTalk Adapter for SAP – Part 1 (Introduction)

The Microsoft BizTalk Adapter v2.0 for mySAP Business Suite i s a "no-code" connectivity solution that integrates SAP data seamlessly from SAP R/3 4.X and R/3 6.20 (Enterprise) systems with BizTalk Server. The adapter provides services to support the transport of IDocs, BAPIs, and RFCs (including customized IDocs) inbound and outbound between BizTalk Server and SAP.

The Adapter supports the following SAP schema types:

  • Business API (BAPI)
  • Intermediate Document (IDoc) versions 2.0 and 3.0
  • Remote Function Call (RFC)

Multiple IDoc, BAPI, and RFC schemas can be selected for each adapter in stance. The Adapter provides the following functionality:

  • Supports synchronous and asynchronous transactions
  • Provides full transactional support for all IDoc, BAPI, and RFC schemas
  • Converts SAP structures to XML Schema Definition language (XSD) format

Microsoft BizTalk Adapter for mySAP Business Suite includes:

  • Design-time (using the standard functionality available in the BizTalk adapter framework)
  • Schema generation wizard
  • BizTalk Explorer configuration pages
  • BizTalk Administrator configuration pages
  • Run-time
  • Transmitter -The transmitter sends IDocs, BAPIs, and RFCs to the appropriate SAP system via the .NET
  • Connector. If the SAP system is not available, the transmission can be retried, or sent to a suspend queue,
  • Depending on user configuration.
  • Receiver -The receiver acts as a listener, waiting for IDocs, BABIs, and RFCs to be sent by SAP via the .NET
  • Connector.
  • More than one receiver can be configured, in order to receive data from multiple SAP systems, and to
  • Provide load balancing.
  • Exception handling -The adapter provides full transactional support between SAP and BizTalk Server. If
  • There is a failure in receiving or sending, the transaction is rolled back.

Microsoft BizTalk adepter comes with two components, first is runtime module called BizTalk/SAP adepter, which is communicating with SAP. Another is design time component that integrates Visual Studio design time functionality to adepter.

This Wizard is use to connect to SAP through a port defined on machine, search lists of SAP functions (BAPIs and IDOCS), and select the function to call. The wizard generates schema (xsd) for messages you need to receive/ send from SAP. If the selected port is two way (Request/Response) then it generates two root schemas for the request and the response types.

BAPI/RFC Interface

The RFC Library offers an interface to a SAP System. The RFC Library is the most commonly used and installed component of existing SAP Software. This interface provides the opportunity to call any RFC function in a SAP System from an external application. Moreover, the RFC Library offers the possibility to write a RFC Server Program, which is accessible from any SAP System or external application. Most SAP Connectors use the RFC Library as communication platform to SAP Systems. SAP provides the RFC API in the form of C -routines, incorporated in the RFC Library. The RFC Library is available on all SAP Supported Platforms. The RFC Library is forward and backward compatible, i.e. an older release of the RFC Library can communicate with a SAP System at a higher version and vice versa.

IDoc Interface

IDoc, or Intermediate Document, is a standard SAP document format that allows to link different application systems via a message-based interface. The three main goals of IDocs are:

  • Structuring the exchange of business documents so they are automatically processed.
  • Reducing the structural complexity of different application systems to as simple a structure as possible.
  • Extensive exception handling before posting data to the application.
  • IDocs are defined and considered on two levels, the technical and the business level. The former allows them to support application-independent functions, e. g. routing and handling technical exceptions.


  • MSDN Library
  • MS SAP Adepter Documentation

Very soon I will present the next part of the SAP Adepter Series.

Tools for testing BizTalk Application and Landscape

Tools for testing BizTalk Application and Landscape

I have seen this links on the Darren Jefford's Blog. He is Principal Consultant at Microsoft UK. I am just putting consolidated list of resources across you. Enjoy the pie!

PerfMon Counter spreadsheet

BizTalk Documenter

LoadGen 2007 (now includes WCF, Sharepoint 2007 support amongst others)

Old version of LoadGen 2004 (recommend you use the 2007 release moving forward)

Codename "Oslo" - I am delighted

Codename "Oslo"

Microsoft has just made the first public announcement of “Oslo” at the SOA and BPM conference, at a high level “Oslo” is an overarching initiative across multiple products and Microsoft divisions, in fact the first release as announced today will be made up of BizTalk Server “6”, BizTalk Services “1”, Visual Studio “10”, System Center “5” and .NET Framework “4.0”.


Oslo is driven out of Connected Systems Division (CSD) which is the almagamtion of the BizTalk, WCF, WF, ASMX, MSMQ, .NET Remoting, etc.

Sending Email using Biztalk orchestraion

Sending Email using Biztalk orchestration

Very good video tutorial available on YouTube. I will recommend you to watch the Video to understand the play with Email or SMTP adepter in BizTalk.

Very good informative work Nikhil!

Please copy paste below link to address bar it will direct navigate you to the video location.

Hope it helps you!

RFID Anywhere Integration with BizTalk

RFID Anywhere Integration with BizTalk

A very good presentation on RFID implementation for BizTalk Server 2006.

BizTalk 2006 Pattern Wizard

BizTalk 2006 Pattern Wizard

This presentation is on BizTalk 2006 Patterns Wizard which is mostly very unexplored part for many BizTalk professional, I would really recommend you to see the video and know the superb rapid development facility available to implement very complex integration patterns.

Thursday, December 6, 2007

BizTalk 2006 TechNet Posters

Some really good posters for BizTalk 2006 / R2 and other Microsoft technology
It's really interesting...

BizTalk Server 2006 Capabilities

BizTalk Server 2006 R2 Capabilities

BizTalk Server 2006 R2 Runtime Architecture

BizTalk Server 2006 R2 Scale-Out Configurations



Active Directory

Windows Server 2008 (Active Directory & Feature Components)\

.NET Framework 3.5 Common Namespaces and Types

2007 Office System Document: Developer

Visual C# 2008 Keybinding Reference

Visual Basic 2008 Keybinding Reference

Visual C++ 2008 Keybinding Reference

Visual C++ 2005 Keyboard Shortcut Reference

Visual Basic 2005 Keyboard Shortcut Reference

Microsoft® Silverlight(tm) 1.1 Alpha Developer Reference

PnP Overview

Smart Client

Security Posters