Windows Azure AppFabric May and June CTPs – A summary

I spent some time today summarising the new features in the Windows Azure AppFabric May CTP for SolidSoft consultants. Microsoft released the CTP a couple of weeks ago and has a second CTP coming out later this month. I might as well publish this here, although it has been widely blogged on already. There is nothing that you can’t glean from reading the release documents, but hopefully it will serve as a shorter summary.

The May CTP is all about the AppFabric Service Bus. The bus has been extended to support ’Messaging’ using ’Queues’ and ’Topics’

’Queues’ are really the Durable Message Buffers previewed in earlier CTPs. MS has renamed them in this CTP. They are not to be confused with Queues in Windows Azure storage! Think of these as ’service bus queues’. They support arbitrary content types, rich message properties, correlation and message grouping. They do not expire (unlike in-memory message buffers). They allow user-defined TTLs. Queues are backed by SQL Azure. Messages can be up to 256KB and each buffer has a maximum size of 100 MB (this will be increased to at least 1GB in the release version). To handle messages larger than 256KB, you ’chunk’ them within a session (rather like BTS large message handling for MSMQ). The CTP currently limits you to 10 queues per service namespace.

Service Bus queues are quite similar to Azure Queues. They support a RESTful API and a .NET API with a slightly different set of verbs – Send (rather than Put), Read and Delete (rather than Get), Peek-Lock (rather than ’Peek’) and two verbs to act on locked messages – Unlock and Delete. The locking feature is all about implementing reliable messaging patterns while avoiding the use of 2-phase-commit (no DTC!). Queue management is very similar, but configuration is done slightly differently. AppFabric provides dead letter queues and message deferral. The deferral feature is a built-in temporary message store that allows you to resolve out-of-order message sequences. Hey, this stuff is actually beginning to get my attention!

Today’s in-memory message buffers will be retained for the time being. MS is looking at how much advantage they provide as low-latency non-resilient queues before making a decision on their long-term future. This is beginning to sound like the BizTalk Server low-latency debate all over again! Currently, the documented recommendation is that we migrate to queues.

’Topics’ provide new pub/sub capabilities. A topic isdrum roll pleasea queue! The main difference is that it supports subscription. I assume it has the same limitations and capabilities as a normal queue, although I haven’t seen this stated. It is certainly built on the same foundation. You can have up to 2000 subscriptions to any one topic and use them to fan messages out. Subscriptions are defined as simple rules that are evaluated against user and system-define properties of each message. They have a separate identity to topics. A single subscription can feed messages to a single consumer or can be shared between multiple consumers. Unlike Send Port Groups in BizTalk, this multi-consumer model supports an ’anycast’ model for competing consumers where a single consumer gets a message on a first-come-first-served basis. MS invites us to think of a subscription as a ’virtual queue’ on top of the actual topic queue. Potential uses for anycasting include basic forms of load balancing and improved resilience.

The CTP supports AppFabric Access Control v2.0. It is fully backward-compatible with the current service bus capabilities in AppFabric.

CTP does not have load balancing and traffic optimization for relay. These were in earlier CTPs, but have been removed for the time being. They may reappear in the future.

June CTP

The June CTP will introduce CAS (Composite Application Services). CAS is a term used by other vendors (e.g., SAP) for similar features, and has been a long time coming in the Microsoft world. The basic idea is that you build a model of a composite application, the services it contains, its configuration, etc., and then drive a number of tasks from this model such as build and deployment, runtime management and monitoring. Some of us remember an ancient Channel 9 video on a BizTalk-specific CAS-like modelling facility that MS were working on years ago. It was entirely BizTalk-specific and never saw the light of day. However, one connection to make is that CAS will provide capabilities that are conceptually related to the notion of ’applications’ in BizTalk Server.

We will get a graphical Visual Studio modelling tool to design and manage CAS models. The CAS metamodel is implemented as a .NET library, allowing models to be constructed programmatically. Models are consumed by the AppFabric Application Manager in order to automate deployment, configuration, management and monitoring of composite applications.

So, things are rapidly evolving. However, we won’t see anything on Integration Services until, I suspect, next year. It’s important to remember that the May CTP is all about broadening the existing Service Bus with messaging capabilities, rather than about delivering an integration capability. So, even though we are seeing more BizTalk Server-like features, we are still a long way off having what Burley Kawasaki called a “true integration service” in the cloud. Obviously, Azure Integration Services will exploit and build on the Service Bus, but a lot more needs to be done before we have integration-as-a-service as part of the Azure story.

BizTalk 2010 Cumulative Update Package 1 available

BizTalk 2010 Cumulative Update Package 1 available

Cumulative update package 1 for BizTalk Server 2010 is now available. This cumulative update for Microsoft BizTalk Adapter Pack 2010 contains hotfixes for Microsoft BizTalk Adapter Pack 2010 issues that were resolved after the release of BizTalk Adapter Pack 2010. BizTalk 2010 CU1 includes 31 hotfixes, most of which are related to BizTalk Adaptor Pack […]
Blog Post by: Sandro Pereira

WIX Installer, RegistrySearch be cautious about 64bit OS

During the making of BizTalk 360 we learned so many lessons. But we didn’t have enough time to blog about each and every interesting challenge we faced. But now we are in the final stages of the product and we got bit of time to write about anything we encounter. There is also a plan to reveal the whole story behind the making of BizTalk 360 from inception to delivery.

After we released the CTP version of BizTalk 360, few users on Windows 2008 complaint about the installer pre-validation checks and not allowing them to proceed further. You can see the full thread here

