A CrazyBizTalk confession

logo

Introduction

(This blog post was co-written by Pieter VandenheedeGlenn Colpaert, both colleagues at Codit)

We finally admit it… we both were the brains behind the CrazyBizTalk account. There… it’s in the open. After Integrate 2017, day 3, we were no longer able to keep it a secret, so there is no use of denying it anymore…

It was a fun ride, which started in 2013 already. We’ve written this post to give you some insights on how it all got started, the fun we had through the years and what the next steps are.

Continue reading

Advertisements

Azure API Management: subscription key invalid

download

Azure API Management is awesome! The thought of API virtualization and the power, flexibility and ease-of-use it can bring, is impressive to say the least.

I have the chance to ‘play’ with the technology with a project I’m working on for one particular client. Starting to play with things you often miss the simplest details or take things for granted. This is such a story…

Continue reading

Saving time via Logic Apps: a real world example

Introduction

At Codit, I manage the blog. We have some very passionate people on board who like to invest their time to get to the bottom of things and – also very important – share it with the world!
That small part of my job means I get to review blog posts before publishing on a technical level. It’s always good to have one extra pair of eyes reading the post before publishing it to the public, so this definitely pays off!

An even smaller part of publishing blog posts is making sure they get enough coverage. Sharing them on Twitter, LinkedIn or even Facebook is part of the job for our devoted marketing department! And analytics around these shares on social media definitely come in handy! For that specific reason we use Bitly to shorten our URLs.
Every time a blog post gets published, someone needed to add them manually to out Bitly account and send out an e-mail. This takes a small amount of time, but as you can imagine it accumulates quickly with the amount of posts we generate lately!

Continue reading

Fixing DistributedCOM launch issues

Recently, when checking some event logs on a clustered SQL environment, I encountered the following error in the System event log:

The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID
{806835AE-FD04-4870-A1E8-D65535358293}
and APPID
{EE4171E6-C37E-4D04-AF4C-8617BC7D4914}
to the user DOMAIN\user SID (<SID>) from address LocalHost (Using LRPC) running in the application container Unavailable SID (Unavailable). This security permission can be modified using the Component Services administrative tool.

2017-05-18 17_58_02-mRemoteNG - mgRemoteNG.xml - SQL PRD 1

This happened twice … at the beginning of every minute.

Unaware what the Application ID listed was, I was able to retrieve the list of DCOM applications with the following PowerShell script:

$strComputer = “.”

$colItems = get-wmiobject -class “Win32_DCOMApplication” -namespace “root\CIMV2” -computername $strComputer

foreach ($objItem in $colItems) {
write-host “Application ID: ” $objItem.AppID
write-host “Caption: ” $objItem.Caption
write-host “Description: ” $objItem.Description
write-host “Installation Date: ” $objItem.InstallDate
write-host “Name: ” $objItem.Name
write-host “Status: ” $objItem.Status
write-host
}

With this, it was easy to track the application ID listed back to Microsoft SQL Server Integration Services. The user mentioned in the error was also a user only used for the SQL Server Agent jobs.

This led me to a SQL Server Job which ran every minute which uses SSIS in some of it’s steps. Strangely, the SQL Server job did not fail and kept working as expected.

After some Googling, I managed to fix the issue as so:

  • Start “Component Services”
  • Choose Computers
  • Choose “My Computer”
  • Choose “DCOM Config”
  • Choose the service matching the APPID. In this case Microsoft SQL Server Integration Services 12.0
    2017-05-18 18_05_32-mRemoteNG - mgRemoteNG.xml - SQL PRD 1
  • Click the Security tab
  • Go to Launch and Activation Permissions, Customize, Edit and add the account mentioned. Check the check boxes as below:
    2017-05-18 18_07_13-mRemoteNG - mgRemoteNG.xml - SQL PRD 1
  • Don’t forget to restart the application service (here: Microsoft SQL Server Integration Services 12.0) in order to be sure that the service applied the changes.

Once done, the errors stopped occurring and the event log was kept nice and tidy.

Hope this helps at least someone.

Cheers,
Pieter

