BizTalk360 Logic Apps Monitoring Capabilities

BizTalk360 Logic Apps Monitoring Capabilities

Modern enterprise IT is hybrid and relies on data from on-premises and the cloud. At the core of Microsoft’s Hybrid Integration Platform, we have BizTalk Server which handles all your on-premises integration scenarios and Logic Apps, which takes care of all the cloud integrations leveraging Azure Services.

BizTalk 360 already provides a comprehensive monitoring solution for your Hybrid Integrations from version 8.3 which introduced Logic Apps State monitoring.

We are excited to announce the addition of Logic Apps Metrics monitoring capabilities to our forthcoming 8.4 release (expected: Apr 2017).

With this release, you will be able to monitor your logic apps using all the available metrics that are provided in the Azure Portal.

Setting Data Monitoring for Logic Apps metrics

The new Logic Apps monitoring capability is just an extension to our already existing data monitoring functionality. You can find the newly added tab for the Logic Apps under the Data Monitoring module.

Alarms - Data Monitoring Page

Click the Add New button to add a new monitor for the Logic Apps. A new Logic Apps Monitor setup window will appear. We can see that all the Logic Apps related settings are grouped under “SET DATA FILTER” section in the below image.

Create Logic Apps Alarm Data Filter

Select the subscription from the list of subscriptions that you have configured in BizTalk 360. Please check this Assist article if you want to know how to add Azure subscriptions in BizTalk360.

Once the subscription is selected BizTalk360 will display all the Logic Apps that are available in that selected subscription. Finally select the metric that you want to monitor.

Once you set the data filter you can specify the notification condition which BizTalk360 will use to send alerts for each violation as shown below.

Create Logic Apps Threshold Condition

Note: Azure metrics can have different units based on the metric type so metrics like Action Latency will have milliseconds as the unit type. In those cases, the threshold condition must be set based on the selected metric.

Save the Logic Apps monitoring schedule. BizTalk360 Monitor service will pick up the new monitor configuration and customers will start receiving the email notifications or any other notification channels based on the Alarm configuration.

You can also view the monitoring results in the Data Monitoring Dashboard as shown in the below image.

Data Monitoring Dashboard Page

Click an alert item to view the details.

Data Monitoring Dashboard Details View Page

Summary

We hope this new capability will enhance the monitoring use case for all our customers having Hybrid Integration scenarios. If you have any feedback, please write to support@biztalk360.com.

get biztalk360

Author: Umamaheswaran Manivannan

Umamaheswaran is the Senior Software Engineer at BizTalk360 having 6 years of experience. He is a full stack developer worked in various technologies like .NET, Angular JS etc.

Azure Logic Apps now has support for Variables

Azure Logic Apps now has support for Variables

Windows Azure Logic Apps now have support for variables inside a logic app!

 

In order to use them, just search for Variables inside the Add Action dialog box.

You have two options:  one to initialize a variable and one to increment a variable.

Currently, Variables support Integer and Float variable types as shown in the image below.  But with all things Logic Apps, this could change later on.

 

Logic Apps Variables
Logic Apps Variable Options - Integer and Float
Logic Apps Set Variable

You can also use Math Functions when assigning and incrementing variables.

An example of this is using the Add internal function to add 5 to another existing variable.  This would look like this:

@add(variables(‘TestingVariables’),5)

You access a variable inside JSON like

@variables(‘<Variable Name>’)

One interesting point to note if that you can not use the output of a variable as the increment for the same variable.

You will get this error when you try to save the Logic App:

Failed to save logic app TestVariables. The inputs of workflow run action ‘Increment_variable’ of type ‘IncrementVariable’ are not valid. Self reference is not supported when updating the value of variable ‘Increment_variable’.
Whats next for Logic App variables

What would you like to see next for variables in Azure Logic Apps?

  • More data types?
  • Cross Logic App variable support?
  • Ability to create more than one variable at a time?
  • More options than just increment and create?
BizTalk Server Databases: Disaster Recovery, Troubleshooting and Best Practices whitepaper

BizTalk Server Databases: Disaster Recovery, Troubleshooting and Best Practices whitepaper

Finally, BizTalk Server Databases: Disaster Recovery, Troubleshooting and Best Practices whitepaper is published! I think this was my crazy project ever because I started during an MVP Summit, probably in 2013 with a very basic whitepaper of 7 pages about Disaster Recovery and my initial reviewer was Tord Glad Nordahl… for some reason I never finished or published the content and last year again during the MVP Summit I revived this idea and basically annoyed all the MVPs that were next to me that day to review the initial document again… bad idea for me because, probably to get revenge on me, they were the most demanding reviewers that I ever had, always asking for more content making, therefore, the whitepaper more complete. So, what was a 7-pages whitepaper becomes a 34-pages whitepaper.

