Microsoft Integration Weekly Update: July 23, 2018

Microsoft Integration Weekly Update: July 23, 2018

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!

Feedback

Hope this would be helpful. Please feel free to reach out to me with your feedback and questions.

Advertisements

Why Azure API Management

Why Azure API Management

By Bill Chesnut

Being a big fan of Azure API Management (APIM), I get ask often “why should you use Azure API Management to publish my APIs? They are in Azure in an App Service as WebAPI”. To address this question we are going to go through the components and features of APIM. One thing I will not be coving is cost, too many times people first look at the cost of a product/service before they look at the features, I will leave the cost analysis to later and concentrate on the features.

There are 3 main components of APIM: API gateway, Azure Portal and Developer Portal, let’s talk quickly about each of these. Complete details can be found here: https://docs.microsoft.com/en-us/azure/api-management/api-management-key-concepts

API gateway

This is the gatekeeper, it accepts calls, routes them to the location of your API, verifies access, enforces quotas and rate limits, caches backend responses, manipulates the requests and responses and provides logging and analytics. There is nothing in the gateway that you could not do in your own code, but I strongly believe that you should not try to reinvent the wheel, concentrate on your code functionality not the plumbing.

Azure Portal / Management APIs

Originally when Microsoft purchased APIM, there was a Publisher Portal where all the management of your APIs was done. In the last year or so Microsoft have migrated all of this functionality to the Azure Portal, offering the added benefit of RBAC (Resource Based Access Control). As I am talking about the Azure Portal, almost all of the portal functionality is available via the management APIs. The Azure portal allows the definition or import of the API schemas, the packaging of the APIs into products, configuration of policies, and the management of users and analytics. They have also recently added the ability to test APIs directly from the Azure portal.

image

Developer Portal

