Showing posts with label BAM. Show all posts
Showing posts with label BAM. Show all posts

Wednesday, July 2, 2014

BizTalk 360 Message Flow


I installed the latest latest version of BizTalk 360 (www.BizTalk360.com) , I already knew all the work arounds to make it work, so this was up and running quicker this time. Refer to my other post: Review/summary Biztalk360

I was intrested in the message flow, which leverages the tracking database, of which sad old HAT was used to display this detail, and peices the pircutre based on tracked events, back together.  I congraulate the BizTalk 360 team for being able to hook into the queries of the DTA databse that that old HAT thing does when you click message flow on a tracked message.

There is an easier way of doing this, but lets go with this first of all, as this is what happened to my message.

I liked this that I decided a post about it was worth the effort, given that much of what BizTalk 360 can't track is shown here, in our solutions 90% of the messages go to and from the Bus, or message box, we leverage direct bound ports, that communicate with various external systems, that form part of a shared network of systems we can leverage the services of via the ESB. With out using the ESB framework, it becomes much simpler to implement.

However here is what it gives me, which is nice, I have had to remove any company details and information, hence the black blobs, but you can see the process is shown, and whilst it took time, and looks a bit messy, you can move things around, but you can see what went down graphically, its pretty to the eye.

Whats important here is every link out of an orchestration and into another is not monitored, what detail that line contains, and what happened inside that orchestration is also not monitored and tracked in BizTalk 360, with sufficent detail, not even what went down each line, what was the message and what was the critical business detail here.

For my implementation of this process and all behind this process flow, I have BAM hooked in, it follows the whole process, leaps and jumps to and from different steps, and different orchestrations, flowing the logic, and pulling key data out. More importantly it knows if something didn't work, as we don't just fail and suspend, we handle and report, implement retry logic and re-submision abilities. Based on what BAM is telling us, the reporting we get is amazing, its not a pretty picture, but the reporting guys do make it look decent in reporting services.

Anyway have a look below, the picture is very nice, but just remember what is missing from the picture, is everything you need to see, and the picture falls into the pretty photos part, it is a great effort to get the picture, but there is more to BizTalk than a pretty Picture. Be sure to check my other post on this topic.


Sunday, June 29, 2014

BizTalk360 Review and summary


I am going to provide a review and summary of BizTalk 360. www.BizTalk360.com

I am approaching this from the point of view, I have not used it and I want to use it, and get it to do what it says on the box, monitor BizTalk.

Let’s start with actually getting it working…..

First blocker, the install, for some reason, even though I am an admin on the box, and I can install BizTalk fully, I need to go to a command prompt and run this as an administrator. I can install a BizTalk MSI which creates a website without needing to be an administrator; however this seems to have problems here.





Now we have it installed, we click the link on BizTalk 360, after a short pause we are greeted with this screen, nothing else to tell us why or what to do, just this screen.  Now the user of whom we selected does not have access to the management database, we selected the isolatedhost user, that can talk to this database…. For some reason it’s not allowing us to? With no detail… great.


We change the user to another user, recycle the app pool, and reload the site….


I don’t quite know what to make of this… so we poke around, and configure the environment.  Now our BizTalk is installed on the machine we are running this on, as it kind of needed it to have all the BizTalk Bits, so it should know where the management database is, as it’s stored in the registry. The default SQL instance and the standard name for the BizTalk Management database needs to be entered here. We press Test Connection, it never returns, we waited for about 10 minutes, and it never came back, just a circle spinning endlessly.

 
Read the documentation, they want us to use mixed mode authentication and use the BizTalk360 user it tried to covertly create for us, well bad news BizTalk 360, this is in violation of our security policy and not allowed, and this is not uncommon, most organisations have this as their policy. Strike 1.

Refresh the web page after also putting the license key in…. our Licence type is unknown… not sure what this means.


I notice a license icon next to the list, it brings up request new license, so I try and generate a request. Press the button…


Even though the user has permissions…..

I tweak some more, fudge it more….

I can then press the generate license request.  It wants to send some highly confidential information, as part of this request, the domain name, the admin group name, the server name, this I am simply not allowed to give to an external party, and I am unable to go any further with this.

company:WWW|adminGroup:{Domain}\{Removed} BizTalk Server Administrators|mgmtSqlInstance: {Removed Server Name} |mgmtDbName:BizTalkMgmtDb|BizTalkVersion:3.10.229|EnvironmentType:Non-Production