BizTalk Server Databases: Disaster Recovery, troubleshooting and best practices

What to expect about BizTalk Server Databases: Disaster Recovery, Troubleshooting and Best Practices whitepaper

Microsoft BizTalk Server databases and the health of the databases are very important for a successful BizTalk Server messaging environment. BizTalk Server is an extremely database-intensive platform, persisting data to disk with high frequency, and one of the main reasons for that is because one of the primary design goals of BizTalk Server is to ensure that no messages are lost. Therefore, database performance is paramount to the overall performance of any BizTalk Server solution.

There are many factors that you need to take into consideration towards troubleshooting, maintaining, monitoring or recovering from disasters. This paper will provide you some important aspects to consider when working with BizTalk Server databases and addressing the most common and important aspects:

  • Size of databases and tables: performance degrades on High Size of BizTalk databases
  • Important consideration to avoid large BizTalk Databases
  • Separation of data files and log files (SQL Server disk I/O contention)
  • Important consideration BizTalk SQL Settings
  • Available tools for monitoring and troubleshooting
  • Recovering from disasters situations (Clean up your BizTalk databases)

However, the content is very valuable with regards to even preventing a disaster or limit the probability of it. After reading this paper you should be prepared for any disaster but also to preventing for happening because be able to prevent is better than resolving.

Where I can download it

You can download the whitepaper here:

BizTalk Server Databases: Disaster Recovery, Troubleshooting and Best Practices (1.14 MB)
BizTalk360

I would like to take this opportunity also to say thanks to my amazing reviewers: Steef-Jan Wiggers, Nino Crudele, Kent Weare, Mikael Hakansson and Salvatore Pellitteri for taking the time to review this whitepaper. And other people that were involved in making this “project” came true like Tord Glad Nordahl, Lex Hegt, Saravana Kumar and Sriram Hariharan.

I hope you enjoy reading this paper and any comments or suggestions are welcome.

Author: Sandro Pereira

Sandro Pereira lives in Portugal and works as a consultant at DevScope. In the past years, he has been working on implementing Integration scenarios both on-premises and cloud for various clients, each with different scenarios from a technical point of view, size, and criticality, using Microsoft Azure, Microsoft BizTalk Server and different technologies like AS2, EDI, RosettaNet, SAP, TIBCO etc. He is a regular blogger, international speaker, and technical reviewer of several BizTalk books all focused on Integration. He is also the author of the book “BizTalk Mapping Patterns & Best Practices”. He has been awarded MVP since 2011 for his contributions to the integration community.

Stef’s Monthly Update – March 2017

Stef’s Monthly Update – March 2017

March, the last month of Q1 in 2017, a month filled with exciting integration focussed events. After my trip down under I continued my talks at the Integration Monday, SDN Event, my colleagues at Macaw, and the long awaited Global Integration Bootcamp. The latter was a result of months of preparations, and work on labs, meetings and conversations on slack.

Month March

In this month, I wrote a few guest blogs for BizTalk360 blog, which will be published in the next months along with an eBook containing all the labs, we (Eldert, Rob, Tomasso and myself) have created for the Global Integration Bootcamp. The eBook contains the hands on labs for API Management, On premise data gateway, Service Bus, Logic Apps, IoT Hub, Stream Analytics and Event Hub. Basically with this labs, you will touch all the services and products that deal with integration.

Books

Any reading this month, to be frank not so much. I read a lot of new papers, magazines and blogs. However, I do like to mention a new book that has been released on the market about integration that is worth to buy and read: Robust Cloud Integration with Azure.

Music

My favorite albums that were released in March were:

  • Obituary –  Obituary
  • Memoriam – For the Fallen
  • Pallbearer – Heartless
  • Junius – Eternal Rituals for The Accretion Of Light
  • Sleepmakeswaves – Made of Breath Only
  • Moonloop – Devocean
  • Mastodon – Emperor of Sand

Running

In March I did a couple of runs, including a few half marathons, one being the CPC in The Hague wearing a BizTalk360 running shirt.

There you have it Stef’s third Monthly Update and I can look back again with great satisfaction. The Global Integration Bootcamp was a success, which you can read in my previous blog post of this month. I’m looking forward to my trip to Sweden in April and running the full Marathon in Rotterdam on the 9th of April.

