Validating Json Schema in Azure Logic Apps

Validating Json Schema in Azure Logic Apps

Hi All,

In this post we will show how we can validate Json schema against the message  in Logic Apps. I and Krishna Pochanapeddi working on building an interface service in Logic Apps. We need to send a request message to Logic Apps request connector. We need to validate the same message against the Json schema. There is no capability within Logic Apps to validate the names of the fields in the Json message. We can do this easily using Azure Function by passing the Schema and request message using Azure Function connector. However, we do not want to use Azure function to validate schema. We want to use Logic Apps as a complete solution for these validation issues. It is easy to validate XML Schema using Integration Account but Json message cannot be validated.

After wondering for few hours; reading Json best practices; we  found the basic and powerful Json capability which is the object option “required”. Now we can mentioned the required fields (field names) in the schema itself.

We created below mentioned Json schema

{
“$schema”: “http://json-schema.org/draft-04/schema#”,
“definitions”: {},
“id”: “http://example.com/example.json”,
“properties”: {
“ChangePasswordRequest”: {
“id”: “/properties/ChangePasswordRequest”,
“properties”: {
“CurrentPassword”: {
“default”: “currenthashedpassword”,
“description”: “An explanation about the purpose of this instance.”,
“id”: “/properties/ChangePasswordRequest/properties/CurrentPassword”,
“title”: “The currentpassword schema”,
“type”: “string”
        },
“Identifier”: {
“default”: “126”,
“description”: “An explanation about the purpose of this instance.”,
“id”: “/properties/ChangePasswordRequest/properties/Identifier”,
“title”: “The identifier schema”,
“type”: “string”
        },
“IdentifierScheme”: {
“default”: “test”,
“description”: “An explanation about the purpose of this instance.”,
“id”: “/properties/ChangePasswordRequest/properties/IdentifierScheme”,
“title”: “The identifierscheme schema”,
“type”: “string”
        },
“MessageIdentifier”: {
“default”: “f7b351fb-ade4-4361-bfc3-9bb7df783880”,
“description”: “An explanation about the purpose of this instance.”,
“id”: “/properties/ChangePasswordRequest/properties/MessageIdentifiers”,
“title”: “The messageidentifiers schema”,
“type”: “string”
        },
“MessageTimeStamp”: {
“default”: “2016-04-04T14:15:02.6476354+10:00”,
“description”: “An explanation about the purpose of this instance.”,
“id”: “/properties/ChangePasswordRequest/properties/MessageTimeStamp”,
“title”: “The messagetimestamp schema”,
“type”: “string”
        },
“NewPassword”: {
“default”: “Pass126”,
“description”: “An explanation about the purpose of this instance.”,
“id”: “/properties/ChangePasswordRequest/properties/NewPassword”,
“title”: “The newpassword schema”,
“type”: “string”
        },
“NotificationAddress”: {
“default”: “kcpochanapeddi@gmail.com”,
“description”: “An explanation about the purpose of this instance.”,
“id”: “/properties/ChangePasswordRequest/properties/NotificationAddress”,
“title”: “The notificationaddress schema”,
“type”: “string”
        },
“NotificationPreference”: {
“default”: “Email”,
“description”: “An explanation about the purpose of this instance.”,
“id”: “/properties/ChangePasswordRequest/properties/NotificationPreference”,
“title”: “The notificationpreference schema”,
“type”: “string”
        },
“OriginatingSystem”: {
“default”: “test”,
“description”: “An explanation about the purpose of this instance.”,
“id”: “/properties/ChangePasswordRequest/properties/OriginatingSystem”,
“title”: “The originatingsystem schema”,
“type”: “string”
        }
      },
required”: [
“MessageIdentifier”,
“NotificationAddress”,
“CurrentPassword”,
“Identifier”,
“OriginatingSystem”,
“NotificationPreference”,
“NewPassword”,
“IdentifierScheme”,
“MessageTimeStamp”
      ],
“type”: “object”
    }
  },
“required”: [
“ChangePasswordRequest”
  ],
“type”: “object”
}

