Tuesday, September 20, 2016

Exception Handling block gives error - Use of unconstructed message

I got this compile time error today while trying to build the solution am working upon now. And this error was thrown by Exception Handling Block.

Why it happened

Upon exception, an email is sent to emailAdress which is available in the incoming message, the first message received in Orchestration (MSG_Main). For this that particular field is marked as distinguished and it is checked, if it is blank no mail sent and if not blank then send mail.


But exception block reports it as error when compiling the solution, for it the MSG_Main is not constructed. Its confusing as MSG_Main is received and that actually triggered the orchestration then why the error?

The reason is Exception block considers following - exception can occur anywhere within the scope, even before you receive the message, so the only thing available to exception block is the exception object from that scope(nothing else from that particular scope) and the things before the scope. And as can be seen from image below, the First Receive shape is in scope and that's the reason for error.

What to do

In order to get rid of this I moved the receive shape out of scope and error vanished!!!

Monday, September 19, 2016

Sending file as attachment using BizTalk Orchestration

The Simple Mail Transfer Protocol (SMTP) adapter is used to exchange information between a server running Microsoft BizTalk Server and other applications by means of the SMTP protocol. BizTalk Server can send messages to other applications by creating an e-mail message and delivering it to a specified e-mail address. BizTalk supports both ways - Static configuration and Dynamic configuration of SMTP adapter.

You would need to send email from Orchestration for various scenarios like dynamic mailto address/ Subject/Body or in workflow notification is to be send  where Subject changes depending upon  various scenarios ex. on success -- Subject is to be sent is "Transaction/Process completed successfully" and in error scenario "Transaction/Process failed" etc.

To demonstrate how to configure SMTP Port dynamically and how to add attachments, have used following scenario:


Keeping it simple, you receive a message which has details of email to be sent in it. You construct email message and configure SMTP adapter using those details.

Building the Solution:

1. Create schema for message holding email details

2. Create orchestration

Create an orchestration containing a Receive shape to receive Email_Details message from a static one way Receive port  followed by a Construct message shape containing a Message assignment shape where SMTP adapter is configured dynamically, and a send shape to send Email message through Dynamic port(code below). We also need to create two message,one for the input message based on Email Details schema and one for the output message based on String datatype.

SMTP.Attachments is the property available with SMTP adapter which provides a way to pass the path of files to be attached. If more than one fie is to be attached then, paths can be concatenated using pipe(|).

Constructing Email message and configuring dynamically SMTP server

MSG_Email= System.String.Empty;

MSG_Email(SMTP.Subject) = MSG_EmailDetails.Subject;

MSG_Email(SMTP.From) = MSG_EmailDetails.FromAddress;

MSG_Email(SMTP.SMTPHost) = "DemoMachinePM";

MSG_Email(SMTP.EmailBodyText) = MSG_EmailDetails.Body;

MSG_Email(SMTP.EmailBodyTextCharset) = "UTF-8";

MSG_Email(SMTP.Attachments) = MSG_EmailDetails.Attachments;

//For sending email to cc address use below line of code
MSG_Email(SMTP.CC) = MSG_EmailDetails.CcAddress;

MSG_Email(Microsoft.XLANGs.BaseTypes.ContentType) = "text/plain";
Port_Dynamic_SendEmail(Microsoft.XLANGs.BaseTypes.Address) = "mailto:"+MSG_EmailDetails.ToAddress;

I have set MSG_Email as System.String, as I don't intend to do anything with BizTalk message(MSG_EmailDetails). In case I needed to send the BizTalk message as an attachment then I would set MSG_Email as System.Xml.XmlDocument and assign the MSG_EmailDetails to it.

MSG_Email = MSG_EmailDetails;

And to send this also as an attachment would add following code

MSG_Email(SMTP.MessagePartsAttachments) = 1;

The send port used to send email is set as Dynamic one way (only send) with Pass Thru pipeline and address is set to toAddress.

3. Deploy and Test

Sign the application and deploy it, create a Recieve port with Receive Location having XmlReceive Pipeline. Send port would be already available as it is created while deploying solution because of it's dynamic binding.

To test the application, create the instance of MSG_EmailDetails and populate it with values and drop the file at location which is binded to the receive location.

Case 1: Input file (with one attachment info)

<ns0:Email xmlns:ns0="http://EmailAttachmentDemo.EmailDetails">




  <Subject>Email with attachment from demo server</Subject>

  <Body>Dynamic Email with attachment from demo server.</Body>