Cheers,

Steef-Jan

Author: Steef-Jan Wiggers

Steef-Jan Wiggers is all in on Microsoft Azure, Integration, and Data Science. He has over 15 years’ experience in a wide variety of scenarios such as custom .NET solution development, overseeing large enterprise integrations, building web services, managing projects, designing web services, experimenting with data, SQL Server database administration, and consulting. Steef-Jan loves challenges in the Microsoft playing field combining it with his domain knowledge in energy, utility, banking, insurance, health care, agriculture, (local) government, bio-sciences, retail, travel and logistics. He is very active in the community as a blogger, TechNet Wiki author, book author, and global public speaker. For these efforts, Microsoft has recognized him a Microsoft MVP for the past 6 years.

Global Integration Bootcamp 2017

Global Integration Bootcamp 2017

The Global Integration Bootcamp was held for the first time this last week, events spanning 12 countries, 16 locations, with over 650 attendees. If you went to either the Seattle, WA location (here at QuickLearn Training’s headquarters), or the New York location, then you may have even ran into one of our instructors!

Global Integration Bootcamp 2017 Locations

In the weeks leading up to the day of the bootcamp, Tom Canter with Phidiax arranged a speaker line-up, refreshments, and got the word-out about the event; while over here at QuickLearn Training, we prepared to transform our classrooms into an event space. When the day arrived, all were in good spirits and ready to share knowledge, and get deep into real-world possibilities for hybrid cloud integrations using BizTalk Server and Logic Apps.

Tom Canter presenting at Global Integration Bootcamp

Tom kicked off the event with a keynote and introductions, and got everyone primed and excited for the day. Next up was Tord showing off some of the latest greatest features in BizTalk Server 2016 when used in concert with API Management along with a few surprises Winking smile. I’m not sure what I’m allowed to share and what I’m not, so I will just leave that short, sweet, and to the point.

Gyanendra Gautam teamed up with Ashish Bhambhani (co-authors of the freshly published Robust Cloud Integration with Azure) to show some really slick B2B scenarios with Logic Apps and the Enterprise Integration Pack. Trading Partner and Agreement configuration were shown, along with a special surprise that no one had ever seen before – the world’s smallest X12 834 interchange! It was both a fun and informative session, and if you haven’t at the very least experimented with EDI in Logic Apps – do it. You’ll find your BizTalk Server experience in the same will serve you quite well.

I was up next, wearing a contraption to be explained at a later date. The focus of my talk was to demystify machine learning – and to demonstrate that it’s not just for the sexy applications (e.g., self-driving cars, HoloLens, whatever it is that I’m wearing, etc…). I spent the bulk of my session walking through a simple Hello Azure ML world demo that showed how one could train, operationalize, and then call Azure ML models from within Azure Logic Apps. It is my intention to further refine the models used in this talk and share the full talk, sample code, hardware diagrams, etc. in the summer of 2017.

image

After I was carted away in a straight jacket, Richard Seroter gave a really cool talk on the intersection between microservices and messaging – and how when using both, one can realize seamless multi-cloud scenarios. It was a very well executed talk with fairly complex demos involving node.js services, java services (built using Spring Boot),  and Logic Apps.

image

Undeterred by a ruthless cold that had claimed his voice, Jeff Hollan gave an excellent talk on the concept of serverless applications. He opened with an analogy comparing owning/renting/hiring a car with the equivalent on the server-side. He then looked to where serverless would lead the development of applications (i.e., API composition).

image

Kevin Lam wrapped up the day by going through a list of Enterprise Integration Patterns and the implementation required to make it happen on the Logic Apps side. He also addressed how to increase throughput for Service Bus connections, how to control parallelism, advanced scheduling and other fun goodies that I will likely put to quick use (and maybe follow-up with some blog posts on later). One thing did come as quite the surprise though – Sequential Convoys!

It was a great time, and I hope to be able to share more when I can. Thanks to everyone who attended, and I really hope you all had as great of a time as we did.

QuickLearn Training’s offices were just one of many locations for the event. Below is a short gallery of photos gathered from Twitter of other venues.

Belgium

Brisbane

Chicago

Finland

London

Melbourne

New York

(I haven’t been able to find a picture with the camera pointed the other way, but I get it, @wearsy is a model now after all).

New Zealand

Oslo

Portugal

Rotterdam

Sweden

Global Integration Bootcamp India – Event Recap

