Notes From The Road: 2023 Year In Review

Notes From The Road: 2023 Year In Review

I usually like to see the positive side of things, even in adverse situations, so despite 2023, it has been a strange year, neither good nor bad, just weird. Perhaps the constant inflation of the cost of living and the continuous loss of civility in society have influenced this definition. I still find myself remembering the good and most important moments, both professional and personal.

Personal highlights…

5 years in a row with home renovations. The path to our dream house is not a fast run but a marathon instead :). This year, we have decided to renew all the bedroom wardrobes in our house and improve our pergola with lights to have family dinners on summer nights. Also, do some renovations on our AIRBNB house in Porto:

We made one of our dream trips: Walter Disney Paris!

And I was able to bring my wife on a “business trip” with a personal weekend as a bonus for her to know a different city and country: Gothenburg, Sweden.

Professional highlights…

Each year, I change, or I try to, how I contribute to the different communities so that it does not become tiring or monotonous. If 2021 and 2022 were years that I dedicated myself to speaking engagements at conferences and User Groups worldwide on topics like BizTalk Server, Logic Apps, and Power Automate, delivering a combined total of 31 sessions. Or in 2022, a year that I also focused on creating whitepapers, ending up publishing ten whitepapers that year.

This year, I decided to return to my roots and dedicate myself to writing more blog posts on my blog (117 new posts) – a personal record!:

  • 2022: 77 new posts
  • 2021: 77 new posts
  • 2020: 92 new posts
  • 2019: 43 new posts
  • 2018: 70 new posts
  • 2017: 63 new posts (migrate to a new blog)
  • 2016: 50 new posts
  • 2015: 79 new posts
  • 2014: 52 new posts
  • 2013: 79 new posts
  • 2012: 102 new posts
  • 2011: 61 new posts

As in BizTalk360 (13 new posts) and Serveless360 (42 new posts). Making an astonishing total of 172 blog posts, which means an average of 14.33 blog posts per month.

I also contribute to GitHub with samples, tools, and other types of resources.

But don’t get me wrong, I was still able to deliver 8 sessions (on-prem and remote) in several conferences and User Groups worldwide on topics like BizTalk Server, Logic Apps, and Power Automate:

  • Microsoft Integration Trends 2023 Webinar | March 2,9 and 16, 2023 | Online | Enterprise case studies on migrating BizTalk Server to Azure
  • INTEGRATE 2023 London | JUNE 5-7, 2023 | London, UK | BizTalk Server to Azure Integration Services migration
  • Azure Logic Apps Community Day 2023 | June 22, 2023 | Online | A walk in the park with the new Logic App Data Mapper
  • Integration Down Under | June 29, 2023 | Online | A walk in the park with the new Logic App Data Mapper
  • BizTalk to Azure – The Migration Journey event | September 28, 2023 | Gothenburg, Sweden | Elevating Integration – The Roadmap from BizTalk Server to Azure
  • BizTalk to Azure – The Migration Journey event | September 28, 2023 | Gothenburg, Sweden | Azure Integration in Action – BizTalk to Azure Transition Case Studies
  • CONNECTED Conference 2023 | November 15, 2023 | Online | API Management: Best practices, tips and tricks
  • Porto.DATA #90 Christmas edition – Lightning talks | December 19, 2023 | Online | A walk in the park with the new Logic App Data Mapper

Another thing that I started doing more often was publishing videos on my YouTube channel alongside my coworker, Luis Rigueira. We ended up publishing 14 new videos I especially like:

Finally, this was a year full of training. I was able to deliver 10 training courses (in person and online) focused on BizTalk Server and Azure Integration Services to several partners and organizations on topics like:

  • Logic App Training Course
  • Azure Integration Services Training Course
  • BizTalk Server Developing Training Course
  • BizTalk Server Administration Training Course
  • BizTalk Server Dev and Admin Training Course

Star Wars…

Finally, I couldn’t endup without speaking this. If you saw some of my speaking engagements, you notice that at the end I finish the session with this slide:

Well, my son (and me) is a Star Wars fan, and every time I go to the computer at night to write articles and blogs, prepare sessions, or travel to lectures, I tell him I will earn money for our LEGO! So, I decided to create this buy-me-a-coffee thing for those who like my community work and want to contribute.

We were not even close to raising the amount for the Millennium Falcon (not the biggest one, nor the small one :)), but I decided to tell him that we did it! And here he is, saying thank you to all the people who helped us achieve our goal!

The 2024 goal will be once again the LEGO Star Wars Millennium Falcon (75192) or Chewbacca (75371)!

For all of you…

Once again, thanks for following me, and for reading my blog, and I promise that I will continue to share my knowledge during 2024.

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

Using BizTalk360 for alarm notification statistics

Using BizTalk360 for alarm notification statistics