BizTalk 360 installer validates set of pre-conditions and it warns the user to rectify them before proceeding. This is mainly to guarantee BizTalk 360 will work after the installation. These preconditions are verified by various means. It could be standard Windows Installer properties like VersionNT, which stores the version number of Operating systems, or it could be some registry lookups like checking whether BizTalk server is installed, whether IIS is installed etc.

One such search is the search for installation of Windows Authentication component for IIS 7.0 and above. It simply looks at the following location in registry "HKLM\SOFTWARE\Microsoft\InetStp\Components" and check the value of DWORD WindowsAuthentication. If the value is "1" then Windows Authentication component is installed, else it shows an error and installer won’t allow to proceed further.

We tested this configuration in majority of the OS Windows 7, Windows 2008 and Windows 2008 R2. But we missed out on Windows 2008 R2, 64 bit. When the users reported this problem, we asked them to manually check this registry settings and everyone confirmed the specific Window Authentication value is present in the registry. It just made us puzzle for a nearly 2 weeks. In fact we created a separate build for those affected by issue, ignoring this check.

Finally when we decided to tackle this situation once for all, we identified the issue is happening only on 64 bit OS of Windows 2008 (It’s still a puzzle for us, it works on 64 bit Windows 2008 R2). It turns out when the installer is doing the registry look up its looking a 32 bit version of the registry instead of 64 bit. But when the user open the registry using regedit, it opens up the 64 bit version directly.

In Wix RegistrySearch there is a special attribute called Win64 (yes/no), which you need to set to instruct WIX to look at 64 bit registry as shown below

<RegistrySearch Id="CheckIISWinAuth64" Root="HKLM" Key="SOFTWARE\Microsoft\InetStp\Components" Name="WindowsAuthentication" Type="raw"  Win64="yes"/>

Even then its bit tricky, its not straight forward to ask WIX to look at corresponding registry value based on the OS. After trying few options like looking at VersionNT64 property which gets populated for 64bit OS, and few others, we finally settled for the following solution which works.

We tackled the scenario by doing 2 RegistrySearches as shown below

<Property Id="IIS_WIN_AUTH">
       <RegistrySearch Id="CheckIISWinAuth" Root="HKLM" Key="SOFTWARE\Microsoft\InetStp\Components" Name="WindowsAuthentication" Type="raw" />
   </Property>
   <Property Id="IIS_WIN_AUTH_64">
     <RegistrySearch Id="CheckIISWinAuth64" Root="HKLM" Key="SOFTWARE\Microsoft\InetStp\Components" Name="WindowsAuthentication" Type="raw"  Win64="yes"/>
   </Property>

and verified the condition like this

(IIS_MAJOR_VERSION = "#7" AND (IIS_WIN_AUTH = "#1" OR IIS_WIN_AUTH_64 = "#1"))

Now on Windows 2008, 64 bit OS the verification passes as shown below

Nandri

Saravana

Part 7 – BizTalk High Availability Server Environment –BizTalk 2010 Installation, Configuration and Clustering

Part 7 – BizTalk High Availability Server Environment –BizTalk 2010 Installation, Configuration and Clustering

So, finally we’ve reached the part in which we will actually install, configure and cluster BizTalk Server 2010. As mentioned in my previous posts; I assume you’ve followed all steps mentioned in the previous posts. Okay let’s get started!

Verify that MSDTC is configured

Before we can go ahead with the actual installation, we need to make sure that we’ve configured our MSDTC correctly. In order to do so we will need the following tool dtcping.exe, which can be downloaded here. Once you’ve downloaded dtcping, copy it over to all servers involved, in my case that would be

  • SQL001
  • SQL002
  • BTS001
  • BTS002

Time Saver Tip: Locally install dtcping.exe (it’s actually an self-extracting archive) and copy only the dtcping.exe application to your servers

Next we will start pinging all servers, and we will do this using the following matrix

Main Server Partner DTC Server
BTS001 SQL001 Ensure that BizTalk node one is Active and SQL node one is Active
BTS001 SQL002 Ensure that BizTalk node one is Active and SQL node two is Active (perform a failover)
BTS002 SQL002 Ensure that BizTalk node two (perform a failover) is Active and SQL node one is Active
BTS002 SQL001 Ensure that BizTalk node one is Active and SQL node two is Active (perform a failover)

BTS001 vs SQL001

Logon to your main BizTalk node (in my case BTS001) and open the ‘Failover Cluster Manager’ do this by going to start and in the search box type ‘Failover Cluster Manager’ then hit ‘enter’

Ensure that your main BizTalk node is currently the owner

Now logon to your main SQL Server Node (in my case SQL001) and open the ‘Failover Cluster Manager’ do this by going to start and in the search box type ‘Failover Cluster Manager’ then hit ‘enter’

Ensure that your main BizTalk node is currently the owner Now go back to your main BizTalk Node (BTS001), and browse to the location in which you copied dtcping.exe and start it. The MSDTC Simulation screen will pop up, now enter the SQL Server Cluster Name in the box ‘Remote Server Name’, in my case that would be SQL2008.

Now go back to your main SQL Server Node (SQL001), and browse to the location in which you copied dtcping.exe and start it. The MSDTC Simulation screen will pop up, now enter the BTS Server Cluster Name in the box ‘Remote Server Name’, in my case that would be BTS2010.

Now go back to your main BizTalk Node (BTS001) and in the MSDTC Simulation windows. Click on the ‘PING’ button. Once you’ve clicked that button; ‘hurry’ over to your main SQL Server Node (SQL001) and in the MSDTC Simulation windows. Click on the ‘PING’ button. If everything goes right, you should see the following results in the MSDTC Simulation Window.

BTS001

