One of the great improvements in BizTalk Server 2006 was the ease of the installation and configuration of a developer machine install. Whilst single box installs are now relatively simple, there is still quite a challenge in installing BizTalk Server in a multi-server environment. This article will run through a basic multi server installation of BizTalk Server 2006 using Virtual PC to host the servers.
It’s worth running through a multi server installation using Virtual PC before trying it with real hardware. Using undo disks across multiple virtual machines means you can roll back and try again if the configuration fails, which is a definite time saver. If you want to try this at home, you’ll need basic knowledge of BizTalk 2004 or 2006 single box installation, along with installing all the other server products that go with it. A basic knowledge of creating an Active Directory domain, and creating domain users and groups is good to have too.
I have bullet pointed a few of the setup tasks, but as this is a BizTalk lab, not an Active Directory, IIS, or Windows Server lab, so you’ll have to forgive me for not detailing these too well (there’s plenty of documentation out there for these tasks anyway, right?).
This lab will focus on the installation of the core BizTalk Server components:
For this lab, I used the software listed below.
I found the best option was to download the ISO files for these from MSDN, which saves swapping CDs.
I used Microsoft Virtual PC to host the virtual machines for this setup, it works well, and it’s now free to use. Virtual Server or other products may also work fine.
If your first BizTalk multi-box install goes anything like my first attempt, you will be glad of the ability to create undo disks in Virtual PC. For the configuration stages, I usually set undo disks on all the VPC images, then run the configuration, and skip changes if anything went wrong. It’s much easier to run the configuration from a clean setup than to have to manually delete all the databases.
If you have a gig of ram, you should just be able to have three virtual machines running at the same time, provided you set the ram for each VM accordingly. I’ve found using two gigs of RAM gives much better results.
Here’s a rough guide to how you should set the VM ram.
If you have… |
Then… |
2 GB |
Use 512 MB for each virtual machine |
1 GB |
Use 256 MB for each virtual machine |
Less than 1 GB |
Buy more RAM |
I ran this lab with 2 gig ram, and used 512 for each VM. This meant the VMs were running pretty slowly, but it was fine for functionally testing the install.
You’ll also need about 10 - 15 GB hard disk space for the virtual machines. I found that using an external USB2 hard drive gave me more performance than using the internal drive on my laptop.
As we are creating a domain for the BizTalk server group, it’s best to work with local only networking on all the VMs. This means it’s easy to set a static IP address for the domain controller VM, and have the other servers use it for DNS and DHCP.
In this lab, I went for the simplest option of a three server configuration, one for Active Directory, SQL Server, and SSO Master Secret Server, and two BizTalk boxes.
ServerName |
Description |
ADSQL |
Active directory server hosting the BizTalk domain user accounts and groups, also hosts SQL server and the SSO Master Secret Server. |
BizTalk1 |
First BizTalk Server to be installed, the Create Group configuration is run on this server. |
BizTalk2 |
Second BizTalk server to be installed, the Join Group configuration is run here. |
I placed the SSO Master Secret Serve on the ADSQL Server, as the latest documentation is recommending that in small deployments (where you don’t have a separate cluster for the Master Secret Server), you can have it installed on the same cluster that is hosting the SQL Server.
To save some time installing Windows Server three times, I created a base image that I could copy, SysPrep, and use for the other server installs. To create a base image:
We can now SysPrep this image to create our servers.
The SysPrep tool is used to rename the virtual machine, and ensure that all the security identifiers are replaced in the operating system. If we just rename the machine in the computer properties, we may well run into DTC problems when we attempt to create the BizTalk group using the BizTalk configuration wizard.
The file sysprep.exe is located in the CAB file DEPLOY.CAB in the SUPPORT"TOOLS folder of the windows install disk.
Run SysPrep on the base image to seal it:
You can then create your servers for the multi-box install starting from this image. Note that you have to enter the key for Windows Server 2003 so keep it handy.
I’ve also tried using the NewSid tool to rename VPCs, but this tends to cause problems with DTC when configuring the BizTalk Servers.
The first server to install is the Active Directory and SQL Server. This will host the BizTalk domain user accounts and groups, and also the BizTalk Server databases. As this server would be a SQL Server cluster in the real world, the Enterprise Single Sign on Master Secret Server will also be hosted on this server.
When the VM starts, it will enter Mini Setup, you will have to enter your key, set the password, and set the time zone. Accept all the other settings as default.
When the image starts, you are ready to install Active Directory. The following procedure will install Active Directory, DHCP, and DNS.
Perform a basic installation of SQL Server 2005, selecting SQL Server Database Services and Workstation components, Books Online and Development tools. Use the Local System account as the Service Account, and select SQL Server Agent to start at the end of the setup. This will take a while, and you will be prompted to change discs half way through the process.
Whilst the SQL Install is running, you can also:
The BizTalk configuration requires SQL Server to be running.
In order for the BizTalk servers to connect to SQL Server, remote connections need to be enabled.
As we are working in a multi-box environment, we will need to create the active directory users and groups. We will also need to create memberships for some of the accounts in the relevant groups.
Use the Active Directory Users and Computers tool for these tasks; it’s in Administrative Tools on the start menu.
To keep things tidy, we will place all the BizTalk users and groups in an ou (Organizational Unit).
The users are required for the various BizTalk services. I used the same password for all the users, and kept it in a txt file on the desktop so I could copy-paste it when I needed to. (Not good to do in production though). I also copy-pasted the user and group names, you can do this from this article.
Create an organizational unit (ou) names biztalk, and the users and groups in this ou.
For each user:
User |
Description |
SsoService |
Enterprise Single Sign-On service account |
BizTalkHost |
BizTalk Server host service account |
BizTalkIsoHost |
BizTalk Server isolated host account |
ReuService |
The Business Rules Engine update Service |
Group |
Members |
Description |
SSO Administrators |
Administrator SsoService |
Group for administrating SSO |
SSO Affiliate Administrators |
|
Group for administrating SSO |
BizTalk Server Administrators |
Administrator |
BizTalk administration users |
BizTalk Server Operators |
|
BizTalk operation users |
BizTalk Application Users |
BizTalkHost |
BizTalk in process host instances |
BizTalk Isolated Host Users |
BizTalkIsoHost |
BizTalk out of process host instances |
These groups will be used for the security configuration of the BizTalk Server databases.
In order for BizTalk to run against the databases on a remote SQL server, you will need to configure the DTC options.
The SSO Master Secret server will be installed on the ADSQL Server. In a production environment, the SQL Server would probably be hosted on a clustered server, it is also possible to host the Master Secret Server in the same cluster as the SQL Server hosting the BizTalk databases.
As we are using local networking, we will need to download the BtsRedistXpEN32.cab file in order to install the BizTalk prerequisites. To save a bit of drive space I created a compressed folder named Install, and copied the Bts Install files and the CAB file into it.
These are the options I selected:
We can now make a copy of BizTalk1 Hard Disk.vhd, and rename it to BizTalk2 Hard Disk.vhd, this will allow us to SysPrep this image to create BizTalk2.
Use My Computer – Properties – Computer Name to join the biztalk domain.
In order for BizTalk to run against the databases on a remote SQL server, you will need to configure the DTC options.
Now it the time to use the undo disks, if things go bad, it’s great to be able to roll back to how things were before, and have another try.
In order to access the domain accounts, you will need to logon to BizTalk1 as the BizTalk domain administrator (BIZTALK"Administrator).
Run Configuration from the BizTalk 2006 menu, and select Custom configuration.
Configure BizTalk as follows:
Section |
Tasks |
Enterprise SSO |
Enable ESSO Join an existing SSO system Database Server Name – ADSQL Set the account name to BIZTALK"SsoService |
Enterprise SSO Secret Backup |
No changes |
Group |
Enable BizTalk Server Group on this computer Create a new BizTalk Group Database Server Name – ADSQL (3 databases) Set the group names to BIZTALK"BizTalk Server Administrators and BIZTALK"BizTalk Server Operators |
BizTalk Runtime |
Register BizTalk Server runtime components Create BizTalk In-Process Host and Host Instance Create BizTalk Isolated Host and Host Instance Set the account names to BIZTALK"BizTalkHost and BIZTALK"BizTalkIsoHost) Set the group names to BIZTALK"BizTalk Application Users and BIZTALK"BizTalk Isolated Host Users |
MSMQT |
No changes |
Business Rule Engine |
Enable Business Rules Engine on this computer Database Server Name – ADSQL Set the account name to BIZTALK"ReuService
|
HWS Runtime |
No changes |
BAM Tools |
No changes |
BAM Alerts |
No changes |
BizTalk 2004 provided the option to save the configuration file after completing the Wizard. BizTalk 2006 allows you to export, and import configuration files, which means you can re-use your create group configuration settings for using when you join the group on the second server. Better still, you can leave the passwords out of the configuration, meaning configuration files can be distributed without them containing sensitive information. This allows an administrator to import the configuration, set the passwords, and then configure the server, ensuring that the users, groups, and database settings are consistent.
Apply the configuration. This is the most likely point of failure in this lab (hence the undo disks). If things go bad, take a while to look at the problem, and check that you have completed the setup of the servers correctly.
Checklist
DTC Settings Enabled
Check the Application section of the Windows Event log, there should be lots of Information entries, and no errors or warnings relating to BizTalk or ESSO.
Start the BizTalk Server administration console and verify the BizTalk Server host instance is started.
Try stopping and starting the host instance.
The second BizTalk server will be configured with the “Join Group” option.
As you have already configured BizTalk1, and exported the configuration file, you can use this file for the basic settings of the BizTalk2 configuration. When you import this configuration file, you will need to set some of the options, and set the passwords for the accounts.
The configuration for BizTalk2 will run much faster than for BizTalk1, as the BizTalk databases have already been created on ADSQL.
Hopefully I’ve covered all the important points to get up and running with a multi-box install. But there are bound to be issues that people will hit. Some of the common ones are:
Once you have the multi-server environment setup, there’s quite a few things you can test on it.