Global Integration Bootcamp India – Event Recap

On March 25th, BizTalk360 along with Microsoft hosted and sponsored the first ever Global Integration Bootcamp event in India at the venue Microsoft GTSC campus in Bangalore. It was a bright Saturday morning. We reached the event venue at 8 AM and surprised to see few participants already present on the venue even though the event was supposed to start only on 9.00 AM. We started the preparations for the event – setting up the registration desk, preparing the stage for the speakers and so on. By the time we were done attendees started to come in for the event.

By 09.00 AM, we had close to 70% percent of the attendance at the event venue. We had a diverse audience ranging from Students to Integration Experts from various organizations. The Welcome Note was given by Sriram Hariharan announcing the spot awards for attendees for the maximum number of Tweets and Retweets.

Keynote

After the welcome note, Deepak Rajendran started off the proceedings through an excellent keynote, stressing on the importance of community to any platform. The whole keynote was filled with passion and energy and it was an excellent way to kick start Global Integration Bootcamp.

Session 1 – Cognitive Services

The keynote was followed by Harikharan Krishnaraju (Hari) with a presentation on Cognitive services and how we can provide our apps a human side. Hari started of the session with a video which was inspirational and showed the power of the Azure Cognitive Services offering. He then proceeded to explain various API’s that are available for the developers to incorporate those capabilities in their application. He also showed us a demo on how to use Cognitive Services in the Logic Apps and use the power of Emotion API to detect the sentiment using the Twitter feed as your data.

Session 2 – Azure API Management

After a short coffee break, Sunny Sharma from BizTalk360 took the stage to present on the topic Secure and Optimize APIs using Azure API Management. He showed us various Authentication mechanisms that we can employ to protect our APIs and the various options that are available in the developer portal and the publisher portal. The session was received well and followed with lot of questions from the participants.

Session 3 – On-premises data gateway

As the last session before lunch, we had Sajith C P explaining the On-Premises Data Gateway to leverage on-premise data for hybrid scenarios. He also explained the confusion around different gateways available in Azure and provided a great demo using Azure Logic Apps with BizTalk Server connector to connect to a on-premise SQL Server.

Lunch time!!

After the morning sessions, it was time for the attendees to enjoy the lunch offered by Microsoft. Even though it was the lunch break, most of participants utilized the time to interact with the speakers and clarifying their doubts which is the whole point of any community events.

Session 4 – Enterprise Integration Pack

After the lunch, Shree Divya and Shailesh Agre took the stage to commence their talk on Enterprise Integration Pack with Logic Apps. They explained how we can use Azure Logic Apps for business-to-business (B2B) workflows and seamless communication. They also showed us a demo on how organizations can exchange messages through industry standard protocols like AS2, X12 and EDIFACT.

Session 5 – Automated Workflows

It was time for Lohith G Nagaraj to take stage and talk on his topic Automated Workflows between Apps & Services using Microsoft Flow. Lohith started his session with great enthusiasm which he made sure to spread this to the participants as well. He started off explaining how easy it is to use Microsoft Flow and the difference between the Flow and Logic Apps. He also showed couple of demos on how to monitor your Twitter mentions and how to automate simple workflows within your organization. Finally he showed us various templates that are available in Microsoft Flow.

(Final) Session 6 – Hybrid Integration

It was time for the final session of the day by Roy Joseph and Rekha Kodali on Hybrid Integration. Rekha and Roy made a case for why Hybrid Integration is the future and what the available offerings in the Azure Platform to satisfy all the hybrid integration scenarios.

Pictures from the event

Vote of Thanks

It was time to wrap up the Integration Bootcamp. Arunkumar Kumaresan delivered the vote of thanks and thanked everyone involved for making the event a successful one. Arun also gave out mementos to the speakers for their active participation in the event. He gave out spot awards to one of the attendees, Prakash Nimmala, for the maximum number of Tweets and Retweets.

Conclusion

It was almost time to say goodbye to all the attendees and with this the Global Integration Bootcamp event came to close. We had sense of satisfaction after not just being able to successfully execute the event but the event hosted in India is the biggest in number of participants among all the countries that conducted the Global Integration Bootcamp. Our sincere thanks to all the speakers, Microsoft GTSC Bangalore and specially to the attendees for making this event a grand success.

Author: Umamaheswaran Manivannan

Umamaheswaran is the Senior Software Engineer at BizTalk360 having 6 years of experience. He is a full stack developer worked in various technologies like .NET, Angular JS etc.