Please refer to following log file for details:
C:UsersAdministrator.LABDownloadsBTS0013924.log
Invoking RPC method on SQL2008
RPC test is successful
++++++++++++RPC test completed+++++++++++++++
Please start PING from SQL2008 to complete the test
Please send following LOG to Microsoft for analysis:
Partner LOG: SQL0014040.log
My LOG: BTS0013924.log
++++++++++++Start Reverse Bind Test+++++++++++++
Received Bind call from SQL001
Trying Reverse Bind to SQL001
Reverse Binding success: BTS001–>SQL001
++++++++++++Reverse Bind Test ENDED++++++++++
++++++++++++Start DTC Binding Test +++++++++++++
Trying Bind to SQL001
Received reverse bind call from SQL001
Binding success: BTS001–>SQL001
++++++++++++DTC Binding Test END+++++++++++++

SQL001

++++++++++++Validating Remote Computer Name++++++++++++
Please refer to following log file for details:
C:UsersAdministrator.LABDownloadsSQL0014040.log
Please send following LOG to Microsoft for analysis:
Partner LOG: BTS0013924.log
My LOG: SQL0014040.log
Invoking RPC method on BTS2010
RPC test is successful
++++++++++++RPC test completed+++++++++++++++
++++++++++++Start DTC Binding Test +++++++++++++
Trying Bind to BTS001
Received reverse bind call from BTS001
Binding success: SQL001–>BTS001
++++++++++++DTC Binding Test END+++++++++++++
++++++++++++Start Reverse Bind Test+++++++++++++
Received Bind call from BTS001
Trying Reverse Bind to BTS001
Reverse Binding success: SQL001–>BTS001
++++++++++++Reverse Bind Test ENDED++++++++++

Please note; in case of an error.

  • Ensure that MSDTC is configured correctly! (see previous blog posts)
  • Ensure that your Firewall is turned of for your Domain Profile and Private Profile! (see previous blog posts)

Close both DTCPing applications once done.

Perform a manual Failover of the SQL Server

Logon to your main SQL Server node (in my case SQL001) and open the ‘Failover Cluster Manager’ do this by going to start and in the search box type ‘Failover Cluster Manager’ then hit ‘enter’ The Failover Cluster Manager windows will appear; in this window ‘right-click’ on your SQL Server Cluster Service and select ‘Move this service or application to another node’ –> ‘1 – Move to Node SQL002’

Confirm this action.

At this point you will failover your SQLCluster to your second node. Before continuing validate this, by checking the ‘Current Owner’

BTS001 vs SQL002

Now repeat the same steps as mentioned in the previous chapter BTS001 vs SQL001, the only difference now is; that you will start dtcping on your second SQL node (SQL002).

Perform a manual Failover of the BizTalk Server

Logon to your main BizTalk Server node (in my case BTS001) and open the ‘Failover Cluster Manager’ do this by going to start and in the search box type ‘Failover Cluster Manager’ then hit ‘enter’ The Failover Cluster Manager windows will appear; in this window ‘right-click’ on your BizTalk Server Cluster Service and select ‘Move this service or application to another node’ –> ‘1 – Move to Node BTS002’

Confirm this action.

At this point you will failover your BizTalk Cluster to your second node. Before continuing validate this, by checking the ‘Current Owner’

BTS002 vs SQL002

Now repeat the same steps as mentioned in the previous chapter BTS001 vs SQL001, the only difference now is; that you will start dtcping on your second BizTalk node, and your second SQL node (SQL002).

Perform a manual Failover of the SQL Server.

Logon to your main SQL Server node (in my case SQL001) and open the ‘Failover Cluster Manager’ do this by going to start and in the search box type ‘Failover Cluster Manager’ then hit ‘enter’ The Failover Cluster Manager windows will appear; in this window ‘right-click’ on your SQL Server Cluster Service and select ‘Move this service or application to another node’ –> ‘1 – Move to Node SQL001’. Confirm this change and validate that the SQL001 node is once again the ‘Current Owner’

BTS002 vs SQL001

Now repeat the same steps as mentioned in the previous chapter BTS001 vs SQL001, the only difference now is; that you will start dtcping on your second BizTalk node, and your main SQL node (SQL001).

Perform a manual Failover of the BizTalk Server

Logon to your main BizTalk Server node (in my case BTS001) and open the ‘Failover Cluster Manager’ do this by going to start and in the search box type ‘Failover Cluster Manager’ then hit ‘enter’ The Failover Cluster Manager windows will appear; in this window ‘right-click’ on your BizTalk Server Cluster Service and select ‘Move this service or application to another node’ –> ‘1 – Move to Node BTS001’. Confirm this change and validate that the BTS001 node is once again the ‘Current Owner’

Almost there!

Congratulations, at this point we have validated our MSDTC configuration and now we are almost ready for the actual BizTalk Installation.

Installing BizTalk

The steps mentioned below, need to be performed on both BizTalk servers, in my case BTS001 and BTS002

Time Saver Tip: You can install both servers simultaneously. However note that this can not be done when we are configuring BizTalk.

Prerequisites

Well before we can proceed with the installation we need to install 2 more pre-requisites if we want to install BAM and EDI functionality on our BizTalk servers as well. These prerequisites are:

  • Microsoft SQL Server Data Transformation Services (DTS 2008) with SP1 or higher
  • Microsoft Office Excel 2010

Installing Microsoft Office Excel 2010

Make sure that you’ve mounted your BizTalk Server 2010 Installation ISO file, this can be easily done from within the Hyper-V Manager. Simply ‘Right-Click’ on the BizTalk server in question and select ‘Settings’ Go to ‘IDE Controller 1’ and mount your media (see screenshot below)

Once you’ve mounted the Microsoft Office 2010 DVD, run the installer. On the ‘Choose the installation you want screen’ select ‘Customize’ Now only install Microsoft Excel, you’re screen should look similar to the following screenshot:

