Flat file parsing in BTS2006 is pretty nice in general - you get a very specific error back in the error log if your incoming file is in the wrong format for the schema (or, put a more likely way, if you have buggered up creating the schema).
However, this vague error stumped us for a little while:
There was a failure executing the receive pipeline: "Orders.ContoFFPipeline.ContoFF, Orders.ContoFFPipeline, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d5d6f7acdeb815af" Source: "Flat file disassembler" Receive Port: "RcvEnvelopedDocument" URI: "C:\FFIN\*.TXT" Reason: Unrecognized data in remaining stream
In our case this was due to a rogue carriage return at the end of the file (we had two instead of one!). Hope this saves someone some time!
Here's a braindump that I did for people with 2004 experience who are moving across to 2006. It's just a very quick run through some of the new bits and pieces to look out for. It's not complete, but it might be handy as the 50,000 ft view. It's also written with a dev audience in mind and is not necessarily the view of my employer either! (Is that enough caveats?).
New Features
Functionally very smilar to 2k4 - nothing like the shift in experience from 2k2 to 2k4. It's a "tidying up/more functionality" release, not a re-write.
The #1 new feature: You can zoom orchestrations in the development environment ;-)
New BTS Admin tool which is actually useful (cf current admin console) and can be used to make modifications to your server. Also contains really good reporting, far nicer than HAT, for investigating failed messages.
New security group aimed at system operators who need to maintain, not modify, a server install
Includes lots and lots more adapters out of the box - eg MSMQ, POP3. Also all the iWay adapters such as JD Edwards, out of the box.
Really nice flat-file schema wizard, should save hours for anyone who needs to work with flat files.
Solution Deployment
Really, really, really, really nice. Collections of assemblies/bindings/resource files/etc are grouped into "Applications" within BTS. These applications appear as their own controllable group within server administrator. You can start and stop the whole thing (including orchs, send/receive ports) simply with a right click. You can also right-click and generate an MSI ready for import to another BTS2k6 box - and yes
you can include multiple bindings files for multiple environments and it prompts you at MSI import time as to which environment you are setting up. Interesting to see how
Scott Colestock makes use of this.
Server Installation
This is now much easier. All pre-requisites are supplied in a CAB file and installed for you, so no more hunting around for Patch A and Service Pack B.
Install is a two phase process: 1 - Install 2 - Configure so you can install to multiple boxes, then just run the configuration wizard to set up multiple identically configured BizTalk boxes. Config tool is now robust and usable (cf ConfigFramework.exe)
You can install on XP - but don't, as you get a slightly different feature set and the install is slightly different. Better to stick to 2k3, unless your client's servers will be running XP of course ;-)
You can pre-create BTS Databases and the installer will use them and configure them. Just create an empty DB with the right name, and off you go. This is good for live deployments where you can create the database on teh server and disks that you want, precreate to a sensible size instead of forcing it to autogrow up to 2-3GB - a good way to boost performance.
Apparently, renaming of a biztalk server will be supported using a UI. This has yet to make an appearance in beta though.
Migration
BTS2004 projects "will" open fine in 2006. There have been reports of one single schema file that had issues, but it took 5 minutes to fix.
BAM
New BAM portal, which runs on ASP.NET. BAM can now hook into pipelines and message properties, not just orchestrations, so you can use it for pure messaging solutions too out of the box without dropping down into custom pipelines, custom components and the BAM API.
Can maybe use BAM for large-scale message tracking instead of TPE, with potential big performance gains as you get a dedicated database for it. This is just an idea some people are floating at the moment, and worth looking into for advantages/disadvantages
Samples
BTS2k6 ships with "Scenarios" - showing, eg, b2b, messaging, and so on. These are enterprise quality, complex applications showing best practice. Significant dev effort from MS into making these, so leverage them. Also probably contain useful components and utilities.
Random
Apparently XBox Live runs on BizTalk 2006 :)
Today's tip is brought to you via the BizTalk 2006 Deep Dive training course that I'm on, run by Alan Smith of the Bloggers' Guide to BizTalk fame..
In BizTalk 2004, if you wanted to create an empty output element in your target document via the mapper, you had a couple of options. You could either use a string concat functoid with one empty input parameter, or use a value mapper with 'true' and an empty string as its inputs. Bit tacky really, and in the case of a string concat also a bit slow as it uses inline C#.
Well rejoice, for in BizTalk 2006 there's a new drop-down option on the "Value" field of the mapper that lets you pick "".
Lovely! Especially handy if you are using the little-known but amazingly handy Property Demotion technique to populate message fields on the way out.
Incidentally, further to the system context properties described in the link above, you can also demote your own promoted properties from your own custom schema back into your message in the send pipeline.