Wednesday, August 26, 2009

BizTalk 2009/Windows 2008 - Clustering SSO issue

During the clustering and configuration of the Enterprise Single Sign on service we ran into the following issue when trying to restore the master secret.

C:\Program Files\Common Files\Enterprise Single Sign-On>ssoconfig -restoresecret
Password reminder : *Reminder*

Password : ********
ERROR: 0xC0002A0F : Could not contact the SSO server '*PhysicalNode*'. Check that SSO
is configured and that the SSO service is running on that server.
(RPC: 0x800706D9: There are no more endpoints available from the endpoint mappe

I thought it was odd that the *PhysicalNode* was showing up in this error message since I was expecting the virtual server name to show up.

Upon checking the status of SSO I was provided the following information:

C:\Program Files\Common Files\Enterprise Single Sign-On>ssoconfig.exe -status

Using SSO server on this computer

SSO server : *PhysicalNode*
SQL Server : *SqlClusterName*\*SQLClusterInstance*
SSO Database : SSODB
Service Account : domain\*SSOUser*
Cluster Name : *ClusterName*
Node Name : *PhysicalNode*
Event Counts (Info/Warning/Error... : 9/11/0
Version :
Password Sync Age (in hours) : 0
Audit Levels (Positive/Negative) : 0/1

Server status : Online
Secret server running : Yes
Password Sync loaded : No
Password Sync from PCNS running : No
Password Sync from MIIS running : No
Password Sync from adapters runn... : No
Allow password changes from PCNS : No
Allow password changes from MIIS : No
Clustered server : Yes
64 bit server : Yes
Using SSL for SQL connection : No
Case sensitive : No
Allow remote lookup : No
Local administrator : No

Having the Physical node being displayed as the SSO Server is a problem. I would have expected that the Cluster Resource group Server name should have been populated in the SSO server field.

Even though we already ran the ssomanage -updatedb XMLFile command I figured that I would run it again. (What is the definition of insanity, running a task over and over again but expecting a different result?) So when we ran this command and included our Cluster Resource group server name in the file, it still did not have an effect even though the command was "successful".

When I went back and ran the ssoconfig.exe -status command it still indicated that the SSO secret server was the phyiscal node and not the Clustered Resource group server name.

After hunting through the online documentation, I ran into the following:

If you do not click to select the Use Network Name for computer name check box, SSO client computers will generate an error similar to the following when they try to contact this clustered instance of the Enterprise SSO service:
Failed to retrieve master secrets.
Verify that the master secret server name is correct and that it is available. Secret Server Name: ENTSSO Error Code: 0x800706D9, there are no more endpoints available from the endpoint mapper.

The error messages are different, but it did seem applicable to our situation. I then went into the Failover Cluster Managment MMC and found that the "Use Network Name for computer name had not been checked off".

We also had to add a Network Name and IP Address as dependencies for this configuration to be set.

Upon bouncing the ESSO service and running the ssomanage -updatedb XMLFile and ssoconfig.exe -status commands the proper SSO Secret Server name was being populated. After performing these steps, we were able to restore the Master Secret server on all nodes without issue.

Friday, August 21, 2009

BizTalk 2009: Unable to configure BAMArchive

When trying to configure the BAMArchive database on a fresh BizTalk 2009 64 bit install, I encountered the following error:
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.
Could not load file or assembly 'Microsoft.SqlServer.ManagedDTS, Version=,

This error makes it sound like you need to install SQL Server Integration Services (SSIS) which is a little misleading.

The documentation on MSDN indicates the following:

What 64-bit SQL Server components are required to configure BAM tools?
The configuration wizard is a 32-bit process; therefore it requires certain components which allow it to communicate with 64-bit SQL Server. You must install the following SQL Server client components to enable configuration of BAM tools:
Connectivity Components
Management Tools
Legacy Components

In order for me to complete my installation, I installed the following components from the SQL Server 2008 media(I don't see the Legacy Components option).

Friday, August 14, 2009

BizTalk 2009 64bit: Missing sapBinding in BizTalk admin and VS .Net 2008

I have been running BizTalk 2009 for quite some time now including the Beta version. Up until now, all of the work that I have been doing was on a 32bit platform. Now that we are moving to a 64bit platform, I am starting to run into some more challenges related to 64bit.

I installed the 64bit version of the WCF SDK SP2. I then went and installed the 64bit version of the BizTalk Adapter Pack 2.0. I opened a project that I had previously built on a 32 bit machine and successfully deployed the application to my 64bit laptop. When I attempted to import the binding file that had been previously used on the 32 bit solution, I got the following error:

At this point I tried to create a new send port that uses the Custom WCF Adapter. I clicked on the "Binding" tab and then on the pull down to see just what bindings had been registered. Here is what I found:

As you can see the sapBinding is no where to be found. I was curious to see what Visual Studio was seeing when I called upon the Consume Adapter Service. The error message that I received was "No valid adapters are installed on this machine"

After some digging, I was able to find the following link on TechNet which discusses the SQL Adapter, however the behaviour applies to the SAP Adapter as well.

The SQL adapter is a WCF custom binding, which is registered under System.ServiceModel in the machine.config file. A 64-bit platform has two machine.config files, one used by the 32-bit applications and the other used by the 64-bit applications. So, when you install the 64-bit version of the BizTalk Adapter Pack, the setup wizard registers the bindings in the 64-bit version of the machine.config file. However, Visual Studio runs as a 32-bit process and hence when you launch the Consume Adapter Service Add-in from Visual Studio, the plug-in checks for the bindings in the 32-bit version of the machine.config file and fails giving an error.

Install both the 32-bit and 64-bit versions of the BizTalk Adapter Pack on a 64-bit WCF LOB Adapter SDK installation.

The document also stresses that you should only install the 64bit version of the WCF SDK SP2 as you cannot run this SDK side by side (32 & 64 bit)

So this explanation deals with Visual Studio, but what about the BizTalk Admin Console? Well, it runs as a 32 bit process as well which explains why the Adapter is not visible inside the console. After installing the 32bit BizTalk Adapter Pack 2.0, the sapBinding will now appear.

Suddenly, I am not as excited about the 64bit platform as I was previously.

Friday, August 7, 2009

BizTalk 2009 - Silent/Unattended Install

I am currently involved in a BizTalk 2009 upgrade. We are lucky enough to get some new hardware that screams and we are now running 64bit. We are taking this opportunity to try to streamline our server deployments. This includes Rapid Deployment images at the OS level and scripting as many installs as possible based on server naming convention.

When I was asked whether BizTalk could be silently installed I assumed it could be but had to do some investigation. This is when I stumbled across this page:

Initially we thought about silently installing all components and then just configuring the features that we needed (No EDI). This was a good idea until we got an error message indicating that the install could not continue because we didn't have VS 2008 SP1 installed. The purpose of these scripted deployments were to target our Test/Prod BizTalk and SQL farms. Since these servers would be used in Test and Prod we did not want VS 2008 installed.

The next option was using the /S switch which allows you to provide a configuration file that would include all of the features you want to install. The problem is that the document is not real explicit about where you would find this configuration file or the format that the file needs to be in.

/S Performs a silent installation of features found in the specified configuration file. Note To install all features, specify ALL for the parameter of the configuration XML file.

After some pointers from
Matt Milner, Alan Smith and Bill Chesnut I was able to get this working.

Here are the steps that you need to follow in the event that you have a farm where you want installations to be consistent across the farm:

  1. Download Pre-requisite Cab files. (Thiago has the links on his blog)

  2. Mount Media

  3. Install BizTalk on initial node

  4. Configure BizTalk on initial node

  5. Export configuration file based on initial configuration

  6. When you open the file, you will find a lot of information but the key information that you need are in the "InstalledFeature" tags.

  7. Now that you have this file, you can use it as in input to your silent install command. Here is the command that I used:

x:\Setup.exe /CABPATH "x:\temp\" /S x:\ScriptedInstallDir\ExportedConfigurationFile.xml /L c:\temp\BizTalkInstall.log /FORCERESTART /INSTALLDIR "x:\program files\Microsoft BizTalk Server 2009"

Note: I initially tried the install using the the /QUIET switch but was then prompted with an error indicating that I could not provide a configuration file and use the "Quiet" switch. This wasn't the end of the world for me as an interface is displayed but it does not require any action - no buttons or prompts to click through.

So if you have a farm you will probably want to take advantage of this features since it will save you a little time and will ensure that you have a consistent install across the farm. It doesn't help you much with your initial installs though.

Monday, August 3, 2009

4 questions...with me

This month I am featured in Richard Seroter's 4 questions series. I am a big fan of his blog and this feature so I had no hestitation when it came to accepting his invitation. Here is the link to the interview: