What is one of the biggest problems with having to set up BizTalk in a new Environment?  Creating all the Hosts, Host Instances, and assigning the Adapters to these new hosts.  This process has been made much simpler with the help of the BizTalk Host Setup Tool.

This tool is fed by a configuration file to set up the Hosts, install Host Instances, and assign Adapters to those Hosts.  This tool also has the ability to prompt for a user password and reset all the Adapters back to the default Host (this was used extensively when I was testing the tool).

This will allow one developer to create the solution host layout and easily distribute it to others!

How should you set up your Hosts?  For starters, you should have a Receive Host, a Send Host, a Process Host, and a Tracking Host.  Then, continue to build out the Hosts as needed.  In general, it is best for each Adapter to run in its own Host.  But I’m a big fan of not taking this to extremes – specifically on single or double server BizTalk installations.

This tool will help you design and build your solutions by making it easy to separate out your processes into multiple hosts even on your developer boxes.  It will also make sure all your developers and environments are using Hosts with the same names – a total nightmare to manage.

You can find the download here.

Note: This is intended as a starting point and you are free to build off of it and customize it as needed.  It is nothing exciting as I am just wrapping WMI calls with what I hope is more user friendly XML tags.  Please remember this and all other code on BizTalkGurus.com is AS-IS and not intended for production use.

I have included two sample config files.  The two samples are HostConfig-Demo.xml and HostConfig.xml. Both have comments that should make it easy to figure out what is going on.

I have not tested this tool with remote setups or on anything other than BizTalk 2006 R2 (but anything 2004 to present should work).

Here is a sample of the XML Configuration File:

<BizTalkHostConfig Version=”1.0″ defaultHost=”BizTalkServerApplication” defaultIsoHost=”BizTalkServerIsolatedHost”>
    <MakeHosts>
        <!– Basic Sample to create a HOST
            <Host>
            <HostName>MyTestHost</HostName>
        Host Type: Isolated or InProcess
            <Type>InProcess</Type>
            <NTGroup>BizTalk Application Users</NTGroup>
            <AuthTrusted>false</AuthTrusted>
        Action: true to install or false to skip
            <InstallServers Action=”false” />
        Action: true to set adapters or false to skip
            <SetAdapters Action=”false” />
        AdapterName Type: Receive or Send
        </Host>
        Detailed sample to create a host, install it, and set up an adapter to use the new host
        <Host>
            <HostName>MyTestHost123</HostName>
        Host Type: Isolated or InProcess
            <Type>InProcess</Type>
            <NTGroup>BizTalk Application Users</NTGroup>
            <AuthTrusted>false</AuthTrusted>
        Action: true to install or false to skip
            <InstallServers Action=”true”>
                <Server>
        Start: true to start host or false to not
                    <ServerName Start=”true”>LPT154</ServerName>
                    <UserName>SomeUserSomePassword</UserName>
        Prompt: true to get a pop up to end password or false to enter it here
                    <Password Prompt=”false”>SomeUserSomePassword</Password>
                </Server>
            </InstallServers>
        Action: true to set adapters or false to skip
            <SetAdapters Action=”true”>
                <Adapter>
        Type: Receive or Send
                    <AdapterName Type=”Receive”>File</AdapterName>
                </Adapter>
            </SetAdapters>
        </Host>
        –>
</BizTalkHostConfig>

Enjoy!