It is nothing new that BizTalk360 enables you to set up automated monitoring for BizTalk. This includes the deployed BizTalk application artifacts and different kind of endpoints. You can even track the processing which is taking place in your BizTalk environment.

For each unexpected situation for which you have set up monitoring, you can receive notifications via for example email, SMS/Text message or the Event Log. Besides that, BizTalk360 also provides Notification channels to connect to products like Slack, Microsoft Teams and HP Operations Manager. In case you are using ServiceNow, you can even have BizTalk360 generate incidents into that product! If that still does not meet your requirements, you can use a Web Hook, or the easy-to-use API provided by the product to integrate with your systems.
The BizTalk360 database contains information about the transmitted notifications.

Collecting Alarm statistics

Recently, we had a call with a consultancy company which manages several BizTalk environments for their clients. These clients are using BizTalk360 for operating and monitoring the BizTalk environments.

The consultancy company was interested in knowing whether BizTalk360 provides any statistics about all the alarms which were triggered over time. This kind of statistics serves different goals. On one side, this kind of information gives insight in components which frequently have outage, enabling to take counter measures. On the other side, this can also be used to provide such information to the client of the consultancy company as a kind of reporting.

In this blog post we describe how you can use the information in the BizTalk360 database, to show statistics about which alarms have been transmitting which kind of notifications over time.

Showing SQL data in BizTalk360

As already mentioned, the information about the transmitted notifications is stored in the BizTalk360 database. BizTalk360 provides different capabilities to show data which is stored in SQL Server databases. These capabilities are:

• Secure SQL Queries – see
• Custom Widgets – see

Depending on the requirements how you want to be able to view that data, you can use either or both features, but the main characteristics are that Secure SQL Queries are mainly used manually, where Custom Widgets can become shown on a dashboard and the output will be refreshed automatically.

The information we will be using in this blog post is stored in a table called b360_alert_notify_ToBeNotified. The content of that table is specific to Threshold monitoring. If you need more detailed information about Data Monitoring statistics, you should have a look at a different table. Based on the b360_alert_notify_ToBeNotified table, you can write a SQL query which looks like below:

SELECT aa.Name AS 'Alarm Name',
an.NotificationRequiredType AS 'Notification Type',
COUNT(an.AlarmId) AS Count,
MAX(CreatedDateTime) AS 'Most recent'
FROM b360_alert_notify_ToBeNotified an
RIGHT OUTER JOIN b360_alert_Alarm aa ON an.AlarmId = aa.Id
WHERE (an.NotificationRequiredType <> 'Regular')
GROUP BY aa.Name, an.NotificationRequiredType
order by [Alarm Name]

In above query, notifications of type ‘Regular’ have been left out. Regular notifications refer to the Health alarms which can be received at a specified time, to show the state of all the mapped artifacts of an alarm. For this scenario, that information is considered as not relevant.

Retention period

It is good to know, that without any filters, the data will be shown according the Purging policy for Alert & Maintenance History. This policy can be viewed and reconfigured in the Settings area, under BizTalk360 Health, in the Purging Policy screen.

Obviously, in case you do want to see a bit more limited data set, you can add WHERE conditions based on the CreatedDateTime field.

Showing Alarm statistics as a Secure SQL Query

When you create a Secure SQL Query for this, the output of the query can look like below.

As you can see, the query shows information about the name of the alarm, which kind of notification is involved, the count of notifications and the most recent date/time a notification has been transmitted, for that alarm/notification type combination.

If you want to know more about how to create Secure SQL Queries, you can check out the Documentation portal about this feature.

Having this kind of information as a Secure SQL Query can be very handy. You have the information easily at hand by accessing that query and run it. The results can also be exported to a .CSV file.

Showing Alarm statistics as a Custom Widget

If you want to have an even better experience, you can consider creating a Custom Widget for this. Doing so, enables you to have this information on a dashboard and because of the behavior of these dashboards, the widget will be automatically refreshed. Besides that, by a simple click, you can export the entire dashboard, which could contain more statistical widgets, to a PDF file and provide it to your clients.

Based on the query we have seen earlier in this article such a widget will look like below.

Once the widget has been added to a dashboard, the query will automatically be executed, and the data will be refreshed each minute. If needed, you can change the refresh interval in the script of the widget.

If you want to read more about creating such Custom Widgets, check the Documentation portal for it. It contains some detailed articles about this topic.


We have shown another way on how BizTalk360 can be useful. So, if you have any questions about this capability, or anything else related to BizTalk360 feel free to contact us. Why not give BizTalk360 a try! You can download a free trial which contains all the features for a limited time.

Author: Lex Hegt

Lex Hegt works in the IT sector for more than 25 years, mainly in roles as developer and administrator. He works with BizTalk since BizTalk Server 2004. Currently he is a Technical Lead at BizTalk360. View all posts by Lex Hegt