Added this schema in the Logic app request connector and Parse Json connector.

image

If we send a invalid message  as per below:

{
“ChangePasswordRequest”: {
“MessageIdentifier”: “f7b351fb-ade4-4361-bfc3-9bb7df783880”,
“OriginatingSystem”: “test”,
“MessageTimeStamp”: “2016-04-04T14:15:02.6476354+10:00”,
“Identifie”: “125”, <Invalid field name; valid is Identifier>
“IdentifierScheme”: “test”,
“CurrentPassword”: “currenthashedpassword”,
“NewPassword”: “YGU0PCPEM”,
“NotificationPreference”: “Email”,
“NotificationAddress”: “kcpochanapeddi@gmail.com”
  }
}

The above message fails in the parse Json with the message “Requred properties are missing from object…” as per the below screen:

image

Now this can be handled in Logic Apps using “Add a Parallel branch->Add an Action” as per below screen.

image

Click on eclipses on action “Execute stored procedure” and “Response 4” and click on configure run after to configure the appropriate action.

image

Yay!!! Well Done Krishna Smile.

Regards

Shadab

Advertisements

Partner Post: Monitoring of BizTalk Server using BizTalk360

Partner Post: Monitoring of BizTalk Server using BizTalk360

Microsoft has a lot of great partners, and one of our missions is to highlight these, if you want to do a partner post on our team blog reach out to us either over mail or through comments on this post.

This post is written by BizTalk360 to highlight how they take advantage of BizTalk Server to help customers achieve more with our product.

Today BizTalk360 has become an inherent part for anyone using Microsoft BizTalk Server.  Since its inception in 2011, the product has matured significantly with continuous improvement mainly driven by industry & customer feedback. BizTalk360 takes one critical pain point of every Microsoft BizTalk Server customer BizTalk Server Operations & Monitoring and solves the problem extremely well.

Today the product comes with some 70+ features to address the BizTalk Server Operations and Monitoring challenges; in this blog let’s take a look at the top 5 reasons why every Microsoft BizTalk Server customer should consider using BizTalk360.

1. Modern Web based Management Experience

The out of the box BizTalk Server Administration tool that comes with BizTalk Server is a MMC based Windows Application. It requires installing on every administrator or support person’s computer.

BizTalk360, is a modern on-premise web based management tool that provides the user with a modern web experience and increases productivity as a result with regard to BizTalk Server Administration and Management.

With the single installation of BizTalk360, many BizTalk Server environments (Production, UAT, Staging etc.) in the organization can be configured and managed. Administrators and operators can access the web portal from any modern web browser.

BizTalk360 comes with a lot of out of the box dashboards and widgets to make management of BizTalk Server easier.

2. Enterprise grade Security and Auditing

The majority of the tasks performed by using the BizTalk Admin console require elevated Administrator rights and it also lacks the ability to restrict users to specific BizTalk Applications running in the environment.

The other important limitation of BizTalk Admin console is the auditing and governance capability. The tool does not audit any user operational activities. For example: If someone accidentally or purposely stops an important Orchestration or Send Port it will heavily interrupt the message processing. It will not be possible to pinpoint who performed that action.

Whereas when you are using BizTalk360 every single user operational activity on the BizTalk Environments is stored for governance and audit purpose. The customers can keep the data for as long as they want by a simple setting.

3. Monitoring designed for BizTalk Server

There are many general purpose monitoring tools in the market which claim they cover BizTalk Server monitoring, but when you start using them you’ll start realizing they just scratch the surface with generic things like Memory, CPU, Event Log etc. and won’t go any deeper. Whereas BizTalk360 is designed from the ground up to address the monitoring challenges of Microsoft BizTalk Server. It covers the breadth and width of BizTalk Server Monitoring needs.

There are unique requirements like Transaction or Data Monitoring which is specific to BizTalk Server, for example did we process 1000 messages (invoices) from SAP today (or every hour), this is addressed only in BizTalk360, a general purpose monitoring tool.

