woensdag 29 september 2010

Configuring the BizTalk Adapterpack 1.0 for use with BizTalk 2010 and Visual Studio 2010

I have a problem. A big monkey problem. I have been using the BizTalk Adapterpack 1.0 at my customer site to unlock precious Oracle 8.1.7 resources about 2 years ago.

No problem? Yes it is. The Oracle Client 10g is the last version to support connections to these databases. This means I cannot use Adapterpack 2.0 or the new BizTalk Adapterpack 2010. Of course, the client COULD upgrade the databases, but my guess is that these systems will be around for another year or two. They could live through one more generation if I could somehow use the Adapterpack 1.0 with BizTalk 2010.

Luckily it is not that hard to configure the Adapterpack 1.0 for use with BizTalk 2010. Here is how to do it. (NOTE: I did not describe the Oracle client dependencies. If you need those, drop me a note.)

1) Install the LOB WCF Adapter SDK 2010 for use with your platform (32 or 64 bit).
2) Install the BizTalk Adapterpack 1.0 for 32-bit and, if applicable, 64-bit.

Now normally this would be it. But since .Net 4.0 we have a new machine.config that is not known to the Adapterpack 1.0 installer. So we have to manually register the adapters to the machine.config in the %windir%\Microsoft.Net\Framework\v4.0.30319\CONFIG\machine.config

If you have a 64-bit platform you need to repeat this for the %windir%\Microsoft.Net\Framework64\v4.0.30319\CONFIG\machine.config.

What settings do you need to copy from the 2.x machine.config. Below is a list for all the adapters in the pack. If you chose to just install the Oracle Adapter, you can ignore all the steps/lines that mention SAP or SIEBEL. Just do not copy them.

Configuring the 32-bit adapters

from <system.data><DbProviderFactories> copy the following lines to the <system.data><DbProviderFactories> section in the .Net 4.0 machine.config:

<add name="SiebelClient Data Provider" invariant="Microsoft.Data.SiebelClient"
description=".NET Framework Data Provider for Siebel eBusiness Applications"
type="Microsoft.Data.SiebelClient.SiebelClientFactory,Microsoft.Data.SiebelClient, Version=, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add name="SAPClient Data Provider" invariant="Microsoft.Data.SAPClient"
description=".NET Framework Data Provider for mySAP Business Suite"
type="Microsoft.Data.SAPClient.SAPClientFactory,Microsoft.Data.SAPClient, Version=, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />

from <system.serviceModel><extensions><bindingElementExtensions> you need to copy these lines to the <system.serviceModel><extensions><bindingElementExtensions> node in the .Net 4.0 machine.config:

<add name="siebelAdapter" type="Microsoft.Adapters.Siebel.SiebelAdapterExtensionElement,Microsoft.Adapters.Siebel, Version=, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add name="sapAdapter" type="Microsoft.Adapters.SAP.SAPAdapterExtensionElement,Microsoft.Adapters.SAP, Version=, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add name="oracleDBAdapter" type="Microsoft.Adapters.OracleDB.OracleDBAdapterExtensionElement,Microsoft.Adapters.OracleDB, Version=, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />

from <system.serviceModel><extensions><bindingExtensions> you need to copy these lines to the corresponding place in the .Net 4.0 machine.config:

<add name="siebelBinding" type="Microsoft.Adapters.Siebel.SiebelAdapterBindingSection,Microsoft.Adapters.Siebel, Version=, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add name="sapBinding" type="Microsoft.Adapters.SAP.SAPAdapterBindingSection,Microsoft.Adapters.SAP, Version=, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add name="oracleDBBinding" type="Microsoft.Adapters.OracleDB.OracleDBAdapterBindingSection,Microsoft.Adapters.OracleDB, Version=, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />

from <system.serviceModel><client> you need to copy these lines:

<endpoint binding="siebelBinding" contract="IMetadataExchange"
name="siebel" />
<endpoint binding="sapBinding" contract="IMetadataExchange" name="sap" />
<endpoint binding="oracleDBBinding" contract="IMetadataExchange"
name="oracledb" />

Configuring the 64-bit adapters
You have to copy the exact same entries on a 64-bit machine to the %windir%\Microsoft.Net\Framework64\v4.0.30319\CONFIG\machine.config with one exception: the Siebel adapter does not have a 64-bit version.

The catch to this is the following: You cannot use the Adapterpack 1.0 with other versions side-by-side due to dependencies.

If you really need the functionality of different packs, I guess you could have a dedicated host, only to run on a dedicated BizTalk node in the group which has an other (or this) version installed. Configuring this, however, is a problem as you need to manage the group from two different(!) machines which also have these adapterpacks installed this way... better (not) try it.

dinsdag 28 september 2010

BizTalk 2010 Setup fails at SSO Install.

While installing the recently released BizTalk 2010 Developer Edition, I ran into an unexpected installation error.

The Enterprise Single Sign-On installation failed complaining that it was unable to 'find the path specified'.

Manually installing ENT SSO from the \BT Server\Platform\SSO64 did not do me much good; the installation failed as stand-alone also.

In the end I found that the problem was that I was installing from a network location, even though it was mapped to a drive letter.

To be exact: I was installing onto a VMWare Windows 2008R2 64-bit image, mapping a shared folder on the host holding the installation files.

I have found that there are two ways that will get you out of this:
1) Create an ISO and mount it from the VMWare image as CD.
2) Copy it to a virtual disk local to the VMWare image.

Problem solved.