Troubleshooting VSTS Build Agent configuration

While figuring out the BizTalk 2016 Feature Pack 1 ALM feature, the setup & configuration of the Visual Studio Team Services (VSTS) build agent gave me some issues while configuring:

2017-05-01 13_29_31-mRemoteNG - mgRemoteNG.xml - BizTalk 2016 - Demo

The error reads:

Exception of type ‘Microsoft.VisualStudio.Services.OAuth.VssOAuthTokenRequestException’ was thrown.

After searching for quite some time, I noticed the clock on my Virtual Machine was off. Strange, since Hyper-V will synchronized it quite fast after a resumed save.

Funny enough, after retrying, this seemed to do the trick. Long story short: if you have the above error, make sure the clock of your machine is synchronized.

Cheers,
Pieter

BizTalk 2016 Feature Pack 1 – Installation walk-through & notes

Some side-notes on the BizTalk Server Feature Pack 1:

  • BizTalk Server 2016 Feature Pack 1 does not require you to have BizTalk Server 2016 CU1 installed.
  • Cumulative updates will take into account any BizTalk Server Feature Packs installed and will not break them. This effectively means that you do not need to re-install a CU after a Feature Pack installation.
    This does leave me wonder what will happen once they fix a bug in a Feature Pack in a CU.
  • You have to install it on each BizTalk Server in a BizTalk Group in order to upgrade the entire group. Preferably, you would keep all host instances disabled until all servers are updated. Keep a full backup of your BizTalk databases set nearby, just in case.

Below you can find a walk-through for the BizTalk Server 2016 Feature Pack 1 installation. This might serve someone for a document on how to install the feature pack.

Step 1: Download BizTalk 2016 Feature Pack 1

The BizTalk Server 2016 Feature Pack 1 can be downloaded from this URL:
https://www.microsoft.com/en-us/download/details.aspx?id=55100.

On the Microsoft download page it is actually named “BizTalk Server 2016 Update 1” and I don’t think that was a very good choice to be honest. I believe it will create confusion between BizTalk Server cumulative update packages and feature packs. Nevertheless, that’s the one you want!

Step 2: Install BizTalk 2016 Feature Pack 1

Start the executable:

2017-04-27 02_08_31-mRemoteNG - mgRemoteNG.xml - BizTalk 2016 - Demo

Click Next:

2017-04-27 02_09_11-mRemoteNG - mgRemoteNG.xml - BizTalk 2016 - Demo

Accept the EULA and click Next:

2017-04-27 02_09_36-mRemoteNG - mgRemoteNG.xml - BizTalk 2016 - Demo

If possible, participate in the CEI program:

2017-04-27 02_10_00-mRemoteNG - mgRemoteNG.xml - BizTalk 2016 - Demo

Not sure what they tried to achieve with this, but just click Next:

2017-04-27 02_10_11-mRemoteNG - mgRemoteNG.xml - BizTalk 2016 - Demo

Click Yes to agree with the restart of your Host Instances, the ESSO service, IIS Admin Service (if installed), WMI, etc…

2017-04-27 02_10_22-mRemoteNG - mgRemoteNG.xml - BizTalk 2016 - Demo

Patiently wait out until the install finishes:

2017-04-27 02_10_43-mRemoteNG - mgRemoteNG.xml - BizTalk 2016 - Demo

2017-04-27 02_10_56-mRemoteNG - mgRemoteNG.xml - BizTalk 2016 - Demo

Click Finish to complete the installation.

2017-04-27 02_12_50-mRemoteNG - mgRemoteNG.xml - BizTalk 2016 - Demo

Step 3: Verifying the installation

Verify you can find the following event log in the event viewer:

Product: Microsoft BizTalk Server 2016 – Update ‘Microsoft BizTalk Server 2016 Hotfix [KB 4014788]’ installed successfully.

2017-04-27 02_14_56-mRemoteNG - mgRemoteNG.xml - BizTalk 2016 - Demo