Auto healing is another important aspect, where BizTalk360 will try to rectify the problem itself whenever possible. Example: An FTP Receive Port may go down for various transient reasons like a network outage, temporary unavailability of FTP location and so on. In these circumstances, BizTalk360 will bring the FTP Receive Port back online with automatic healing capability.

4. Productivity with Single Unified Tooling

On a day to day basis, a BizTalk Server Administrator can use anywhere from 5-8 different tools like BizTalk Admin console, SQL Management Studio, BAM Portal, ESB Portal, Windows Event Viewers, Perfmon, BizTalk Health Monitor, SCOM console to name a few. This creates several challenges, lost productivity due to context switching between tools, security concerns (every single tool across environments needs to be secured), and training people for day-to-day support is time-consuming and expensive (you need very skilled resources).

BizTalk360 addresses all these challenges by providing a unified web based management administration tool for BizTalk Server. All the features are built from the ground up within BizTalk360 for example BizTalk360 comes with its own enhanced BAM portal and ESB portal. BizTalk360 also comes with some key productivity features like a centralized Event Viewer, team knowledge base, Secure SQL Query management, Throttling analyzer, Web based Rules Composer etc.

5. Analytics for Environment Transparency

Most organizations treat their BizTalk Environments like a black box. The standard tools like BizTalk Admin console provide very little transparency on the health of the environment. It doesn’t come with any analytical information like charts and graphs to showcase the failure rates, transaction volume, message processing latency, messaging patterns, throttling analysis etc.

BizTalk360 has a dedicated section for Analytics to address all the above challenges. It makes it super easy for administrators to view the health of your BizTalk Environments, you can create your own custom dashboards based on your scenarios like SAP to Dynamics CRM integration, Oracle to IBM MQ integration etc.

Summary

The above 5 points explain clearly why BizTalk Server customer should use BizTalk360. Microsoft as a platform company always focus on the scalability and reliability of the platform and it depends on partners like BizTalk360 to address the tooling gap. At one end of the spectrum is the platform (Microsoft BizTalk Server) and at the other end are the custom solutions built using BizTalk Server (by customers and consulting companies). BizTalk360 positions itself in the middle and bridges the gap with regard to BizTalk Server Administration and Management.

Today there are over 2500 installations of BizTalk360 in the world; some of the mission critical businesses including Microsoft IT (responsible for the entire retail and supply chain operations) rely on BizTalk360 for their day to day operations and monitoring.

Trial Download: You can try BizTalk360 trial version for 14 days on your own BizTalk Environments and validate the benefits.

 

Microsoft Integration Weekly Update: Sep 18, 2017

Microsoft Integration Weekly Update: Sep 18, 2017

Do you feel difficult to keep up to date on all the frequent updates and announcements in the Microsoft Integration platform?

Integration weekly update can be your solution. It’s a weekly update on the topics related to Integration – enterprise integration, robust & scalable messaging capabilities and Citizen Integration capabilities empowered by Microsoft platform to deliver value to the business.

If you want to receive these updates weekly, then don’t forget to Subscribe!

On-Premise Integration:

Cloud and Hybrid Integration:

Feedback

Hope this would be helpful. Please feel free to let me know your feedback on the Integration weekly series.

Advertisements

BizTalk Server Administration Console: Concurrency Violation encountered while Updating the ReceivePort. The local, cached version of the BizTalk Server group configuration is out of date.

BizTalk Server Administration Console: Concurrency Violation encountered while Updating the ReceivePort. The local, cached version of the BizTalk Server group configuration is out of date.

The funniest part of having an intern working and learning from you, especially for a person like me that really love to write about “Errors and Warnings, Causes and Solutions”, is that they are able to make the funniest and unexpected questions, they will find things that because we are so accustomed to doing the job and to avoiding them, that we do not even realize anymore that they exist and they are there.

So yesterday, after a solution deployment, my intern was complaining that he was always receiving the following error while creating a receive port:

TITLE: BizTalk Server Administration
——————————
Concurrency Violation encountered while Updating the ReceivePort ‘rprtReceive’. The local, cached version of the BizTalk Server group configuration is out of date. You must refresh the BizTalk Server group configuration before making further changes. (Microsoft.BizTalk.ExplorerOM)

For help, click: http://go.microsoft.com/fwlink/?LinkId=47400&ProdName=Microsoft+BizTalk+Server+2016&ProdVer=3.12.774.0&EvtSrc=Microsoft.BizTalk.ExplorerOM.Resources&EvtID=IDS_ERR_OBJECT_CONCURRENCY
——————————
BUTTONS:
OK
—————————–

Concurrency Violation encountered while Updating the ReceivePort

Cause

While open and navigating in the BizTalk Administration Console you will notice that the first request on expanding the navigation tree or open a BizTalk Server Application or Host Instance will take longer time that further interactions, this because in the first request the Administration Console will query your BizTalk databases for information and after that in cache the result.

So, unless you force a refresh it will use that cache information, nevertheless it will have some kind of mechanism (like a hash) to verify if the cache is updated will the current BizTalk Server Configuration on the database when you try to perform an operation like create or change a Receive Location.

Assuming that you deploy a new version or new artifact to a BizTalk Application, you need to refresh that Application before you perform any kind of operations, otherwise, you will receive this or similar errors.

The reason for this error to happen was that my intern already had the BizTalk Administration Console running and he was already focused (selected) the Application in concern before he went and deploy a new version of the solution from Visual Studio. After he deploy

SOLUTION

This is, in fact, a simple problem to solve:

  • Concurrency Violation encountered while Updating the ReceivePort – Option 1:
    • Close the BizTalk Administration Console and open again (stupid and simple)
  • Concurrency Violation encountered while Updating the ReceivePort – Option 2:
    • Right-click on the BizTalk Application you want to refresh, and then select the “Refresh” option

Concurrency Violation encountered while Updating the ReceivePort: BizTalk Application Refreshed

  • Concurrency Violation encountered while Updating the ReceivePort – Option 3:
    • Select the resource inside your BizTalk Application you want to refresh, for example, “Receive Locations” and press F5

There are several alternatives. The important is to refresh the BizTalk Administration Console if something had changed in your BizTalk Server environment.

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. View all posts by Sandro Pereira

BizTalk Server is finally engaging the open source community – What we can do now.

BizTalk Server is finally engaging the open source community – What we can do now.

3 days ago Microsoft started sharing the BizTalk Server stack source code in GitHub.

This is an historical decision for me, more than two years ago I started fighting to make this happen and I am very happy for this Microsoft decision.

I strongly believe in the source code approach from the big companies and for many reasons but let have a look what we can really do now.

How to start?

The source code is under Contributor License Agreement (CLA), to start contributing you need to sign the license agreement here https://cla.microsoft.com.
You need to sign the document using DocSign and you will be able to access to the repo.

The Git repo is in GitHub at this address

https://github.com/Microsoft/Integration/tree/master/BizTalk%20Server

What we can do?

Microsoft started shared some main areas, let have a look what we can really do for each of them.

Adapter

This is a very critical area, we know about some many issue around them, one for example is the famous zero file adapter in the BizTalk File adapter.
We can extend the adapters with new capabilities and these will be immediately available to the product.

We can fix all known issues, the difference now is that, we have a development collaboration portal to work together.

Pipeline

We can extend pipeline capabilities and new components, very interesting will be the possibility to create a repo with an extensive catalogue of components.

Schemas

We can add the documentation to may important schemas and we can extend all the EDI stack with many new EDI formats.

Tools

Many people know how much I’m care about tools and productivity, this area is critical.

Years ago I develop a tool named BizTalk NOS Addin which was able to improve the BizTalk development productivity about the 1000%.
We can add a lot of new tools here.

We are full of tools that we normally use every day, we just only need to put them in the repo and working all together in the refactoring.

I’d like to see the development tool area (Visual Studio), I hope it will be included in the Tools area.

Sample

