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é

VMWare Server Copying file from host to guest very slow

For BizTalk 360 we use several virtual machines with various OS/BizTalk Server combinations for functional testing purpose. One of the major issue we faced recently was around copying the newly created .msi files from our build machine to the test VM. The copying speed was not even close to acceptable level. It will be in the region of 15KB/sec or less and it completely unreliable, gets disconnected in the middle.

After searching through various solutions and trying various combination, this KB article from VM ware helped us resolve this issue.

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1006619

Basically it suggest to disable TCP Offload engine

To disable the TCP Offload Engine features:

  1. Click Start > Run.

  2. Type regedit and press Enter.

  3. Browse to the following location:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

  4. Create the key DisableTaskOffload (type: DWORD).

  5. Set the value of the key to 1 .

  6. Close the Registry Editor and restart the computer.

The heading actually doesn’t convey the problem we are facing, but it just fixed our issue. Now our installer (which were around 20MB) msi file get copied in few seconds rather than seeing the annoying file copy screen showing 39minutes left.

Nandri!

Saravana Kumar

Microsoft SQL Server 2008 Data Transformation Services (DTS) for BAM Archiving is not installed on the local machine.N

If you get the following error when configuring BAM tools for BizTalk 2010:

Microsoft SQL Server 2008 Data Transformation Services (DTS) for BAM Archiving is not installed on the local machine. Please install Microsoft SQL Server 2008 Integration Services. (Microsoft.BizTalk.Bam.CfgExtHelper.ToolsHelper)
For help, click: http://go.microsoft.com/fwlink/events.asp?ProdName=Microsoft+BizTalk+Server+2009&ProdVer=3.8.368.0&EvtSrc=Microsoft.BizTalk.Bam.CfgExtHelper.ToolsHelper&EvtID=error_DTS2008Archive
———-
ADDITIONAL INFORMATION:
Could not load file or assembly ’Microsoft.SqlServer.ManagedDTS, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91 or one of its dependencies. The system cannot find the file specified. (Microsoft.BizTalk.Bam.CfgExtHelper)

It has to do with installing BizTalk 2010 with a remote SQL 2008 server. Here’s the fix.

Install the Management Tools (Basic & Complete) SQL 2008 features as shown in the screenshot onto the BizTalk 2010 server:

N
Blog Post by: Eric StottN

Microsoft SQL Server 2008 Data Transformation Services (DTS) for BAM Archiving is not installed on the local machine.

If you get the following error when configuring BAM tools for BizTalk 2010:

Microsoft SQL Server 2008 Data Transformation Services (DTS) for BAM Archiving is not installed on the local machine. Please install Microsoft SQL Server 2008 Integration Services. (Microsoft.BizTalk.Bam.CfgExtHelper.ToolsHelper)
For help, click: http://go.microsoft.com/fwlink/events.asp?ProdName=Microsoft+BizTalk+Server+2009&ProdVer=3.8.368.0&EvtSrc=Microsoft.BizTalk.Bam.CfgExtHelper.ToolsHelper&EvtID=error_DTS2008Archive
———-
ADDITIONAL INFORMATION:
Could not load file or assembly ’Microsoft.SqlServer.ManagedDTS, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91 or one of its dependencies. The system cannot find the file specified. (Microsoft.BizTalk.Bam.CfgExtHelper)

It has to do with installing BizTalk 2010 with a remote SQL 2008 server. Here’s the fix.

Install the Management Tools (Basic & Complete) SQL 2008 features as shown in the screenshot onto the BizTalk 2010 server:

Blog Post by: Eric Stott

Visual Studio 2010 and BizTalk 2010 File Locking Problems

Visual Studio 2010 and BizTalk 2010 File Locking Problems

I’ve had several situation with large solutions in VS2010 where assemblies get locked and references need to be constantly fixed, failing compilations. I would get errors when copying the DLL’s from the OBJ into the BIN folders, or even copying a schema assembly into the bin folder of the maps project which uses it. One “detail” (or not) was that the BizTalk and C# projects in the solution where upgraded from previous versions (BTS2004).

Using SysInternal’s Handle.exe tool, I found it was Devenv itself locking the assemblies.

I’ve tried several solutions that didn’t work, including:

  • disable vs extensions
  • stop windows indexing service
  • make sure Copy Local is set to True in all the references
  • the same fix that was used with VS2008+BTS2009 (documented here) of setting Private True in the project file;
  • adding the the famous GenerateResourceNeverLockTypeAssemblies config in the project files (documented here, see Benson’s response).

What eventually solved the issue was a variation of the first solution Benson gave in the previous link, and which is documented here in a StackOverflow response by Godeke: code a small command line tool (VisualStudioLockWorkaround) that removes locks and which you add as a pre-build script to the troublesome VS projects. It’s ugly, but it solved my problem, after some hours of trying to figure out what was happening.

Share this post: email it! | bookmark it! | digg it! | reddit! | kick it! | live it!


Blog Post by: Jo%u00e3o Pedro Martins

Second Visit to Stockholm : BizTalk User Group Sweden

Next month I will attend the BizTalk User Group Sweden event: Top 10 Things to Know When Integrating with Line of Business Systems. Kent Weare and Richard Seroter will be coming to talk about Integrating with Line of Business Systems. They have written a book together with Thiago Almeida, Sergei Moukhnitski and Carl Darski called: Microsoft BizTalk 2010: Integrating with Line of Business Systems. In session packed with demoes they will walk through numerous key principles to follow when doing system integration like integrating BizTalk Server 2010 with SharePoint, Windows Azure, SAP and software-as-a-service providers (e.g. SalesForce). I am looking forward to these sessions and to see speakers, Johan Hedberg, Mikael Sand, Mikael H%u00e5kansson, Alan Smith and Saravana Kumar. I recommend the book if you integrating with previous named products and technologies and session if you can attend.