I completed my first 64-bit installation of BizTalk last week and thought it would be beneficial to post a few notes about the experience as there doesn’t appear to be all that much out there on the interweb.
- BizTalk supports both 32- and 64-bit architectures out of the box.; Itanium (ia64) is not supported, but x64 (AMD64 and EM64T) architectures are. This applies to the BizTalk runtime only and not the SQL Server database – you can run SQL Server on any supported hardware.
- The BizTalk runtime can execute in 32-bit mode using the WOW64 service to emulate a 32-bit runtime environment. On an x64 architecture, WOW64 switches the processor hardware from its 64-bit mode to compatibility mode when it’s time to execute a 32-bit thread, and then handles the switch back to 64-bit mode. No expensive emulation is required for WOW64 on x64 in comparision to Itanium. For more information, see the Wikipedia entry on WOW64.
- Installation is relatively simple and requires no additional work. If you are downloading the CAB file prior to installation (rather than letting the installer download from the web), make sure that you get the 64-bit version, rather than the 32-bit version.
- On a 64-bit architecture, Setup installs the 32-bit elements into the ‘Program Files (x86)’ directory, rather than the standard ‘Program Files’ directory.
- The following screenshot was taken while installing ESSO on a 64-bit system and although it doesn’t show the full installation, it gives an idea of the additional work the installer completes (about as exciting as it gets!!):
- BizTalk Hosts can be configured to execute in either 32-bit or 64-bit mode. The execution mode is set when creating a new Host – uncheck the 32-bit option in the Host Properties dialog box and any new Host Instances created will execute in 64-bit mode. Note that you cannot toggle between 32- and 64-bit mode while you have Host Instances [in a Host] – to change the execution mode, delete the Host Instance and toggle the 32-bit checkbox and recreate the instances.
- To enable 64-bit execution of orchestraions, assign to a 64-bit Host Instance; note that the Host Instance must be running on a 64-bit machine.
- To enable custom assemblies to execute within Host Instances running in either 32- or 64-bit mode, compile the assembly with the AnyCPU flag set. The assembly will then JIT-compile for the correct runtime.