How many time we reuse the same code and template for any new project, this is the area to put this our amazing stuff.

What I’d like to see more

I’m working in BizTalk since the 2000 version and I see 3 main areas in BizTalk where we can work and able to give an amazing contribution to the product.

  1. Development

    1. Think about the possibility to extend the Visual Studio development capabilities with, searching, automation test and development, fix many well-known issue, improving the
      Visual Studio UI integrating new capabilities in the designer.
      Improve migration, we can extend a lot the migration capabilities into Azure, extend orchestration capabilities, extend the pipeline development capabilities and testing, integrate PowerShell in the UI and more.
      This are is the most critical in order to provide the maximum value to the product.
  2. Admin Console

    1. We can do so much here, improving the console for monitoring, management, searching, integrating PowerShell in the UI, we are full of amazing PowerShell scripts able to provide many interesting features to the admin UI.
      Alerting, advisory, auditing, integration with other stack like Visual studio and more.
  3. Migration

I am sure we will be able to do a lot for the product now.

BizTalk Server Administration Console cannot connect to WMI provider. Ensure that the WMI service is running. (Microsoft.BizTalk.SnapIn.Framework)

BizTalk Server Administration Console cannot connect to WMI provider. Ensure that the WMI service is running. (Microsoft.BizTalk.SnapIn.Framework)

BizTalk Server Administration Console cannot connect to WMI provider? The things I found from playing around with all kind of different environments from different clients and my personal ones (Hehe)… and I thought that I had already found all type of real or imaginary BizTalk errors, but once again I BizTalk Server prove me that I was wrong, this issue was new for me – who says that my BizTalk Consultant life is boring? (hehe).

Joking apart, I got the following error while trying to navigate in the BizTalk Server Administration Console in one of my personal environments:

TITLE: BizTalk Server Administration
——————————
Failed to load Group [BTS2016LAB01:BizTalkMgmtDb] data providers. (Microsoft.BizTalk.Administration.SnapIn)

For help, click: http://go.microsoft.com/fwlink/?LinkId=47400&ProdName=Microsoft+BizTalk+Server+2016&ProdVer=3.12.774.0&EvtSrc=Microsoft.BizTalk.Administration.SnapIn.Properties.Errors&EvtID=FailedLoadingGroupProviders&EvtChain=Microsoft.BizTalk.Administration.SnapIn.Properties.Errors+%2cFailedLoadingGroupProviders%3bMicrosoft.BizTalk.SnapIn.Framework.Properties.ErrorMessages+%2cConnectToWMIProviderFailed
——————————
ADDITIONAL INFORMATION:
Failed to load Group [BTS2016LAB01:BizTalkMgmtDb] data providers. (Microsoft.BizTalk.Administration.SnapIn)

For help, click: http://go.microsoft.com/fwlink/?LinkId=47400&ProdName=Microsoft+BizTalk+Server+2016&ProdVer=3.12.774.0&EvtSrc=Microsoft.BizTalk.Administration.SnapIn.Properties.Errors&EvtID=FailedLoadingGroupProviders&EvtChain=Microsoft.BizTalk.SnapIn.Framework.Properties.ErrorMessages+%2cConnectToWMIProviderFailed
——————————
Cannot connect to WMI provider. Ensure that the WMI service is running. (Microsoft.BizTalk.SnapIn.Framework)

For help, click: http://go.microsoft.com/fwlink/?LinkId=47400&ProdName=Microsoft+BizTalk+Server+2016&ProdVer=3.12.774.0&EvtSrc=Microsoft.BizTalk.SnapIn.Framework.Properties.ErrorMessages&EvtID=ConnectToWMIProviderFailed
——————————
The service cannot be started, either because it is disabled or because it has no enabled devices associated with it. (Exception from HRESULT: 0x80070422) (System.Management)
——————————
BUTTONS:
OK
—————————–

BizTalk Server Administration Console cannot connect to WMI provider

Cause