Once done select ‘Install Now’ and finally ‘Close’ the installation.

and select ‘New Installation or add features to an existing installation’

Installing Microsoft SQL Server Data Transformation Services (DTS 2008)

Well we’re almost done, but we need to install ‘Microsoft SQL Server Data Transformation Services (DTS 2008) with SP1 or higher, if we want to configure and use BAM functionality. So let’s do this now.

Make sure that you’ve mounted your BizTalk Server 2010 Installation ISO file, this can be easily done from within the Hyper-V Manager. Simply ‘Right-Click’ on the BizTalk server in question and select ‘Settings’
Go to ‘IDE Controller 1’ and mount your media (see screenshot below)

Once you’ve mounted the SQL Server 2008 R2 DVD, run the installer and select ‘New Installation or add features to an existing installation’

Follow the onscreen instructions. Once you reach the ‘Setup Role’ screen select ‘SQL Server Feature Installation’. Once done select ‘Next’

On the ‘Feature Selection’ screen ensure to check the following features

  • Client Tools Connectivity
  • Management Tools – Basic
  • Management Tools – Complete

Click ‘next’ and follow the onscreen instructions.

BizTalk 2010

Now logon to one of the servers on which you want to install BizTalk, in my case I will start off with BTS001.

Make sure that you’ve mounted your BizTalk Server 2010 Installation ISO file, this can be easily done from within the Hyper-V Manager. Simply ‘Right-Click’ on the BizTalk server in question and select ‘Settings’ Go to ‘IDE Controller 1’ and mount your media (see screenshot below)
(Repeat these steps for your second BizTalk Server)

Start the installation, by running ‘Setup.exe’ from the BizTalk Installation DVD. An installation screen will appear, in this screen select ‘Install Microsoft BizTalk Server 2010’.

On the Customer Information Screen, enter the required information and press ‘next’

Accept the License agreement and press ‘Next’

Choose whether you want to participate in the ‘Customer Experience Improvement Program’ and press ‘Next’

On the ‘Component Installation’ screen, check all items you can and press ‘Next’

I was able to check all with exception of; Developer Tools and SDK, MQSeries Agent, Windows Sharepoint Services Adapter as I did not install the pre-requisites for them.

On the ‘Redistributable Prerequisites’ screen, select your preferred option. I’ve selected ‘Automatically install the redistributable prerequisites from a CAB file’ which I downloaded previously (click here) and press ‘Next’

On the ‘Summary Screen’ press ‘Install’

Installation will now start, during the installation you will be prompted for ‘Updates’, choose the preferred option and press ‘next’

Click finish to Quit the installation and ensure that the option ‘Launch BizTalk Server Configuration’ is not checked.

Installing Microsoft BizTalk Adapters

The steps mentioned below, need to be performed on both BizTalk servers, in my case BTS001 and BTS002 Continue the installation, by running ‘Setup.exe’ from the BizTalk Installation DVD. An installation screen will appear, in this screen select ‘Install Microsoft BizTalk Adapters’.

A new window will appear, select ‘Step 1: Install Microsoft WCF Lob Adapter SDK’ and follow the onscreen instructions.

When you reach the ‘Choose Setup Type’ screen, select ‘Complete’

Click on ‘Install’

Installation will now start, during the installation you will be prompted for ‘Updates’, choose the preferred option and press ‘Ok’

Click ‘Finish’

On the ‘Adapter Installation Window’, note the warning which can be ignored and select ‘Step 2: Install Microsoft BizTalk Adapter Pack’

Follow the onscreen instruction and once you reach the ‘Choose Setup Type’ screen, select ‘Complete’ .

Click on ‘Install’

Installation will now start, during the installation you will be prompted for ‘Updates’, choose the preferred option and press ‘Ok’

Another window will pop up, asking if you want to join ‘The Customer Experience Improvement Program’; select either option and press ‘ok’

Click on ‘Finish’

On the ‘Adapter Installation Window’, select ‘Step 3: Install Microsoft BizTalk Adapter Pack (x64)’ and follow the onscreen instructions. I will not list them again as they are similar to the previous instructions.