Output (Email delivered with one attachment)

Case 2: Input file (with two attachment info)

In order to sent multiple attachment, '|' (pipe) is used as delimeter(marked in red below sample)

<ns0:Email xmlns:ns0="http://EmailAttachmentDemo.EmailDetails">




  <Subject>Email with attachment from demo server</Subject>

  <Body>Dynamic Email with multiple attachment from demo server.</Body>



Output (Email delivered with two attachment)
Case 3: Sending Email Message also as an attachment

For sending MSG_Email message as attachment use below line of code


               MSG_Email(SMTP.MessagePartsAttachments) = 1;

As can be seen mail is received by address in cc along with EmailMessage as attachment too

1.The location where attachments are, should be accessible
2.Toemail address must not be empty and its size must not exceed 256 characters
3.CCemail address size must not exceed 1024 characters

Download Sample:

Sunday, September 18, 2016

The server response was 550 5.7.1 unable to relay for

While working on a demo solution for Email functionality of BizTalk, I created a a simple application in Admin Console, with a static send port configured with SMTP adapter. 

Send port gets invoked with arrival of trigger message from receive port, but mail wasn't sent due to following error 

 " The server response was 550 5.7.1 Unable to relay for ....."

Below is the SMTP Adapter Handlers properties, there was no problem

Why it happened

This is an error from your SMTP mail server. It indicates that your mail server is not configured to allow you to send mail through it and it could be for following reasons.

1.The outgoing mail server could not identify the sender.
2.There are some issues while authenticating the sender on the server and thus restricting them to send emails.
3.The receiver domain’s recipient policy has imposed restrictions on the sender’s domain.

By default, the SMTP virtual server allows relaying only from authenticated users. This configuration is designed to prevent unauthorized users from using your SMTP server to relay mail. The virtual server's default configuration allows only authenticated computers to relay mail.

What to do

Go to IIS6.0 Manager –> SMTP Virtual Server Properties –> Go to Access tab-> Click on Relay button

Click on Add button and add the ip adress or domainname of machine which you want to be included in the list

That's it. Now mails are sent successfully.

Saturday, September 3, 2016

No BizTalk Configuration database(s) found on server XXXX

We have setup a dev env -- a Virtual machine where BizTalk and SQL Server are both installed on it. Development and deployment is done on it through RDC. 

As the number of team members increased we decided to install BizTalk development components on each team members local machine and after development done, deploy on the Server (VM) and for that we added all the users in BizTalk administrator group on the server.

But they were not able to deploy the application, due to following error  

  <No BizTalk Configuration database(s) found on server "xxxx”.>

It was strange because we were able to deploy on the server with same user login, and not when trying from their local machine.

Upon looking on following blog: https://blogs.msdn.microsoft.com/apacbiztalk/2015/11/02/error-no-biztalk-configuration-databases-found-on-server-when-deploy-biztalk-application-in-vs-if-your-account-is-removed-from-sysadmin-role-in-sql/

This issue does not occur in SQL server 2008 R2 but with SQL server 2012, the solution is to grant view any definition permission to specific user which needs to deploy BizTalk application in VS.

Query to be used:

USE master 

We used 

USE master 

GRANT VIEW ANY DEFINITION TO “BizTalk Administrator group”

Sunday, August 14, 2016

Begineer to BizTalk Expert : Interview with Salvatore Pellitteri

Welcome to 22nd  interview of the series, today's expert is Salvatore Pellitteri.

He is Developer Team Manager in Microsys Srl. He works on integration application projects using BizTalk Server and on business intelligence projects using SQL Server platform.

Salvatore works with BizTalk Server since the first version and has worked in many big integration project with several Italian enterprise organizations using many technologies like SAP, Oracle, SQL Server, AS400, J.D. Edwards and HL7.

This year he has obtained the second Microsoft Most Valuable Professional award for BizTalk Server.

Let's begin the interview.....

Mahesh: Who are you and what you do? When did you start working on BizTalk? 
Salvatore: I am Salvatore Pellitteri, I live in Italy near Milan. I have a beautiful wife two wonderful children.I work for more than twenty years as a computer consultant. My company is Microsys and I am developer team manager.
I deal with application integration projects, data integration, data platform and business intelligence.In 2002, my boss told me that I had to follow an integration project between SAP and MSMQ with BizTalk Server. Biz what? I asked. Should be an Enterprise Application Integration platform. He replied. In short, so I started. What I remember is that I had to study really so much.