This is the main entry point for developers that want to use your API. The developers register themselves on the developer portal, you can decide if you want to approve their registration and what method you want them to use to register: Username & Password, Azure Active Directory, Azure Active Directory B2C, Facebook, Google, Microsoft Account or Twitter. The developer portal allows the user to discover your Product (which is made up of your APIs), manage their subscriptions to your Products, test the APIs, get sample code to call the API in different languages (Curl, #, Java, JavaScript, ObjC, PHP, Python and Ruby) and view the analytics of their own usage.

image

To really start talking about the answer to the question “why should you use APIM”, we need to start looking at the features of APIM. Not every company has the same requirements for publishing APIs, so there are features of APIM that your company may or may not use.

When you start looking at feature, one of the things you need to look at is are your APIs going to be Public or Private. If you need them available to external parties including partners & customers, they will need to be public. If they are indented for internal developer use only, they can be private. I would actually argue that they should all be public It is amazing the number of times I have seen companies build APIs for internal use only to then have to figure out how to make them public after the fact. Public does not  mean available to everyone, public typically means available to partners or customers.

The feature that I will look at in some depth are: Security, Policies, Importing APIs, Analytics/Logging and Versioning/Revisions

Security

Now that we have decided to publish our APIs, how are we going to protect them? There are several security layers and ways to protect your APIs. The first is Azure API Management subscriptions, by default in APIM each set of APIs are part of a Product and users of a Product get a subscription to that Product, The subscription has a primary and secondary key and one of these needs to be passed in the header of the request to the APIM. This protects your API from being called by anyone without a subscription key. Request without a key are stopped at the APIM gateway, never reaching your API backend. The 2nd layer that you can choose is OAuth 2.0 or OpenID Connect, of which there are many providers. When you configure your APIs to use either OAuth 2.o or OpenID Connect, the caller would need to supply a valid authorization token in the request header. The final layer of security is between APIM and your APIs and there are several options for this, you can pass the OAuth 2.0 or OpenID Connect token through, you can using Client Certificates, you can user Basic Authentication and finally you can use the static IP address of your APIM instance.

image

Policies

One of the biggest reasons I point out to clients thinking about APIM is the power of the polices. There is so much you can do with APIM policies, they can be implement at the Product level, so they apply to all APIs that are part of the Product (Note: APIs can be in multi Product). They can be implemented at API level so they apply to all operation in the API, or they can be implemented for a single operation. There are 6 categories of polices:

image

I would like to call out a few of my favourites:

  • Validate JWT – Enforces existence of validity of a JWT
  • Control flow – Conditionally applies policy statements based on the evaluation of Boolean expressions
  • Log to Event Hub – Send message in the specified format to a message target defined by the Logger entity
  • The whole set of Caching polices – being able to add caching to your APIs without touching the code
  • Convert JSON to XML and Convert XML to JSON
  • Set body (specifically using a Liquid template) – used primarily for the REST to SOAP, but not limited to that

That is a small number of the available polices, but do give you a good idea of the power of polices in APIM

Importing APIs

This feature makes it easy to get started with APIM, it is how you get your APIs into APIM. Microsoft have just implemented a couple of standards here but they have made it quick and easy by giving you lots of options. These are the available options:

image

Analytics/Logging

Analytics and Logging are 2 distinct types of data that needs to be collected from your APIs. I have typically seen very good logging in API code, but rarely good Analytics. I know I have spent my fair share of time in IIS logs trying to figure out some usage analytics. Analytics gives you access to usage, health and activity data around your APIs. This can be viewed in the APIM Publisher Portal (still to be migrated to the Azure Portal) or in Azure Portal under Azure Monitor. If you need to log data in APIM before or after your API call, you can use the Log to Event Hub policy to capture that information, very helpful in the SOAP to REST scenarios. The final piece is a bit of a mixture, Microsoft have recently enabled the ability to connect Application Insights to APIM.  Application Insights provides insights into the request, exceptions and dependencies.

imageimage

Versioning/Revisions

These are 2 very helpful features of APIM, Many of us start our our API journey without thinking about how we are going to manage change. If we were to go back to the early days of COM programing the rule was never change the interface, you can change the code but never the interface. In the real world interfaces need to change, so how we manage that change is the important. With APIM, if we originally published our APIs without versioning this feature will allow you to maintain the original without a version but then add a new versioned copy of the same API. With versioning there may also be a need to maintain several version of the same API because of different usage scenarios, APIM will allow each version to point to a different backend set of APIs, or you can use policies to update earlier version to conform to the new backend. APIM supports the version in either the path, header or query string. Revisions are useful when you change the code behind your API but not the interface. Revisions allow you deploy and test the new revision without making it the active revision of your API.

image

There are a few other things that may help to make your decision to publish your APIs in APIM:

  • APIM instances have a static IP address
  • All APIM instances above developer are highly available
  • APIM Developer and Premium can be connected to a Virtual Network for VPN connectivity
  • APIM Premium can have instances in multiple Azure Regions and includes an internal Traffic Manager and shared configuration
  • APIM standard instance can be placed behind Traffic Manager, but configuration is not shared

I hope the information provide in this blog post can help you decide if APIM is the right solution for publishing your APIs.

Cross Posted to http://www.sixpivot.com.au

BizTalk Scheduled Task Adapter for BizTalk Server 2016 available on GitHub

BizTalk Scheduled Task Adapter for BizTalk Server 2016 available on GitHub

After many requests and many postponements, due to my unavailability and free time to take these tasks, BizTalk Scheduled Task Adapter is finally officially available and optimized for BizTalk Server 2016 on GitHub!

BizTalk Scheduled Task Adapter

This became more critical because Codeplex closed and community members were not finding mainly the installation files so I was getting a lot of emails requesting them. Note that despite Codeplex is closed you can still download the source code from the archive.

At the moment is only available the installation files of BizTalk Scheduled Task Adapter v6.0 for BizTalk Server 2016 and the following reported issue was solved:

  • In some scenarios, in the first trigger event, multiple messages were sent at the same time – Solved

You can download this “new” version of the adapter in BizTalk Scheduled Task Adapter from GitHub:

The BizTalk Scheduled Task Adapter is an in-process receive adapter that executes a prescribed task on a daily, weekly or monthly schedule. The adapter is configured entirely within BizTalk, all configurations are stored within the SSODB and can be exported and imported via binding files.

Soon I will add the source code for BizTalk Server 2016 and the same for previous versions: BizTalk Server 2013 R2, BizTalk Server 2013, BizTalk Server 2010, and so on.

Question?

Should I do a BizTalk Scheduled Task Adapter commercial version that will guarantee full support to this adapter (reported bugs and/or issues quietly fixed) and new features?

BizTalk Scheduled Task Adapter for BizTalk Server 2016 available on GitHubBizTalk Scheduled Task Adapter for BizTalk Server 2016 available on GitHub
Microsoft | GitHub

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 WCF-SQL Error: System.Data.SqlClient.SqlException (0x80131904): Procedure or function ” expects parameter ‘@

BizTalk WCF-SQL Error: System.Data.SqlClient.SqlException (0x80131904): Procedure or function ” expects parameter ‘@

Today while trying to test a solution where it was supposed to invoke a SQL Server Stored Procedure with optional parameters thru the BizTalk Server WCF-SQL adapter I got this following error: Procedure or function expects parameter which was not supplied.

A message sent to adapter “WCF-Custom” on send port “WcfSendPort_SqlAdapterBinding_Procedures_dbo_Custom” with URI “mssql://.// AsyncTransactions?” is suspended.

Error details: System.Data.SqlClient.SqlException (0x80131904): Procedure or function ‘InsertTransaction’ expects parameter ‘@TransactionId’, which was not supplied.

Server stack trace:

at System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult result)