I did have a license key however, and it still comes up unknown….

More tweaking it around…. I get to the dashboard…. Again I’m running as a user who is now the db owner of all of the BizTalk Databases, highly unorthodox, but it is the only way I could get this thing to even get me this far. Then I am blocked again….



Why this occurs? I have no clue; it’s just not going very well for this product.

The fact it’s actually querying the message box does not sit well with me, this database is used by every host instance, every orchestration, almost every second, and it’s a very intense usage database, that you don’t just run queries in a production environment, which are not supported by the product group.

I finally got it to work… well kind of, after giving my app pool user, ownership, which is VERY risky, but this is a sandbox, and I want to make it work… Then I find I need yet another BizTalk Database to be given access… The DTA Database… again, not something you should really be querying.

 
Continue to click down on the list of things you can do, BAM Views… same problem, my App Pool user does not have access, and why would it?

Looking further, at the advanced event viewer, which basically looks at the event log.

The filter I did, gave 100% BizTalk 360 errors… What’s even stranger is that the errors are about sending emails, of which I have not turned on, and thus not configured to send.

 
I bypass this, configure it all up.... Next test, all configured, alarms set, and monitoring setup.

I am monitoring a send port, and a receive location for x Number of transactions per hour.

I am also monitoring orchestrations that stop in a particular application.

I am sitting on the monitoring dashboard, which refreshes every 60 seconds.

My environment is saying it’s healthy. I filter for errors.

I stop the orchestrations I am monitoring, I wait….




One refresh, still healthy, two refreshes, still healthy a manual refresh still healthy.





BizTalk 360 is not looking too healthy.  It never tells me it’s not running….. It never tells me later that no transactions went down the port…. BizTalk 360 FAIL, it just does not tell me....

On the whole, BizTalk 360 is trying to be the BizTalk admin console, with insufficient permissions, and bypassing proper administrator permissions, allowing ANYONE to get on here, even people who would otherwise not have permissions to BizTalk. It bypasses all the security of BizTalk Groups, the BizTalk Administrators group, the BizTalk Operators Group.

It bypasses all BAM related permissions for specific users, allowing the user to see things in BAM they would not ordinarily be allowed to see.

It does not monitor, of which one of its key features is, I received not one alert, and not one dashboard said things were bad. It always said my environment was healthy, several hours after I made it quite unhealthy.

It could only monitor things like orchestration running, and send and receive port transactions. We have MANY processes that are ESB processes, which use direct ports, and send messages to the message box, and are routed to other subscribers internally. None of this can be monitored.

It uses queries against the message box, management database, DTA database, BAM database and ESB database. A direct query of these databases is highly unorthodox, and very dangerous. I have several queries that can provide much of the detail, but I am NOT ALLOWED to, and do not run these on production, it’s downright dangerous to run un-supported queries on a production environment, particularly those running with their own permissions.

It tries to be the BizTalk Admin Console, of what the BizTalk Admin console is designed to be and ships free with the product, and can run on an operators desktop.

It tries to be the BAM portal, which comes free with BizTalk, which was built for BAM, and bypasses all permissions of this portal, in a very bad way given the data here can be highly confidential.

It tries to monitor BizTalk, which did not seem to work for me, but it’s running queries, multiple queries against the BizTalk databases, every 60 seconds, these are putting additional load on your BizTalk environment, and possibly blocking queries from BizTalk itself, highly dangerous.

The majority of things it does, come with the product, they actually make it harder to do than in the BizTalk Admin console, which has its own permission set, you can bypass this by granting a user super user access to specific applications only, which is nice, but it’s a bypass of the permission set.

Would I use and thus recommend BizTalk 360?

Do not get me wrong, I looked at this tool, and configured everything and after many problems got it working, and set up all the features, and put it through its paces, I actually wanted it to work, if what’s written on packaging, and in all the hype around this tool.

So would I use it? Absolutely not.

Why Not?

I get better and more precise monitoring from BAM, I get better alerting from BAM. I can see not just that there was a problem with system X which uses port Y, I can see what it is, I can see the number of transactions, the volume, or lack of volume, which transaction is effected, and why. I can do this for ESB to ESB transactions as well. I can better engage the business of whom is the ultimate owner of this and give them such great detail that they are often astounded by the level of knowledge we have about what’s going on.