Mahesh: How did you mastered BizTalk (Learning path, amount of time)? 
Salvatore: It is difficult to say how much I had to study. During the first project I had to read a lot of documentation and I did extensive testing with my colleagues before we get to understand how it worked. A few years later I read the book by Dan Rosanova that made me understand how BizTalk works. It was enlightening. Later I started to read many articles, blogs, by Sandro Pereira, Michael Stephenson, Paolo Salvatori. Then I worked for about two years with Nino Crudele from which I learned a lot. So every experience gave me something. I can tell you that I started to study in 2002, I do not know when I'll finish.

Mahesh: Which are the major projects you handled so far?
Salvatore: Well, I can think of a project where I had to integrate the Italian public authority of the energy production with power generation systems.
It was really interesting because of the criticality of the process. Every application system was new for me so I think it was a great challenge.
Another nice project was to implement a true enterprise service bus for a large company that produces and distributes fuels.
The interesting thing was to have integrated many very different systems with each other and created a set of efficient and homogeneous communications.
Another great experience was to have integrated an order management system, that generates orders by an Internet portal, with an automated warehouse.
In a few seconds, the user confirms an order, the message is communicated to the warehouse that assembles the package and in a few minutes is ready for shipment.
This looks like a simple process, instead is definitely a series of activities and controls that make the process really critical and complex.

Mahesh: How do you see BizTalk compare to other integration platform?
Salvatore: BizTalk is the best !!! No, I am joking. Really I don't know, I don't be able to compare BizTalk with other product or maybe I don't want to do that.

Mahesh: What as per you is must to know to become an Integration(BizTalk) Expert?
Salvatore: You have to be curious. It is simple. You must have the desire to understand how an application system works, even if you do not know that system, you have to learn what are its interfaces and what is the best way to use them.
In addition to this you have to like to know the functional processes and not just the technical aspects. We can not develop good communication if you do not know the subject. What kind and when an information should be exchanged.

Mahesh: What are your thoughts on forums,blogs and articles etc.?
Salvatore: When I started doing this job there was nothing like this. The systems were much simpler and it was very hard to understand things. Today I think that is not possible doing my job without having the support of articles and blogs.

Mahesh: Your suggestion to a newcomers? What should be approach to get sound knowledge in BizTalk?
Salvatore: Read the book by Dan. J

Mahesh:There are many tools from community which support BizTalk in some or the other way(like BTDF, Bizunit etc), what do you say about it? Which ones you would recommend?Why?
Salvatore: There isn't one in particular that I recommend. I use a lot the "BizTalk Mapper Extensions UtilityPack", but over time I gathered a library of components that I use frequently.
The important thing is that when you start a project you have clear what are your tools.

Mahesh: What are your thoughts around BizTalk certification?
Salvatore: I think that Microsoft in recent years has lost interest in creating a certification path for BizTalk.

Mahesh: What is the future of BizTalk?
Salvatore: Good question. I think that Microsoft might want a unified integration platform that covers your needs on-premises and on the cloud. How and when it will get I do not know.

Mahesh: Any thoughts on cloud? What motivates you to do the community work?
Salvatore: The cloud is the future. I don't think it's anything to think about. I am sure that the community is going in that direction and soon you will see even more noticeable results.

Mahesh: Being MVP, do you feel that responsibilities get added? What is your thought on MVP?
Salvatore: Being MVP, gives you a way to be closer to the community, but also the responsibility to be a reference person. Being part of a community means contributing, then take part of events, write articles and all this takes time.
Also change people's expectations. From an MVP, you expect much more and this leads you to try to give something more.

Mahesh: As per the Roadmap provided by Microsoft,LogicApps can be run on-premise in addition to Azure.Do you think Azure Stack Logic Apps on prem will supersede BizTalk Server?
Salvatore: Let's say that when I talked about a unified integration platform was referring precisely to Logic Apps. But then again, it is my thought and not what I know that Microsoft will do.

Mahesh:From my perspective, Microsoft keeps coming up with Overlapping technologies like recent ones MABS and Logic Apps, in some situation it gets puzzling. What you say?
Salvatore: I think that MABS is died. Microsoft is doing evolve Logic Apps and that is the direction to take.

Thanks a lot Salvatore for sharing your insights and experiences, this will surely benefit many !!!