at System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.End(SendAsyncResult result)

at System.ServiceModel.Channels.ServiceChannel.EndCall(String action, Object[] outs, IAsyncResult result)

at System.ServiceModel.Channels.ServiceChannel.EndRequest(IAsyncResult result)

Exception rethrown at [0]:

at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)

at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)

at System.ServiceModel.Channels.IRequestChannel.EndRequest(IAsyncResult result)

at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.RequestCallback(IAsyncResult result)

ClientConnectionId:2731f081-b009-4ba5-a420-95efe7307e71

Error Number:201,State:4,Class:16

MessageId: {746C3B89-A7ED-4C12-8548-0FE174ACA2CB}

InstanceID: {FF06027F-BB96-498B-9515-1E2D55FEAC5A}

BizTalk Server WCF-SQL Adapter: Procedure or function expects parameter

Followed by other similar warning messages:

The adapter failed to transmit message going to send port “WcfSendPort_SqlAdapterBinding_Procedures_dbo_Custom” with URL “mssql://.// AsyncTransactions?”. It will be retransmitted after the retry interval specified for this Send Port. Details:”System.Data.SqlClient.SqlException (0x80131904): Procedure or function ‘InsertTransaction’ expects parameter ‘@TransactionId’, which was not supplied.

The adapter failed to transmit message going to send port “WcfSendPort_SqlAdapterBinding_Procedures_dbo_Custom” with URL “mssql://.// AsyncTransactions?”. It will be retransmitted after the retry interval specified for this Send Port. Details:”Microsoft.ServiceModel.Channels.Common.XmlReaderParsingException: The start element with name “Request” and namespace “http://BizTalkTesting.SQLBulkOperations” was unexpected. Please ensure that your input XML conforms to the schema for the operation.

BizTalk Server WCF-SQL Adapter: Procedure or function expects parameter - Event Viwer

Cause

The cause of this problem is, once again, quite obvious and the error message present clearly identifies the origin of the problem. The stored procedure is expecting a certain field or several fields that are not being passed maybe because they are marked on the schema as optional fields.

Solution

Of course, the simple problem is to pass all the parameter presented and required by the stored procedure. You should pass them:

  • as NULL, if they are nillable;
  • or as empty strings;

Having said that, my problem was not that quite simple because the parameter described in the error above needs to be optional. After I analyze the stored procedure contract I realized that all of them are set as mandatory fields that need to be passed:

ALTER PROCEDURE [dbo].[InsertTransaction] 
    -- Add the parameters for the stored procedure here
    @SourceSystem  VARCHAR(50),
    @DestinationSystem VARCHAR(50),
    @TransactionId uniqueidentifier,
    @MessageId uniqueidentifier,
    @DocumentType VARCHAR(50),
    @DocumentId VARCHAR(100),
    @BodyMessage ntext,
    @BodyType VARCHAR(5),
    @Priority int
