In the first post on BizTalk Services I discussed setting up the service in Windows Azure. One of the first steps in the setup was specifying the database settings, access control and monitoring. In this post I like to discuss the tracking and monitoring of BizTalk Services and deployed solutions.
The SQL database is setup for tracking
purposes. This database is provisioned in Windows Azure. In the second
tab you specify the database setting by providing a name, Server, and
In case you do not have a database server than you need to set that up, see How to Create and Configure SQL Database.
In case you want to size the database, choose the edition and collation
that you can check the configure advanced database settings option. An
extra tab will be available for you to enabling you to specify these
After having setup the BizTalk Services you can find the database under SQL Databases in the Windows Azure Portal.
can select the database that has been created for the BizTalk Service,
by clicking dashboard of the database and then click manage url.You will
then be directed to Silverlight portal.
credentials and you can access the database. Note that you may have to
set firewall settings (rule) to be able to access the database. This can
be done through dashboard selecting manage allowed ip addresses.
Once you have access to the database you can click design to see the tables, views and stored procedures of the database.
data is stored in tables and accessible directly or via views or stored
procedures. By executing a select statement of the PipelineAndSourceTrackRecords view for instance I can see the tracked data of an XMLBridge I deployed in my BizTalk Service (see BizTalk PaaS: Windows Azure BizTalk Services – Part II).
The BizTalk Service itself can be monitored through the portal by selecting monitor.
You can add metrics if you like to monitor more like message in progress or round trip latency.
Through the portal you can also depending on the chosen service tier (see previous post part III) scale the service.
To see the tracking data or monitor you might want to tap into the tracking database of the service.
could connect to database and through views and tables see the tracking
data. You might opt for creating a custom solution to visualize the
tracking data like below.
you see a screenshot of windows form application that pulls the
tracking data from SQL Azure database and fills two datagridviews. Data
is gathered from the PipelineAndSourceTrackRecords View and TrackRecordRecordProperties table.
When I send a request message through a XMLBridge to a on-premise datasource (SQL Server).
A Tracking ID is sent for the message. This can be seen in tracking database. I created a new view based on the following query:
TrackId, RequestId, ServiceNamespace, EventType, EventSubType,
EventLevel, EventTime, StageName, ActivityName, Name, Value FROM
PipelineTrackRecords p INNER JOIN TrackRecordRecordProperties t ON p.Id =
Below you see adjusted monitoring form that leverages the data from the view into one datagrid.
The sent TrackId is present in the message going to the LOB source i.e. SQL Server database defined in WorkflowItinerary as runner_times.
A new TrackId
is generated for the message returning to caller (client). This is
pretty basic tracking that is being performed on backend i.e. SQL Azure
database, when messages flow through the bridge. To make it more
sophisticated you will need to do some custom coding to visualize and
present the data to an end-user. In case you want extend the out-of-box
tracking you will also have to custom code it yourself.