On the ‘Adapter Installation Window’, select ‘Step 4: Install Microsoft BizTalk Adapters for Enterprise Applications’ and follow the onscreen instructions. I will not list them again as they are similar to the previous instructions.(when asked for the Setup type; select ‘Complete’

During the installation of step 4, you might get a few warnings, indicating that an adapter was already installed. Just press ‘Ok’ and continue. At this point you installed all adapters, so press ‘Exit’

Note: We will not install the ‘Microsoft AppFabric Connect’ feature; in a later blog post however I might get back to this Before we can proceed with configuring BizTalk Server, we need to epeat the above mentioned steps on your other BizTalk Server node (my case BTS002)

Configuring BizTalk on the Main Node

Once you’ve installed BizTalk on both servers. Logon to your main BizTalk Node, and click on ‘Start’ –> ‘All Programs’ –> ‘Microsoft BizTalk Server 2010’ –> ‘BizTalk Server Configuration’

On the ‘Microsoft BizTalk Server 2010 Configuration’ screen, select ‘Custom Configuration’, fill out

  • The Database server name (point it to your SQL Cluster!), in my case ‘SQL2008BIZTALK2010’
  • Enter the username and password for the BizTalk Untrusted Service, in my case ‘LABsrvc-bts-untrusted’

Once done, press Configure.

Enterprise SSO Configuration

At this point the main configuration screen will appear. Select ‘Enterprise SSO’

Select ‘Enable Enterprise Single Sign-On on this computer’ and select ‘Create a new SSO System’

Now, add the correct Service Accounts and Windows Accounts; in my case:

  • Enterprise Single Sign-On Service Account: LABsrvc-bts-sso
  • SSO Administrator(s) group: LABSSO Administrators
  • SSO Affiliate Administrator(s)

Note the warning: Ignore this warning, as it is most likely a ‘refreshing issue’ as it states that I am using a local SSO Administrator group, which I am not

Select ‘Enterprise Single Sign-On Secret Backup’

Enter the details and store the backup file on a Secure Place. I’ve used the Clustered Disk named’ ‘Data_Store’

Now Click on ‘Apply Configuration’

Verify the settings on the ‘Summary Screen’ and press ‘Next’

Click Finish

Group Configuration

Select ‘Group’

Check ‘Enable BizTalk Server Group on this Computer’ and select ‘Create a new BizTalk Group’

Now, add the correct BizTalk Administrative Roles; in my case:

  • BizTalk Administrators Group: LABBizTalk Server Administrators
  • BizTalk Operators Group: LABBizTalk Server Operators
  • BizTalk B2B Operators Group: LABBizTalk Server B2B Operators

Now Click on ‘Apply Configuration’

Verify the settings on the ‘Summary Screen’ and press ‘Next’

Click Finish

BizTalk Runtime Configuration

Select ‘BizTalk Runtime’

Check ‘Register the BizTalk Server runtime components’

Check ‘Create In-Process Host and Instance’.

For Host Name enter: Processing_Host

Check ‘Create Isolated Host and Instance’ and check ‘Trusted’ right below it

For Isolated Host name enter: Isolated_Host

Ensure that both 32-bit only checkboxes are checked

Now, assign the correct Windows Services and Groups ; in my case:

  • BizTalk Host Instance Account: LABsrvc-bts-untrusted
  • Biztalk Isolated Host Instance Account: LABsrvc-bts-trusted
  • Biztalk Host Users Group: LABBizTalk Applications Users
  • Biztalk Isolated Host Users Group: LABBizTalk Isolated Host Users

Now Click on ‘Apply Configuration’

Verify the settings on the ‘Summary Screen’ and press ‘Next’

Click Finish

Business Rules Engine Configuration

Select ‘Business Rules Engine’

Check ‘Enable Business Rules Engine on this computer’

Now, add the correct Windows Service; in my case:

  • Rule Engine Update Service : LABsrvc-bts-rule-engine

Now Click on ‘Apply Configuration’

Verify the settings on the ‘Summary Screen’ and press ‘Next’

Click Finish

BAM Tools Configuration

Select ‘Bam Tools’

Check ‘Enable Business Activity Monitoring tools’

Now, add the correct ‘Server Name (SQL Cluster); in my case: SQL2008BIZTALK2010

Now Click on ‘Apply Configuration’

Verify the settings on the ‘Summary Screen’ and press ‘Next’

Click Finish

BAM Alerts Configuration

We will skip these for now.

In a future post I might come back to these and configure it. However in case you need it installation is quite straight forward, you only need to make sure to install the pre-requisites

BAM Portal Configuration

Select ‘Bam Portal’

Check ‘Enable BAM Portal’

Now, add the correct Windows Service Accounts ; in my case:

  • BAM Management Web Service user: LABsrvc-bts-bam
  • BAM Application Pool Account: LABsrvc-bts-bam-ap

Next add the correct Windows Group; in my case:

BAM Portal Users: LABDomain Users

Finally select the BAM Portal Web site, in my case

Bam Portal Web Site: Default Web Site

Now Click on ‘Apply Configuration’

Verify the settings on the ‘Summary Screen’ and press ‘Next’

Click Finish

BizTalk EDI/AS2 Runtime Configuration

Select ‘BizTalk EDI/AS2 Runtime’

Check all options.

Now Click on ‘Apply Configuration’

Verify the settings on the ‘Summary Screen’ and press ‘Next’

Click Finish

Export the configuration

Now click on Export Configuration

Save it the file (I’ve saved it on a cluster disk)

Configuring BizTalk on the Second Node

Before we start with configuring BizTalk on the Second Node, we will first perform a failover of the BizTalk Cluster such that all resources are available to our second node. Logon to your second BizTalk Node (in my case BTS002) and open the ‘Failover Cluster Manager’ do this by going to start and in the search box type ‘Failover Cluster Manager’ then hit ‘enter’

Ensure that the main BizTalk node (BTS001) is the current owner

Now fail this cluster over, so that the second node becomes the owner. ‘Right-click’ on your BizTalk Server Cluster Service and select ‘Move this service or application to another node’ –> ‘1 – Move to Node BTS002’

Confirm this action

Verify once all resources are back online that current owner is the Second BizTalk Node (BTS002).

Now click click on ‘Start’ –> ‘All Programs’ –> ‘Microsoft BizTalk Server 2010’ –> ‘BizTalk Server Configuration’

On the ‘Microsoft BizTalk Server 2010 Configuration’ screen, select ‘Custom Configuration’, fill out

  • The Database server name (point it to your SQL Cluster!), in my case ‘SQL2008BIZTALK2010’
  • Enter the username and password for the BizTalk Untrusted Service, in my case ‘LABsrvc-bts-untrusted’

Once done, press Configure.

Enterprise SSO Configuration

At this point the main configuration screen will appear. Select ‘Enterprise SSO’

Select ‘Enable Enterprise Single Sign-On on this computer’ and select ‘Join an existing SSO system’

 

Now, verify that the configurations are correct (should point to the same database as mentioned in the previous chapter) and add the correct Service Accounts; in my case:

  • Enterprise Single Sign-On Service Account: LABsrvc-bts-sso

Now Click on ‘Apply Configuration’, verify the settings on the ‘Summary Screen’ ,press ‘Next’ followed by ‘Finish’

Group Configuration

Select ‘Group’

Check ‘Enable BizTalk Server Group on this Computer’ and select ‘Join an existing BizTalk Group’ and verify that the configurations are correct (should point to the same databases as mentioned in the previous chapter)

Now Click on ‘Apply Configuration’, verify the settings on the ‘Summary Screen’ ,press ‘Next’ followed by ‘Finish’

BizTalk Runtime Configuration

Select ‘BizTalk Runtime’

Check ‘Register the BizTalk Server runtime components’

Check ‘Create In-Process Host and Instance’.

For Host Name enter: Processing_Host (ignore warning)

Check ‘Create Isolated Host and Instance’ and check ‘Trusted’ right below it

For Isolated Host name enter: Isolated_Host (Ignore the warning)

Ensure that both 32-bit only checkboxes are checked

Now, assign the correct Windows Services and Groups ; in my case:

  • BizTalk Host Instance Account: LABsrvc-bts-untrusted
  • Biztalk Isolated Host Instance Account: LABsrvc-bts-trusted
  • Biztalk Host Users Group: LABBizTalk Applications Users
  • Biztalk Isolated Host Users Group: LABBizTalk Isolated Host Users

Now Click on ‘Apply Configuration’, Verify the settings on the ‘Summary Screen’ ,press ‘Next’ and end with ‘Finish’

Business Rules Engine Configuration

Select ‘Business Rules Engine’

Check ‘Enable Business Rules Engine on this computer’ and verify that the configurations are correct (should point to the same databases and should use the correct account as mentioned in the previous chapter)

Now Click on ‘Apply Configuration’. Verify the settings on the ‘Summary Screen’ ,press ‘Next’ and end with ‘Finish’

BAM Tools Configuration

Select ‘Bam Tools’

Check ‘Enable Business Activity Monitoring tools’ and verify that the configurations are correct (should point to the same databases as mentioned in the previous chapter)

Now Click on ‘Apply Configuration’. Verify the settings on the ‘Summary Screen’ ,press ‘Next’ and end with ‘Finish’

BAM Alerts Configuration

We will skip these for now.

In a future post I might come back to these and configure it. However in case you need it installation is quite straight forward, you only need to make sure to install the pre-requisites

BAM Portal Configuration

Select ‘Bam Portal’

Check ‘Enable BAM Portal’

Now Click on ‘Apply Configuration’. Verify the settings on the ‘Summary Screen’ ,press ‘Next’ and end with ‘Finish’

BizTalk EDI/AS2 Runtime Configuration

Select ‘BizTalk EDI/AS2 Runtime’

Check ‘Enable BizTalk EDI/AS2 Runtime on this computer; (other options are greyed out).

Now Click on ‘Apply Configuration’. Verify the settings on the ‘Summary Screen’ ,press ‘Next’ and end with ‘Finish’

Export the configuration

Now click on Export Configuration

Save it the file (I’ve saved it on a cluster disk)

Failover Back to your main BizTalk Node

Open the ‘Failover Cluster Manager’ do this by going to start and in the search box type ‘Failover Cluster Manager’ then hit ‘enter’

Ensure that the main BizTalk node (BTS002) is the current owner

Now fail this cluster over, so that the second node becomes the owner. ‘Right-click’ on your BizTalk Server Cluster Service and select ‘Move this service or application to another node’ –> ‘1 – Move to Node BTS001’

Confirm this action

Verify once all resources are back online that current owner is the Main BizTalk Node (BTS001).

Setting Up BizTalk

We’ll now that we’ve installed and configured BizTalk it’s time to finish up our BizTalk Cluster.

Clustering our Single Sign On Service

Ensure you’re logged on to the BizTalk Server node which is currently the owner; in my case this is BTS002. Once logged open up one of the best editors in the world called notepad. In notepad copy and paste the following code

<sso>
  <globalInfo>
     <secretServer>SSOCLUSTER</secretServer>
  </globalInfo>
</sso>

change the SSOCLUSTER value in the <secretServer> xml-tag to the name of your BizTalk Server Cluster. In my case this would be ‘BTS2010’

Save this file to disk (I saved it to c:tmp) and name it ‘SSO_Secret_Server.xml’

Once stored open up a command prompt do this by going to start and typing ‘CMD’ into the search box followed by hitting ‘Enter’

A command prompt box will open; At this command prompt, change to the Enterprise SSO installation folder. In my case I typed “c:Program FilesCommon FilesEnterprise Single Sign-On”

Now enter the following command ‘ssomanage –updatedb <SSO_Secret_Server.xml location> (my case ssomanage –updatedb “c:tmpSSO_Secret_Server.xml”) hit ‘enter’ and once done close the window.

Open the ‘Failover Cluster Manager’ do this by going to start and in the search box type ‘Failover Cluster Manager’ then hit ‘enter’

In the ‘Failover Cluster Manager’ right click on your BizTalk Cluster Service (in my case BTS2010) and select ‘Add a resource’ –> ‘4 – Generic Service’

On the ‘Select Service window’, select ‘Enterprise Single Sign On Service’ and press ‘Next’

On the ‘Confirmation’ screen press ‘Next’

On the ‘Summary’ screen press ‘Finish’

Now in the main pane; you will see that the ‘Enterprise Single Sign-On Service’ is added as a resource.

Right click on it and select ‘properties’

On the ‘General’ Tab; ensure to check ‘Use Network Name for computer name’

Confirm this action by click ‘Yes’

Click on ‘Ok’ on the ‘Information Screen’

Go to the ‘Dependencies’ Tab, add the following depended resources and once done press ‘apply’

  • name (in my case BTS2010)
  • dtc resource (in my case MSDTC-BTS2010)

Now start the SSO resource by right-clicking on it and selecting ‘Bring this resource online’

Once this resource is online, right click on the BizTalk Cluster Service and select ‘Move this service or application to another node’ –> ‘1 – Move to node BTS002’

Confirm the action

Now log on to the BizTalk node you just failed over to (in my base BTS002). On that server open a command prompt do this by going to start and typing ‘CMD’ into the search box followed by hitting ‘Enter’

A command prompt box will open; At this command prompt, change to the Enterprise SSO installation folder. In my case I typed “c:Program FilesCommon FilesEnterprise Single Sign-On”

Now enter the following command ‘ssoconfig –restoresecret <RestoreFile (Backup of your SSO Secret you saved earlier)> (my case ssoconfig –restoresecret “f:SSO SecretSSO7884.bak”)

Hit enter,and enter the Secret Password and hit enter

You should see the following message

In case you receive an adapter, ensure that you followed all steps as mentioned above!

Modify the BizTalk Application Configuration

In order to optimize the throughput with regards to HTTP based send ports, we need to add a configuration section to both our BTSNTSvc.exe.config and BTSNTSvc64.exe.config files which can be found in the installation directory if BizTalk. (in my case “C:Program Files (x86)Microsoft BizTalk Server 2010”) So open-up windows explorer and browse to your BizTalk installation directory and upon BTSNTSvc.exe.config by right clicking it and selecting ‘open with…’ –> ‘notepad’ (if notepad is not visible, select ‘Choose default program… and select then notepad’)

Now add the following code section just above the </configuration> closing tag and save the file.

<system.net>
    <connectionManagement>
      <add address="*" maxconnection="25" />
    </connectionManagement>
</system.net>

Once done, your file should look something like this:

One of the standard settings which come with a BizTalk Installation is the setting which indicated the maximum connections allowed for HTTP based send adapters. This setting is by default set to Now repeat this step for the BTSNTSvc64.exe.config Once done, log on to your other BizTalk server and repeat the above mentioned steps.

Adding BizTalk Hosts

At this point we are ready to finally open up the BizTalk Administrator and finish our BizTalk Cluster So let’s get Started. First of all log on to your active BizTalk Node and open the BizTalk Administrator Console. You can find it by going to ‘Start’ –> ‘All Programs’ –> ‘Microsoft BizTalk Server 2010’ and clicking on ‘BizTalk Server Administrator’

In the BizTalk Server Administration Console, expand the ‘BizTalk Server Node’, expand ‘BizTalk Group’, expand ‘Platform Settings’ and select ‘Hosts’

In the main pane, you should now see two Hosts (these hosts have been created while we configured BizTalk earlier on).

We now will add a few more hosts, beings

  • Send_Host
  • Receive_Host
  • Tracking_Host
  • Legacy_Host
  • x64_Host

Adding a new host is quite simple; just right-click on the main pane and select ‘New’ –> ‘Host’

On the Host Properties screen, change/add the following properties. Once done click on ‘Ok

Name: Send_Host Type: In_Process Options: 32-bit only Track Windows group: <add your BizTalk Application Users Group>

On the Host Properties screen, change/add the following properties. Once done click on ‘Apply’

Name: Receive_Host Type: In_Process Options: 32-bit only Windows group: <add your BizTalk Application Users Group>

On the Host Properties screen, change/add the following properties. Once done click on ‘Ok’

Name: Tracking_Host Type: In_Process Options: 32-bit only and Check Allow Host Tracking Windows group: <add your BizTalk Application Users Group>

On the Host Properties screen, change/add the following properties. Once done click on ‘Ok’

Name: Legacy_Host Type: In_Process Options: 32-bit only Windows group: <add your BizTalk Application Users Group>

On the Host Properties screen, change/add the following properties. Once done click on ‘Ok’

Name: x64_Host Type: In_Process Options: 32-bit only DO NOT CHECK! Windows group: <add your BizTalk Application Users Group>

Now double click on the ‘Processing Host’ and remove the check in front of ‘Allow Host Tracking’ and click ok.

A warning pops up indicating that a restart is required of the associated host instances, press ‘Ok’.

Adding BizTalk Host-Instances

First of all log on to your active BizTalk Node and open the BizTalk Administrator Console. You can find it by going to ‘Start’ –> ‘All Programs’ –> ‘Microsoft BizTalk Server 2010’ and clicking on ‘BizTalk Server Administrator’

In the BizTalk Server Administration Console, expand the ‘BizTalk Server Node’, expand ‘BizTalk Group’, expand ‘Platform Settings’ and select ‘Host Instances’

You should see, four host-instances; and you should notice that we have 2 exactly the same host instances on both BizTalk Server instances.

Adding a new host instance is quite simple; just right-click on the main pane and select ‘New’ –> ‘Host Instance’

On the Host Instance Properties screen, select the following:

Host Name: Legacy_Host Server: BTS001  

Now click on ‘Configure’

On the ‘Logon Credentials’ screens enter the details of the windows service account you want this host instance to execute with (the Untrusted BizTalk Service Account in AD), in my case this will be LABsrcv-bts-untrusted. Once done press ‘OK’ and once more ‘OK’

Now repeat the above steps, but this time on the ‘Host Instance Properties’ screen select ‘BTS002’ for the server propery

Note: Don’t forgot to hit configure and enter the service credentials

Repeat the above mentioned steps for the remaining other hosts, being:

  • Tracking_Host
  • Send_Host
  • Receive_Host
  • x64_Host

Once done, your main pane should look similar to the image below

Adding the correct Host Instances to the Adapters

First of all log on to your active BizTalk Node and open the BizTalk Administrator Console. You can find it by going to ‘Start’ –> ‘All Programs’ –> ‘Microsoft BizTalk Server 2010’ and clicking on ‘BizTalk Server Administrator’

In the BizTalk Server Administration Console, expand the ‘BizTalk Server Node’, expand ‘BizTalk Group’, expand ‘Platform Settings’ and expand the ‘Adapters’ node

Click on the ‘File’ Adapter, and then right-click in the main-pane and select ‘New’ –> ‘Send Handler’

On the ‘File – Adapter Handler Properties’ For Host name select Send_Host and ensure to check ‘Make this the default Handler’. Once done press ‘Ok’

A warning will pop-up, just read it and click “ok”

Right-click in the main-pane once more and select ‘New’ –> ‘Receive Handler’

On the ‘File – Adapter Handler Properties’ For Host name select ‘Recieve_Host’. Once done press ‘Ok’

A warning will pop-up, just read it and click “ok”

In the main-pane right click on ‘Processing_Host’ for the direction ‘Send’ and select ‘Delete’

Confirm the ‘Deletion’ by selecting ‘Yes’

Note the ‘warning’ and press ‘Ok’

In the main-pane right click on ‘Processing_Host’ for the direction ‘Receive’ and select ‘Delete’

Confirm the ‘Deletion’ by selecting ‘Yes’

Note the ‘warning’ and press ‘Ok’

Now repeat the above steps for the following adapters, but note the host_names as listed below

Adapter Send Host Name Receive Host Name Remarks
FTP Legacy_Host (make default) Legacy_Host Delete Processing_Host entries
HTTP Send_Host (make default) No change Delete Processing_Host entries
MQSeries Send_Host (make default) Receive_Host Delete Processing_Host entries
MSMQ Send_Host (make default) Receive_Host Delete Processing_Host entries
POP3 Not Applicable Legacy_Host Delete Processing_Host entries
SMTP Legacy_Host (make default) Not Applicable Delete Processing_Host entries
SOAP Legacy_Host (make default) No Change Delete Processing_Host entries
SQL Can’t delete Receive Processing_Host entries as they are used (see note below)
WCF-BasicHTTP Send_Host (make default) No Change Delete Processing_Host entries
WCF-Custom Send_Host (make default) Receive_Host Delete Processing_Host entries
WCF-CustomIsolated Not Applicable No Change
WCF-NetMsmq Send_Host (make default) Receive_Host Delete Processing_Host entries
WCF-NetNamedPipe Send_Host (make default) Receive_Host Delete Processing_Host entries
WCF-NetTcp Send_Host (make default) Receive_Host Delete Processing_Host entries
WCF-WSHttp Send_Host (make default) No Change Delete Processing_Host entries
Windows SharePoint Services Send_Host (make default) No Change Delete Processing_Host entries

Note: In order to delete the Receive Processing_Host, we first need to change the binding of the receive locations of the ‘Biztalk EDI Application’, in order to do so. Click on ‘Applications’ –> <All Artifacts>’ –> and select ‘Receive Locations’.

Perform the following actions for all receive locations visible in the main pane Double click receive-location and change the Receive handler to: Receive_Host and click ‘Ok’

Now go back to the SQL Adapter and delete the ‘Processing Host’

Clustering BizTalk Server Hosts

At this point we are almost done with our tasks in the BizTalk Server Administration Console. The one thing which we now need to do is actually cluster the hosts. In the BizTalk Administration Console, click on the Hosts node

Perform the following actions for all hosts, with exception of the Isolated_Host Right Click on a host and select ‘Cluster’

Select the Cluster Resource Group to use, in my case ‘BTS2010’

Select ‘Ok’ Once you’re done; you should see the that the ‘Clustered’ Column says yes for all hosts except for the ‘Isolated Host’ as out Isolated Host can not be clustered (but we’ve taken care of this in a previous step when we’ve clustered IIS )

At this point we are almost done, we only need to verify everything in our Cluster Failover Manager and add some dependencies.

Verifying our BizTalk Cluster Resources and adding dependencies

At this point we are almost done, we only need to verify everything in our Cluster Failover Manager and some dependencies to the just clustered hosts Open the ‘Failover Cluster Manager’ do this by going to start and in the search box type ‘Failover Cluster Manager’ then hit ‘enter’

In the Failover Cluster Manager, select your BizTalk Cluster Service and notice all the BTSSvc$…. resources added

Well, for all these resources we will add a few dependencies. So let’s get started. ‘Right Click’ on the first BTSSvc$… resource and select ‘properties’

On the properties screen select the ‘Dependencies’ Tab and add the following dependencies and once done click ‘Ok’

  • MSDTC (in my case ‘MSDTC-BTS2010’)
  • Enterprise Single Sign-On Service

Repeat the above mentioned step, for all other BTSSvc$… resources.

Closing note

Congratulations, at this point you’ve created a complete BizTalk High Availability Environment. Well it took some time and effort, but hey you accomplished it 🙂 and that at least deserves a congratulation. So what’s up next you might be wondering, well most likely I won’t be posting a new article pretty soon as I am currently involved in reviewing one of the upcoming BizTalk 2010 books and this takes up more time than I initially expected 🙂 But hey, isn’t that with all the things we ‘developers’ do 😉 Anyway, if you have any suggestions on future article with regards to BizTalk, Programming in general or anything else; well just drop me a note [email protected] or try to contact me on Twitter (ReneBrauwers). Well it has been a pleasure and it took me quite some time (avg 10hrs per post) to put all these posts together so I really hope that one of these posts or all have or can help you in anyway. If you have any questions or feedback please feel free to leave a comment and I’ll try to address them. So until the next time and don’t forget to check back regularly for new posts (or even better just follow me in Twitter as I’ll tweet whenever there is a new blogpost 🙂 Cheers René