AS
BEGIN
...

When I say that all of them are mandatory, of course, I can set it as NULL but in terms of BizTalk Server, I need to send all the fields in the XML message.

To make it actually optional, we need to change the contract of the schema to something like this:

ALTER PROCEDURE [dbo].[InsertTransaction] 
    -- Add the parameters for the stored procedure here
    @SourceSystem  VARCHAR(50),
    @DestinationSystem VARCHAR(50),
    @TransactionId uniqueidentifier  = null,
    @MessageId uniqueidentifier  = null,
    @DocumentType VARCHAR(50),
    @DocumentId VARCHAR(100),
    @BodyMessage ntext,
    @BodyType VARCHAR(5),
    @Priority int
AS
BEGIN BEGIN
...

Once we modify the stored procedure to have default NULL values the problem will be solved. Now we don’t need to send these fields as NULL or blank, now we actually can omit them from the message – optional fields!

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

Exploring data just got easier in BizTalk360

Exploring data just got easier in BizTalk360

Do you have a BizTalk environment which handles huge volume of transactions? With the BizTalk admin console, It is nearly impossible to go through those data. In the past, BizTalk360 solved this problem by allowing to filter various data based on parameters associated with the data. But for some cases, even if you filtered the data, you might end up having lot of rows in the grid which may not be user friendly. It seems to be slow, while visualizing large set of data in a single grid.

While searching the result with large dataset, the browser seems to jump around while scrolling, providing a not smooth and unnatural experience. This has led that, from a user experience standpoint, scrolling is no longer considered as functional.

Apart from that, even the most modern browsers will eat up lot of memory when rendering all those data in the UI. To overcome this, it’s absolutely necessary to split the results of a query into subsequence’s to achieve constant response times.
At the splitting process, it is very important to keep paging transitions fluently. That means, rows can’t appear twice or miss completely in the result. For this purpose, the so-called Pagination comes into play in BizTalk360.

What pagination really does?

Pagination is an excellent way to navigate through large amounts of content. E.g., when we search for something that returns many records, which cannot be displayed on a single web page, those records are split into number of pages that can be accessed through links via the Pagination mechanism. It enables the user to navigate to the next page one after the other and even jump forward to several pages. Pagination allows you to make large amounts of content easy to find and breaks up several entries or web content into multiple pages, allowing you to toggle through content with ease.

What is improved due to pagination in BizTalk360?

In this version of BizTalk360, we have optimized the grids by providing you the power of pagination. We have implemented pagination for each grid available in the BizTalk360. It is an easy and standard practice, that prevents you from having to load the entire result set all at once.

The grid supports both preloaded and dynamically loaded data. By using pagination, the rows in the grid gets dynamically separated into pages. The grid will automatically display 25 rows in each page, by default. The user can increase the maximum number of result rows by selecting the Max Match size in the drop down.

Basic navigation

Pagination can further be customized for different circumstances, like when a user approaches to an end or the beginning, or indicating the current page number to the user. Pagination dynamically separates the rows on each page, as shown below. By listing out the page number, users are allowed to skip ahead, one page at time.

The page numbers which are shown in grey are disabled (or inactive) and the other page numbers are shown in blue, since they are enabled (or active). The user can use the previous and next page buttons, as these can be considered a more intuitive interface for showing the previous/next records.

Sometimes you may simply require Last page and First page links, which provide simple and quick navigation to the beginning and the end of the result set, to the user. These are implemented, as shown below, to further improve the usability.

The First, Previous, Next and Last page links are appended at the bottom of each grid.

Customizing row count in System Settings

By default, the grid will automatically display 25 rows per page, the user can customize the row display by adding the desired row count in Setting->System Settings->Max Matches.

The added Max Matches are displayed in a dropdown at the bottom of each grid. According to the selection of the dropdown, the row count will be changed dynamically on the resulting grid.