Webinar Recap: Azure IPaaS – Integration Evolved

Integration has traditionally been all about ESB’s, MessageBrokers and the exchange of messages between on-premises systems. Today, many companies wish to integrate beyond their firewall, typically with SaaS based application. This change is reflected in the uplift of API based integration using lightweight protocols.

What we really talk about here is modern integration where both Logic Apps, BizTalk and the Enterprise Integration Pack will play a major role. All of the above components allow you to enable and deliver powerful hybrid connectivity with ease.

This webinar I did a couple of weeks ago will give you a overview of Logic Apps and the Enterprise Integration Pack. ‘How does it work’, ‘How is it Made’ and ‘How does it all fit together’? Just a couple of questions you will find the answer to in the video below.

[embedded content]

Next Steps

At Codit we are heavily investing in building best-practices, approaches and lessons learned when it comes to Logic Apps. All these resources are collected on this blog. So I invite you to scroll through these sections and have a more in-depth overview of all the posibilities of Logic Apps and Enterprise Integration in the cloud.

Community Resources

Thanks for reading!

Cheers,

Glenn

Logic Apps Debatching

Logic Apps Debatching

SplitOn Command

Logic Apps offer the splitOn command that can only be added to a trigger of a Logic App. In this splitOn command, you can provide an expression that results in an array. For each item in that array, a new instance of the Logic App is fired.

Debatching JSON Messages

Logic Apps are completely built on API’s, so they natively support JSON messages. Let’s have a look on how we can debatch the JSON message below, by leveraging the splitOn command.

Create a new Logic App and add the Request trigger.  In the code view, add the splitOn command to the trigger.  Specify the following expression: @triggerBody()[‘OrderBatch’][‘Orders’]

Use Postman to send the JSON message to the HTTP trigger.  You’ll notice that one input message, triggers 3 workflow runs.  Very easy way to debatch a message!

Debatching XML Messages

In old-school integration, XML is still widely spread. When dealing with flat file or EDI messages, they are also converted into XML. So, it’s required to have this also working for XML messages. Let’s consider the following example.