If I use the System Centre Management pack for BizTalk, I can hook into just about every alert and event that gets raised in BizTalk. There are MANY perfmon counters that expose pretty much most of what’s happening in BizTalk, and you can configure monitoring of this in a much more supported fashion than what is exposed in BizTalk 360.

This puts me in a more supported situation, and 100% of this is free, in that it ships with the product, is supported and works, why would I use something else that does not work, and is not supported, in an organisations production environment that runs its core operations and controls a greater than million or billion dollar business…. I am not going to take a chance like this ever.

There is no way I could even convince the business to do so with risk factors like this.

Wednesday, May 14, 2014

BAM Alerts Failure Setting Up

Many people, including many experienced BizTalk Developer, do not know about or fully understand BAM and in particular BAM Alerts.
If you know your stuff, you will know it’s VERY useful, not only because it is out of the BOX, but it is something that can be very useful.
I have experienced some problems setting it up, or getting it actually working on BizTalk 2013, finally they are using the right version of SQL, and the right version of everything else, sadly the BizTalk Team, are not so great at developing, and they cause issues, or rather don’t develop and then test their stuff correctly.
So I found some bugs, and I will provide you the Fixes.
When creating a BAM Alert, you may get a failure on the screen, something didn’t work. On closer inspection to the event log you see something like the following.
System.Data.SqlClient.SqlException (0x80131904): The EXECUTE permission was denied on the object 'bam_Metadata_GetUserAlertInstances', database 'BAMAlertsApplication', schema 'dbo'.
It seems the setup of the BAMAlerts database was not fantastic, In that no one has access to it, to create alerts, not just to this stored procedure, but to several….
A quick solution is to grant permissions to these stored procedures, as you go you find that this one now works, and the next one fails, so to avoid this problem, here is the script I used, and ALL of the offending stored procedures, as our BAM system is open to the public user base, we grant everyone access, as the information is very valuable.
Against the BAMAlertsApplication database.
GRANT EXEC ON [dbo].[bam_Metadata_GetUserAlertInstances] TO PUBLIC
GRANT EXEC ON [dbo].[bam_Metadata_GetAlertInstanceByViewName] TO PUBLIC
GRANT EXEC ON [dbo].[bam_Metadata_InsertAlertInstance] TO PUBLIC
GRANT EXEC ON [dbo].[bam_Metadata_InsertAlertOwner] TO PUBLIC
GRANT EXEC ON [dbo].[bam_Metadata_GetAlertInstanceID] TO PUBLIC
GRANT EXEC ON [dbo].[bam_Metadata_GetUserAlertInstance] TO PUBLIC
GRANT EXEC ON [dbo].[bam_Metadata_GetAlertSubscriptions] TO PUBLIC
GRANT EXEC ON [dbo].[bam_Metadata_CreateSubscription] TO PUBLIC
GRANT EXEC ON [dbo].[bam_Metadata_UpdateAlertInstanceXml] TO PUBLIC
GRANT EXEC ON [dbo].[bam_Metadata_IsAlertOwner] TO PUBLIC
GRANT EXEC ON [dbo].[bam_Metadata_GetAlertSubscriptionIDfromNames] TO PUBLIC
GRANT EXEC ON [dbo].[bam_Metadata_GetSubscription] TO PUBLIC
GRANT EXEC ON [dbo].[bam_Metadata_DeleteSubscription] TO PUBLIC
GRANT EXEC ON [dbo].[bam_Metadata_GetAlertOwners] TO PUBLIC
GRANT EXEC ON [dbo].[bam_Metadata_UpdateAlertInstance] TO PUBLIC
 
This will now enable you to create and edit an alert, add a subscriber, and remove a subscriber. As you can see there are MANY procedures that permission was simply not granted, very annoying.
Once this is done, you find you have yet another problem…… if your domain, like mine, has usernames that contain spaces, in that {Domain}\Paul Somers. The BAM alerts system does not like you. It will complain because it can’t handle a space, even if I put this in quotes, it still does not work. 
The following owners could not be resolved: {Domain}\Paul; Somers. Correct the list of owners and try saving the alert again.


Use the navigation bar on the left to access Business Activity Monitoring views.
If the problem persists, contact your System Administrator.
Again VERY annoying, this I could not find a fix for, but the work around is to use a user with no spaces, to create the alert; our service account users have no spaces, so I used this rather.
All in all, the BizTalk team is making what is a fantastic feature, and very valuable ability of BizTalk, less than acceptable. If I did not know the power of BAM, and the true awesomeness of BAM, BAM Portal, and BAM alerts, I would be put off from ever using it….
I say to all, use it, it’s truly awesome, if you need help come talk to me, my contact details are paul@somers.com.