The reason for the BizTalk Server Administration Console cannot connect to WMI provider is because the BTS Administration Console relies on Windows Management Instrumentation (WMI) service, more specifically, the BizTalk WMI Provider (BTSWMIProvider.dll) to perform all type of different queries into BizTalk Environment (or BizTalk databases)

And for that reason, Windows Management Instrumentation (Winmgmt) service need to be enabled and running on the server in which you are running the BizTalk Server Administration Console.

In my case, the problem was that while I was investigating the unnecessary services that I could disable to optimize BizTalk Server performance, I disable this important service.

Solution

As I mentioned above, the solution to this problem is to Enable and Start the Winmgmt service, you can accomplish that by:

  • If the service is Disabled:
    • Press the “Windows key” to open the Start menu, type “Services” and click on “View local services” option from the Search window.
    • In the Services window, on the Services (Local) panel select the Windows Management Instrumentation service, right click and select “Properties” option.
      • On the Windows Management Instrumentation Properties (Local Computer) window:
      • On the General tab apply the following configuration.
      • Startup type: “Automatic”
      • And then click “Start” and “Apply”.

BizTalk Server Administration Console cannot connect to WMI provider: Winmgmt service

  • If the service is Enable, you can simply:
    • Open a command prompt as administrator by pressing the “Windows key” to open the Start menu and type “cmd” in the Start Search box, right-click in “Command Prompt” and select from the context menu the “Run as administrator” option
    • And type the following command: net stat winmgmt

BizTalk Server Administration Console cannot connect to WMI provider: Winmgmt service running

Once the Winmgmt service is running you will be able to use the BizTalk Server Administration Console without this error/problem happening.

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. View all posts by Sandro Pereira

SQL Server Management Studio (SSMS): The Visual Studio component cache is out of date. Please restart Visual Studio.

SQL Server Management Studio (SSMS): The Visual Studio component cache is out of date. Please restart Visual Studio.

This strange error does not occur often, perhaps from time to time, or in different environments, but in reality, I already had the “privilege” of encountering it more than once while I was trying to open the SQL Server Management Studio (SSMS):

The Visual Studio component cache is out of date. Please restart Visual Studio.

The Visual Studio component cache is out of date. Please restart Visual Studio.

Not really a BizTalk Server problem but you now that behind the curtains, BizTalk Server relies on SQL Server Smile

Cause

The cause of this problem is unclear, and I wish I could have a better explanation to provide and in fact, there is an issue active opened in MSFT about this (see here).

I just assume that something may have happened, maybe an update or something similar, that left something in a corrupt or incorrect state… but despite that, the resolution to this problem is quite simple.

Solution

As I said above, the resolution to this problem is quite simple and you may have several approaches to accomplish that. One of them is to manually remove all the temporary files from the Windows operating system by:

  • Exit all programs and then hold down the WINDOWS key and then type R to open the “Run” windows.
  • In the “Run” window, type “%TMP%” and then click “OK”
  • This will open the TEMP directory that normally is: C:Users<your_user_name>AppDataLocalTemp
  • Select and delete all the content of the TEMP folder

This approach always solved my problem.

But you can also try a different approach to do the same operations like:

  • Open the Disk Cleanup utility.
  • Make sure that you select the “Temporary files” option and then click on “OK”.

The Visual Studio component cache is out of date. Please restart Visual Studio solution

  • When prompted up, select “Delete Files”

Again, if you now try to open Microsoft SQL Server Management Studio this The Visual Studio component cache is out of date. Please restart Visual Studio solution error message will have disappeared.

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. View all posts by Sandro Pereira

Announcing Host Integration Server 2013 Cumulative Update 4

We are happy to announce the release of Microsoft Host Integration Server 2013 Cumulative Update 4. Host Integration Server is included with the BizTalk License and is a part of our broader BizTalk offerings to assist our customers with integrating to various backend systems. In the case of Host Integration Server, we provide customers with options to interact with IBM software. For customers just starting out with Host Integration Server we suggest using our latest version, Host Integration Server 2016.

This cumulative update package contains hotfixes for issues that were resolved after the release of Host Integration Server 2013.