Through this, we can reduce the load time on each execution. For instance, it is used by executing the result, where the user can customize grid for displaying a limited number of results on each search, or showing a limited number of rows per page. This way, the overall performance to display the result, will highly be improved.

Row count display

The total grid row count of the current page compared to the overall row count will be displayed at the bottom end of the grid.

At BizTalk360, we believe that a beautiful grid and listing data interactively to user, will make our product stand out and keep customers engaged. Keeping our customer feedback and understanding the consequence of users on execution, the amount of load time increases proportionally to the growth of data. To overcome this issue, we have provided a better solution for our customers, by implementing this type of content grids, which will highly optimize the performance and reduce the customer effort to visualize the result. A major advantage of this approach, is that now an execution can be used to happen in the lower time limit.

Why we implemented Grid Column Filtering and Export to Excel in BizTalk360?

Why we implemented Grid Column Filtering and Export to Excel in BizTalk360?

Being a support person/Administrator, who would not be happy if there is a functionality to retrieve the data very easily and quickly? In a high-volume data store scenario, there will always be challenges to quickly filter and retrieve desired data. The latest version of BizTalk360 has this fantastic capability to filter the grid columns and get the results. Yes, all the grid columns in BizTalk360 have got new makeover!!!

Additionally, the Export to Excel functionality is not new in BizTalk360 there are features which already have this capability., but the new implementation is different than the existing one. How? In case there is a different set of data on the multiple tabs of the page (Eg: Tracking manager), earlier, the data in the all the grid columns will be exported to a single Excel sheet. It’s not the same now. Let’s take a deep look at the various filters implemented in the coming sections, but first, we’ll discuss the Grid Filter options.

Grid Column Filtering and Export to Excel: Grid Column Filtering

Grid Column Filtering

Let’s talk about what are all the types of filters we are using in the BizTalk360. We have implement mainly 4 types of filter in BizTalk360. The grid supports two types of filtering, in one of the user can write a filter value and choose the filter function (Contains, Is Equal to, Less than etc.). These types are:

  • Text Filter
  • Checklist Filter

Text Filter

Text filter is the default filter. Using a text filter, you can filter the text input. The text filter is already implemented in the BizTalk360 in various sections. User should enter the text in the filter text box what they want to filter. After clicking on the filter button, the grid displays only the records matching the filter criteria.

Grid Column Filtering and Export to Excel: Text Filtering

Grid Column Filtering and Export to Excel: Text Filtering

Checklist Filter

The second type of filtering is the Checklist filtering. Using this filtering type, the grid shows a checkbox list with predefined values. The user can select some of the values and apply the filtering. The grid will show only records that match any of the selected values in the list. In BizTalk360, we use checklist filtering with the following types,

  • Status Filter
  • Boolean Filter
  • Date Time filter

Status Filter        

A Status filter allows to filter the different status in the column. BizTalk360 already binds the available statuses in the drop down and based on the selected user can filter the status. For example, a BizTalk application has different statuses, like Started, Stopped and Partially started.

Grid Column Filtering and Export to Excel: Status Filtering

Grid Column Filtering and Export to Excel: Status Filtering

Boolean Filter

The Boolean filter is another type of custom filter we introduced in the BizTalk360. Say for example, in the Search Artifacts section, we have a checkbox column to check for the receive port, if it’s a two-way port or not. Using the Boolean filter for this column, the user can filter for the two-way receive location.

Grid Column Filtering and Export to Excel: Boolean Filtering

DateTime Filter

In the BizTalk360 UI, we also have date/time columns. For filtering this field, we have introduced the DateTime filter. This filter is very useful for customers to filter dates from the grid. A user can select the date from the date/time picker, which is available in the filter itself and select the time from the drop-down. Users can filter for all types of date format based on the user profile settings.

Grid Column Filtering and Export to Excel: DateTime Filtering

Clear Filter

What if you have selected a filter option and want to clear it? Here is the Clear option, which is newly introduced in this release. If the user filters multiple columns, it is very difficult to clear each filter manually. So the Clear Filter functionality is very useful to clear the all filters in a single click.

Export to Excel

