Wednesday, October 26, 2016

Begineer to BizTalk Expert : Interview with Abhishek Kumar

Welcome to 23rd  interview of the series, today's expert is Abhishek Kumar.
Abhishek Kumar  is working as Integration Consultant at Datacom New Zealand. His area of expertise include Microsoft BizTalk Server and Azure new  offering like Logic Apps ,Azure functions , PowerBI and Azure API Apps. He is been awarded as MVP by Microsoft for two consecutive years, and I believe very soon will be awarded third time. He is author of upcoming book Robust Cloud Integration with Azure for PACKT publication .

Let's begin the interview.....

Mahesh: Who are you and what you do? When did you start working on BizTalk? 
Abhishek: My name is Abhishek Kumar. I live in Auckland, New Zealand and work as integration consultant with Datacom. My area of expertise includes Integration offerings in Azure and Microsoft BizTalk Server. I have worked with range of customers from different business sectors like aviation, energy and utilities, insurance and I like to put my ideas in front of wider audience and get their feedback. 

Currently I am writing couple of books and one of them is about to hit market soon “Robust Cloud Integration with Azure “.  In this book, we are targeting Microsoft latest IPaaS Integration offering Logic Apps along various other PaaS offerings like API Management, Azure functions, Service Bus etc. 

Mahesh: When did you start working on BizTalk?
Abhishek: I started my BizTalk journey in year 2009.  It was with Indian insurance company ICICI Lombard were my integration journey started.  ICICI Lombard was implementing SOA pattern within their enterprise and I was hired as a single resource for BizTalk Server.  Three years and half year of self-practice (heat and trial with BizTalk) and building services and servers 24*7 given me knowledge for different Integration aspects and how a integration layer simplifies Business.

Mahesh: How did you Master BizTalk Server?
Abhishek: Actually, when we talk of BizTalk Server it has broad range of development and administrative area.  Mastering each component of BizTalk is very difficult. You learn more when you do experiment. As part of my experience I have always get free hand to do my experiment in Integration projects at different level starting from Administrative part to the development.

Mahesh: What are your major projects?
Abhishek: In my earlier reply I mentioned about ICICI Lombard  .Working as single resource for 3 and half year and starting project from scratch it was learning experience. Apart from that as part of my integration journey I worked with different business sectors like aviation, education and learning, Energy and utilities, Banking etc.

Mahesh: How you compare BizTalk with other Integration products? 
Abhishek: BizTalk has evolved with years. It is one of the robust Integration product available and being widely used within different business sectors. BizTalk as a product will live the next generation due to its capability and offerings it provides for on premise and Hybrid Integration.

Mahesh:What as per you is must to know to become Integration expert.
Abhishek:Integration has evolved with cloud Innovation. We are moving ahead of SOA, ESB and moving towards cloud centric services. Now as part of Integration we are targeting devices, mobiles, SaaS products, data science and number goes on. I remember those days when a new blog of Richard  Seroter gives me enough sleepless nights to do my experiments with BizTalk . Now Integration has come a long way and it’s time to innovate and experiment and ultimately you will be expert.

Mahesh: What are your thoughts on forums,blogs and articles etc.?
Abhishek: Forums are place to give your community what you learned from others within the community. It is the place where you meet like-minded peoples and share your knowledge which ultimately help someone to complete or innovate his work.

Mahesh: Your suggestion to a newcomers? What should be approach to get sound knowledge in BizTalk?
Abhishek: Learning is the key of success. Don’t make excuse with yourself :) that I worked till 12 AM. Give some hours might be 1-2 daily for self-learning and experiment.

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?
Abhishek: There are multiple community tools which I have used with BizTalk like BizTalk documenter, BTDF, BRE pipeline framework,BizUnit , DANSHARP   and list is more .  These community tools ease the development and support activity use them.

Mahesh: What are your thoughts around BizTalk certification?
Abhishek: We don’t have any certification for latest version of BizTalk server. Moreover, I would not judge anyone based on certificate as knowledge and experience is gained by hard work and experiment.