We recommend that you test the cumulative update before you deploy it in a production environment. Because the builds are cumulative, each new update release contains all the hotfixes and all the security updates that were included in the previous Host Integration Server 2013 cumulative updates. We recommend that you consider applying the most recent Host Integration Server 2013 Cumulative Update to remain current with the product.

Cumulative update package 4 for Microsoft Host Integration Server 2013:

  • Application Integration – 6 customer issues fixed
  • Data Integration – -12 customer issues fixed
  • Message Integration – 6 customer issues fixed
  • Network Integration – 10 customer issues fixed
  • Session Integration – 10 customer issues fixed

Information regarding how to download the package and details regarding the specific fixes can be found in the KB article here.

We encourage you to actively engage with us and propose new features for all BizTalk offerings, including Host Integration Server, through our BizTalk User Voice page.

BizTalk Server Tips and Tricks: Moving Event Source from Application Log into a different event log with PowerShell

BizTalk Server Tips and Tricks: Moving Event Source from Application Log into a different event log with PowerShell

Continuing the season topic: “BizTalk Server Tips and Tricks” I have to say this is one of my favorites, I simply love this tip…

If you followed the old BizTalk Innovation Day’s events, that lead to the current Integrate event in London, you may remember my dear friend Tord Glad Nordahl complaining every year in his sessions about Developers writing unnecessary information Application Log. Well, I partially agree with him, I agree in the first part: you shouldn’t write custom application errors, warnings of information in the Application Log!

Moving Event Source: moving source logs to another event log

You need to realize that Application Event Log holds almost all the important information related to different aspects of BizTalk – SQL, IIS, BizTalk infrastructure and runtime problems – it is one of the main places that admins use to monitor “applications” installed on their server. This is the information that is extremely important for BizTalk Administrator in order to monitor the well-being of the platform and to diagnose problems. For that reason you don’t want to immerse the Application log with irrelevant and unnecessary information at the point to be almost impossible to find real problems – instead you, or in this case, the admins, should keep it clean.

Instead of using the Application Log, you can use a custom log for logging your custom application (integration) errors, warnings or information., So, in this way, I really don’t care if you are using the Event Viewer to log additional information’s about your integration processes.

What the Administrator does normally in these circumstances?

They tend to ask (argue) to the developer team to change their code, that already is deployed in several (or all) the environments, for not to write in the Application log this unnecessary information…

… they tend to receive the following response, “this information is critical for us to have visibility and track the processes (feeling surprised but I have heard enough times this statement), debugging and troubleshooting and so on”.

It’s basically a stupid and unnecessary battle where I can say that no one will be defeated or victorious.

What should the Administrator do?

Changing people’s behavior is hard, but I’m not saying that you should not try. You should, but getting others to change can be impossible, or a big challenge, it will definitely take time… especially developers who will try to find a thousand excuses for explaining why such information is important.

My advice for them take back the control of your environment by easily creating or using PowerShell (let the developer by happy by writing in the Event Viewer)

With this simple script, you can easily move an Event Source to a different Windows Event Log:

foreach ($LogSource in $LogSources) {

Remove-EventLog -Source $LogSource

}

$logFileExists = Get-EventLog -list | Where-Object {$_.logdisplayname -eq $LogName}

if (! $logFileExists) {

$LogSources | %{

New-EventLog -LogName $LogName -Source $_

}

# Compose Key:

$LogPath = 'HKLM:SYSTEMCurrentControlSetserviceseventlog'+$LogName;

if(Test-Path $LogPath)

{

$acl = Get-Acl $LogPath

$GpOrUsers | %{

$ace = New-Object System.Security.AccessControl.RegistryAccessRule $_,'WriteKey, ReadKey','allow'

$acl.AddAccessRule($ace)

#Set-Acl $LogPath $acl

}

}else{Write-Error "Cannot acesss log $LogName"}

}

else {

$LogSources | %{

New-EventLog -LogName $LogName -Source $_

}

}

Moving Event Source: custom source logs