Update the existing Logic App with the following expression for the splitOn command: @xpath(xml(triggerBody()), ‘//*[local-name()=”Order” and namespace-uri()=”http://namespace”]’).  In order to visualize the result, add a Terminate shape that contains the trigger body as the message.

Trigger the workflow again.  The result is as expected and the namespaces are nicely preserved!

Exception Handling

The advantage of this approach is that every child message immediately starts processing independently from the others. If one message fails during further processing, it does not impact the others and exception handling can be done on the level of the child message. This is comparable to recoverable interchange processing in BizTalk Server. In this way, you can better make use of the resubmit functionality. Read more about it here.

Let’s have a look what happens if the xPath expression is invalid. The following exception is returned: The template language expression evaluation failed: ‘The template language function ‘xpath’ parameters are invalid: the ‘xpath’ parameter must be a supported, well-formed XPath expression. Please see https://aka.ms/logicexpressions#xpath for usage details. This behavior is as desired.

What happens if the splitOn command does not find a match within the incoming trigger message? Just change the xPath for example to @xpath(xml(triggerBody()), ‘//*[local-name()=”XXX” and namespace-uri()=”http://namespace”]’). In this case, no workflow instance gets triggered. The trigger has the Succeeded status, but did not fire. The consumer of the Logic App receives an HTTP 202 Accepted, so assumes everything went fine.

This is important to bear in mind, as you might lose invalid messages in this way. The advice is to perform schema validation before consuming a nested Logic App with the splitOn trigger.

Monitoring

Within the standard overview blade, you cannot see that the three instances relate to each other. However, if you look into the Run Details, you notice that they share the same Correlation ID. It’s good to see that in the backend, these workflow instances can be correlated. Let’s hope that such functionality also makes it to the portal in a user-friendly way!  

For the time being, you can leverage the Logic Apps Management REST API to build your custom monitoring solution.

For Each Command

Another way to achieve a debatching-alike behavior, is by leveraging the forEach command. It’s very straightforward to use.

Debatching JSON Messages

Let’s use the same JSON message as in the splitOn example. Add a forEach command to the Logic App and provide the same expression: @triggerBody()[‘OrderBatch’][‘Orders’].

If we now send the JSON message to this Logic App, we get the following result. Remark that the forEach results in 3 loops, one for each child message.

Debatching XML Messages

Let’s have a look if the same experience applies for XML messages. Modify the Logic App, to perform the looping based on this expression: @xpath(xml(triggerBody()), ‘//*[local-name()=”Order” and namespace-uri()=”http://namespace”]’)

Use now the XML message from the first example to trigger the Logic App. Again, the forEach includes 3 iterations.  Great!

Exception Handling

I want to see what happens if one child message fails processing. Therefore, I take the JSON Logic App and add the Parse JSON action that validates against the schema below. Remark that all fields are required.

Take the JSON message from previous example and remove in the second order a required field. This will cause the Logic App to fail for the second child message, but to succeed for the first and third one.

Trigger the Logic App and investigate the run history. This is a great result! Each iteration processes independent from the other. Quite similar behavior as with the splitOn command, however it’s more difficult to use the resubmit function.

You must understand that by default, the forEach branches are executed in parallel. You can modify this to sequential execution. Dive into the code view and add “operationOptions” : “Sequential” to the forEach.

Redo the test and you will see that this has no influence on the exception behavior. Every loop gets invoked, regardless whether the previous run failed.

Monitoring

The monitoring experience is great! You can easily scroll through all iterations to see which iteration succeeded and which on failed. If one of the actions fails within a forEach, the Logic App gets the Failed status assigned.

What should we use?

In order to have a real debatching experience, I recommend the splitOn command to be used within enterprise integration scenarios. The fact that each child message gets immediately its specific workflow instance assigned, makes the exception handling strategy easier and operational interventions more straightforward.

Do not forget to perform first schema validation and then invoke a nested workflow with the Request trigger, configured with the splitOn command. This will ensure that no invalid message disappears. Calling a nested workflow also offers the opportunity to pass the batch header information via the HTTP headers, so you can preserve header information in the child message. Another way to achieve this, is by executing a Transformation in the first Logic App, that adds header information to every child message.

The nested workflow cannot have a Response action, because it’s decorated with a splitOn trigger.  If you want to invoke such a Logic App, you need to update the consuming Logic App action with the following expression: “operationOptions”: “DisableAsyncPattern”.

If we run the setup, explained above, we get the following debatching experience with header information preserved!

Conclusion

Logic Apps provides all required functionality to debatch XML and JSON messages. As always, it’s highly encouraged to investigate all options in depth and to conclude what approach suites the best for your scenario.

Thanks for reading!
Toon

Top reasons to upgrade to BizTalk Server 2016

Top reasons to upgrade to BizTalk Server 2016

BizTalk-Server-2016 - upgrade

BizTalk Server 2016 was released recently and one of the biggest questions a lot of existing BizTalk Server customers have is whether to upgrade/migrate to 2016 or stay in the current version. The answer to this question will depend on various factors, let’s try to understand the scenarios that can potentially require or force you to do the upgrade.

Before going into the details let’s take a look at 2 important pieces of information, the history of last few versions of BizTalk Server and what’s new in BizTalk Server 2016. Because these two factors are very important before we make the decision of whether to upgrade to latest version

BizTalk Server history

BizTalk Server is one of the most matured Enterprise Integration Product in the market with over 16 years continuous development and innovation.

  • BizTalk Server 2000
  • BizTalk Server 2002
  • BizTalk Server 2004
  • BizTalk Server 2006
  • BizTalk Server 2006 R2
  • BizTalk Server 2009
  • BizTalk Server 2010
  • BizTalk Server 2013
  • BizTalk Server 2013 R2
  • BizTalk Server 2016

What’s new in BizTalk Server 2016

At a very high level, these are the key features that are added in this release.

  • Support for Windows Server 2016, SQL Server 2016, Visual Studio 2015
  • Support for Host Integration Server 2016
  • Support for SQL Server AlwaysOn
  • Support for hosting production workloads in Azure IaaS VM’s
  • SHA2 Native Support
  • New Adapters (Azure Logic Apps)
  • Adapter Improvements (SAP Connector, File, FTP, SFTP, Ordered Delivery for Dynamic Send Port)
  • Shared Access Signature support for WCF adapters
  • Import/Exports – Parties, Tracking Settings
  • Simultaneous Multiple artifacts configuration in BizTalk Admin Console

For the complete information please refer to Microsoft release notes. Technically you can migrate to BizTalk Server 2016 seamlessly if you are in the last 2 versions of BizTalk (2013 or 2013 R2), but the decision to upgrade is not always made purely based on technical reasons. Let’s see some scenarios.

Scenario #1: Upgrade based on your platform requirements

This scenario is something you cannot avoid and will force you to upgrade to BizTalk Server 2016. Every enterprise will have an internal platform upgrade story both for Windows Server and SQL Server.  The organisation may be currently running on Windows Server 2012 and every 5 years once they might have a platform upgrade across the company. When such things happen they will create a dependency matrix and if they identify any product that can be moved to latest platform, then they will ask the relevant teams to start the initiative. If such scenario happens then you’ll be forced to migrate to BizTalk Server 2016. A similar story can happen for SQL server upgrade across the company.

Scenario #2: Upgrade based on your current version

Based on the current version of BizTalk server you are running in your organisation, you may be forced or it may be a good idea to upgrade to BizTalk Server 2016. The below table gives the BizTalk Server product support lifecycle information with dates for the end of both mainstream and extended support. As you can see 2006, 2006 R2, 2009 and 2010 versions are already out of mainstream support

BizTalk VersionSupport End (Mainstream)Support End (Extended)
BizTalk Server 20067/12/20117/12/2016
BizTalk Server 2006 R27/12/20117/12/2016
BizTalk Server 20097/08/20147/09/2019
BizTalk Server 20101/12/20161/12/2021
BizTalk Server 20137/10/20187/11/2023
BizTalk Server 2013 R27/10/20187/11/2023
BizTalk Server 20161/11/20221/11/2027

There are lot of disadvantages being in extended support,

  • Non-Security hotfix support will require extended hotfix agreement, purchased within 90 days of mainstream support ending
  • You incident support will be chargeable
  • You cannot make warranty claims
  • You cannot request design changes and feature requests

You probably do not want to run your business on limited support, so it’s better to upgrade if your current version is already in extended support or your mainstream support is coming.

Scenario #3: Upgrade based on new features

There may be some features released in BizTalk Server 2016 that might demand an upgrade. Example: SQL AlwaysOn, traditionally companies struggle to set up log shipping for DR and in many instances, they never had any DR setup that could be resolved by using SQL Always on. In a similar way, there may be other features like SAP connector, Ordered Delivery on dynamic send ports etc can all be interesting for certain scenarios.

Scenario #4: Upgrade based on your current projects

Most of the time the cost of migrating from one version of BizTalk server to another is not the BizTalk server software cost, because typically you’ll be either covered with annual support assurance (SA) or you’ll have enterprise agreement package (EAP), which will allow you to upgrade and do a true-up cost at end of the period.

The biggest cost factor is your functional testing efforts. Even though Microsoft (or any software vendor for that matter) will claim the upgrade will be seamless and will not affect anything. Chances are, something will get broken. If you look at the stack, you are upgrading a lot of things Windows, SQL, .NET, BizTalk etc. at one go and you need to be super careful.

The best situation for you to plan for your upgrade and reduce the cost is to do it along with your project plans. If you have a big release coming, and if you are already planning for a lot of functional testing, use that as an opportunity to migrate to the new version.

If somebody claims their software/tool will magically help you on the upgrade process be cautious. There is no magic bullet here, no one will understand the complexities of the legacy systems you are connecting and their underlying limitations.  Only your QA team can warrant that after verifying their test cases.

Scenario #5: What if we are in the process of buying BizTalk Server

In this case, it’s kind of a no-brainer decision, you just buy the latest version of the product i.e BizTalk Server 2016. Having said that we have seen companies using the policy of always using “Latest Version – 1” formula. They don’t want to risk with some unknown potential problems and wanted to stay with the version that’s in the market for a while. If you are in that situation, it’s perfectly fine to go with BizTalk Server 2013 R2. But keep in mind BizTalk Server 2013 R2 will not run (or supported) in Windows Server 2016 and SQL Server 2016.

Please leave your comments if you have any other reasons.

The post Top reasons to upgrade to BizTalk Server 2016 appeared first on BizTalk360.

BizTalk MapperExtensions Functoid Wizard for BizTalk Server 2016

BizTalk MapperExtensions Functoid Wizard for BizTalk Server 2016

Being an MVP, and a community leader, one of my roles is to motivate others members to start contributing to the community and at DevScope we have great new technicians that sometimes only need to be pushed and motivated… this time I challenged my coworker Rui Silva to collaborate with me on this small project and the result is here: BizTalk MapperExtensions Functoid Wizard for BizTalk Server 2016.

BizTalk MapperExtensions Functoid Wizard is a Custom Functoid Project Wizard for Visual Studio 2015. It allows you to create a new Functoid project for BizTalk Server 2016 without having to create manually the project, in other words, having to manually create:

  • A new class library project in Visual Studio 2015;
  • Add a reference to the Microsoft.BizTalk.BaseFunctoids assembly;
  • Add New Class and having to code the entire class;

This Wizard will do this process automatically, and used in conjunction with BizTalk Server: Custom BizTalk Functoid item template for Visual Studio 2015 will facilitate and significantly expedite the development process of our projects. The only thing you will need to do is create a new Custom Functoid Project and a wizard will pop-up, fill in the required fields and when you finish the process a new Custom Functoid project is built. Just change the execution method with your own algorithms, build your project and it’s done. You’ll see your new Functoid in BizTalk Server 2015 Mapper once you import it to Visual Studio Toolbox.

BizTalk MapperExtensions Functoid Wizard Installation

To use this project template download the executable files available on “Installation Files” folder and run the setup file.

Once you run the setup file follow these steps:

  • On the “Welcome to the BizTalk MapperExtensions Functoid Template Setup Wizard” screen, click “Next”.

BizTalk MapperExtensions Functoid Wizard: Welcome Screen

  • On the “Select Installation Folder” screen, select the folder where you want to install the Wizard and select the option “Everyone”. Click “Next” to continue.

BizTalk MapperExtensions Functoid Wizard: Installation Folder Screen

  • On the “Confirm Installation” screen, confirm your intent to install by clicking “Next”

BizTalk MapperExtensions Functoid Wizard: Confirm Screen

  • On the “Installation Complete” screen, click close and the installation is complete

BizTalk MapperExtensions Functoid Wizard: Complete Screen

Now you can see a new BizTalk project template option under “BizTalk projects” in your Visual Studio 2015.

BizTalk MapperExtensions Functoid Wizard: Visual Studio Functoid Project

Create New Functoid Project

To create a new functoid using this project template choose the option “BizTalk Server Functoid Project” in Visual Studio 2015 and a Wizard will pop-up. Follow the requirements of this wizard to create the Functoid.

  • In the “Start” screen, click “Next” to continue

BizTalk MapperExtensions Functoid Wizard: Start Screen

  • In the “General Project Properties” screen, fill the Functoid class name, namespace and create or select a new Strong Key (you can use an existing one). Click “Next” to continue.

BizTalk MapperExtensions Functoid Wizard: General Properties Screen

  • In the “Functoid Properties” screen, define the Functoid ID (must be greater than 10000), the functoid name, the tooltip (short description) and description (full description). Click “Next” to continue.

BizTalk MapperExtensions Functoid Wizard: Functoid Properties Screen

  • In the second “Functoid Properties” screen, choose the functoid category and the implementation language (the language in which you want to implement your functoid behavior code): C# or VB.NET. Click “Next” to continue.

BizTalk MapperExtensions Functoid Wizard: Functoid Properties Screen

  • In the “Functoid Parameters and Connection Types” screen, define the functoid function name, function inputs and types and output and types. Click “Next” to continue.

BizTalk MapperExtensions Functoid Wizard: Functoid Parameters Screen

  • On the final screen, click “Finish” to create the Visual Studio project.

BizTalk MapperExtensions Functoid Wizard: Result Screen

Visual Studio will create a new Project based on your implementation language and definitions provided in the Wizard.

BizTalk MapperExtensions Functoid Wizard: Project Sctructure

  • Open the generated class and implement your code

BizTalk MapperExtensions Functoid Wizard: Project Code
Once again, special thanks to Rui Silva who accepted the challenge and collaborated with me in order to finalize this project.

You can download the Source Code or contribute to the project here:

BizTalk.MapperExtensions.Functoid.Wizard
GitHub

You can download the installation files (only executables) here:

BizTalk MapperExtensions Functoid Wizard: BizTalk Server 2016 Installation files (1.1 MB)
Microsoft | TechNet Gallery

Author: Sandro Pereira

Sandro Pereira lives in Portugal and works as a consultant at DevScope. In the past years, he has been working on implementing Integration scenarios both on-premises and cloud for various clients, each with different scenarios from a technical point of view, size, and criticality, using Microsoft Azure, Microsoft BizTalk Server and different technologies like AS2, EDI, RosettaNet, SAP, TIBCO etc. He is a regular blogger, international speaker, and technical reviewer of several BizTalk books all focused on Integration. He is also the author of the book “BizTalk Mapping Patterns & Best Practices”. He has been awarded MVP since 2011 for his contributions to the integration community.