Windows Installer installed an update. Product Name: Microsoft BizTalk Server 2016. Product Version: 3.12.774.0. Product Language: 1033. Manufacturer: Microsoft Corporation. Update Name: Microsoft BizTalk Server 2016 Hotfix [KB 4014788]. Installation success or error status: 0.

2017-04-27 02_15_24-mRemoteNG - mgRemoteNG.xml - BizTalk 2016 - Demo

Windows Installer reconfigured the product. Product Name: Microsoft BizTalk Server 2016. Product Version: 3.12.774.0. Product Language: 1033. Manufacturer: Microsoft Corporation. Reconfiguration success or error status: 0.

2017-04-27 02_15_52-mRemoteNG - mgRemoteNG.xml - BizTalk 2016 - Demo

When you check Programs & Features, you can easily see if the Feature Pack is installed or not:

2017-04-27 02_40_14-mRemoteNG - mgRemoteNG.xml - BizTalk 2016 - Demo

Cheers,
Pieter Vandenheede

SQL Server Agent 2016 does not start with Shared Memory disabled

If you need to install BizTalk Server 2016, there is a big chance you will also install SQL Server 2016. Not only does SQL Server 2016 support the AlwaysOn capabilities that BizTalk Server 2016 might need, it comes with a much-welcomed upgrade to the support life-cycle. At the moment of writing, the latest service pack of SQL Server 2016 is SP1, which offers support until Jul 13 2021.

Installing BizTalk Server properly will require you to make some changes to the SQL Server Configuration as well. Specifically, you might want/need to disable the Shared Memory Protocol.

Shared Memory Protocol

The SQL Server Shared Memory Protocol per the MSDN documentation around SQL protocols:

Shared memory is the simplest protocol to use and has no configurable settings. Because clients using the shared memory protocol can only connect to a SQL Server instance running on the same computer, it is not useful for most database activity. Use the shared memory protocol for troubleshooting when you suspect the other protocols are configured incorrectly.

Basically, in the case your application is not hosted on the same server as your SQL Database Engine, it makes zero sense to enable the protocol. Therefore, it is considered good practice to disable the protocol and only enable the Named Pipes and TCP/IP protocol:

2017-03-29 14_53_26-mRemoteNG - mgRemoteNG.xml - SQL PROD

The above screenshot gives an overview of how the protocol configuration at server side should look like. At Codit, we disable the protocol at server side, since it might pose somewhat of a security risk.

SQL Server Agent not running

While the above has been a good practice for many years and many different BizTalk versions and never gave us any issues, for SQL Server 2016 this meant that the SQL Server Agent (windows service) was stopping unexpectedly. Something that came to my attention while trying to configure the BizTalk SQL Jobs.

The below is a screenshot of the event log and the error logged:

2017-04-12 16_30_41-Clipboard

The error:

SQLServerAgent could not be started (reason: Unable to connect to server ‘SOMESERVER’; SQLServerAgent cannot start).

(Re)starting the SQL Agent service works fine, but after about a minute, we get the same issue and the service crashes.

After some google-Fu, I finally managed to find the culprit due to a message in the SQL Server log:

2017-03-27 13:33:18 – ! [165] ODBC Error: 0, Login timeout expired [SQLSTATE HYT00]

And with some further research, it seemed the ODBC version that ships with SQL Server 2016, which is ODBC v13.0, contains a bug that will prevent the SQL Server Agent from running with Shared Memory disabled!

ODBC Drivers

To check the version of the ODBC drivers on your machine, there is actually a page on Microsoft Docs: https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/check-the-odbc-sql-server-driver-version-windows

Mine said:

2017-04-12 16_47_22-Clipboard

Note: 2015.130.x = v13.0

We now need to upgrade ODBC to version v13.1. You can download ODBC v13.1 from the Microsoft website: https://www.microsoft.com/en-us/download/details.aspx?id=53339

After upgrading, the Drivers tab mentions v2015.131.x = v13.1

2017-04-13 09_09_25-Clipboard

And, as expected (and hoped), the SQL Server Agent service now start successfully and keeps running:

2017-04-13 09_10_18-Clipboard

Let me know if this helped you or if you have any questions.

Cheers!
Pieter