This way, you as an admin can take back the control of your environment and fix the developers madness.

The full script can be found and download here: BizTalk DevOps: Moving Event Source To a Different/Custom Windows Event Log

Stay tuned for new tips and tricks!

Author: Sandro Pereira

Sandro Pereira is an Azure MVP and works as an Integration 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. View all posts by Sandro Pereira

BizTalk Server heading in Open Source direction

BizTalk Server heading in Open Source direction

Today Microsoft announced one of the biggest changes in BizTalk Server 17 years history, they are open sourcing some elements of the product. It makes perfect sense for a product like BizTalk Server to head down this route since apart from the core engine there are a lot of ancillary components on the platform that makes the platform richer and can be developed and improved in isolation.

biztalk-loves-open-source

The key components of BizTalk Server that makes perfect candidates to-be open sourced are

  • Schemas
  • Adapters
  • Accelerators
  • Pipeline Components
  • Maps

The main objective of Microsoft will be to sell more licenses of BizTalk Server. The above components on its own (except Schemas) has very little value outside the scope of  BizTalk Server. The platform gets richer if there are a richer set of Adapters, Accelerators, Pipeline Components,  ready to use Maps (transformations) available on the platform,  eventually resulting in more sales of BizTalk Server licenses.

Typically Microsoft builds a strong partner and developer community with its product line ups. SQL Server and SharePoint are good examples, where there are numerous ISV’s who build value added products on top of the platform. Whereas for some reason even though BizTalk Server is a perfect candidate for a thriving partner eco-system to built adapters, maps, and pipeline components and so on, for some reason the partner eco-system didn’t take off. There are very few companies like BizTalk360, nSoftware, Active Adapter etc who tapped into this market.

However, the developer community is so big in BizTalk Server. Today, you’ll find answers to pretty much any BizTalk Server related questions by doing a simple “Google or Bing” search. It makes perfect sense to give the opportunity for the BizTalk developer community to enrich and enhance the platform by contributing real code.

As the first step in this journey, today Microsoft has open sourced 3500+ schemas via their Integration Git repository under the “Contributor License Agreement”. This includes all the EDIFACT, HIPAA, X12, and HIX schemas. Looking at the folder structure of the Git repository, it’s apparent soon we could see Adapter and Pipelines getting open sourced as well.

Will the core engine get open sourced?

It will be very unlikely to see the BizTalk Server core engine getting open sourced.  There is no real value either for Microsoft or for the community in doing so, the engine is complex and it may depend on various Microsoft internal dependencies. Example: When Microsoft open sources ASP.NET MVC and Web API, they didn’t open-source ASP.NET Web Form since it was part of System.Web.dll which the Windows Server OS relies on.

What is the benefit of open sourcing?

The community can get involved and enhance certain improvements. The end customers can tweak the component slightly for their requirement. Example: If Microsoft open source the SAP adapter, and a customer got some specific requirement to make small enhancement to the adapter, that’s possible.  All the standard benefits of Open Source will be applicable when it comes to benefit.

If there is a nagging small bug in the component, if you think the fix is straight forward you can simply fix it yourself and move on, instead of waiting for a Feature Pack or Cumulative update. Please see the next section carefully about supportability.

Who is going to support it?

Microsoft is only open sourcing certain components code and it will not support the modified version by end users.  Microsoft will only support the version of the components that ship with the product, either out of the box or via Features packs or cumulative updates. Microsoft is also planning to accept community contribution, which might then get released as part of “Feature Pack” or in the vNext of the product. However, only officially shipped components will be supported. This is something the end user needs to be aware of.

Overall it’s a great initiative, it’s fantastic to see Microsoft heading more in this direction. Few important products that gone in this route .NET Core is Open SourceASP.NET MVC, Web API, and Web Pages (Razor) are Open Source

Author: Saravana Kumar

Saravana Kumar is the Founder and CTO of BizTalk360, an enterprise software that acts as an all-in-one solution for better administration, operation, support and monitoring of Microsoft BizTalk Server environments. View all posts by Saravana Kumar