Monday, April 14, 2014

BAM Alerts: Cannot start service BAMAlerts on computer


When installing BAM Alerts on BizTalk 2013, we encountered an error; it was preventing us from moving ahead with our plans for BAM. We investigated, asked the relevant people and nothing helped.
The error is below:

Exception object: 02d61034

Exception type: Microsoft.BizTalk.Bam.CfgExtHelper.BAMConfigurationException

Message: Error executing process: C:\Program Files (x86)\Microsoft BizTalk Server 2013\Tracking\bm.exe

InnerException: Microsoft.BizTalk.Bam.CfgExtHelper.BAMConfigurationException, Use !PrintException 02d60dc4 to see more.

StackTrace (generated):

<none>

StackTraceString: <none>

HResult: 80131600

0:001> !PrintException 02d60dc4

Exception object: 02d60dc4

Exception type: Microsoft.BizTalk.Bam.CfgExtHelper.BAMConfigurationException

Message: Microsoft (R) Business Activity Monitoring Utility Version 3.10.229.0

Copyright (C) Microsoft Corporation. All rights reserved.


ERROR: Failed to set up BAM database(s).

The alert infrastructure was not created.

Cannot start service BAMAlerts on computer '.'.

The service did not respond to the start or control request in a timely fashion


InnerException: <none>

StackTrace (generated):

<none>

StackTraceString: <none>

HResult: 80131600

The root problem was the BAM alerts service was being created, but failing to start in the allocated timeout, and thus it failed. We had this working on our development machine fine, however this was UAT and it was not fine.

In UAT like most good setup’s we had various domain policies applied, that locked down the environment, for good reason. The service was trying to start, and waiting for verification that it could start.

What it was trying to do was a verification operation that took quite long time(> 60 seconds) because it was calling winhttp to download Certificate Trust List (CTL) but the download action was not successful.

This would not work, as it’s a locked down environment and we do not allow this. Then because the service does not start in time, it fails the install….

The solution, as simple as it is now… was to implement a setting in the bamalerts service that would tell it to bypass the checking of the security.

Create a bamalerts.exe.config, in the folder where BAMAlerts.exe is installed usually:  C:\Program Files (x86)\Microsoft BizTalk Server 2013\Tracking.

Place this simple config into the file.

<configuration>

     <runtime>

           <generatePublisherEvidence enabled="false"/>

     </runtime>

</configuration>

Retry the configuration of bam alerts, and it should work. (Be sure to clean up the alerts database, and see my other post, and remove the role NSEventReader from the BAM Primary import database or you will get a different error and it still will not work.)

This is a known issue, and there are some fixes out there for this, but it will also prevent other windows services from starting, not just BAMAlerts. In in locked down configurations, like ALL BizTalk environments should be, you can not just allow internet access for all things. It should be SOME not ALL things have internet access.

Monday, March 17, 2014

ERROR: Failed to set up BAM database(s). The specified account is already in the view.

We have had this error occur when installing BAM Alerts.

It's a pain which was caused by another part of BAM not working, and leaving bits left over......

Solution is simple enough:

SQL Server Management Console
 BAMPrimaryImportDB
  Security
   Roles
    DatabaseReoles
     BAM_ManagementNSReader
        Remove the account here.

Remove the BAMAlerts Database.

Try again.
 

Tuesday, September 17, 2013

BAM Portal Not Installing


You installed BizTalk Server

You want to config BAM Portal see this error:

Failed to validate BAM Portal Web site (BAMPortal)
   Additional information:
      The BAM Portal website Default Web Site is not valid.
      (Microsoft.Biztalk.Bam.CfgExtHelper.PortalHelper)
      Exception from HRESULT : 0x80005008(System.DirectoryServives)

Basically its not allowing you to select the default website, its giving a red cross. 

Simple Solution:
  1. Open the Server Manager MMC snap-in (right-click on Computer and select the Manage option).
  2. Expand the features node.
  3. Select the Web Server node.
  4. Look through the role services.  Check for IIS 6 Management Compatibility and see if it says it is installed.
  5. If not installed, click Add Role Services on right of screen.  Select the IIS 6 Management Compatibility and install.
  6. Go back to BizTalk configuration, the BAM Portal feature should now install without any issues.