When using the grid, it is often useful and important to export your data in the MS Excel to make it accessible offline. BizTalk360 already has the feature to export to Excel for grid data in Operations section. From this version onwards, we have extended this functionality to export the grids which contain multiple information or tab pages to a single sheet in both Operations and Monitoring sections. The purpose of exporting multiple grids in a single sheet is that the user can easily navigate through the information in a single sheet.

For the EDI Report Manager, Tracking Manager and the Monitoring section we have implemented this functionality. It is implemented as a drop-down, which has options like All and the distinct grid names. If the user selects the ‘All’ option, all grid information is exported to a single Excel sheet with multiple tabs. The user can also export individual grids by clicking the grid name from the drop-down.

Grid Column Filtering and Export to Excel: Export to Excel

Conclusion

At BizTalk360 we believe that both functionalities make our product stand out and keep the customer engaged. Now the customer can easily search and export data in a convenient and user-friendly method.

Author: Swetha Mohandas

Test Engineer at BizTalk360. Software Test Engineer having good knowledge of SDLC and STLC. Love to test the software product. View all posts by Swetha Mohandas

July 10, 2018 Microsoft Security Updates cause errors on the BizTalk Administration Console: An internal failure occurred for unknown reasons (WinMgmt)

July 10, 2018 Microsoft Security Updates cause errors on the BizTalk Administration Console: An internal failure occurred for unknown reasons (WinMgmt)

If you follow the BizTalk Server hashtag #msbts on social media like twitter or if you follow BizTalk Server MSDN forum, you will notice one disturbed thread recently: Security Updates released by Microsoft in July 10, 2018 will break you BizTalk Server Administration Console and as a result, you will not be able to access to BizTalk Server “Platform Settings”, getting the following error:

TITLE: BizTalk Server Administration

——————————

Failed to create a BizTalkDBVersion COM component installed with a BizTalk server.

Class not registered (WinMgmt)

——————————

BUTTONS:

OK

——————————

An internal failure occurred for unknown reasons (WinMgmt)

You will not be able for example to: restart the host instances from the BizTalk Server Administration console.

As far as I notice in my clients and in my dev machine, the BizTalk Server engine will still work properly as if nothing happened, it will still be able to receive, process and send all your messages.

Cause

The cause of the problem is still unclear, and Microsoft is still working on how to solve it. And this problem will happen depending in witch SO or BizTalk Server you will have. It has already been registered problems in BizTalk Server 2010, 2013, 2013 R2 and/or BizTalk Server 2016.

What is causing the problem are security updates that were released by Microsoft on July 10, 2018.

Solution

For now, there isn’t a fancy solution, Microsoft is working on a resolution and estimates a solution will be available mid-July.

With that said, the only “solution” or let us call workaround to solve this issue is to uninstall all the “critical” security updates that were installed: in my case, uninstalling the “KB4284833” solved my case.

An internal failure occurred for unknown reasons (WinMgmt) KB4284833

To do that you need to:

  • Press the “Windows key” to open the Start menu and type “Control Panel” and click on “Control Panel” option from the Search window
  • On the “Control Panel” windows, select “Programs” and then “Programs and Features” option.
  • On the “Programs and Features” panel, select “View installed updates” option.

An internal failure occurred for unknown reasons (WinMgmt) uninstall security updates

  • And then you just need to select the update you want to uninstall and then right-click and select “Uninstall”.

In the end, you will need to reboot your machine.

You can always check this forum thread: Microsoft Security Updates cause BizTalk Admin Console errors: An internal failure occurred for unknown reasons (WinMgmt) to check to have an idea what updates you should uninstall depending on your OS version:

  • BizTalk Server 2013 R2: KB4338600 and/or KB4338601
  • BizTalk Server 2010: KB4338602
  • Others: This includes KB4338600, KB4338605, KB4338613, KB4338614, KB4338424, KB4338419

All of them to be checked in your environment and analyzed by your internal teams.

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

Microsoft Integration Weekly Update: July 16, 2018

Microsoft Integration Weekly Update: July 16, 2018

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!

Feedback

Hope this would be helpful. Please feel free to reach out to me with your feedback and questions.

