In this last period I’m doing many different BizTalk assessments and health check, these kind of missions are really complicate to do specially if you need to check the source code and BizTalk NOS supports me a lot, the best thing I can do is to show you how I use BizTalk NOS in different situations, in this post I will show you one real case in a orchestration assessment.
I found a solution with many projects insides, obviously the projects and solution name are obfuscated.
The code is well done but the number of projects inside the single solution is huge, creating different problems.
First big problem is the navigation, I can’t manually navigate inside it just browsing each single project, the wild search feature helps me a lot to find what I need.
I want to understand where the solution implement Oracle integration and what error messaging patterns it use, first of all I execute a wild search using the “oracle.” word and ignoring the case.
I got 1 orchestration, first of all I like to execute the Refactor feature, it able to provide me many information, first of all the size and complexity, I can execute the same feature globally from the solution file and I receive the same report bat with a global result.
The BizTalk NOS produces a very detailed report with many useful information, on top I can check the most important information:
Average complexity, this is an algorithm which calculate the complexity using different parameters as branches, code used, loops and so on, more than 1000 means that the orchestration is complex to understand and too many artefacts present, I will discuss that with the customer.
File Size, is the current assembly Kb size in term of this orchestration, quite high… but the AGC is what I looking for.
AGC, Average Global Cost, this algorithm calculates the global cost of orchestration considering also the external dependencies used, as maps, schemas pipelines, orchestrations and so on, this is what I’m really keen, the result here is 11643 Kb, this means that this orchestration potentially will consume 11+ megabytes of memory, could be very expensive if this orchestration is called in multiple instances, I will check the issue with the customer.
Number of warning, this algorithm sum all the warnings found in the orchestration, a warning is something that doesn’t follow a simple base best practice, as base I mean a persistent in a loop using a send port, a extensive using of code inside a shape, a default named as “schema1 or map2” used inside it an more, over 50 means that is better have a look inside the orchestration for sure you will find different points of discussion.
For example in this orchestration I found many dangerous persistent points created by send ports inside loops, I can see that in the report looking for the database bomb icon, I will check this other issue with the customer.
To understand more I also use the dynamic navigation panel, when you open the orchestration you can see a navigation panel on the right.
Using this panel I’m able to navigate in very fast way inside the orchestration and see all the messages and maps used and all the dependencies, but I will love to show you what I’m able to find and understand during a BizTalk solution assessment using BizTalk NOS.
I’m keen to the message ExceptionNotificationMessage, I think this message is used inside the orchestration to manage the messaging error handling, I’m keen to understand if the error messaging pattern used is global inside the solution or just inside this orchestration.
To understand that I open the schema with a double click from the dynamic navigation panel, now I need to locate the schema inside the solution, to do that right click on the top of schema toolbox panel and select I simply select the Locate It menu voice.
Now I’m able to use one of my preferred feature, the Troubleshooting-External Dependencies, right click on the schema file and select Troubleshooting and External Dependencies,
The result is most of the orchestration are using this schema, this means the error messaging handling should be centralized, to be sure I execute a wild search using the schema name and the result confirmed, I can also see where the schema is used and constructed, now I can check the libraries code regarding the error handling.
As you can see BizTalk NOS Ultimate is a very powerful tool, I use it in many different situations, assessment, troubleshooting, development, refactoring and more, there are a lot of features inside, I will write more about it, I love it, it is ROCK!.