Scripting a BizTalk configuration install/change…what a winner!

On this current assignment, we’re getting the production environment ready for our deployment in the coming weeks.

As we know there’s a bunch of config settings for a BTS install – e.g. ConfigFramework
(bts2004) or Configuration.exe (bts2006)
and one way that we’re looking (in our case bts2004 🙁 ) to configure the multiple
hosts and specific adapter handler settings is to use
WMI. (rather than just accepting defaults and then going crazy in the BTS admin)

While we do love those production guys…….we want to make it as fail safe as possible.

I thought – WMI….I’ll grab the plug-in for VStudio and start working there (consultant
#1 method!)
or…..
Grab the WMI
Code Creator 1.0 – let it create the C# code for you!!!

NICE!!

(alternatively – we could go down the BTS object model using ‘ExplorerOM’ library……..at
the moment WMI seems the easiest for the production guys to get their heads around)

Cheers,

Mick

New Whitepaper Comparing BizTalk Adapter Perf in 2004 vs. 2006

Just noticed a brand new paper on Microsoft.com called

BizTalk Server 2006 Comparative Adapter Study.
It’s a brief overview of performance of BizTalk 2004 adapters vs. BizTalk 2006 adapters. Highlighted
here are the FILE adapter, MSMQ adapter, FTP, SMTP, HTTP, SOAP, MQSeries and more. Some very nice
improvements in HTTP and SMTP processing, specifically.

Technorati Tags: BizTalk

BizTalk Server 2006: Changing the Outbound Namespace Prefix

I’ve decided to revise and repost this after seeing a question about this in the microsoft.public.biztalk.general newsgroup.


I’ve run into an interesting requirement to make sure my outbound xml file uses a specific namespace prefix. Since the BizTalk mapper always generates xml documents with the “ns0” prefix I wasn’t quite sure how to accomplish this and posted my question to the microsoft.public.biztalk.general newsgroup. It turns out to be very straight-forward to accomplish.


Step 1: Map as you normally would using the mapper tool.


Step 2: Validate your map and open the xslt generated by BizTalk Server 2004 in your favorite text editor. This file can usually be found in the  “\temp\_mapdata” folder.


Step 3: Replace all instances of the namespace prefix “ns0” with the prefix you require (in my case “pidx”) as shown below.



Step 4: Save this xml file as an .xslt file and include it (or add it) into your BizTalk project.


Step 5: Create a new map using the same source and destination schemas you used in Step 1 but use the external xslt you generated by setting the “Custom XSLT Path” property on your new map.


The results are shown in the figure below. No default namespace prefix (“ns0”) here!




The link below explains how to use external xslt in your maps.


http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sdk/htm/ebiz_prog_map_xrkh.asp


Take Away: There is always more than one way to skin a cat! In BTS2006 it may not be obvious how to do something a little unusual.


Technorati Tags: BizTalk Server, BizTalk

Share this post: Email it! | bookmark it! | digg it! | reddit!| kick it!
Installing SQL2000 on XP via RD

Installing SQL2000 on XP via RD

I found a real strange problem a couple of days ago. I was building a set of standalone/workgroup VMs (mainly for playing with Biztalk 04 and 06 . I tried TFS, but its a monster to install and i gave up halfway).


I first had an existing SQL2000 VM that didnt have any SPs on it and i connected up and tried to patch it with SP3a. But SP3a just hung at the validating user stage. I then built a new XPSP2 VM and tried to install SQL. This time it got to the ‘configuring the server ‘ stage and hung. I even left it overnight, but it didnt complete. This happened when i used the ‘local system account’ to configure the services. I tried using the Administrator account and it said that it could not validate the account. I took a copy of the old SQL VM and decided to apply old SPs one after the other. I got as far as SP1 but SP2 timed out (the SCM couldnt start the service and it gave me an error code number 1460).


Left me stumped for a while since i had successfully created VMs of Win2003 in this way (and even got Biztalk 04 to install correctly the very first time on a Win2003 box) – so it was crazy that good ol SQLServer should be giving probs.


Finally I found an article that states you cannot install MSDE or SQL on XP via remote desktop. You need a local session. In my case, since i was using Virtual Server, it meant i had to use the browser based window of the target machine and perform the installation instead of enabling remote access and RDPing to the IP address. This worked like a charm. I now have the boxes all built and ready. 


Curious eh ? Does anyone know why this happens?

Splitting Out POP3 Email Attachments

This sample shows how to receive an email via the POP3 Adapter and break off unlimited attachments as separate messages. Each message will be saved to a folder location. Note that this sample is not fully functional; you need to set up the POP3 Receive Location yourself to an existing email address.

This sample will work with BizTalk 2006 and BizTalk 2006 R2.

Get more information from the original blog post on this topic: http://www.biztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalk/archive/2006/08/08/how-to-split-received-email-attachments-in-biztalk-2006.aspx

BizTalk Article Published in July .NET Developers Journal

I feel pretty bad about not posting for a while so I will try to get back into posting more frequently.


 


One of the reasons for my lack of posts is that I was working on a couple of BizTalk articles for .NET Developers Journal.  The first was published in the July issue and can be found at http://dotnet.sys-con.com/read/253444.htm  This first one is an introduction to BizTalk by way of the types of applications that can be built with it.  I decided to take a different angle at introducing the product since it can be difficult to understand at first and there are plenty of intro articles out there that talk about BizTalk’s features.


 


I’m currently working heavily with the WF Rules Engine and I have a lot to say about it – look for some future posts on my experiences with it soon.  It’s been great working with it and it has actually helped me understand the BizTalk Rules Engine better too.

Whos the Boss with BizTalk and JBOSS? – (505) Http Version Not Supported Error

While on a current project, I needed to go off to a WebServer and grab a page, parse it to make sure all was alive and kicking (a system verification page).

Connected and ended up getting –

The adapter failed to transmit message going to send port “http://<server>/<site>/”.
It will be retransmitted after the retry interval specified for this Send Port. Details:”The
remote server returned an error: (505) Http Version Not Supported.”.

The weird thing is, that when BTS retries (in 5 mins) – it works!!! No good for production!

After doing some digging, the problem lies around the fact that .NET 1.1 (in my case)
clients use HTTP 1.1 by default.
There is a HTTP Header “Expect: 100-Continue” that is inserted into the outgoing
webrequests.

The JBOSS WebServer grumbles about this – more
info.

Now from BTS we can get access to the HTTP/SOAP Headers Collection – msg(HTTP.InputHeaders)=….

Solution:

Add this setting to the BizTalk Config file (BTSNTSvc.exe.config)

<system.net>
        <settings>
            <servicePointManager checkCertificateName=”true”
checkCertificateRevocationList=”false” expect100Continue=”false” />
        </settings>
</system.net>




NOTE: this will set all outgoing HTTP requests (including SOAP),
to pick and choose
which addresses this applies to….. is to most probably write
a webRequestModules for the Addresses. This is a bit of code but allows you
to either turn this setting on/off or pass the original request through
to the default HTTPWebRequestModule (check out machine.config) for more.

This is by far the most elegant – there are other ways to do this, they all seem offensive!

Cheers,

Mick.

Host Integration Server 2006 July CTP is available now!

We are happy to announce that Host Integration Server 2006 July CTP (Community Technology Preview) is now available.  The July CTP has two different versions available:


 


%u00b7         Microsoft Host Integration Server 2006


%u00b7         Network Integration; SNA APIs, SNA Clients, Session Integrator, Enterprise SSO, Data Providers for DB2 and Host Files


%u00b7         Microsoft BizTalk Adapters for Host Systems


%u00b7         HIS 2006 features


%u00b7         Transaction Integrator


%u00b7         BizTalk Adapters for Host Applications, Host Files, WebSphere MQ client-based, and DB2


 


The July CTP offers many improvements over the April CTP, including side-by-side X64 and X86 support, more complete documentation, common setup and configuration with BizTalk Server 2006 and more.


 


Please follow the download instructions below to access this new release.  Please consult the April CTP un-installation instructions (if you are using a pre-July CTP release) that are included in both product downloads.   Also make sure to consult the README document before installing either version of the July CTP. 


 


HIS 2006 Beta 2 Download Instructions:



  • Go to http://connect.microsoft.com

  • Sign in using a valid passport account

  • If you have previously been to the HIS Connect Site



    • Select My Participation


    • Select the Host Integration Sever Public Beta


    • Once logged on to the HIS 2006 Site select Downloads


    • Select the either the BizTalk Adapters for Host Applications or Host Integration Server – July CTP link 

  • If this is your first time to the HIS Connect Site


    • Select Available Connections

    • Look for  Host Integration Server 2006 Public Beta (lower Program section) and select the Apply link on the right hand site

    • Select I Agree

    • Complete the Registration form and survey

    • Once logged on to the HIS 2006 Site select Downloads

    • Select the either the BizTalk Adapters for Host Applications or Host Integration Server – July CTP link

Marjan

How to Split Received Email Attachments in BizTalk 2006

This was a question (paraphrased) on the BizTalkGurus.com Forum: “How can I take email attachments and put them as is into a folder?”

 

 

When using the POP3 Receive Adapter, you have the ability to receive multiple items as attachments and the adapter will handle them using MIME processing.  You do not need a custom pipeline. 

 

 

When receiving a multi-attachment message, you have the ability to define one of the parts as the main message Body.  If you leave the default (0), the email message body will be the main message Body and all attachments will be additional parts to the message.

 

 

Lets say you have 3 attachments and you want to receive in an email and write them out to disk in a folder location (you can always publish them to the message box and do anything you want with the messages).  You could probably use a custom pipeline to break out the multi-part message into separate messages… 

 

 

I found a very simple and straight forward approach to accomplish this task.  The Orchestration looks like this:

 

 

 

The key is to create an Orchestration variable of type Microsoft.XLANGs.BaseTypes.XLANGMessage.  In order to do this, you need to add a reference to Microsoft.XLang.BaseTypes.dll.  Once you have this variable, you just need to set it equal to your input message like: oXMessage = In. 

 

 

You now have access to everything the XLangMessage has available; most importantly Count and access to all the message parts.  Now a simple loop can be used to loop over the parts and create new output messages for each message part. 

 

 

The output messages are created like:  Out = oXMessage[n] were n is the message part index (starting at 1 since 0 is the Body).  It’s that simple.  It’s a total of 4 lines of code inside the Expression Shape and Message Construct. 

 

 

I have a sample solution available for download below.

 

 

Download: Splitting POP3 Email Attachments in BizTalk Server 2006

 

 

See the readme.txt file for set up information.