FRENDS Helium is a web-based tool meant for monitoring BizTalk solutions.
Currently it shows all suspended service instances - the same you see in BizTalk Administration console's group hub.
The overview page shows the overall status of a BizTalk installation. You see what is happening in the applications and how is the load on the system.
The following sections describe the parts of the overview page in more detail.
The application overview shows the overall status of all BizTalk applications and a warning if a BizTalk host instance or the FRENDS Helium Agent is in a stopped or paused state. The first column shows the application service instance execution state as follows:
| Icon | Explanation |
|---|---|
![]() | Instances have been suspended within the last day. Details on why this happened can be seen in the application details page. |
![]() | There are suspended instances, but they have been suspended over a day ago. Most likely they have been checked already and have been just left behind; hence they only show as a warning. |
![]() | Silence monitoring has generated alerts on the application. Click on icon to see all alerts for an application or navigate to application details page to see which BizTalk artifact monitor has generated the alert. |
Status column icons are to be interpreted as follows:
| Icon | Status | Explanation |
|---|---|---|
![]() | Stopped | All send ports, receive locations and orchestrations in the application are stopped. Nothing will run in the application. |
![]() | PartiallyStarted | Some send ports, receive locations and orchestrations are started, but at least one of them is stopped/unenlisted/disabled. This may be caused e.g. by a port that has been stopped due to an error. Enabling/enlisting/starting the ports or orchestrations must be done in BizTalk management console. |
![]() | Started | The application is started. All application's orchestrations, send ports and receive locations are started or enabled. |
Application overview status is cached for 1 minute, which means that application statuses can be updated once per minute. Therefore the changes made in BizTalk applications, which affect the overall status of an application, can be seen on FRENDS Helium with a minor delay.
Throughput graphs give an overview of the BizTalk system load. Orchestrations completed shows how many orchestrations have been completed per hour in all applications. Messages sent and received show how many messages have been processed per hour through all send and receive ports. Messages processed by internal orchestration ports are not included in the counts.
The counts are gathered for the past 7 days from the BizTalk tracking database. The count data is updated automatically every hour. This also means the latest executions will show in the chart after a maximum one hour delay.
Throughput graphs (on the overview page and on the application page) are being cached for 30 minutes. This means that once the throughput graph is generated, it will remain the same for the next 30 minutes. Therefore you won't notice BizTalk application executions immediately in throughput graph execution counts, but after the caching time has expired and new throughput graph can be generated. Caching for throughput graphs is used to ease the load on the SQL Server and also to speed-up repetitive web page rendering.
The performance counter graphs show the load on the server on which the FRENDS Helium has been deployed. The graphs show the average value per minute for all counters, except the throttling graph which shows if throttling was on at the time. Long throttling states should be looked in to. Data is currently shown for the last 10 hours.
The performance counter data is stored in memory. Every time FRENDS Helium Application Pool's worker process in IIS is recycled, the stored counter data is reset. FRENDS Helium installer sets the recycle time to 7 days by default. If you want to change the recycle time interval, steps for doing so are described in section Installation: Adjusting recycle time.
As in throughput graphs, caching is also used for performance counter graphs, but with much shorter caching interval. Currently the caching interval for performance counter graphs is 60 seconds, so the graphs provide nearly real-time system load information.
Process counters:
BizTalk Process memory counters:
BizTalk message box counters:
BizTalk throttling counters are only shown if the BizTalk host is throttling:
For more information about throttling states, see http://msdn.microsoft.com/en-us/library/aa559893.aspx
For more information about performance counters, see http://msdn.microsoft.com/en-us/library/aa578394.aspx
When you click on an application link on the overview page, you are taken to the application page.
The following sections describe the parts of the page in more detail.
The application details view gives an in-depth view of the status and the execution history of an application.
Application details page shows statuses of each application's individual orchestration send port and receive location. Status of each application item is shown as follows:
| Icon | Explanation |
|---|---|
![]() | Orchestration/send port is started or receive location is enabled. |
![]() | Orchestration/send port is stopped or receive location is disabled. |
As in application overview on the front page, the application details are also cached for 1 minute, and changes made in BizTalk applications can be seen once the details can be regenerated after the caching interval has expired.
Application throughput graph is quite similar to that on the overview page. The main difference to overview page's graph is that it only counts the messages and orchestrations related to the selected BizTalk application.
The suspended instances list contains a paged list of instances related to the selected application. When you click a suspended instance on the list, the message flow for it is shown up to the point where the error occurred. Details from each step and message in message flow can be viewed by selecting a step from the message flow.
Type column in suspended instances list tells what is the type of the BizTalk artifact in which the error occurred. The icons are to be interpreted as follows:
| Icon | BizTalk artifact type |
|---|---|
![]() | Orchestration |
![]() | Send Port |
![]() | Receive Port |
![]() | This error image does not represent any specific kind of BizTalk artifact. It represents an error occurred somewhere in the process, such as a routing failure. Error description will tell You the reason for error. |
You can change the FRENDS Helium Web site connection strings as well as monitor email settings on the administration page.
To access the site, click on the Administration link on the top of the page. Please note that you need to be logged in using an account
belonging to the Administrators group on the server where FRENDS Helium is installed.
In the Web site connection strings section you can change connection strings used by the FRENDS Helium web site to access the BizTalk and Helium databases.
Note: Changing these connection strings only affects the web site: the FRENDS Helium agent service settings are not affected by changes here.
If you want to change both the web site and agent service to use a new database, you need to change the web site settings here, and the agent service settings in the
Frends.Helium.Agent.exe.config file.
Connection string are validated once the Save-button is clicked. If the database cannot be accessed, an error will be shown.
If you wish to receive emails from alerts generated by silence monitoring, you need to configure the email settings in the section Monitoring email settings.
By default, sending of emails is disabled. It can be enabled by checking the Send emails from alerts checkbox and providing the rest of the required settings
Once enabled, emails are sent using FRENDS Helium agent service user's windows credentials by default. If you wish to use another user account, uncheck
the Use Windows credentials-checkbox and enter username and password for the account you want to use.
If you want to send emails anonymously, and your SMTP server supports this, uncheck the Use Windows credentials-checkbox and leave the Username and Password fields empty.
Note: If you uncheck the Send emails from alerts checkbox in order to disable sending emails, and click Save,
the email settings are removed completely. If you wish to enable email sending again afterwards, you will have to re-enter all email settings.
FRENDS Helium agent is a Windows service which performs the following tasks:
FRENDS Helium agent gathers throughput statistics (execution counts for orchestrations, send ports and receive locations) from the BizTalk databases and stores them into the FRENDS Helium database. When the FRENDS Helium agent service is started, it gathers and updates the throughput data for the last week, the statistics are updated on a 10 minute interval.
FRENDS Helium agent cleans up the FRENDS Helium database from old statistics and alerts in order to prevent it to grow indefinitely and eventually fill the disk. The cleanup removes statistics and alerts older than 30 days. The cleanup operation is executed for the first time immediately after the FRENDS Helium agent service is started and on a 24 hour interval thereafter by default.
If you want to cleanup the data on your own schedule, you can
disable the DatabaseCleanup role, and
create e.g. your own SQL Server job. Note: If you do disable the cleanup
role, you must create your own cleanup procedure for FRENDS Helium database to avoid the database from
growing indefinitely.
FRENDS Helium agent takes a backup of FRENDS Helium database automatically once every day. The backup is first taken by default 5 minutes after the FRENDS Helium agent service has started. After that, the backup is taken on a 24 hour interval by default.
The default backup is mostly meant to prevent the transaction log from growing indefinitely, and has several limitations: Only a single backup is kept, meaning the backup file is overwritten on every backup. This means that you can only restore to a situation at most 24 hours ago. It also means any changes from the last 24 hours may be lost, if the database is corrupted. However, most of the data in the FRENDS Helium database is not critical: the statistics can be gathered again from the BizTalk databases.
If you need to make sure e.g. the configuration changes can be recovered more
flexibly in case of disaster, or have a server wide backup plan in place, you
can disable the DatabaseBackup role.
Note: If you do disable the backup role, you must have set up your own backup plan for
the FRENDS Helium database, so the transaction log does not grow indefinitely.
FRENDS Helium agent performs also the silence monitoring which is discussed more in-depth in the next section. The monitors are checked for the first time immediately after the FRENDS Helium agent service is started and after that, on a 10 minute interval.
FRENDS Helium agent has many roles to perform: it e.g. fetches the statistics from the BizTalk databases and backs up the database etc. All these roles are enabled by default when FRENDS Helium is installed, and they are executed at a configured interval. The roles, their IDs and the default intervals are shown in the table below:
| Role | Timer ID | Default initial delay | Default interval |
|---|---|---|---|
| Database cleanup | Frends.Helium.Agent.Role.DatabaseCleanupTimer | 00:00:00 | 1.00:00:00 (24 hours) |
| Throughput statistics gathering | Frends.Helium.Agent.Role.StatisticsTransferTimer | 00:00:00 | 00:10:00 (10 minutes) |
| Silence monitoring | Frends.Helium.Agent.Role.SilenceMonitorTimer | 00:00:00 | 00:10:00 (10 minutes) |
| Database backup | Frends.Helium.Agent.Role.DatabaseBackupTimer | 00:05:00 | 1.00:00:00 (24 hours) |
If you need to disable any of the roles (e.g. because you have your own backup scheme), or you want to change the check interval, you can do it as follows:
Frends.Helium.Agent.exe.config file, which is located in <FRENDS Helium install dir>\bin directory by default.<castle> section in the config file.<castle> tags, add the following XML and the parameters you wish to change:
<components>
<component id="<ID of the role timer>">
<parameters>
<IsDisabled>[True, if you wish to disable the role]</IsDisabled>
<InitialDelay>[new value, e.g. 00:10:00]</InitialDelay>
<Interval>[new value, e.g. 01:00:00]</Interval>
</parameters>
</component>
</components>
To disable a role, add the IsDisabled parameter with a value True.
To change the InitialDelay (the time after startup before the
first execution) or the Interval (the time between
executions), just add the nodes and give the new value.
These settings need to be given as timespan strings,
with the format [days].[hours]:[minutes]:[seconds].
For example, if you want to disable the DatabaseBackup role,
and take make the SilenceMonitoring role run every minute,
you should enter the following in the Frends.Helium.Agent.exe.config file,
under the <castle> node.
<components>
<component id="Frends.Helium.Agent.Role.DatabaseBackupTimer">
<parameters>
<IsDisabled>True</IsDisabled>
</parameters>
</component>
<component id="Frends.Helium.Agent.Role.StatisticsTransferTimer">
<parameters>
<Interval>00:01:00</Interval>
</parameters>
</component>
</components>
FRENDS Helium 2.0 can monitor that there are at least a given amount of executions for a BizTalk port or orchestration during the specified time window. If the limit is not exceeded, an alert is sent by email and logged to the event log. The alert is also shown in the Helium web site, with the port or orchestration details.
You can monitor the executions of receive locations, orchestrations, and send ports. You cannot monitor the total executions for all receive locations of a receive port, or for all ports in an application.
The silence monitoring is done in the FRENDS Helium agent service. It gathers the throughput data for all BizTalk ports and orchestrations per hour to the FRENDS Helium database. The agent service then periodically checks all the execution counts for the last full hour for all the ports and orchestrations that are monitored, and if the specified limit is not reached, an alert is generated. The check is done every 10 minutes by default, in order to make sure the alerts are reported quickly - please note that the checks are still done only for the last full hour.
On service start, the service always checks the last full hour, i.e. if the service is started at 14:12, it will check the period 13:00 - 14:00. However, in order to avoid reporting alerts twice or more, if alerts have already been reported for the period (e.g. already at 14:02), the service assumes the period has already been fully checked, and will not check it again.
Alerts generated by silence monitor can be viewed in two ways:
The monitor start and end times are given in (server) local time, but the BizTalk events are all stored in UTC time. The times are automatically converted to and from the server local time as needed. This means that if you e.g. define a daily monitor whose time window is from 9:00 to 14:00, it will always be checked at 14:00 local time, whether daylight savings time (DST) is in effect or not.
However, the days when changing to or from DST the conversion from and to local time may cause some checks to be done at different times than normal.
Especially, in the autumn, when moving back from DST at 4:00 AM, the local time is moved back one hour, so the local time will be 3:00 AM twice. This causes the following effects:
In spring when the local time is moved forward an hour, the situation is reversed:
To create a new monitor:
Please note that if the service was already running, the monitor will be checked only after the hour has changed: i.e. if you create the monitor at 12:23, it will be first checked only after 13:00. If you want to test the monitor immediately, you may restart the FRENDS Helium Agent service. Then the last full hour (i.e. 11:00 - 12:00) will be checked.
Monitors with the check type set to every hour are checked once on every hour the monitor's time window is active. For instance, if monitor has its time window set to 12:00 - 15:00, it will be checked three times every day (for hours 12:00-13:00, 13:00-14:00, and 14:00-15:00), for the days when the monitor is active (see Monitored days for more on this).
Monitors with its check type set to every day, are checked only once per day for the whole time span for monitored days. Check is done after the monitor time window has closed, i.e. if monitor is set to monitor executions for the time of 9-17, the check is done once the end time of 17 has passed.
You can choose which days the monitor is active by changing the "Monitored days" setting. By default, all days are active ("Every day"), but you can also choose "Weekdays" (i.e. Monday to Friday) or "Choose days..." to pick individual week days. If the day is active, the monitor will be checked for that day. If not, it will not be checked, and no alerts will be generated.
Using this option you can avoid generating redundant alerts e.g. for ports that only receive data during the work week.
Resolving alerts generated by silence monitoring is done with FRENDS Helium web site. Click the alert icon on front page or application page to open alert view. Check alerts, either individually or by selecting all with Select all link, you want to resolve, i.e. those alerts which have become invalid or have been reacted in some way. Then click Resolve selected button to mark them as resolved. Resolved alerts won't be shown in FRENDS Helium web site.
Before performing silence monitoring checks, FRENDS Helium Agent service deletes invalid monitors, in order to avoid invalid alerts to be generated. A monitor is considered to be invalid if the BizTalk artifact to which the monitor was configured is no longer found. If a monitor for a certain receive location, for example, has its address changed or the receive location is removed, the monitor is invalid. Notice that if you change BizTalk artifacts (its name or address) you may need to create a new monitor for it.
Installation prerequisites:
Basic installation:
Enable32BitAppOnWin64 property set,
i.e. IIS is running the applications in 32-bit compatibility mode, the installer cannot register the default
ASP.NET 2.0 handler for the FrendsHelium site. Enable32BitAppOnWin64 property (from the command prompt: cscript %SystemDrive%\inetpub\AdminScripts\adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 0) and retry the installation.
FRENDS Helium License file name can be entered either manually in the text box or by selecting the license file using the 'Browse'-button.
If you want to update the FRENDS Helium license later on, you need to perform the following steps:
FRENDS Helium 2.0 runs in IIS using a custom application pool using a defined user account. The user account and password is given in the IIS settings page.
The application pool user has to belong to the following user groups:
The user also needs Read and Execute and List Folder Contents rights for the following folders: - these should be already set by default
In addition, the user needs Write rights for the web.config file so the connection strings can be updated from the Administration page. This setting should also be set during the installation. However, if you change the application pool user later on from IIS, you need to check the permissions manually.
On IIS 6, you can also choose to register ASP.NET 2.0 for the FRENDS Helium site with aspnet_regiis.exe. You need to do this in order for the site to work, and should leave the checkbox checked.
However, you may choose not to run the command during the installation, as running the command may recycle all IIS application pools in the server. As this would interrupt all existing sessions, you can uncheck the checkbox and enable the ASP.NET version manually later. To do this, go to the FrendsHelium IIS site's ASP.NET tab and choose "2.0.50727.42" in the drop down menu.
As noted in the prerequisite checks section, on a 64-bit Windows 2003 with IIS running in 32-bit mode the installer cannot run aspnet_regiis.exe automatically. In this case, ASP.NET 2.0 needs to be enabled manually on the site.
You need to define the BizTalk Server database connection details so FRENDS Helium can query the databases. If the databases are all on the same SQL Server instance and no special option need to be defined, you can just define the Server name. The installer will use this to build the connection strings in the default format. Otherwise you will need to define the entire connection strings by choosing the Connection strings radio button.
The connection string settings can be later changed on the Admin.aspx-page.
The server in which FRENDS Helium database is to be installed needs to be defined. While only a server is provided in this dialog, the full connection string can be changed later on the Admin.aspx-page.
FRENDS Helium database is used for storing throughput data and other data related to silence monitoring. FRENDS Helium database is not removed on uninstall. So if you want to remove FRENDS Helium database, you'll have to do it manually via SQL Server Management Studio.
FRENDS Helium 2.0 installs a service (named as FRENDS Helium agent) for performing silence monitoring functions.
The FRENDS Helium agent service user has to meet the following conditions:
The FrendsHelium site uses the default web site's authentication methods and options by default. If these have not been changed, the site will have anonymous authentication on by default, and anyone can view the page. You can enable e.g. Windows authentication and limit access to the site to specific groups via the ASP.NET settings. For details on how to do this, see IIS documentation and section Limiting access to the web site below.
By default, the BizTalk connection strings are set to point to the local host. If the SQL Server is on another host, you need to change the settings in the Administrators page or in the installer. You should be taken to the site if the BizTalk connections cannot be verified and you are a local administrator. You can also access the site later via the Administration link on the top of the page if you belong to the Administrators group.
Because the performance counter data shown in FRENDS Helium is stored in-process, it will be reset if the ASP.NET process is shut down or recycled. To keep enough data in memory to show meaningful performance counter graphs, the FRENDS Helium application pool is set to not shut down the site when it has been idle, and to not recycle the site at all (IIS 7) or recycle only after 7 days (IIS 6). If you want, you can adjust these settings as follows:
To adjust the recycling time in IIS 7:
To adjust the recycling time in IIS 6:
To make the FRENDS Helium web site require the user to be authenticated, disable anonymous authentication for the FRENDS Helium application, and enable some other authentication option, like Windows authentication.
To disable anonymous authentication on IIS 7:
DisableEnable.
Please note that the Windows authentication feature may not be installed, so you may need to install it first.
To disable anonymous authentication on IIS 6:
Edit button in the Authentication and access control boxEnable anonymous access checkbox.Integrated Windows authentication checkbox.After these changes, the FRENDS Helium web site can only be accessed by authenticated users with Windows domain or local machine accounts.
If you want to limit the access to the site to specific users or groups, you can do this by adding the following node to the web.config file in the FRENDS Helium installation directory, under the <system.web> node:
<authorization>
<allow roles="[names of roles to add, e.g. Administrators or BizTalk Server Administrators]" />
<allow users="[names of users to add]" />
<deny users="*" />
</authorization>
For instance, if you want to only allow the local admin as well as BizTalk Server Administrators in domain 'DOMAIN' to the site, your XML would look like follows:
<system.web>
...
<authorization>
<allow roles="DOMAIN\BizTalk Server Administrators" />
<allow users="Administrator" />
<deny users="*" />
</authorization>
...
Installing FRENDS Helium on IIS 7 is straight-forward: before installing, just make sure all prerequisites are met, i.e. ASP.NET is installed and configured.
FRENDS Helium should work right after the installation IIS 6 as long as all prerequisites are met, i.e. ASP.NET is installed and configured.
NOTE: Internet Explorer 6 can have too tight security settings on by default on Windows Server 2003 for it to access the FRENDS Helium site by default. If you cannot access the Frends Helium site with IE 6 after the installation, try another browser, e.g. Firefox from another host.
You can install FRENDS Helium from the command line without user interaction. For this, you just need to provide all necessary details as command line parameters as follows
C:\>msiexec /i FRENDS-Helium-*.msi /qn APPPOOLUSERNAME=[the application pool user account]
APPPOOLPASSWORD=[the application pool account password]
AGENTUSERNAME=[the agent service user account]
AGENTPASSWORD=[the agent service account password]
LICENSEPATH=[full path to the FRENDS Helium license file]
Upgrading an existing installation works by just running the newer version of the installation package. This will keep the application pool and web site settings, as well as the web.config settings like the connection strings, intact. This means you don't need to tweak the settings when applying minor updates. However, when installing major version upgrades, the settings may need to be tweaked manually.
Unfortunately you cannot upgrade to Helium 2.0 from Helium 1.0 because the installation package settings have been changed (in order to fix an installation problem), and the 2.0 installer no longer recognizes the older version. Therefore you need to remove Helium 1.0 before installing Helium 1.1.
Removing Helium 1.0 will leave the application pool and web site behind, but some of their settings (application pool timeout and user account, web site physical path) will be overwritten during the installation of Helium 2.0. Therefore, take note of the user accounts and custom site settings before you install the latest version. You will need the user account details during the installation, and may need to reapply any changes to the default settings to the application pool.
The web.config file, which contains e.g. the connection strings to the BizTalk databases will be left behind when Helium 1.0 is removed. This file will not be overwritten when installing the new version. This means that the connection settings will be left intact, but you need to change at some settings manually. Especially, you need to disable ASP.NET impersonation. Helium 1.0 used this to access the database, but Helium 2.0 now uses the application pool account.
Disabling impersonation can be done in two ways:
<identity impersonate="false" />
Unfortunately upgrading from FRENDS Helium 1.1 is not supported. Therefore you must uninstall Helium 1.1 version before installing version 2.0.
FRENDS Helium uses ELMAH (Error Logging Modules and Handlers) for error logging. To view all occurred errors, like file not found errors or authentication errors, go to the page http://localhost/FrendsHelium/elmah.axd.
ELMAH allows You to view errors occurred without having to remotely connect to the monitored server to view its application event log. By default ELMAH logs are stored in memory, which of course means that when application pool is recycled, the ELMAH log is reseted. If You want to store the logs for longer, ELMAH logs can be configured to store the logs in an XML file or in a database. More information about ELMAH can be found at: http://code.google.com/p/elmah/
NOTE: By default ELMAH's log entries are viewable only by the members of the Administrators group and denied to everyone else. You can edit ELMAH's log permissions by editing FRENDS Helium's web.config file which can be found in FRENDS Helium's installation folder. Find the following elements in web.config file which are used to define allowed user groups or denied users for ELMAH's log.
<location path="elmah.axd">
<system.web>
<authorization>
<allow roles="Administrators" />
<deny users="*" />
</authorization>
</system.web>
</location>
FRENDS Helium requires JavaScript to be enabled to work properly. Enable JavaScript at least for the FRENDS Helium page.
This is due to security restrictions: IIS cannot correctly impersonate windows authentication on another machine. More details here: http://blogs.msdn.com/nunos/archive/2004/03/12/88468.aspx
FRENDS Helium 1.1 no longer uses ASP.NET impersonation by default, so this issue should no longer be a problem. If the impersonation is still on (e.g. after upgrading from Helium 1.0), you need to disable it, as described in the Upgrading from FRENDS Helium 1.0 section.
This is due to missing BizTalk assemblies that FRENDS Helium needs to work. Currently these assemblies do not come with the installer.
You need to either install BizTalk Server 2006 (R2) on the host (no need to configure, though), or manually add the necessary files to GAC.
Error messages don't point out clearly that ASP.NET is not installed if it is missing. Default Windows Server 2008 installation does not include ASP.NET.
To install ASP.NET go to Control Panel -> Administrative Tools -> Server Manager, expand roles, right-click Web Server (IIS) and select Add Role Services. Tag the check box for ASP.NET and finish the wizard.
The installer tries to validate that the users accounts used by FRENDS Helium belong to the BizTalk Server Administrators group, if the group has been renamed the installer won't know which group to check.
This can be fixed by specifying the group name to the installer on the command line by adding BTSADMINGROUP=[your BTS administrator group name]. For example:
msiexec /i FRENDS-Helium-2.0.175.4983.msi /l*v log.txt BTSADMINGROUP=BTSAdmins
If you have a lot of data in your BizTalk DTA database, the fetching of the statistics may time out. The default time out for the queries is 10 minutes, so this should not be too common. However, if this happens, you may up the timeout limit from the config file, by setting a parameter much like when disabling a role:
In the Frends.Helium.Agent.exe.config file,
add the following XML section under the <castle> section,
with the timeout given as seconds.
<components>
<component id="Frends.Helium.Data.StatisticsTransfer.BizTalkStatisticsRepository">
<parameters>
<CommandTimeoutSeconds>[new timeout limit in seconds, e.g. 3600 for one hour]</CommandTimeoutSeconds>
</parameters>
</component>
</components>