Mahesh: What is the future of BizTalk?
Abhishek: BizTalk is here to stay for more years to come and it is promising. Microsoft in the latest roadmap clearly defined the future of BizTalk for On-premise and Hybrid Integration. Hybrid Integration is one of the hottest area where BizTalk will play huge role in coming days along with Logic Apps and API Management. 

Mahesh: Any thoughts on cloud? What motivates you to do the community work?
Abhishek: Cloud is innovative and it is changing the way business is targeting potential customers in Global market. As a technical evangelist, you cannot remain aloof from cloud if you wanted to learn and contribute to global innovation.  Business is targeting wide audience and cloud provide right tool and environment in terms of multiple PaaS, SaaS products with added flavor of BI, Machine learning, IOT etc.

Mahesh:What motivates you to do the community work?
Abhishek: There was a nice Quote from Tord Glad Nordahl one of the BizTalk Expert and Motivational figure “Sharing is caring”. If you care about others and community in which you live then do share Knowledge. Everyone has some spare times, and if you utilize it in helping needy ones its self-satisfactory.

Mahesh: Being MVP, do you feel that responsibilities get added? What is your thought on MVP?
Abhishek: The MVP program is a great program and I am privileged to be part of from 2 years. It has given me chance for global exposure and interacting with brains which are behind the innovation of integration strategy within Microsoft.  MVP program gives motivation and platform to go extra miles and do community activity. 

First of all best of luck with your book and Thanks a lot Abhishek for sharing your insights and experiences, this will surely benefit many !!!

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

Related Post:

Monday, October 10, 2016

Did you know Maximum Matches Limit of Query on Group Hub

I was doing load testing of an application and enabled tracking on it. Upon running the loadtest visited the Group Hub to ensure the number of messages received. 

I ran the query for all the Tracked Service Instances with maximum matches equal to 1000 and got the result.

Out of curiosity I kept on increasing the Maximum matches number, and bingo!!
the limit was reached. As can be seen in image below, 50000 is the maximum valid number.

Maximum Matches in Group Hub page

Although this info isn't much useful but it's good to know the intricacies :)

Sunday, October 9, 2016

The message with Action 'xxx' cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher.

Below is the fault message returned when WCF service was invoked with faultCode as ActionNotSupported

<s:Fault xmlns:s=""><faultcode xmlns:a="">a:ActionNotSupported</faultcode><faultstring xml:lang="en-US">The message with Action '&lt;BtsActionMapping xmlns:xsi="" xmlns:xsd=""&gt;
  &lt;Operation Name="Add" Action="" /&gt;
&lt;/BtsActionMapping&gt;' cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher. This may be because of either a contract mismatch (mismatched Actions between sender and receiver) or a binding/security mismatch between the sender and the receiver.  Check that sender and receiver have the same contract and the same binding (including security requirements, e.g. Message, Transport, None).</faultstring></s:Fault>

Why it happened

When we consume a WCF service using BizTalk WCF Service Consuming wizard few artifacts are generated like XSD's, Orchestration and couple of Binding files.This binding files actually contains configuration pertaining to port, one of them is generated based on metadata obtained from the service consumed and the other has configurations using WCF Custom Adapter which is for you to customize if there is a need.

In order to invoke a method of a service we have to set Soap Action Header on Send Port.This tells which method to call (Add) which is defined by  ServiceContract Interface (ICalculator) under following ServiceContract Namespace( service  using through this port.


If there is only one method to be invoked then simply providing the Action works.But in case there are multiple actions to be invoked using same port then BtsActionMapping is used. (It can be used for single action too)

<BtsActionMapping xmlns:xsi="" xmlns:xsd="">
  <Operation Name="Operation_Add" Action="" />
  <Operation Name="Operation_Subtract" Action="" />
  <Operation Name="Operation_Divide" Action="" />

Where Operation Name should be the name of operation specified in Logical Port which is binded to this physical port.

You can manually create the send port and configure it accordingly, but binding files are already generated -- so I imported it directly and send port was created with SOAP Action header as can be seen.

After importing ,starting the application and while testing got fault message back and as it says their was mismatch in the Action. As can be seen in image below, Operation name is Operation_Add but as seen above action mapped is 

Operation Name="Add" Action=""

What to do

Operation Name which is mapped in SOAP Action header should be the name of operation specified in Logical Port which is binded to this physical port