Advertisements

Using Azure Tags to make managing your Azure Spend Easier

Using Azure Tags to make managing your Azure Spend Easier

By: Bill Chesnut

Tags have been around in Azure for a long time, but only recently have they been brought to the portal has a 1st class citizen.  They are now on the overview page of almost every resource type

image

This is an example of a Virtual Machine, and Tags are now visible on the Overview Page

One of the best practices that some Azure users have been following is to Tag the Resource groups that resources are in, one assumption here is that those Tags would be available in the billing portal and/or billing files, but that is not the case, since Resource groups have no billing information associated with them they don’t appear in the billing files and cannot be used to separate the bills by Resource group Tags.  This is a top request for most products that deal with reporting on Azure consumption.  Until these products add support for rolling down the Tag from the Resource groups, there is a manual way to make this happen, but it could be lots of work for large Azure subscriptions.

image

In your Resource group select all the resources you want to Tag, Click “Assign tags”

image

Add the Tags to assign at the top and click ‘Assign”

image

Select one of the resources to verify the tags have been assigned

You can now go into the Azure Portal Billing and Cost Analysis and select the Tag you have assigned and see the costs associated with that tag

image

Hope this blog post helps you manage your Azure environment easier.

Note: The feature to roll down Tags from Resource groups is being added to SixPivot’s Cloud Control Product in the near future, please go and try Cloud Control

image

Trial for Free today

Cross posted to http://www.sixpivot.com.au

BizTalk Server Tips and Tricks: How to properly configure the connection string inside the Database Lookup functoid

BizTalk Server Tips and Tricks: How to properly configure the connection string inside the Database Lookup functoid

It’s fair to say that we all know the default Database Lookup functoid. It allows you to connect and extract information from a database. This functoid requires four input parameters in the following order:

  • A lookup value – value for which to search in the specified database, table, and column (next parameters);
  • A database connection string – The full connection string for the database with a provider, machine name, database and authentication (an ActiveX Data Objects .NET (ADO.NET) connection string);
  • A table name – name of the table in the database in which to search
  • A column name for the lookup value – name of the column in the table in which to search – the first parameter

The functoid is quite simple to use, however, the main problem that developers face when they use it, refers to the second parameter: the connection string.

How to know the correct value of the connection string to be set in the Database Lookup Functoid

Is hard to remember the correct syntax/value to specify in the connection string to be used inside the Database Lookup Functoid.

For you to be sure that you don’t make any mistakes, which could  lead to future waste of time by diagnosing and rectifying the connection string, the simple and easy way to guarantee that we are using the correct connection string value – but also for not having to remember this by head – is to:

  • Create a simple Universal Data Link (.udl) File
  • Set the OLE DB provider connection parameters
  • And finally, test the connection to check if everything is correct

To accomplish this, we need to:

  • Create a text file and name it “ODBCConnectionTest.udl” on your file system
    • Preferably on the BizTalk Server machine
    • The name of the file is not important, the important part is the extension, it must be “.udl”
  • Double-click the Universal Data Link file that you just created
  • On the Provider Tab, select the appropriate OLE DB provider for the type of data you want to access and then Next
    • In my case, it is “Microsoft OLE DB Provider for SQL Server”

Database Lookup functoid: Universal Data Link

  • In the Connection tab, specify:
    • The SQL Server instance that hosts the database
    • The authentication method: Use Windows NT integrated security or Use a specific user name and password
    • And finally, the database name to which you want to connect

Database Lookup functoid: Universal Data Link Connection

  • After specifying these properties, you then should click on “Test Connection…” button to attempt a connection to the specified data source. If no connection is made, review the settings. Otherwise, click “Ok”

Now that we have our Universal Data Link file created and properly configured, you can open the UDL file in Notepad and you will have access to the connection string value that you should use inside the Database Lookup Functoid. You just need to copy and paste it inside the second parameter of the Functoid.

Note: you should paste the connection string statically inside the Database Lookup Functoid but that is a different topic that we will address in another BizTalk Server Tips and Tricks.

I hope this small trick will the useful, enjoy and stay tuned for new BizTalk Server 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