Feel Free to ask questions to Salvatore in the comments!!!!!!!! 

Related Post:

Wednesday, June 22, 2016

Begineer to BizTalk Expert : Interview with Alan Smith

Welcome to 21st  interview of the series, today's expert is Alan Smith.

Alan Smith is a Microsoft Azure developer, trainer, mentor and evangelist at Active Solution in Stockholm. He has a strong hands-on philosophy and focusses on embracing the power and flexibility of cloud computing to deliver engaging and exciting demos and training.

Alan has held the MVP title for 10 years, and is currently MVP of the year for Windows Azure. He is in the organization team for the CloudBurst conference and the Global Windows Azure bootcamp.

Let's begin the Interview....

Mahesh: Who are you and what you do?
Alan: I’m Alan Smith, I’m an Azure MVP, I’m from the north of England, and living in Stockholm, Sweden. I work for Active Solution, a company that specializes in system development and leveraging Microsoft Azure technologies for our customers.

Mahesh: When did you start working on BizTalk?
Alan: I started working with BizTalk Server in 2004, when BizTalk Server 2004 beta 2 was released.

Mahesh: How did you mastered BizTalk (Learning path, amount of time)?
Alan: Back in 2003, learning BizTalk was a challenge, and took a lot of perseverance. There were no books and very little in the way of documentation. I remember planning to spend a weekend learning BizTalk, and it took me until late Sunday night before I’d even got it installed. After browsing the BizTalk forums I realized it was not just me, there were many others who were struggling to learn the product. This made for a great community atmosphere, with many people sharing ideas. You really needed to read people’s blog posts and use the forums to learn about BizTalk.
I would say it took me about two years to get proficient at BizTalk, maybe four years before I would say I had mastered it. Some of the functionality, such as EDI and trading partner management, I still don’t have much experience of.

Mahesh: Which are the major projects you handled so far?
Alan: My first BizTalk project was an order processing system for the Swedish dairies. This started in the summer of 2004, and I was responsible for the architecture and most of the development of the solution. I have since then worked on a number of integration projects in many different industries, such as insurance, retail, public services and education.
I have also been very involved in training, and have delivered the QuickLearn BizTalk courses for over 10 years.

Mahesh: How do you see BizTalk compare to other integration platform?
Alan: I have not has much experience of other integration platforms. I see BizTalk competing very well price wise, and for Microsoft Developers who are used to Visual Studio and .NET it’s a natural choice for an integration platform. Unfortunately Microsoft has not focused as much energy as they could on improving BizTalk in recent versions, so I feel that the product is not where it could have been in competing with other integration platforms.

Mahesh: What as per you is must to know to become an Integration(BizTalk) Expert?
Alan: Having a solid understanding of the BizTalk feature set is a good start. Knowing it’s strengths and weaknesses, and how to get the best out of the functionality for a given scenario.
Integration is a very diverse discipline, and the knowledge you require will vary from project to project. Sometimes you will need to be an expert on web services, other times you will need to know about SAP and the old IBM mainframe that sits in the basement. You may also be working in different industries, so there may well be a lot of business specific information you need to know about.
Politics can always be an issue in integration projects, you are dealing with different teams who work with different technologies, and may will have a very different working culture. In some integration projects, politics can be the biggest challenge.

Mahesh: What are your thoughts on forums,blogs and articles etc.?
Alan: I learnt BizTalk thanks to the blogging community. In 2014 I published the first edition of “The Bloggers Guide to BizTalk”, a free CHM format e-book containing the best blog posts from the BizTalk community. This was before there were any books on BizTalk, so it became the “must have” resource for BizTalk developers. For the next couple of years I added blog posts and published it every month or so.
In those days the forums and blogs were the only way to learn BizTalk, but nowadays there are many good books around. It’s funny to see the same names appearing in all the best BizTalk books, blog posts and forum post replies. It seems there has always been a very strong BizTalk developer community, and it’s great to be part of it.

Mahesh: Your suggestion to a newcomers? What should be approach to get sound knowledge in BizTalk?
Alan: Today there are so many great books on BizTalk Server. Many of them are written by authors who were contributing to The Bloggers Guide to BizTalk. My suggestion would be to start by reading on-line to get an idea of what BizTalk is, and what it can do.
Bear in mind that integration is a big discipline and BizTalk, although it’s a great product, is not always the best tool for the job. Many of the best BizTalk / integration experts know BizTalk well, but they are also experienced with other integration products and technologies. Having a broad knowledge of integration tools, technologies and techniques is a valuable asset.

Mahesh: There are many tools from community which support BizTalk in some or the other way(like BTDF, Bizunit etc), what do you say about it? Which ones you would recommend?Why?
Alan: It’s great to see a lot of community contributions here. I have used BTDF a lot, starting in 2004, when it was pretty much the only way to deploy BizTalk applications. BizUnit is also useful in many testing scenarios.
The tool that has impressed me the most was the BizTalk Orchestration Profiler. It’s very ingenious in the way it combines the orchestration tracking data with the images of orchestrations to create a visual representation of the orchestration execution flow and performance.

Mahesh: What are your thoughts around BizTalk certification?
Alan: I have taken all the BizTalk exams since 2004. For the 2004 exam I spent a lot of time preparing, and learning the feature set that I was not experienced with. For the other exams I have not done any preparation, and managed to pass with a fairly good score with my knowledge and experience. I think the exams are worthwhile if a good BizTalk developer can pass based on their hands-on experience of the product.
It would be nice to see a BizTalk administration exam. This is an important discipline, and providing a certification path would be a good way for BizTalk developers and administrators to have their skills recognized.

Mahesh: What is the future of BizTalk?
Alan:As I see it, BizTalk has been in maintenance mode since about 2010. There has been talk of a number of Microsoft products and technologies replacing BizTalk (Oslo, Dublin, AppFabric, MABS, Logic Apps etc.) but, so far, none of them has succeeded.
The core architecture of BizTalk is rock solid, and has survived, pretty much unchanged, for the past decade. I think that BizTalk will stay around for another couple of versions at least. I don’t see anything on the horizon that will replace it.

Mahesh: Any thoughts on cloud?
Alan: I was lucky enough to be at PDC 2008 in Los Angeles and saw the Azure announcements in the keynote. I’d really gone there to hear the latest news on the “Codename Oslo” technologies that were planned to replace BizTalk, but I had spent some time working with what is now the Azure Service Bus, and was interested in the new cloud-based technologies. My allegiance has shifted from BizTalk to Azure, and I have been an Azure MVP for a number of years. 
The main reason I learned BizTalk was that it was new, it was cool, it was challenging to work with, and it was evolving rapidly. All these are now true of the Azure technologies, and I’m involved in a number of projects that aim to leverage cloud-based services to our customers.
Microsoft has a great offering with Azure, it has taken a number of years for the technologies to mature and gain acceptance with customers, but there are now a lot of opportunities to use these technologies in many customer scenarios.

Mahesh: What motivates you to do the community work?
Alan: I enjoy sharing my ideas and experience with others, so I have focused a lot of energy on delivering training courses, both classroom courses, and on-line content for PluralSight. I also like to engage with the development community, and have presented at a lot of conferences and user groups.
One of the best events I have been involved with has been the Global Azure Bootcamp, which has been running for four years. Together with a few friends, we had a crazy idea of running a hands-on day learning Azure technologies on a Saturday, and running this at a few different locations to build up a community of events. For the past two years we have had almost 200 locations around the world. It’s a lot of hard work, but seeing the twitter stream, and the photos of people from so many different countries and cultures all focusing on the same learning experience is a great buzz.

Mahesh: Being MVP since 2005, do you feel that responsibilities get added? What is your thought on MVP?
Alan: I have never felt that as an MVP I have any responsibility to Microsoft. I see it more as a reward for people who contribute to the community. I have got a lot out of the MVP program over the past 10 years, it has given me the opportunity to meet with so many passionate developers, and share ideas and inspirations about technology and how that can be promoted in the community.
The MVP summit is awesome, in that you get to meet and mingle with like-minded people from many different communities and backgrounds who all share the same passion and energy for the technologies they work with.

Mahesh: As per the Roadmap provided by Microsoft,LogicApps can be run on-premise in addition to Azure.Do you think Azure Stack Logic Apps on prem will supersede BizTalk Server?
Alan: Personally I don’t see this happening. We have seen a number of technologies trying to use a graphical development tool to replace BizTalk (Workflow Foundation, Azure AppFabric Composite Apps, MABS). These technologies are pretty much redundant now, and BizTalk is still the weapon of choice for many integration scenarios.
I think many of these technologies try to suit a number of scenarios. Workflow Foundation was a general-purpose workflow technology, and therefore lacked the tighter coupling to message orientation that BizTalk orchestrations provided. I see the same with Logic Apps.

Mahesh:From my perspective, Microsoft keeps coming up with Overlapping technologies like recent ones MABS and Logic Apps, in some situation it gets puzzling. What you say? 
Alan: I’ve been dealing with this for over 10 years. We have seen many technologies come and go (Workflow Foundation, Windows Server App Fabric, Codename Oslo, Azure App Fabric, MABS etc.). It’s great to see Microsoft innovating here, without that innovation so many of the technologies we use today would not exist. It’s also good to see Microsoft making these technologies available for developers to experiment with and share their feedback. Sometimes what seemed like a good idea at the time may fail as a product, other times it may become a core service that many people leverage in projects.
It could be argued that the Topic and Subscriptions in the Azure Service Bus overlaps with the functionality in the BizTalk message box. They both support publish-subscribe messaging, both have correlation, promoted properties, failed message handling. I have used both of these technologies in a number of projects and, when used in the right scenario, they both provide solid functionality for solving our implementations. I also found BizTalk developers are able to do great things with the Service Bus, as they know the best techniques for working with asynchronous message processing.

Thanks a lot Alan for sharing your insights and experiences, this will surely benefit many !!!

Feel Free to ask questions to Alan in the comments!!!!!!!! 

Related Post:

Monday, June 20, 2016

Error while retrieving or generating the WSDL.Adapter message: Retrieval of Operation Metadata has failed while building WSDL at TypedProcedure/dbo/SPXXXX

I was to generate schema from Stored procedure, thus used Consume Adapter Service wizard -- selected the SP and while the process got below error

"Error while retrieving or generating the WSDL.Adapter message: Retrieval of Operation Metadata has failed while building WSDL at 'TypedProcedure/dbo/SPName' "

Why it happened

From the error details it was clear that there was permission issue, but how can that be -- I had generated schemas against same database. So checked the permissions of the account which I was using -- and found I have all rights.

What to do

In Actual the solution to this error is to provide the required permission on database level. But I already had it. My  colleague suggested to remove all the access, save it and reassign all the access - did as suggested and it worked.
It's weird but sometimes such things happens :) 

Friday, May 27, 2016

Begineer to BizTalk Expert : Interview with Nick Hauenstein

Welcome to twentieth interview of the series, today's expert is Nick Hauenstein.

Nick Hauenstein is an integration developer, consultant and trainer based in the greater Seattle area. He specializes in BizTalk Server, Azure App Service, as well as the data formats, protocols, and frameworks that surround them.

As a consultant he has traveled all over the country to help build, refine and optimize complex mission-critical BizTalk Server based integrations in the healthcare and financial verticals -- helping teams to remove blocking issues, and satisfy low-latency requirements and stringent SLAs. In addition he has helped teams automate their testing, builds and deployments of BizTalk Server solutions.

He has worn many hats over the years as a small business owner, software development engineer, tester, and a Scrum Master. He is also an avid blogger, open source contributor, as well as the creator and maintainer of the T-Rex Metadata Library for Azure App Service.

Let's begin the Interview....

Mahesh: Who are you and what you do?
Nick: My name is Nick Hauenstein, and I write software, and help others write software (either directly, through tools/frameworks, or through training).

Mahesh: When did you start working on BizTalk?
Nick: I started working with BizTalk Server with the 2006 version of the product back in early 2008. I transitioned into working with BizTalk Server after I had taken a break from development to explore what it would be like to be on the QA side of the fence. While that had its own joys, nothing compares to the sheer ecstasy of crafting executable code from thought.

Mahesh: How did you mastered BizTalk (Learning path, amount of time)?
Nick: Even though I’ve worked with the product for more than 8 years now, I wouldn’t say that I’ve fully mastered every aspect of the product. I’ve experienced the full surface area, and have used 80-90% of it in live integrations over the years, but I feel like there are still techniques to be discovered. Take for instance Charles Young’s implementation of Backwards Chaining in the Rules Engine. While the concept wasn’t new per se, I would still classify it as a breakthrough that took 6 years after the introduction of that version of the runtime.

In terms of how I learned BizTalk – that was one of the perks of the job. My first 5 days on the job were spent in QuickLearn Training’s BizTalk Server Developer Immersion class. I still have the certificate to prove it. The class opened my eyes to the possibilities of enterprise integration. In my job I also had the privilege of effectively working through our entire BizTalk Server course catalog, while testing and improving content.

From there, it was on to Professional BizTalk Server 2006, which provides an excellent overview of the runtime, as well as digging deep into the extensibility of the product.

I think the experience that grew me the most as a BizTalk developer though, wasn’t any of the integrations, books, or training. Instead it was working alongside the team that built out the ESB Toolkit. The ESB Toolkit effectively bends the BizTalk Server engine to do its will, and uses full knowledge of the internals to accomplish it. For example, the Forwarder pipeline component. Take a while just to dig in and understand what’s going on there, and you will understand how the EPMRR Correlation Tokens work to route messages to the back channel of Request/Response receive ports – and you will understand how to build a request/response scenario that involves a single message box hit with 2 pipeline executions (squeezing the maximum possible performance out of the BizTalk Server messaging engine).

Mahesh: Which are the major projects you handled so far?
Nick: I’ve done quite a few integrations in the healthcare vertical and a few in finance as well. For example, processing X12 interchanges (both multi-gigabyte batches, as well as quick request/response interchanges), and using the BRE to make decisions about how orders for securities should be processed. I’ve also done BizTalk Server rollouts, and build automations.
I’ve built official product demos, sessions for conferences, and training classes like crazy over the years as well. Along the way, you might have noticed that I’ve written an unholy number of words about BizTalk Server and Microsoft Azure as well.

Mahesh: How do you see BizTalk compare to other integration platform?
Nick: It depends on the platform. However, BizTalk does provide a thriving (and growing) community with a plethora of extensions. It boasts a 16 year life span thus far with thousands of developers who have learned what it takes to make rock solid mission critical integrations. It’s backed by one of the biggest names in technology, and runs on top of a proven platform (Windows Server + SQL Server). Additionally, it has a story for on-premises, cloud, and hybrid connectivity. It has a team that is committed to its future and is delivering new capabilities that extend its cloud reach.

It’s positioned better than any platform out there. There might be a few points here or there that a competitor might offer up, but none are positioned as strongly at the moment.

Mahesh: What as per you is must to know to become an Integration(BizTalk) Expert?
Nick: I would say to become an expert you have to do it, you have to study it (e.g., training courses, books, blog posts), and you have to continually hone your craft. Don’t settle for being a line cook, strive to be a chef.

Mahesh: What are your thoughts on forums,blogs and articles etc.?
Nick: Obviously I’m biased here having written hundreds of pages of blog posts on the subject, but I think they’re critical in growing your understanding and skill as a BizTalk Server developer. It’s also interesting to watch how the community hive-mind can make brilliant mistakes together. Embracing architectural fads for a time, and then decrying them a year later as utter foolishness. Sometimes, we all grow together, and that’s a healthy thing.

Sometimes there’s even a kind of catharsis as you’re reading a blog where someone is fighting the same fight with a specific integration challenge that you too have faced.

Mahesh: Your suggestion to a newcomers? What should be approach to get sound knowledge in BizTalk?
Nick: If you’re new and have the ability, take a training class on the product. This will take you directly into the inner workings of the product, the core pieces, and get you hands on in actually building integrations in short order. I’m 90% certain that I would not be in the same place that I am today if it weren’t for starting with proper training right out of the gate.

Mahesh: There are many tools from community which support BizTalk in some or the other way(like BTDF, Bizunit etc), what do you say about it? Which ones you would recommend?Why?
Nick: I think they’re mostly all fantastic. BTDF and BizUnit are a given. Again, maybe a little bit biased, but I’m a big fan of the BizTalk Server 2013 R2 Pipeline Component Wizard. I’m also a heavy user of Thomas Restrepo’s Pipeline Testing library – an absolutely indispensable tool for validating custom pipeline components and even custom pipelines.
I also found Richard Seroter’s SSO Config Store Application Manager to be quite helpful for a time – though it was superceded for me by Microsoft’s similar offering.

Mahesh: What are your thoughts around BizTalk certification?
Nick: As far as I know, it’s not possible to sit the exams anymore. That’s a darn shame. I know that there have been efforts to make this happen again, but I’m sure that it gets prioritized lower than actually building a first class product.

I hold two of the certifications, and I’m pretty proud of them. Even though some people don’t value a piece of paper you get for answering questions on a test, I personally value the work that went behind it. That knowledge was gained through years of blood, sweat, and tears – it wasn’t just a bulk fact memorization exercise. So for my own part, I highly value my BizTalk Server certifications.

Mahesh: What is the future of BizTalk?
Nick: Well it’s not a mystery, that’s for sure. The 2016 version of the product is just around the corner. I already have the CTP installed, and have been working on updating a small sampling of the materials (samples, tools, hands-on-activities, etc…) that we’ve built over the years.

Microsoft got it right finally. Jim Harrer mentioned, in the keynote for the Integrate 2016 conference that the balance between cloud and on-premises has to be leveled. Both must be critical pieces of Microsoft’s strategy. It can’t be just BizTalk Server, or just Logic Apps – it needs to be both. Both are providing unique benefits based on either where they live or their specific architecture.

The BizTalk Server architecture looks like it was perfectly crafted by a chef who knew which flavors ought to go together to form the perfect meal every time. On the other hand, Logic Apps provide a buffet, and it’s up to each developer to craft their own meal – a dangerous, yet powerful proposition that allows us to break the rules and do great things (or just break things).

I think BizTalk Server has a bright and long road ahead – both on-premises and in Azure IaaS with the 2016 version.

Mahesh: Any thoughts on cloud?
Nick: The cloud will be where most logic lives in the world of IoT and the coming world of untethered Holographic computing (where we’re already seeing lower general purpose processing power in favor of spending precious power resources on the HPU). I got mildly made fun of when first mentioning the application of Logic Apps to holographic computing back in early 2015, but I really do believe that Holographic computing + virtual assistants (like Cortana) with Logic Apps as our action brokers are going to play a larger role in the future, and most certainly live on the cloud.

Mahesh: What motivates you to do the community work?
Nick: I have to craft a lot of tools, and do a lot of knowledge transfer in my work. It costs me almost nothing to take those things and give back to others. I’ve also benefited greatly from the larger BizTalk community, and in a sense, it’s the least I can do to pay back a debt of gratitude there.

Mahesh: Being MVP, do you feel that responsibilities get added? What is your thought on MVP?
Nick: Interestingly, it seems that a lot more people look up to you, and/or are interested in what you’re doing. I was surprised for example when I traveled halfway across the globe and found a room full of hundreds of people where a large portion claimed to know who I am and what I do. That’s pretty darn humbling.
I’m not sure that I would say responsibilities get added. The MVP award is given for community contributions in the prior year. Effectively you could receive a reward and then disappear off the face of the planet for that year. You’re still an MVP (based on prior contributions). That said, there are more opportunities that present themselves (user groups, conferences, special events, etc…) that do get added on top of regular work responsibilities. I wouldn’t trade it for anything though

Mahesh: As per the Roadmap provided by Microsoft,LogicApps can be run on-premise in addition to Azure.Do you think Azure Stack Logic Apps on prem will supersede BizTalk Server?
Nick: I don’t think so, at least not in the short term (i.e., 5-10 years). I keep thinking about pipelines here. I can’t see a Logic App, coordinating what amounts to a sequence of HTTP calls, ever performing as well as a BizTalk Server pipeline processing a stream of bytes in a forward-only streaming fashion. Because of that, BizTalk Server will likely always have its place in that world of Microsoft Integration – given that there will always be customers that need that level of performance.
That said, I do see a great opportunities for Logic Apps running on Azure Stack in places like Switzerland – where the financial institutions cannot use the Azure cloud due to lack of a datacenter within the country’s borders.

Mahesh:From my perspective, Microsoft keeps coming up with Overlapping technologies like recent ones MABS and Logic Apps, in some situation it gets puzzling. What you say? 
Nick: It can be frustrating for sure. The thing to remember in those times though is that MABS is GA and did provide important learnings about what it looks like to build integration in the cloud. It was trying to be iPaaS, but was far too chunky (you have to commit to a whole MABS deployment) for what it was trying to do.
Logic Apps is still in preview, so at the moment in terms of GA functionality, the answer is MABS all the way. Logic Apps is far superior though, and is going to be a better choice long term.
I could say I’m upset that they did what they did (building two separate offerings with overlapping functionality), however, I am happy that they did a reboot on MABS based on what I’m seeing with Logic Apps today.

That’s all for now! Thanks for reaching out!

Thanks a lot Nick for sharing your insights and experiences, this will surely benefit many !!!

Feel Free to ask questions to Nick in the comments!!!!!!!! 

Related Post: