Hi guys, I gave an online presentation earlier this afternoon as part of Microsoft Readiness on Azure Virtual Networks. I had the whole presentation prepared until the http://meetwindowsazure.com announcement, where I had to go to the drawing board and just share all this goodness that was pouring out in Azure V2.0. Thanks to the healthy turnout for those online and to those who registered, then check the emails for a link shortly. As promised here’s the slide deck guys that I used through my demos  Presentation:
Hi folks, recently I've been asked by several students on how to create Parties, Agreements, Profiles etc. via code in BizTalk 2010. I played with this along time ago while at Redmond as BizTalk 2010 was in the process of being released. So I've just rolled up my sleeves and provided a quick demo for you - the demo shows: - How to enumerate and get at each of your TPM Partners.
- How to create Partners + Profiles within BizTalk 2010.
Note: I've only tried this on BizTalk 2010 (& needless to say I'm claiming 'works on my machine' :)) What we're talking about in BizTalk
This section here.... Show me the code....Well the magic is found in this DLL - C:\Program Files (x86)\Microsoft BizTalk Server 2010\Developer Tools\Microsoft.BizTalk.B2B.PartnerManagement.dll
- create a VS.NET 2010 app (for this demo I created a console app) - we make a reference to the above DLL (we also need to reference system.data.entity) - set a connectionstring to our BizTalk Management DB, mine is BizTalkDB (as I rolled all the BizTalk DBs into one - for dev) - start enumerating. C# Looks like this- static void Main(string[] args)
{
//enumerate all the TPM Profiles in BizTalk
var builder =
new SqlConnectionStringBuilder("DATA SOURCE=localhost;Initial Catalog=BizTalkDB;"
+ "Integrated Security=SSPI;MultipleActiveResultSets=True");
var tmpCtx = TpmContext.Create(builder);
Console.WriteLine("Connected to BizTalk Global Parties");
var partners = tmpCtx.Partners;
Console.WriteLine("Number of Parters:{0}", partners.Count());
Console.WriteLine("------------");
foreach (var ptr in partners)
{
var profiles = ptr.GetBusinessProfiles();
Console.WriteLine("{0} Business Profiles:{1}", ptr.Name, profiles.Count);
foreach (var profile in profiles)
{
Console.WriteLine("\tProfile:{0}", profile.Name);
}
}
tmpCtx.Dispose();
if (bCreateProfile)
{
createProfile("Breeze Partner #");
}
Console.WriteLine("Finished");
Console.ReadLine();
}Point to Note: in the connection string I set 'MARS=true' just so we can enumerate several collections at once through the one context. When updating or saving new, partners and/or profiles I get errors and can't save through a MARs enabled connection. (love to hear if you have different luck) Creating a Partner + Profile
// need to do this through a single threaded connection - no MARS
private static void createProfile(string partnerName)
{
partnerName += DateTime.Now.ToString("yyyyMMdd-hhmmss") + (new Random().Next(0, 65535));
Console.WriteLine("Writing a new Profile for {0}", partnerName);
var builder = new SqlConnectionStringBuilder("DATA SOURCE=localhost;Initial Catalog=BizTalkDB;Integrated Security=SSPI");
var tmpCtx = TpmContext.Create(builder);
var ptr = tmpCtx.CreatePartner(partnerName);
var pname = "Breeze Profile-#" + DateTime.Now.ToString("yyyyMMdd-hhmmss") + (new Random().Next(0, 65535));
var bp = ptr.CreateBusinessProfile(pname);
bp.Description = "Created from Code";
var pcol = new AS2ProtocolSettings("BreezeProtocolSettings");
bp.AddProtocolSettings(pcol);
tmpCtx.SaveChanges();
tmpCtx.Dispose();
}And that's pretty much all there is to it folks, have a play around with the APIs for yourself - all undocumented of course. Here's the Console App Solution I use (built for very demo purposes) TPM API Demo.zip (32 KB)Enjoy Mick!
While currently setting up a BizTalk 2010 developer machine, I’ve got to do a couple of others to do also for the team. I figured ‘we surely can copy/clone this’ – here’s a handy link for SysPrep and we use files from the BizTalk SDK to work the magic. http://msdn.microsoft.com/en-us/library/ee358636.aspx Looking forward to it. Enjoy.
In recent days the Cumulative Update #2 has been released with several improvements and fixes. (The team have done an amazing job addressing previous issues/fixes with currently *no* open issues!!! WELL DONE GUYS) As you may well know by know – BizTalk is made by people who care for Integrators (us) who care. BizTalk has always been a quality product in the past and in my opinion will be in the future. Here’s some details if CU2 that was passed onto me… BizTalk Ta2010 CU2 Details: Public KB Article BizTalk Server 2010 CU2 List BizTalk Adaptor Pack (BAP) 2010 CU2 Details: Public KB Article BAP 2010 CU2 List ------------------------------------------- Hi, It is a pleasure to announce the release of CU2 for BizTalk Server 2010 on behalf of the BPD Sustained Engineering group. With this CU, we have addressed all known customer issues from all branches of BizTalk (i.e. applicable to BizTalk 2010) and also available in multiple locales. This CU includes few serviceability improvements along with product updates based on customer requests. Some of the notable updates in this CU are: - Transparent CU Setup: Provides info on number of fixes applicable to feature during installation
- Enhanced EPM debug Tracing: Helps the support team isolate specific failures in a large volume scenario
- BizTalk Host Instances not coming back-on-line after SQL being off-line: Allows to restart the BizTalk service automatically when SQL connectivity is restored
- BAM Archive checks & Logging before dropping tables from BAMPI: Prevents possible data loss scenarios when archiving fails unexpectedly and also allows for a user configurable setting on the rate of archiving.
- Applications stop responding or crash when System Center Operations Manager monitors BizTalk Server applications: Issue was caused by a race condition in one of our internal class and has been fixed in this release.
Hi all, the BizTalk team has been busy and now the BizTalk 2010 exam has been officially released. http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-595 I’m going to sit it in the next few weeks and get a taste of it. Good luck all and what a great day this is – well done Team! Snippet….. Audience Profile Candidates for this exam typically work as a BizTalk developer in an organization that has a need to integrate multiple disparate systems, applications, and data as well as the need to automate business processes by using BizTalk Server. Candidates should have a solid understanding of fundamental BizTalk concepts around the core messaging engine and building business processes using orchestrations. Candidates will have some exposure to larger-scale multi-server solutions and deployment/management familiarity. This core knowledge is required for BizTalk 2006 R2, 2009, and 2010. In addition, core knowledge of Windows Communication Foundation (WCF) and Electronic Data Interchange (EDI) is also required. Candidates should also have at least two years’ experience developing, deploying, testing, troubleshooting, and debugging BizTalk Server 2006 and later solutions across multiple projects and have experience using the Microsoft .NET Framework, XML, Microsoft Visual Studio, Microsoft SQL Server, Web services, and WCF while developing BizTalk integration solutions Credit Toward Certification When you pass Exam 70-595: TS: Developing Business Process and Integration Solutions by Using Microsoft BizTalk Server 2010, you complete the requirements for the following certification(s): Microsoft Certified Technology Specialist (MCTS): Microsoft BizTalk Server 2010 Note This preparation guide is subject to change at any time without prior notice and at the sole discretion of Microsoft. Microsoft exams might include adaptive testing technology and simulation items. Microsoft does not identify the format in which exams are presented. Please use this preparation guide to prepare for the exam, regardless of its format.
I hope you’ve all been well over the break and enjoying the ‘thinking time’ – I’ve been keeping one ear to the ground and just on the lookout for new bits. Here’s one…. The BizTalk team have been busily working hard over the break and produced another issue of BizTalk at it’s best – BizTalk Hotrod. http://biztalkhotrod.com/Documents/BizTalkHotrod11_Q4_2010.pdf Specifically this issues talks about: - Async communication with BizTalk across WCF-Duplex messaging.
- Calling SAP RFCs from BizTalk – all you need to know.
Guys – the biztalk hotrod mag set is some of the best technical biztalk discussions around, grab the previous issues and add them to your internal networks. A must. Enjoy and talk to you soon. Mick.
Today I decided to crack open the BTS 2010 SharePoint WS Adapter to see if it takes advantage of the great new interfaces exposed by SharePoint 2010, specifically Microsoft.SharePoint.Client.dll and Microsoft.SharePoint.Client.Runtime.dll. At a glance, the benefits of this new Client APIs are: - Runs on a non SharePoint installed box.
- Lightweight and flexible – only get back what you ask for. As opposed to the classic SP Server API that populates the SPWeb collection (for e.g.) only if you just want the title field and not 10MBs worth of other data.
- Batch approach – load up several commands and batch them over the wire when needed.
- Supports both read/write from the client back to SP Server.
- Uses XML and JSON over the wire – small and fast.
- We can’t do *everything* we can on the Server Side – e.g. Service Application management, i.e. kicking off a search index crawl.
A little piccy of what’s going on: Some classic piece of code to achieve document library reading: 1 static void Main(string[] args)
2 {
3 ClientContext ctx = new ClientContext("http://intranet");
4 Web web = ctx.Web;
5 List docs = web.Lists.GetByTitle("Shared Documents");
6 ListItemCollection items = docs.GetItems(CamlQuery.CreateAllItemsQuery());
7 ctx.Load<Web>(web);
8 ctx.Load(docs);
9 ctx.Load(items);
10 ctx.ExecuteQuery();
11 Console.WriteLine("The list has {0} items.", docs.ItemCount);
12 foreach (ListItem item in items)
13 {
14 Console.WriteLine("Item:{0}", item["Title"]);
15 }
16 //delete an item.
17 //items[1].Update();
18 //items[1].DeleteObject();
19 //ctx.Load(items);
20 //ctx.ExecuteQuery();
21 Console.ReadLine();
22 }
Note: Line 10 is where all the magic happens – if you imagine, we load up the client OM classes and the props etc. are all ‘blank’ until we do an ExecuteQuery() which then populates what we ask for.
The above sample is pretty simple showing how to connect to a document library on a ‘remote’ server (security allowing – I didn’t add a ctx.Credentials=… line in the above, but all possible).
So let’s move on a crack open the BTS 2010 SharePoint WS Adapter…
Just before we go there I’d like to point out that the Microsoft.SharePoint.dll (aka Server API) has the ability to connect to remote servers, although the code needs to be executed on a machine that has a local SharePoint install.
e.g.
SPSite site = new SPSite(“http://remoteserver.acme.com”);
SPWeb web = site.OpenWeb();
…
What I am trying to avoid with the BTS SharePoint adapter is the need to have the ‘BTS Web Service’ component installed on remote Farms. Just complicates the issue far too much with the SharePoint admins.
The BTS 2010 Story
I setup and installed the BTS SharePoint WS Adapter through the Configuration.exe tool successfully.
Essentially this tools runs a ‘web site check’ to make sure SharePoint is successfully setup and installed.
To make this happen, the configuration tool runs either:
- Microsoft.BizTalk.KwTpm.StsOmInterop3.exe – for WSSv3
- Microsoft.BizTalk.KwTpm.StsOmInterop4.exe – for WSSv4
to determine the site as follows:
Note: The URL and note the URL in the BTS Configuration above. Here I’ve already configured the adapter and I’m just showing the commands that the configurator runs behind the scenes.
Once configuration is complete you will see a new virtual directory added to your selected site e.g. http://intranet.
As shown in IIS Manager.
Depending on the SharePoint version this virtual directory will map to:
- C:\Program Files (x86)\Microsoft BizTalk Server 2010\Business Activity Services\BTSharePointV4AdapterWS
or
- C:\Program Files (x86)\Microsoft BizTalk Server 2010\Business Activity Services\BTSharePointV3AdapterWS (previous bts2009 adapter)
A Basic BTS/SharePoint picture
Essentially the BTS SharePoint Adapter consists of 2 parts:
- A BTS Adapter that talks to the BTS SharePoint WS. This is a ‘classic’ adapter and does not talk the newer WCF framework (which does have advantages and disadvantages)
- A BTS SharePoint WS – this does all the work against the SharePoint library and talks local SharePoint APIs.
Let’s look closer at the BTSharePointV4AdapterWS folder
- this folder, or addition needs to be available locally to whichever SharePoint site you are calling through the OOTB BTS SharePoint adapter, even though the SharePoint APIs support remote Servers.
- the bin folder has the Microsoft.BizTalk.KwTpm.WssV4Adapter.WebService.dll which is 78kb.
I wanted to find out whether this DLL used the new SharePoint Client APIs when meant having a peek at the ‘references’ of this DLL in IL.
Dissassembling Microsoft.BizTalk.KwTpm.WssV4Adapter.WebService.dll
Using .NET Reflector I was able to get this picture…
NOTE: on this list there is Microsoft.SharePoint, but not Microsoft.SharePoint.Client.dll (this is not looking good…could be late bound, but… I doubt it)
Digging into the actual WssAdapter class we get the following of note:
The GetDocuments(string, string, string, Int32, DocExtOfficeIntegration)… is a key method.
The APIs show that the 1st parameter is a siteUrl (and following the implementation code through) which has the potential to point to another SharePoint server to make the connection (in the RequestInfo class if you’re going to dig yourself :)) Note: the PREVIOUS version, BTS2009 has the same Interface/Method signature and it requires the BTS SharePoint Adapter WS to be deployed on the remote SharePoint Server, even though the signature looks as though it will support the remote server.
So in conclusion the BTS SharePoint Adapter WebService has:
- NOT got any newer SharePoint Client API code within in.
- The ability to contact a remote server through the WebService APIs.
- But depends on whether the BTS Adapter will pass the ‘remote’ URL to the ‘local’ WS, or will the Adapter try to contact the remote SharePoint Server directly looking for a WS there???
I’m thinking it’s the latter…
A little more to unravel the SharePoint mystery…
BizTalk 2010 hit the stands this week and quite prominently up on the BizTalk 2010 site there’s info about vNext. The team has been busy and The BizTalk 2010 Developer Edition is free! - http://www.microsoft.com/biztalk/en/us/developer.aspx Lots of info up on the site – What’s New http://www.microsoft.com/biztalk/en/us/whats-new.aspx - During this What’s new, you’ll see that there is ‘enhanced Trading Partner Management’ which typically gets flagged under EDI based solutions. In a later post I’ll show you how to work with Trading Partners from any solution, and the bit that has me excited is that we now can store an arbitrary set of name/value pairs against each Trading Partner (and their individual agreements).
Initial Training – BizTalk 2010 Training Kit - http://www.microsoft.com/downloads/en/details.aspx?FamilyID=35c8fb51-a1e3-496e-841a-b48701a80c40 The BizTalk Server 2010 training kit includes labs and training videos to help you learn about the new features of BizTalk Server 2010. This training kit contains the following content: Hands On Labs - Creating BizTalk Maps with the new Mapper
- Consuming a WCF Service
- Publishing Schemas and Orchestrations as WCF Services
- Integrating with Microsoft SQL Server
- Integrating using the FTP Adapter
- Developers - Create a Role and Party-based Integration Solution
- Exploring the New Settings Dashboard
- Monitoring BizTalk Operations using System Center Operations Manager 2007 R2
- Administrators - Create a Role and Party-based Integration Solution
Enjoy and stay tuned for the integration unraveling in the near future…
Many times in BizTalk land we work with Schemas that are nested and have several related Schemas that are Imported from URL locations etc. When you include these schemas and deploy to Production, you find out that the BizTalk server doesn’t access the Internet directly. Hence all the schema Imports fail. You’ll then go and try hand edit the Imports, downloading the referenced Schema and try and Mash up something that refers to local files and no URL based Schemas. It may or may not work…till the next update… I recently came across a handy set of free tools that take all the pain out to do with Schemas –> Xml Help Line Which has Xml Schema Lightener, Xml Schema Flattener Another very handy tool not to leave home without. Enjoy.
We're moving into a public beta of Dublin "Windows Server AppFabric" which you can grab from HERE. What does it mean - here's a blurb from the site. So Velocity (distributed caching mechanism) is rolled up into this Beta (previously a MS Partner did some benchmarking on Velocity which you can find a great white paper HERE) Previously myself and Scotty wrote a hefty technical Dublin Course which the folks at TechEd loved - we did this on some early bits of 'Dublin'. Realtime monitoring + tracking as well as recoverability were some highlights of our 3D Realtime maze process we built up in the labs. Here's a blurb from the AppFabric server (it's a shame that SP2010 didn't use this framework for it's WF hosting...but that would have impacted delivery) Enjoy -------- Snippet ---------- Windows Server AppFabric has these core capabilities: - For Web applications, AppFabric provides caching
capabilities to provide high-speed access, scale, and high availability
to application data. This feature was previously codenamed "Velocity"
- For composite applications, AppFabric makes it easier to build and manage services built using Windows Workflow Foundation and Windows Communication Foundation. This feature was previously codenamed "Dublin."
A while back I created a script that restarts your BizTalk Hosts - pretty simple, here http://blogs.breezetraining.com.au/mickb/2006/10/04/SimpleScriptToRestartAllBizTalkServices.aspx
(also this script didn't pick up your service if it was previously stopped - limitation of the 'sc query' command)
Now with PowerShell it's a one line job:
It goes something like this:
get-service BTS* | foreach-object -process {restart-service $_.Name}
You can also set all your BTS Services to start 'automatic' as follows:
get-service BTS* | foreach-object -process {set-service $_.Name -startuptype automatic}(I'm actually trying to set the BTS Services to 'Automatic (Delayed)' but haven't been able to do that yet)
Enjoy,
Mick.
As far as I know there’s some good news and bad news… Good news: the existing BizTalk SharePoint Adapter *should* work with SharePoint 2010 – you will however need to add ‘<rebinding>’ section to the existing adapters web.config *if* the SharePoint 2010 is installed locally to the BizTalk Server. The ‘rebinding’ tells your local .NET app that even though you want V12.0.0.0 of the SharePoint APIs, V14.0.0.0 assemblies will give it to you. Bad News: there’s no new BTS Adapter on the Horizon for this – AFAIK.
------ With SharePoint 2010 we now have the capability to involve many tighter technologies such as: 1) event notification, rather than polling for the adapter. 2) LINQ and ADO.NET Entities to query the Data. 3) SharePoint Client WCF Service – Client.svc . This is a lightweight and fast interface, where we can batch up requests, send them over the wire and get back just what we ask for. 4) Lists.ASMX web service (+ the others) for backward compatibility. When I get some time…:D, I’m keen to develop a .NET LOB WCF Adapter.
Hi folks, came across a great article that talks about WebServices(WCF Services) and Security. The most common starting point in improving security, is to use TLS (Transport Layer Security of which SSL is a subset). I once spent 9 months working out digital signatures and passing several documents through out of band of envelopes…long story. There’s a whole bunch of How-To’s also – very good! With over 26000 downloads since August 1, I think this is a much needed area. Well done guys – big congrats for your efforts. Enjoy - http://wcfsecurityguide.codeplex.com/ ---- snip ---- patterns & practices Improving Web Services Security - Now Released
Welcome to the patterns & practices Improving Web Services Security: Scenarios and Implementation Guidance for WCF project site! This guide shows you how to make the most of WCF (Windows Communication Foundation). With end-to-end application scenarios, it shows you how to design and implement authentication and authorization in WCF. Learn how to improve the security of your WCF services through prescriptive guidance including guidelines, Q&A, practices at a glance, and step-by-step how tos. It's a collaborative effort between patterns & practices, WCF team members, and industry experts. This guide is related to our WCF Security Guidance Project. PartsPart I, "Security Fundamentals for Web Services" Part II, "Fundamentals of WCF Security" Part III, "Intranet Application Scenarios" Part IV, "Internet Application Scenarios" Forewords Chapters Part I, Security Fundamentals for Web Services Part II, Fundamentals of WCF Security Part III - Intranet Application Scenarios Part IV - Internet Application Scenarios Checklist
Down at BizTalk 24*7 Saravana Kumar has been working hard to organise a whole collection of BizTalk articles from us in Cyberspace
He's done a great job!
Check it out - http://blogdoc.biztalk247.com/ and yours truly is here - Mick Badran
Hopefully you've been keeping an eye on this in recent times.
This is a Set of Adapters that MS have built on top of the WCF LOB Adapter SDK (a platform neutral .NET based Adapter framework). This allows the Adapters to run within the .NET stack almost anywhere - Console apps, Custom WebServices, BizTalk, SSIS, SharePoint etc. (Build once - run everywhere The public beta is available as a 120-day d/l from MS Connect. What to expect with the Adapter Pack (in addition to a free migration tool to go from the old adapters to the new - e.g. SQL) Oracle EBS · 64 bit support · Synonyms · Added performance counters · Notification support OracleDB
· 64 bit support · Synonyms · UDTs · Notifications · Polling stored procedures · Performance counters SQL Adapter · 64 bit support and improved SQL Adapter SDK · Display complex binding properties · Display metadata wsdl in web control SAP data provider
· Support for more operators in Sap Queries · SAP SSRS support in VS2008 Samples
· New Samples for SQL and Oracle eBiz Adapters · Repackaged samples for BAP 1.0
BizTalk Adapter V2.0/WCF LOB Adapter SDK Poster is available Another of those things to stick up around the office... :)
Download From HERE
Certification for BizTalk Server 2006 R2 is available, at http://www.microsoft.com/learning/en/us/Exams/70-241.aspx. Apparently it came out last October.....anyone done it? let's go there! I'll post back shortly and let you know how I went.... :) Exam details... Overview
This exam is intended for candidates developing business solutions using Microsoft BizTalk Server 2006 R2. Audience Profile A candidate for this exam will have experience developing, deploying, and testing Microsoft BizTalk Server 2006 solutions across multiple real-world projects. The candidate should have a solid understanding of fundamental BizTalk concepts and familiarity with extended R2 capabilities. The candidate should also have experience using the Microsoft .NET Framework, XML, Microsoft Visual Studio, Microsoft SQL Server, Web Services, and Windows Communication Foundation (WCF) while developing BizTalk integration solutions. When you pass Exam 70-241: TS: Developing Business Process and Integration Solutions by Using Microsoft BizTalk Server 2006 R2, you complete the requirements for the following certification(s):MCTS: BizTalk Server 2006 R2 Exam 70-241: TS: Developing Business Process and Integration Solutions by Using Microsoft BizTalk Server 2006 R2: counts as credit toward the following certification(s): Note This preparation guide is subject to change at any time without prior notice and at the sole discretion of Microsoft. Microsoft exams might include adaptive testing technology and simulation items. Microsoft does not identify the format in which exams are presented. Please use this preparation guide to prepare for the exam, regardless of its format. Skills Being MeasuredThis exam measures your ability to accomplish the technical tasks listed below.The percentages indicate the relative weight of each major topic area on the exam. Configuring a Messaging Architecture -
Set up and manage ports. This objective may include but is not limited to: add a map, ordered delivery, send ports, send port groups, starting vs. enlisting, receive ports, receive locations, subscriptions -
Plan for and implement secure messaging. This objective may include but is not limited to: certificates, signing, encryption, port authentication, encoding -
Configure core adapters. This objective may include but is not limited to: HTTP, SQL, POP3, SMTP, FTP, File -
Configure content-based routing. This objective may include but is not limited to: set a filter that uses a promoted property -
Implement messaging patterns. This objective may include but is not limited to: normalizing/canonical messages, splitter, large messages Developing BizTalk Artifacts -
Create schemas. This objective may include but is not limited to: create a flat-file schema, create a property schema, enveloping, promoted/distinguished properties, MessageType, schema re-use (import/include) -
Create maps. This objective may include but is not limited to: functoid scripting, XSLT, pass a parameter to a map, multiple schemas, looping -
Create pipelines. This objective may include but is not limited to: disassembling, create a custom pipeline, create a pipeline component, XML validation -
Develop orchestrations. This objective may include but is not limited to: work with transactions and persistence, integrate with Microsoft .NET assemblies, parameters, shapes -
Configure orchestration bindings. This objective may include but is not limited to: direct, dynamic, self correlating -
Configure correlation. This objective may include but is not limited to: listener shape, parallel shape, correlation sets -
Construct messages. This objective may include but is not limited to: multi-part, untyped, construct messages in .NET, construct messages in orchestrations, context properties -
Implement orchestration patterns. This objective may include but is not limited to: convoys, aggregator, splitter Debugging and Exception Handling -
Handle exceptions in orchestrations. This objective may include but is not limited to: compensation, scope shapes, throw exceptions, long-running transactions -
Route errors. This objective may include but is not limited to: port configuration, recoverable interchange - Debug orchestrations
-
Validate and test artifacts. This objective may include but is not limited to: schemas, maps, pipelines Integrating Web Services and Windows Communication Foundation (WCF) Services -
Configure a WCF adapter. This objective may include but is not limited to: WS*, custom bindings - Expose orchestrations by using publishing wizards.
-
Consume services. This objective may include but is not limited to: Web port type, add a Web/Service reference, consuming from orchestrations or pure messaging -
Handle Web exceptions. This objective may include but is not limited to: delivery notifications, catching SOAP exceptions Implementing Extended Capabilities -
Create and deploy Business Rules Engine (BRE) components. This objective may include but is not limited to: work with the Business Rules Composer, deploy Business Rules policies, call from an orchestration, develop vocabularies -
Develop EDI solutions. This objective may include but is not limited to: trading partner setup, batching, acknowledgments, importing schemas -
Configure AS2. This objective may include but is not limited to: party configurations, pipelines, ports, certificates -
Implement an RFID solution. This objective may include but is not limited to: handle events, configure RFID devices, manage and configure event sink endpoints -
Plan and implement Business Activity Monitoring (BAM). This objective may include but is not limited to: BAM alerts, tracking profile editor, BAM workbook, activities, views, deployment Deploying, Tracking, and Supporting a BizTalk Solution -
Install and configure a multi-server BizTalk environment. This objective may include but is not limited to: trusted vs. untrusted environments, Active Directory groups -
Deploy BizTalk applications. This objective may include but is not limited to: MSI deployment, versioning, resources, multiple staging environments such as development, test, and production -
Partition a BizTalk solution. This objective may include but is not limited to: hosts, host instances, handlers, groups, multiple message boxes - Export and import binding files
-
Configure tracking. This objective may include but is not limited to: orchestrations, schemas, ports, pipelines, policies -
Manage BizTalk solutions by using the Administration Console. This objective may include but is not limited to: query for instances, terminate, resume -
Audit BizTalk solutions by using Health and Activity Tracking (HAT). This objective may include but is not limited to: querying, saving messages, creating custom fields, policy execution
As my good friend pointed out - Rahul Garg, the BizTalk 2009 documentation is available for public download.
Things such as:
- runtime engine
- mapping
- Orchestrations
- Adapter V1.0 Frameworks
- BizTalk Applications
- BizTalk Deployment of Applications
Have all generally (obvious fixes and improvements as needed) stayed the same.
Whereas, a quick summary of things I'd be looking for in the documentation:
- Incorporating BizTalk Project builds into automated tested suites (TFS etc) - Biztalk 2009 projects can now be built through MSBUILD as a regular project in the solution.
- Individual components such as Schemas and Maps can be formally unit tested (previously we wrote our own helper classes to make this stuff happen) - although, at the moment when testing a schema, I haven't been getting back details of the error...just a pass/fail.
- BizTalk Adapter Pack 2.0 (Sql, Oracle x 2, SAP, Siebel...) - based on WCF channel stack...very nice! (can be standalone if needed)
- WS Federated bindings
- and the list goes on.....
Download a Searchable BizTalk Help File - very handy to have when planning your upgrades or migrations.
How to look cool at work.... Stick this poster by your desk, people will walk past and say "Hmmmm......" - guaranteed to reduce the amount of questions you get each day  (Then you could start talking about the 'flux capacitor' and people will believe......) The MS folks in Connected Systems Division (CSD) have done a superb job!!! Great comprehensive poster. One thing to say about the poster - remember that the 'Tracking Host Instance' and the 'InProc Host Instance' are generally within the same Host Instance (it's good practice to separate these out) Enjoy
I recently came across a Gartner report talking about all things to do with 'App Integration with Back End Systems' (in a nutshell... the report goes into detail) The end result of several pages within this report is a graph (we like graphs :) showing Microsoft as a leader with a high ability to execute. The Microsoft Technologies that fell under the microscope here are: - BizTalk Server
- Windows Communication Foundation
- SQL Service Broker
- SQL Integration Services
- Team Foundation Suite
- Oslo + Azure
The graph looks as follows (snipped from the report): Get the whole report HERE
 On the 8th of December 2008 - Microsoft announced general availability of BizTalk 2009 Beta. Here's the details Public beta of BizTalk Server 2009. Available at https://connect.microsoft.com/site/sitehome.aspx?SiteID=218
1. This beta is community supported. The TechNet forums will be the primary place for support - http://forums.microsoft.com/TechNet/ShowForum.aspx?ForumID=1470&SiteID=17
2. General availability of BizTalk Server 2009 is still scheduled for the first-half of 2009 - we don't have a further update at this time. For more information go to: Key Areas
BizTalk Server 2009 Beta: -
BizTalk Server 2009 is Microsoft's core enterprise connectivity solution, which releases on schedule of every two years, and continues to extend capabilities to core process management technologies both in and outside of the corporate boundaries. -
Microsoft continues to listen to its BizTalk Server 2009 customers and will optimize feedback from the beta release for future BizTalk Server releases -
RFID Mobile: FAQ
Q: What did Microsoft announce today?
A: Today at the Gartner Application Architecture, Development and Integration (AADI) Summit, Microsoft Corp. announced the general availability of BizTalk RFID Mobile and BizTalk RFID Standards Pack, as well as the first public beta of BizTalk Server 2009 for download and an updated version of its architecture patterns and practices guidance, Enterprise Service Bus (ESB) Guidance 2.0. Microsoft has made these investments in the BizTalk Server product family to enable customers to more efficiently connect applications and to provide customers with a clearer, actionable view into their day-to-day operations.
Q. When will the products be available?
A: The BizTalk Server 2009 public beta and ESB Guidance 2.0 CTP are available now at http://www.codeplex.com/esb for community feedback. The final products are slated to ship in the first half of CY09. Evaluation versions of BizTalk RFID Mobile and the BizTalk RFID Standards Pack are available at http://www.microsoft.com/biztalk/en/us/rfid-mobile.aspx and http://www.microsoft.com/biztalk/en/us/rfid.aspx respectively.
Q: What new functionally will be delivered in BizTalk Server 2009?
A: BizTalk Server 2009 supports the latest Microsoft platform technologies, including Windows Server 2008, Visual Studio 2008 SP1, SQL Server 2008 and the .NET Framework 3.5 SP1. These platform updates enable greater scalability and reliability, and many advances in the latest developer tools.
This BizTalk Server release will also deliver additional customer-requested capabilities around enterprise connectivity, including: -
New web service registry capabilities with support for UDDI (Universal Description Discovery and Integration) version 3.0 -
Enhanced service enablement of applications (through new and enhanced adapters for LOB applications, databases, and legacy/host systems) -
Enhanced service enablement of "edge" devices through BizTalk RFID Mobile -
Enhanced interoperability and connectivity support for industry protocols (like SWIFT, EDI, HL7 etc) -
SOA patterns and best practices guidance to assist our customer's implementations
You can find more details about BizTalk Server 2009 at http://www.microsoft.com/biztalk/en/us/roadmap.aspx
Q: What is next for BizTalk Server after BizTalk Server 2009?
A: The charter of BizTalk Server remains consistent - it allows the Microsoft application platform to connect and interoperate with other kinds of systems - LOB systems, legacy systems, smart devices (RFID), and B2B integration (SWIFT, EDI, etc.). This has been the focus of BizTalk Server since it was initially released back in 2000 and continues to be its charter going forward.
At this point it's too early to comment on the specific features that will be part of the BizTalk Server "7" release; however, you can find details about general priorities for BizTalk Server at http://www.microsoft.com/biztalk/en/us/roadmap.aspx. We're in the middle of early planning on BizTalk Server "7" and will have more information to share about the specific scope of that release.
Q: What is BizTalk RFID Mobile?
A: BizTalk RFID Mobile is an RFID platform for Windows Mobile and CE. BizTalk RFID Mobile consists of a runtime engine, tools, and components to develop, deploy, and manage RFID solutions on mobile devices. In combination with BizTalk Server RFID, the mobility release provides a platform for real-time decision making. BizTalk RFID Mobile extends management and event processing to mobile devices and allows communication between the server and mobile platforms.
Q. What is the price and licensing for BizTalk RFID Mobile?
A: BizTalk RFID Mobile is available to all BizTalk Server 2006 R2 customers with Software Assurance as well as new BizTalk Server 2006 R2 customers who purchase licenses with Software Assurance. Our customers and partners told us that mobile RFID offerings are used in conjunction with a server product. As a result, we included BizTalk RFID Mobile with each edition of BizTalk so that our customers can achieve the benefits of RFID mobile solutions without incurring undue costs. For BizTalk Server customers with Software Assurance this is a great opportunity to adopt a new product that can deliver an economic value today. When BizTalk Server 2009 becomes generally available, the customers will be able to acquire BizTalk RFID Mobile without software assurance.
Q: Is BizTalk RFID Mobile dependant on BizTalk Server? Can't I just use a free solution that's available rather than use BizTalk Server?
A: BizTalk RFID Mobile and BizTalk Server are better together. Using BizTalk RFID Mobile and BizTalk Server in tandem you can capture data on a mobile device and then send the RFID data back to BizTalk Server for filtering and the application of business rules. There is no need to rewrite complex event filtering and business rule logic on the device as that functionality is already provided by BizTalk Server. We have taken a platform approach that will ensure that you can write your mobile applications once and run them on multiple devices in addition to local device management, store and forward, and SQL Sink capabilities, which reduce your TCO.
BizTalk RFID Mobile and BizTalk RFID Standards Pack are a standard part of all editions of BizTalk Server 2009. Given the intense interest in these offerings from our existing and new customers we decided to make them available now to BizTalk Server 2006 R2 customers with software assurance as well as new BizTalk Server 2006 R2 customers who purchase licenses with Software Assurance.
Rather than charge a per device fee, we included BizTalk RFID Mobile with all editions of BizTalk because we wanted to make it easier for customers to adopt mobile RFID solutions. RFID is a fundamental enabler for business processes and should not be viewed as an isolated silo, which is why we have included our fixed and mobile RFID offerings standard in all editions of BizTalk.
Q: What is ESB Guidance?
A: The Microsoft ESB Guidance (first released in November 2007) provides architectural guidance, patterns, practices, and a set of BizTalk Server R2 and .NET components to simplify the development of an Enterprise Service Bus (ESB) on the Microsoft platform and to allow Microsoft customers to extend their own messaging and integration solutions. For additional information on the current 1.0 version please see http://msdn.microsoft.com/en-us/library/cc487894.aspx.
We are announcing today the first public CTP release of the Microsoft ESB Guidance 2.0 for Microsoft BizTalk Server 2009. It incorporates many new and expanded features include the following:
-
New samples: -
SSO Configuration provider for Enterprise Library 4.0 -
Multiple Web Service Execution Sample -
Exception Handling Service Sample
-
New ESB Web services:
BizTalk ‘Cloud’ Services – BizTalk in the Cloud With recent developments and BizTalk 2009 on the horizon, I thought we’d look at just what all these ‘cloud services’ mean and understand the term ‘cloud computing’ What’s cooking this month for the group? This month we have Scott Scovell (BizTalk Virtual TS) presenting on a very exciting new shift in computing – Microsoft Azure Cloud Services. You might be thinking – “What does this do for me?” Well....(far too much for me dictate here)...but imagine if you can: - Connect seamlessly between clients and yourself (including firewalls etc) - Switch and deploy in house processes dynamically to ‘the cloud’ - Point to Point and Multicast messaging in the cloud between clients + server processes (i.e. similar to BTS filter messaging) - Push Workflows up in to the cloud....moving off premises and take advantage of the Cloud’s computing power. Alot of all this is based on the WCF Framework – you can start taking advantage of this today! For e.g. in BTS (R2 or 2009), you can create a ‘httpContextRelayBinding’ bound Receive Location, and you’ve now got an endpoint that can be called from anywhere (security permitting), from client’s networks and your own. There’s a huge amounts of smarts around all of this, but I look at them in the light that alot of ISPs offer Virtual Hosting – “Here’s a box and do what you will with it”. You’re then responsible for O/S, Web Setup, maybe DNS, etc etc etc. In the Cloud – MS give a very granular degree of control by electing WCF Services, Workflows, Endpoints, Security, ServiceBus etc etc – that we can dedicate 1 or 100 CPUs to (at ‘the flick of a switch’). Redundancy, fault tolerance and even Geographic redundancy (e.g. engage some nodes in Greenland to run your apps – maybe closer to your clients) Main Event on the night: Utilising Microsoft Azure from BizTalk 2006 R2 (+ beyond) Scott will cover: 1. Building blocks of Azure Cloud Computing. 2. Getting Started with Azure 3. BizTalk talking to the Cloud 4. Lots of demos! Meeting details: When: Nov 26, Food at 6pm, kick off 6.30pm. Finish up around 8.30pm. Where: Microsoft 1 Epping Road Riverside Corporate Park North Ryde NSW 2113 Australia. (parking available) Speaker: Scott Scovell
What’s happening in the BizTalk Community: The combined user group leaders & I are setting up a Shared Folder in the ‘Mesh’, where we’ll be holding all the presentations across the User Groups (& other files). I’ll let you know when our testing is done. (BTW – this lets you have a local folder on your machine that automatically gets synced up to the ‘Mesh’. Easy peasy...I’m hoping) Share the User Group Soap Box: I always welcome a new voice and ideas at our group – if you want to share your experiences, thoughts, “I wish I can do..... for my solution...”. Then contact me and I’ll be more than happy to slot you in. Q. Do you need to have presentation skills: No (just look at me) – can you tell a story in the office or at the pub? Or at a 3 yr old b.day party? – then I want you. Q. Do I need a PowerPoint Slide Deck? – no!!! *death by powerpoint* is a painful way to go...... Q. Can you capture my ‘best’ side? We take you whichever way you are. J We’re up for a great night – come along and learn how to make your BizTalk solutions go a long way. See you there and let me know your coming Mick (mb: 0404 842 833) http://sydbiz.org
Hi guys - there's a bunch of stuff going on right now at PDC 08 in LA. What's hot: (If you're on a PDA/Mobile - grab a the PDC from here - http://www.microsoftpdc.com/mobile/) - Here's a select set of recorded sessions up on Channel 9- http://channel9.msdn.com/tags/PDC08/
- OSLO
Oslo” is the code name for our platform for model-driven applications. The goal of “Oslo” is to provide a 10x productivity gain by making model-driven applications mainstream with domain-specific models, languages and tools.
- WCF 'REST' Services
So if you can't sleep then there's going to be some interesting reading coming up for us all.  Enjoy.
Folks - I recently came across a great article on Perf in BizTalk. I had previous noted a BTS2004 one but always handy to have the updated version. I thought I'd jot this down before I lost the reference - http://msdn.microsoft.com/en-us/library/cc558617.aspx Enjoy, Mick.
 The system we built has made it through its maiden event and was still capturing reads well into the later afternoon (until we got round to tearing it down....technically called 'Bump Out'....with all the moving bodies and parts, it's no wonder they call it Bump Out!)
I grabbed a couple of SilverLight screen shots to show what the system is capable of - in the hectic pace of last week I didn't manage to grab some screen captures of the system in action, these screen shots come from the courtesy of Eileen Brown's Blog (she is responsible for running MS Events in the UK + a founder/advocate for Women in IT)
Walk-In Displays - these walk in displays were up on the big screens as delegates entered/exited their sessions. Pretty cool!!!. These screens are delivered via a browser and are what we call the 'Walk-in' Display. Here you can see 3 people leaving the room with the graph in the background showing some delegate profiling data around attendance of previous TechEds. Here we've got an enter and a leaving of the session. Something we didn't get time to do at this show was to play on the scope for customisations with these avatars. We had over 120 textures + bitmap type surfaces set for this, but during the show this 'feature' got bumped further down the list. (Hats, scarves, hair type, colours etc. you know the stuff) We had fun with a couple of names though - '@Coatsy' was one, 'The Stig' was another. The beauty about these screens was that people outside the conference got real time stats about the rooms and could see the 'Walk-in' displays in near real time. (Late night trouble shooting with my friends in MS Corp - this proved a great tool) In testing performance of our SL Services over the internet - I had a link to the UK where we had a technician monitoring the various walk-in displays and giving feedback. All worked pretty well. (At this point we don't have an upper limit on the number of individual 'Walk-in' display sessions that run concurrently - each open browser receiving events in near realtime is an additional WCF Service instance + a SQL connection. Not sure how much benefit SQL Connection pooling will give as these connections are active pretty much all the time)
This screen is from the 'Speaker Charts' which are designed to give the speaker various breakdowns of up to the minute information of their audiences. Overall the Breeze Boiler room (HQ) got great attendance from the delegates wanting to know the "whats/whos/whys" on the Breeze Event Tracker System. We're currently still analysing the results but some interesting numbers are: (1) In a 16 hr period for one room, we got 345000 reads.......(this maybe picking up the persons in the back row while sessions are on - our business logic takes care of these) (2) We experienced a very particular 'known' problem (don't you love it when you experience an issue for the first time and describe it, only to be told it's 'known' - well telling us that ahead of time would have been great :). The problem arises from Tags being physically close together, and two tags respond 'around' the same time. In very special circumstances this confuses the Reader and instead of getting 12byte TagIDs we got 16, 18 or sometimes 20 byte IDs where the 2 tagIDs were 'spliced'. It occurred in very special cases - but we got it. That particular read should be discarded as it fails the CRC check. In peak time, out of 8000 reads we got around 2 of these cases. Couple of phone calls to India and our Intel R1000 Provider was 'patched' and as a PlanB we had the current provider being wrapped by another .NET class to catch that particular exception. (3) SCOM2007 couldn't have worked better!!!! I dropped on the BizTalk RFID Mgmnt pack and it was a breath of fresh air. All the Readers, Devices, Processes, Providers and RFID Servers out on the network appeared as healthy items in lists (mostly). From the mgmnt pack I was able to see the number of Tags Read, settings, when the last heartbeat was heard etc etc. from all the devices over the conference - certainly Mission Control. (4) We had various 'Show' type issues such as power cords being unplugged; cables being cut; cabinets that housed the equipment in each room collapsing....so all in all it was filled with fun and excitement. We did have a couple of Network issues where at the conference there were several networks implemented for different regions/events at the conference. e.g Public Delegate WiFi; Networks within each of the Break out rooms - we were on our own VLAN and these network layers above us, proved a little troublesome from time to time. Various Licensing arrangements of this system are available - from the software components through to the hardware. Feel free to ping me for more details. Here's a video of a screen capture that I *did* manage to do.
The main details folks are as follows: (from an earlier email from Corp) Details: 1. BizTalk Server vNext: - Naming Change: We have also updated the name of the next release from BizTalk Server 2006 R3 to “BizTalk Server 2009”. By calling the product BizTalk Server 2009, we can clearly communicate this is a full product release with new and enhanced capabilities and updated platform support for customers to take full advantage of the latest technology wave (Windows Server 2008, Visual Studio 2008, SQL Server 2008, .NET Framework 3.5).
- BizTalk Server 2009 Timing: We will deliver a public CTP by the end of this calendar year. Additionally, BizTalk Server 2009 is on track for availability in the first half of calendar year 2009.
- Features: We bucket the 2009 release into 5 core feature areas, which are detailed further on the BizTalk roadmap page. These include platform support, SOA & web services, business to business integration, device connectivity and developer and team productivity(i.e. VSTS support
 2. Future Plans: - Ship Rhythm: Microsoft’s commitment to maintain a rhythm of releases roughly every 2 years.
- High-Level Themes: We outlined priorities for the next couple of releases. Including:
- Developer productivity enhancements (e.g. complex mapping);
- Enhanced B2B support (e.g. complex trading partner management, expanded industry standards and schemas);
- Low-latency messaging enhancements and ESB Guidance;
- Enhanced device support for cross-enterprise asset tracking, enterprise manageability of devices, and key industry standards;
- Real-time business event visibility through BI / BAM Enhancements; and
- Integration with the latest new platform capabilities (to take advantage of the latest advances in the .NET Framework, Visual Studio, and Windows Server).
More Info: For more information on the BizTalk Server roadmap announcement please visit the BizTalk roadmap page. Additional Resources For more information go to: · PressPass Q & A with Oliver Sharp, GM of BizTalk Server: http://www.microsoft.com/presspass · BizTalk Website: http://www.microsoft.com/biztalk/ · BizTalk Server Team Blog: http://blogs.msdn.com/biztalk_server_team_blog/ · Steven Martin, director in the Connected Systems Division Blog: http://blogs.msdn.com/stevemar/default.aspx
Folks - fellow MVP Richard Seroter has written a VERY comprehensive series around this very topic including the new BizTalk Adapter Pack V1.0 (V2.0 is in Beta at the moment). Over 20+ thousand words + 178 screen shots - all for the love of BizTalk/WCF. Complete with Source Code!!! What a champion series - I'm looking forward to in tucking into some of his great material! The BizTalk community is in debt to you Richard - well done!!! SERIES SUMMARY FOUND HERE
This one came from Paolo Salvatori (a senior PM within the MS Connected Systems Division Team... I know a bit of a mouthful) whom has gotten in touch with his creative side and drawn a picture for all us common folk :) - well done Paolo. The scenario is - a Request/Response Port is published at the 'front end', goes through BizTalk and the work is done by a backend system that operates via a One-Way Send and BTS gets the response via another One-Way Receive. The thing I like about Paolo's piece of work is that he shows all the Message Context Properties required to be set by BizTalk for message correlation. Which makes this a Messaging Only Solution and NO Orchestrations required!!!! (how cool) Click on the image to enlarge......one day I'll get Silverlight Zoom Composer control running for these.... :)
A couple of Key registry settings for the HL7 adapter that I thought I'd jot down onto my online diary. Some tweaks to apply under heavy load to the HL7 adapter - Create the registry key MLLPSendFlushTimeout
- Create new registry key under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\BizTalk Accelerator for HL7/Version 2.0 with following details:
- Name : MLLPSendFlushTimeout
- Value : 0
- Set MaxReceiveInterval to 50 ms
- Open Microsoft SQL Server Management Studio.
- Expand Databases node and select BizTalkMgmtDb database.
- Expand Tables node and open table adm_ServiceClass.
- Set the value of MaxReceiveInterval to 50ms corresponding to the Name=Messaging InProcess.
Initially it is 500ms.
Guys - this document has recently hit the shelves and what a great guide it is. Written and reviewed by a huge team within MMS mostly - the two main authors Ewan Fairweather and Rob Steel (both MS and very much project/client oriented guys - out in the field!) did a superb job. Firstly - grab the Performance Optimisation Guide (checkout Ewan and Rob's blogs as there's some great bits on there, as well as a section dedicated to the BizTalk Performance Explorer) What's the meaty stuff I can expect to read? (I hear you ask...) 1. It serves as 2 things - a prescriptive guidance and two - best practices around optimisation (It's also great to see BizUnit in there for testing and as part of LoadGen) I've summarised below: The key sections of the guide are: · Getting Started: Provides an overview of the BizTalk Server functional components that can affect performance. It also describes the phases of a BizTalk Server performance assessment. · Finding and Eliminating Bottlenecks: The Finding and Eliminating Bottlenecks section describes various types of performance bottlenecks as they relate to BizTalk Server solutions and information about how to resolve the bottlenecks. · Automating Testing: Describes how to implement an automated build process and how to automate functional and load testing using Visual Studio Team System, BizUnit and Loadgen. · Optimizing Performance: The Optimizing Performance section provides guidance for optimizing performance of specific components in a BizTalk Server environment Other 'related stuff' to download while you're in the mood - Microsoft BizTalk Server Operations Guide
- BizTalk Server 2006 R2 Installation and Upgrade Guides
- BizTalk Server 2006 Tutorials
- BizTalk Server 2006 R2 Runtime Architecture Poster
- BizTalk Server 2006 R2 Capabilities Poster
I was recently working on a AS2/EDI project using BizTalk 2006 R2 and came across an interesting question: How do I create 500+ parties? and with the AS2 Properties included (or even HL7 for that matter) After a little digging - there is the BizTalk.ExplorerOM that we could drill into and create the parties through code. However, there's a more hands off approach....using Bindings!!!! (1) Export Bindings from an existing setup including Parties!!! to an xml file. (2) Modify the XML file - particularly the Party information. (3) Import Bindings back into your new environment. There's a great blog post by the BizTalk Team on this subject a while back - http://blogs.msdn.com/biztalkb2b/archive/2006/10/25/automated-deployment-of-edi-properties-also-useful-for-bulk-import-of-party-properties.aspx
You might be wondering what do all these guys have in common....good question....  We're currently building an RFID enabled System where complex processes are handled by BizTalk Server, and data being pushed down to Silverlight V2.0 clients via a WCF Silverlight 'Eventing System' (which really is polling under the hood, but to us in developer land - it's cool and it's Events) Scotty has the full write up of some of his learning experiences through this - well done Scotty, he's been in that place where there are no manuals, no documentation, no previous code, just a gut feel and a compass to sail the seas. We demo-ed the system at our last user group (or more over used them a guinea pigs :) Token Screen shot: (we've associated tags with people information and this is what is displayed when TagReadEvents are captured. We need a little work to avoid being underneath or on top of a previous animation)
FULL DETAILS HERE Artists impression!
When you've got a moment - check out his take on the BizTalk world and there's some great in the field stuff here!! http://zeetalks.wordpress.com/ Keep up the great work Zee!
Hey folks - while flying through different timezones and working away on my VPCs I came across the problem below. Basically no further work could be done on the Application within the BizTalk Admin Console. Couldn't stop/start, undeploy...delete etc.
The only thing I had done was to adjust my time to reflect local time....which as I found out causes the problem.
I adjusted my clock back to Sydney time and we're good to go!!!
Trap for young players......
SSO AUDIT Function: SetConfigInfo Tracking ID: df1dd0b0-c9d5-4012-bb97-336aa8df78b3 Client Computer: BTS06-Platform.contoso.com (mmc.exe:1884) Client User: BTS06-PLATFORM\Administrator Application Name: {D2241406-0767-4C13-98EB-43EECE80F8A0} Error Code: 0xC0002A40, The external credentials in the SSO database are more recent.
UPDATE: Running this script against your SSODB cures this problem. update SSODB..SSOX_ExternalCredentials set ec_timestamp = dateadd(m,-1,ec_timestamp) where datediff(hh,ec_timestamp,getdate())<>0
We've now got official Management Pack support for R2 and the newer things in R2 such as EDI and RFID.
I've had many students come up to me and say "Mick - what in the world are you talking about?" (mind you I get that at home as well - but let's not go there)
Have you ever asked the question: I wonder how our BizTalk (et. al.) servers are going? (this is where you could send the work experience kid around to all the servers gathering details and report back to you by lunch.....but not all of us have work experience kids)
The answer to this is relatively complex - as you'll need know things like: - Services - stopped, started, uptime. BizTalk Services, SQL Services, WCF/IIS Services etc.
- Database sizes, Spool table lengths
- Queue Lengths - disk etc.
- Memory details
- BizTalk Orchestration details
- Messaging Details
- .... and the list goes on.
SCOM2007 with the management pack gives you that - in near enough realtime with all sorts of graphs and charts. One of the *best* things I like about SCOM2007 is that you install the Management Pack(s) only on *one* machine - usually the SCOM2007 Central Administration machine, and as more applications are installed on servers on the network, the appropriate management bits are 'auto-deployed'. Grab it here - http://www.microsoft.com/downloads/details.aspx?FamilyId=389FCB89-F4CF-46D7-BC6E-57830D234F91&displaylang=en&displaylang=en
BizTalk RFID 'v2' is in early TAP (Technology Adopter Program/phase) and runs on Windows Mobile Devices...pretty cool! Now Microsoft have moved RFID not only into the common household framework, but also provided the reach with Mobile devices. Rather than in the classic RFID model where tags move and Readers are *fixed*. We now can have Readers that move and tags that are *fixed*. (lots of ideas for this one!) Check out a stream of RFID 'stuff' from YOUTUBE
RFID goes Mobile... What is RFID.... Future Supermarket!
Christmas has gone, Easter too.....but here's something to smile about. There's some HUGE things cooking on the horizon in the land of BizTalk. We want SQL2008....we want VS2008 and we want the world of connectivity to/from BizTalk to be *easy*. Also as BizTalk RFID goes mobile....we want to go there too! Control, manage, deploy/stop/start processes etc etc. Here's a start.... Steve Martin (heads up the Connect Systems Division - CSD at Microsoft in Product Management) spilt the beans and let me tell you....when are the betas coming out!!!!!!! http://blogs.msdn.com/stevemar/archive/2008/04/23/biztalk-server-platform-updates.aspx Enjoy
Happy Easter all - just come back from a great Easter getaway weekend and thought I'd share this common question with you: "How do I turn off Global Tracking in BizTalk?" On an internal email a solution was mentioned: Basically - it comes in two steps, (a) following a TechEd article, (b) performing additional steps in WMI.
Here's the steps: 1. TechNet Article 2. WMI Steps -
The GlobalTrackingOption property is a property of the MSBTS_GroupSetting WMI class. The MSBTS_GroupSetting WMI class represents a logical grouping of computers that are running Microsoft BizTalk Server. This property can be modified with the Windows Management Instrumentation Tester tool. To do this, follow these steps: ------------------------------------------ 1. Click Start, click Run, type wbemtest, and then click OK. 2. In the Windows Management Instrumentation Tester, click Connect. 3. In the Namespace box, type root\MicrosoftBizTalkServer, and then click Connect. 4. Click Open Class, type MSBTS_GroupSetting in the Enter Target Class Name box, and then click OK. 5. In the Properties list, click GlobalTrackingOption, and then click Edit Property. 6. To disable the Global Tracking option for the BizTalk Group, change the Value that is listed from 1 (0x1) to 0 (0x0), and then click Save Property. 7. To enable the Global Tracking option for the BizTalk Group, change the Value that is listed from 0 (0x0) to 1 (0x1), and then click Save Property. 8. Also click on Save object 9. To close the Windows Management Instrumentation Tester tool, click Close in the Object Editor for MSBTS_GroupSetting dialog box, and then click Exit in the Windows Management Instrumentation Tester dialog box. 10 Restart the host.
Fellow MVP Thomas has provided a sample that delves into the dark depths of BizTalk Server and its Adapter configurations.  Check out his Custom Prop Page SampleThanks Thomas!
The new 'Adapter Framework' (in BizTalk speak - this would be the Adapter V2.0 Framework) is now available. This new WCF based Adapter Framework allows developers to build, deploy and execute standalone Adapters - whether BizTalk Server is present or not. The framework is designed very much for standalone application (& can be 'plugged' into BizTalk R2 if desired), and as a .NET developer you can consider this as an additional .NET library that provides the abilility to allow you to build standalone adapters for your .NET applications (e.g. console app, or Word) p.s. The BizTalk Adapter Pack is built ontop of this framework.  Grab SP1 below: http://www.microsoft.com/downloads/details.aspx?FamilyId=0F8007D7-F0C9-4169-8B9C-BA55F8F4C153&displaylang=en
Wow - a BizTalk adapter Pack announcement is looming (ready March 1 actually). What is the BizTalk Adapter Pack?? I hear you ask.....I did too when I first heard of it. Quick Bit of History - 'Adapters' was a term typically used within a BizTalk space and to build adapters in BizTalk was a 'character' building experience where several COM interfaces needed to be implemented (with some of those interface's origins being in the year 2000!) - for all that dev effort the 'adapters' only lived in BizTalk -land. Wouldn't it be great to utilise your Adapter from other 'hosts' or environments such as Word/Sharepoint/Access/MS Project/BizTalk/Your Website etc etc.... (this is a very similar case to the initial *.OCX controls that came out. These controls were based on *.VBX which is something written in VB3 and used in the VB3 environment. Access/C/C++ developers had to duplicate the effort if they wanted similar functionality in their system) WCF LOB Adapter SDK is the essence here. - with BizTalk 2006 R2 on the scene, it comes with a 'new' adapter and new adapter 'style' known to trained BizTalk Ninjas as WCF Custom Adapter or BizTalk Adapter Framework V2.0 - so the LOB Adapter SDK is: - Free
- .NET based
- A Framework and VSNET project template
- Allows you to build custom 'adapters'
- Does alot of the heavy lifting for you.
- Search/Browse/Consume WCF Service metadata
- Able to be hosted in .NET/.NET related Host environment (BizTalk could be one of these
 Enter the (Supported)BizTalk Adapter Pack - (Help files Here) So the BizTalk team have been busy building on top of the WCF LOB SDK to provide 3 .NET Adapters (at this stage) which allow connections to: - SAP
- Siebel
- Oracle - Database
So at this point you can grab these adapters and connect straight away - this bridges the gap between you and those systems. For e.g. Sharepoint can connect straight away, the BDC can connect, your .NET app etc.
The fact it's supported and ready to roll makes it attractive 
Briefly the implementation details is that these 3 'adapters' are implemented as WCF Proxy Clients with a custom transport. Any application using these will essentially be calling a 'proxy' to a pretend WCF Service, where the 'Service' is the back end system with the WCF Transport implementing the appropriate features. The word on the street about Pricing is that it will be under US$6000 and if you have BTS R2 with SA you get the adapter pack. For the rest of us, you need to weigh up the fact how long is it going to take you or your team to develop those adapters/connectors????. Licensing is per CPU.
Just to re-iterate, you do *not* need BizTalk in any version, any way shape or form to run this - you could run BTS Adapter pack from a console app.
In recent times the 'Connected Systems Division' (CSD) team have been talking about Oslo and the capabilities of a 'business process' modelling tool. This is all very much on the round table discussion stage - but similar in concept to the modelling capable within VSTS. You would 'create a model', deploy it to some runtime environment which would (if needed) pre-process and compile the bits into something runnable. Essentially the model is key to this concept in both the design/development environments to the runtime/hosting type environments. Well as a start along this path here's an article http://blogs.zdnet.com/microsoft/?p=1159 discussing a 'new' language 'D' Enjoy. p.s. D# is something totally fictitious as this point :)
Happy 2008 all! Enter BizTalk HotRod As we know getting things done in BizTalk requires specific knowledge around specific areas with various tweaks here and there (e.g. creating a flat file schema that removes the field names in the first line). Some folks at Microsoft have felt the same way and decided to kick off their shoes and embrace an alternative to a mid-life crisis and the temptation of a Harley around the world. Two Microsoft TS's are embarking on the trail. They have created a BizTalk quarterly magazine filled with some fantastic tips'n tricks (e.g. creating pipelines to handle zip compression using Office OpenXML format) - and the language and format of the magazine suits me down to a 'T'. Very funny reading. I look down the table of contents and it's got some great tips all in the one spot -to find this stuff elsewhere is going to take alot of time assuming it exists. Check it out and see if it's worthwhile - it's currently free (you may see yours truly post an article there one day :) BizTalk HotRod Magazine - "Where BizTalk meets the road" Well done guys - well done!!!
Microsoft have rounded up all the serious BizTalk Bloggers (MVPs + keen MS guys + Teams) and the Connected Systems Division (CSD Team) within Microsoft and produced a valuable aggregator with all this in one spot.
Just have a look at the bloggers that are contributing to this - sensational!!! One stop shop for you guys.
From WCF to BizTalk, EDI + Custom Pipelines.
We all display this logo on our site.
Here's the RSS Feed http://biztalkblogs.com/RssDoc.xml
Merry Christmas!!!!!
Rahul (MS BTS TS in our parts - great guy and is hugely knowledgeable in both Java integration technologies as well as MS) has been hard at work again weaving his magic... I just couldn't go past his post without sharing it with you guys. Great step by step instructions Rahul! Well done.
I came across a previous comment on my blog from Thiago and noticed his sensational and very comprehensive article in setting up Load Gen on a BTS project (equipped with pictures!!!). Grab LoadGen here and check out his great Article here - ahhh if only all the manuals were this easy :) Well done Thiago - keep it up!
Nice post Dan and it's all true....wow what a roadmap from there until here, or then until now. Hope you're all well and kicking goals like the Arsenal the Aussie rugby team . I thought you should know.....recently announced at the big BizTalk conference known as the SOA and BPM conference at Redmond (put that in your wish list to attend - it would be great!) was the next version of BizTalk - vNext code named 'Oslo' (...checking the north wall.....kccck...clear!.....south....kccck...clear also). Great to have a plan I reckon! So here's the low down of it..... Oslo will be: - timeframe 2009+ - services enabled and model driven - Have the following components (at this stage): - Built on .NET V4.0 framework
- Server - deeply integrated with WF and WCF to host 'stuff'
- Services - "BizTalk Services in the cloud stuff"
- Tools - vs.net "10", app lifecycle
- Repository - common across management, tools + runtime to manage the 'deployed' bits.
What to do from here - not too much at the moment. It's sort of a nice to know and for those keen at heart go and check out http://labs.BizTalk.net where the current offering is for BizTalk Services V1.0 Register and away you go! Brilliant. Have fun!
A friend of mine Dan, gave a great recount of his very first experience with BizTalk when I came in and built a prototype in a couple of days (no pressure or anything - not that the business decision makers were watching over my shoulder at every move). Later I realised that Dan's company was doing the 'Pepsi' challenge on me, by giving Microsoft and the others a set of 25 tasks to do within the integration space. No pre-canned demos, real live sink or swim stuff. Two days later I came out of the 'Tribal Council' with immunity and they had a great path forward. I then went on to help them with their actual implementations. Dan recounts a little of this encounter here - http://techtalkblogs.com/blog/archive/2007/10/10/3221.aspx
Monitoring tends to be one of those areas that's overlooked until you hit Defcon 5 in production, servers are melting all over the floor, people are suddenly disappearing and cashing in on their time owing, and there's not one business process in site...... sound familiar? I've always been fascinated at given the price of MOM (mega cheap) why people don't have effective monitoring solutions in place - it's not rocket science to setup.....or you could have the work experience kid watching the lights on the front of the servers to make sure they're on! :) Here's some details from the R2 Management pack....check them out. http://msdn2.microsoft.com/en-us/library/aa561939.aspx snippet of the msdn page - BTW at the bottom it mentions MOM2005, this will also work in Operation Manager 2007 ------------------------------------------ Contents of the BizTalk Server 2006 R2 Management Pack The Microsoft BizTalk Server 2006 R2 Management Pack enables you to: - Monitor BizTalk Server events.
- Collect BizTalk Server-specific performance counters in one central location.
- Raise alerts that require operator intervention.
The BizTalk Server 2006 R2 Management Pack contains rules that cover the following categories: - Availability Monitoring
Availability monitoring rules monitor the availability of service from computers running BizTalk Server. Unavailability of the BizTalk Server service, receive locations, and databases are issues that cause the BizTalk Server service to become unavailable to a client or a user. Availability monitoring rules have names prefixed with "Service Unavailable.” - Health Monitoring
Health monitoring rules monitor for different types of errors in BizTalk Server that require operator intervention. There are four types of health monitoring rules, which have names prefixed with "Error," "Critical Error," "Warning," and "Information:" - Error: Errors are events that usually represent processing problems with individual messages. In isolation they represent problems that can be rectified either at the sender end or the receiver end of a message transmission.
- Critical Error: Critical errors represent events that indicate a significant problem has occurred. This can affect a large degree of functionality of BizTalk Server.
- Warning: Warnings are typically problems that are intermittent in nature. They do not represent major problems in operation and may be considered lower priority compared to other alerts.
- Information: Information alerts include information about BizTalk Server. These messages are neither errors nor warnings.
- Utilization/Performance Tracking
Utilization/performance tracking rules enable you to monitor the operationally relevant performance counters for BizTalk Server. These are divided into measurement rules and comparison rules.
Health Monitoring The BizTalk Server 2006 R2 Core rule group contains the following rules to address health monitoring, that is, monitoring related to various non-fatal failure modes. Typically, the situation may be isolated to individual interchanges or may possibly resolve itself. The BizTalk Server service is still, in some capacity, able to process work. The primary intent of these rules is to provide operations staff with information relating to messages that are stuck in the system and that require manual intervention of some sort, and to give them the information required to rectify the root problem. All of these rules are configured to suppress duplicate alerts for identical event content. This means that a repeat count will be incremented for a single alert rather than seeing multiple alert instances in the Microsoft Operations Manager 2005 Operator Console. None of the rules contain automated responses, but you can easily add such responses if necessary. | Rule Name | Enabled | | Consolidate Inbound Message Rejected on Authentication Failure | Yes | | Critical Error: A BizTalk host instance has stopped and is not processing information. | Yes | | Critical Error: A BizTalk subservice has failed while executing a service request | Yes | | Critical Error: A stored procedure call failed. | Yes | | Critical Error: Monitor BizTalk NT Service Availability | Yes | | Critical Error: The Messaging Engine failed to register an adapter. | Yes | | Critical Error: The Messaging Engine failed to retrieve the configuration from the database. | Yes | | Critical Error: The MSMQT subservice failed to start because Windows MSMQ service is running on the computer. | Yes | | Error connecting to the BAM Primary Import Database – DB server not found | Yes | | Error: A message going to a one-way send port is being suspended. The send port configuration corresponding to the message was not found. | Yes | | Error: A receive location is invalid or incorrectly configured. | Yes | | Error: A response message is suspended. | Yes | | Error: An adapter raised an error during message processing. | Yes | | Error: An attempt to connect to a BizTalk database failed. | Yes | | Error: An outbound message is being suspended by the adapter. | Yes | | Error: BAM Interceptor detected a SQL Exception | Yes | | Error: BAM Portal Encountered Internal Server Error | Yes | | Error: BAM Portal Encountered Internal Server Exception - Web Services may have received badly-formatted requests | Yes | | Error: BAM Technical Assistance Required | Yes | | Error: Connection to a SMTP host failed | Yes | | Error: Error connecting to the BAM Primary Import Database - Referenced DB not found | Yes | | Error: Failed to archive the processed message. | Yes | | Error: Failed to delete processed message | Yes | | Error: Failed to un-mark the file | Yes | | Error: FILE-Receive-Message Suspended | Yes | | Error: FTP-Receive-Message Suspended | Yes | | Error: HTTP-Receive-Message Suspended | Yes | | Error: Invalid IC Schema Error | Yes | | Error: Messaging Engine has suspended a message. Failed to correlate a response message to an existing request message. | Yes | | Error: MQSeries-Receive-Message Suspended | Yes | | Error: MSMQ-Receive-Message Suspended | Yes | | Error: Orchestration instance suspended due to errors, needs manual intervention | Yes | | Error: POP3 adapter could not authenticate to the server using supplied credentials | Yes | | Error: POP3 adapter could not establish connection with the POP3 server | Yes | | Error: POP3-Receive-Message Suspended | Yes | | Error: SMTP send adapter could not authenticate with the SMTP server | Yes | | Error: SOAP-Receive-Message Suspended | Yes | | Error: SQL-Receive-Message Suspended | Yes | | Error: The FILE send adapter cannot open file for writing. | Yes | | Error: The host instance failed to connect to the BizTalk Configuration database. | Yes | | Error: The HTTP send adapter cannot connect to the remote server. | Yes | | Error: The Messaging Engine is dropping the message due to an authentication failure. | Yes | | Error: The processed file is either read-only or a system file. | Yes | | Error: There was a failure executing a receive pipeline at an http receive location. | Yes | | Error: There was a failure executing a receive pipeline. | No | | Generic Error: All error events from BizTalk Server 2006 | No | | Generic Information: All information events from BizTalk Server 2006 | No | | Generic Warning: All warning events from BizTalk Server 2006 | No | | Information: A BizTalk Server Host Instance Windows Service Has Stopped | No | | Information: Mismatched Interceptor Configuration | Yes | | The Messaging Engine has suspended one or more inbound message(s). | No | | The Messaging Engine has suspended one or more outbound message(s). | No | | There was a failure executing a send pipeline. | No | | There was an error executing a pipeline component. | No | | Warning: Cube DTS has not been run | Yes | | Warning: FILE receive adapter cannot reach a receive location due to network problems | Yes | | Warning: TDDS failed to batch execution of streams | Yes | | Warning: The Messaging Engine encountered an error publishing a batch of messages. | Yes | Utilization/Performance Tracking There are two types of performance rules within MOM: measurement rules and comparison rules. Measurement rules gather data from Microsoft Windows performance counters, or other data sources, with a specified sampling rate between 5 and 15 minutes and store the data for historical analysis. Comparison rules allow actions to be taken and alerts to be raised when a given performance value varies by a specified threshold from expected values, which can include averages of past samples. Some of the comparison rules require customization based on your particular environment. In addition, you can change the default sampling rates as needed based on your environment. The table below shows the performance rules for the BizTalk Server 2006 R2 Core rule group. Note | | All of the counter values for the BizTalk Tracking Data Decode Service (TDDS), otherwise known as the BAM Event Bus Service, performance object are stored with 15 minute samples. | Note | | Within the XLANG/s Orchestrations performance object, all counters are stored with 15 minute samples, except the following: Megabytes Allocated Private Memory, Orchestrations Created, Orchestrations Created/sec. | | Measurement Rule Name | Enabled | | BizTalk Messaging Active Receive Locations | Yes | | BizTalk Messaging Inbound Latency | Yes | | BizTalk Messaging Outbound Latency | Yes | | BizTalk Messaging Request-Response Latency | Yes | | BizTalk Messaging Request-Response Timeouts | Yes | | BizTalk: WSS Adapter % Web Service Call Failures | No | | BizTalk: WSS Adapter Total Receive Commit Failures | Yes | | BizTalk: WSS Adapter Total Receive Message Failures | Yes | | BizTalk: WSS Adapter Total Received Messages | Yes | | BizTalk: WSS Adapter Total Send Message Failures | Yes | | BizTalk: WSS Adapter Total Sent Messages | Yes | | BizTalk: WSS Adapter Total Web Service Call Failures | Yes | | BizTalk: WSS Adapter Total Web Service Calls/sec | Yes | | BizTalk:TDDS Total Events | Yes | | BizTalk:TDDS Total Records | Yes | | BizTalk:TDDS-Total Failed Events | Yes | | CPU Usage BizTalk Machines | Yes | | CPU Usage BizTalk Server Process | Yes | | CPU Usage BizTalk Server Processes | Yes | | CPU Usage BizTalk Servers | Yes | | Documents processed | Yes | | Documents processed/sec | Yes | | Documents received | Yes | | Documents received/sec | Yes | | Documents suspended | Yes | | Documents suspended/sec | Yes | | FILE receive Adapter Bytes | Yes | | FILE Receive Adapter Bytes/Sec | Yes | | FILE Receive Adapter Messages Received / Sec | Yes | | FILE Receive Adapter-Messages received | Yes | | FILE Send Adapter Bytes | Yes | | FILE Send Adapter Bytes/Sec | Yes | | FILE Send Adapter Messages Sent / Sec | Yes | | FILE Send Adapter-Messages Sent | Yes | | FTP Receive Adapter Bytes Received | Yes | | FTP Receive Adapter Bytes Received/sec | Yes | | FTP Receive Adapter Messages Received | Yes | | FTP Receive Adapter Messages Received/Sec | Yes | | FTP Send Adapter Bytes | Yes | | FTP Send Adapter Bytes/Sec | Yes | | FTP Send Adapter Messages Sent | Yes | | FTP Send Adapter Messages/Second | Yes | | Host - Instance State Message References - BizTalkServerInProcessHost | Yes | | Host Queue Size - All BizTalk Hosts | Yes | | Host Suspended Queue Size - All BizTalk Hosts | Yes | | HostQ - Instances - BizTalkServerInProcessHost | Yes | | HTTP Receive Adapter Messages Received / Sec | Yes | | HTTP Receive Adapter Response Messages Sent / Sec | Yes | | HTTP Receive Adapter-Messages received | Yes | | HTTP Receive Adapter-Response Messages sent | Yes | | HTTP Send Adapter Messages Received | Yes | | HTTP Send Adapter Messages Received/Sec | Yes | | HTTP Send Adapter Messages Sent/Sec | Yes | | HTTP Send Adapter-Messages Sent | Yes | | ID Process | Yes | | Logical Disk %Free Space BizTalk Servers | Yes | | MessageBox databases connection failures | Yes | | MessageBox Dead Processes Cleanup | Yes | | MessageBox Instances Size | Yes | | MessageBox Msg Cleanup | Yes | | MessageBox Parts Cleanup | Yes | | MessageBox Spool Size | Yes | | MessageBox Tracked Message Copy | Yes | | MessageBox Tracking Data Size | Yes | | MSMQ Receive Adapter Bytes Received | Yes | | MSMQ Receive Adapter Bytes/Sec | Yes | | MSMQ Receive Adapter Messages Received | Yes | | MSMQ Receive Adapter Messages Received/Sec | Yes | | MSMQ Send Adapter Bytes Sent | Yes | | MSMQ Send Adapter Bytes/Sec | Yes | | MSMQ Send Adapter Messages Sent | Yes | | MSMQ Send Adapter Messages Sent/Sec | Yes | | Orchestrations completed | Yes | | Orchestrations completed/sec | Yes | | Orchestrations Created | Yes | | Orchestrations Created/sec | Yes | | Orchestrations dehydrated | Yes | | Orchestrations dehydrated/sec | Yes | | Orchestrations discarded | Yes | | Orchestrations discarded/sec | Yes | | Orchestrations rehydrated | Yes | | Orchestrations rehydrated/sec | Yes | | Orchestrations resident in-memory | Yes | | Orchestrations suspended | Yes | | Orchestrations suspended/sec | Yes | | Orchestrations-% used physical memory | Yes | | Orchestrations-Database transactions | Yes | | Orchestrations-Database transactions/sec | Yes | | Orchestrations-Dehydratable orchestrations | Yes | | Orchestrations-Dehydrating orchestrations | Yes | | Orchestrations-Idle orchestrations | Yes | | Orchestrations-Megabytes allocated private memory-<All>-15.0-minutes | Yes | | Orchestrations-Megabytes allocated virtual memory | Yes | | Orchestrations-Pending messages | Yes | | Orchestrations-Pending work items | Yes | | Physical Disk %Idle Time BizTalk Servers | Yes | | Physical Disk Average Disk Queue Length BizTalk Server | Yes | | POP3 Receive Adapter Active Sessions | Yes | | POP3 Receive Adapter Bytes Received | Yes | | POP3 Receive Adapter Bytes/Sec | Yes | | POP3 Receive Adapter Messages Received | Yes | | POP3 Receive Adapter Messages Received/Sec | Yes | | Runnable orchestrations | Yes | | Running orchestrations | Yes | | SMTP Send Adapter Messages Sent | Yes | | SMTP Send Adapter Messages Sent/Sec | Yes | | SOAP Receive Adapter Messages Received | Yes | | SOAP Receive Adapter Messages Received /Sec | Yes | | SOAP Send Adapter Messages Sent | Yes | | SOAP Send Adapter Messages Sent/Sec | Yes | | SQL Receive Adapter Messages Received | Yes | | SQL Receive Adapter Messages Received/Sec | Yes | | SQL Send Adapter Messages Sent | Yes | | SQL Send Adapter Messages Sent/Sec | Yes | | Comparison Rule Name | Enabled | | Monitor Host Suspended Q Size | No | | Monitor HostQ Size | No | | Monitor HostQ Size - BizTalkServerApplication | No | | Monitor MessageBox Instances Size | No | | Monitor MessageBox Spool Size | No | | Monitor MessageBox Tracking Data Size | No | | Total Failed BAM Events During Flush | Yes | | Total TDDS Events Failed Exceeded Limit | No | | Total TDDS Failed Batches Exceeded Limit | No | | Warning: BizTalk Throttled on High Database Size for a significant period | Yes | | Warning: BizTalk Throttled on High Inprocess Message Count for a significant period | Yes | | Warning: BizTalk Throttled on High Process Memory for a significant period | Yes | | Warning: BizTalk Throttled on High Thread Count for a significant period | Yes |
In transit with a little time to spare I thought I'd share some thoughts around an area that is set to boom in the near future - 'Business Activity Monitoring'
I know you must be thinking - What? why? who....? what's Mick on about.
Let's have a quick chat on my thoughts:
- Within the next 3 yrs there is going to be even less 'custom raw code' being written and more 'integration code' within the MS product stack. Of course there will be specific needs, but in general across the board for business related applications - why build it from scratch? will be the reasoning.
We can see this today heavily with the Sharepoint boom - why build an ASP.NET app when you can plug your bits into a WSS V3.0/ASP.NET app?
Many other products such as OCS, Speech Server, MOSS etc etc. are all conducive to integration code. (If you don't have to write 20 000 lines of code - integrate and customise and write 2000. But us developers want to do everything by hand....so in some ways, we're our own worst enemy)
It would not be uncommon to have several products making up a solution.
How do we keep an eye on that? (We could send the work experience kid around the the servers to make sure they are all running well? but how many work exp. kids do we have?)
- BizTalk Services - if we look at the increasingly important role that BizTalk is playing within organisations in providing THE Application Server where WCF Services, Business Processes etc can all be hosted within. Out of the box slicing and dicing of load/capacity and so on. (It will be an interesting time when the finer details are nutted out with IIS 7 WAS - who does what)
As we start building all sorts of systems that require point to point or connectivity between the components, typically we would look to WCF to provide that glue while conforming to standards (e.g. WS-*) future proofing extensions.
We would then need to house those WCF Services and IIS could be an option...... BTS provides fault tolerance and durability around these services as well.
BTS provides not only connectivity at the transport level, but also at the application level such as SAP, Siebel.... all out of the box. Being able to consume, transform and publish services/information at all these levels is one of the things that BizTalk does very well!
Looking into BizTalk Services - things like 'Event buses' and 'Subscribing' to these events seem to be possible. These may span end-to-end on the enterprise so departments will be able to do their own local processing from a 'corporate received event' (just my thoughts at this point) - similiar to MSMQ technology, but with ALOT more functionality.
- Ok - onto the chase....(just had to go and pick my mobile up in the airport lounge - left it somewhere....head's not screwed on right :)
So in essence looking within the next 3 years, systems will be made up of many disparet sub-systems each - we need to get a view of "How are we going?" (in a business context - not the flux capacitor is running well)
- Enter BAM (BizTalk) - Business Activity Monitoring:
- Allows for the creation of 'SQL OLAP Cubes' from Business Key Performance Indicators (a business person *can* sit down in Excel and define all these numbers - except my winning lotto numbers...I'm still waiting :) - then hand them the BAM and boom! a cube is born.
This is the way *it MAY* be pitched - but my experience is that it's a Techo that does it - with the business person looking over the shoulder.)
e.g. Order Total, Order Time Taken, Order Average Fulfillment Time, Order Destination.
- We can populate these cubes (& their values) from WF Workflows, custom .NET code, Business Rules, BizTalk and WCF Services.
That friends is the missing piece to the puzzle. So as your system is crunching away, business intelligence is obtained from the working system in the context that you specify (a fancy way of saying - your business values).
The capture of this information is done through BAM Interceptors (different flavours depending on if it's a Biztalk process, WF Workflow, WCF Service, Buffered, Direct...)
The cool thing is that BAM databases can be aggregated etc. So we may have a business process running in Perth and a similiar in Syd with the end result being viewed in Melb.
All in all - we're in a cube. All the existing BI tools can hook into the Cube as per normal.
- How can I interpret and work with my cubes? I've heard MOSS has 'dashboards' and other things that may help me......
ENTER THE DRAGON......no I meant to say "Performance Point" (what a great movie that was!)
Perf. Point is driven out of MOSS (perfect for the whole sharing/caring/collab world that Sharepoint pushes - alerts/presence info etc etc)
It provides intelligence and the ability to forecast/plan/manipulate information from many different sources of which BAM is one. Perfect - you're very own rockect scientist on call.
You business processes is just another area that plugs into this :)
- Tying it all together in a nutshell.....
systems - more integration code, less custom code/app silos -> complex solutions comprising of many components -> how to intelligently track/monitor -> BAM -> BAM -> Cube(s), easy, distributable -> Perf Point, MOSS based very easy
If I was a partner and wondering what technology to get into right now.....apart from BizTalk R2 :)..... gotta be Perf. Point -> 18 months time, you won't have enough perf. point people! :)
Enjoy your Friday folks!
What a great event - BizTalk, BizTalk and more Biztalk. It was great to see all those who attended and especially those from the user groups (Sydney, Brisbane and Melb)
I personally had a great day - the weather was great. It was sunny, it hailed and then in true fashion the sun was out again. So this means that BizTalk 2006 R2 is now RTM - grab it from here Scott (another BizTalk super hero) & I put together a great RFID Demo (I can say *great* being not too bias). Come 2am the morning before the launch Scott & I were wondering 'was there going to be a demo?'. In true show style it all came off on the day :) I'll blog about the demo shortly....it went down a treat
There were some great sessions (I wasn't able to get to them as I was a 'booth babe' for the day). The thing that I was most impressed about on the day......was the amount of support from the Corp BizTalk team. Well done guys!!!  The team had been on the road launching R2 in 3 world wide locations (in Taipei they were treated almost like rock star status!). We had Oliver Sharp (BizTalk PM) and major figures in his team - the guys were great and always willing to lend an ear. (Some of them were off surfing at Bondi the following day - that's the way it's done !! :)
In mentioning the team I can't fail to mention MR. RFID of MS - Anush Kumar. What a great genuine guy. He's always got a brilliant story to tell around Microsoft RFID Services. RFID, Integration, surfacing, WCF, BizTalk, BAM, TagEvent data - these are all words he uses. This is a huge Microsoft story - and what the RFID team has achieved it the last 3-4 years both on the hardware/software space is amazing. Standardising readers (c.f. ODBC and ODBC drivers) and providing momentum to standards bodies on various tags and their formats. R2 here we come....time to update some VPCs.
BizTalk 2006 R2 when installing the EDI/AS2 component (or when re-installing), sometimes there are some SSIS packages/jobs left that need to be manually deleted My good mate Rahul has entered the world of blogging!!! and has blogged about this very issue and what he did to get around it.
Well done Rahul!!!!
Also I might add upon a reinstall of BTS 2006/R2 sometimes there are the BAM Alerts notification service instance left over as well - that typically needs to be manually removed from within the Sql Workbench. Enjoy
Folks, I know we're all interested in the next and latest release of BizTalk R2. The big question is - "What will happen to my existing setup?". The answer is - "R2 has a 'Wizard based upgrade' that will upgrade from 2004/2006/2006R2 Beta 2".....so things going to plan all bases will be covered :) We'll have to wait and see....
Another piece of software has come up and saved my bacon - a couple of days out from a conference and I would love to Demo RFID. Do I migrate my images to VMWare? (that's another story in itself - I've heard good + bad)
After researching I came across this....... USB Anywhere *** UPDATED: USB Redirector solves a couple of 'driver not working' issues I found on the others ***
This guy is GREAT!! Let's you share USB devices via IP addresses between host + remote machines. (you even get plug and play messages!)
Now all my RFID devices are rocking!!!
Hey folks, I've been flat chat lately burning the candle at both ends getting ready for my sessions at TechEd/Deep Dives. In a *spare* moment - I am asked to do a Channel9 GeekSpeak session - talking about Workflow and BizTalk Integration. (I've had my xbox360 confiscated for 1 month to help me get through this month - that's a story for another time :) This session is on tomorrow morning - so for those of you feeding babies, can't sleep etc. I'd love to have you along for moral support as this will be my very first session in Geek Speak. So if you're up for a 5am - 6am start Thursday morning I'll see you there. Put something Aussie in your nick name! Update: The Results have come in.......well this was done at 4am my time in the morning and all I can say is thanks to the folks that attended for being understanding :) Customer satisfaction scores are based on a scale from 0 to 9 points. The average score for a webcast is 7.8.
Usefulness of Information: 8.0 Speaker Presentation Skills: 7.8 Effectiveness of Demonstration: 8.0 Overall Presentation Rating: 7.8 Link to see the webcast over and over again Looks like I got around the average at 4am in the morning.....I'm amazed I even made sense!!!:)
Whether it's BTS04 or 06 - you can always generate the schema behind the magical binding file from the following command (courtesy of Mark Berry): xsd.exe "C:\Program Files\Microsoft BizTalk Server 2006/Microsoft.BizTalk.Deployment.dll" /type:BindingInfo -Mark Berry Pretty cool - thanks Mark. (obviously change '2006' to '2004' if on BTS 2004) You now have an XSD that corresponds to all the options in your Binding File. Enjoy!
What a name....talk about the pinnacle of TLA's at the height of a great technology field. Can you imagine being at work/meetings etc. and say "Hold on, I've got to grab the WCF LOB Adapter SDK for my BTS Messaging Hub" (at this point I'm sure it would clear the floor if you were at a party and people would be looking at each other thinking that someone hasn't taken their vitamin B12 this morning) So we really do need to come up with a sexier name than this (when I was 4 my parents read me a great book about a kid called "Tikki-tikki-tembo-no-sarembo" and he fell into the well - you could say I was scared off long names as a kid) What does this thing do for you? It will change the way you develop adapter for use with/without BTS. Sensational!!! WCF LOB Adapter SDK Enjoy!!!! p.s. you don't necessarily need BizTalk to build adapters with this framework. There are BTS06 R2 'extensions' to this framework - the BTS 'strand' of this SDK is currently called the BizTalk .NET Adapter SDK There's some very cool things ahead.....stay tuned......
MS have been busy in this space and we've now got the following (or soon will have :)
- BizTalk Server 2006 R2 Evaluation Edition
- BizTalk Server 2006 R2 Branch Edition
- BizTalk Server 2006 R2 Developer Edition
- BizTalk Server 2006 R2 Standard Edition
- BizTalk Server 2006 R2 Enterprise Edition
Most are pretty self explanitory except for the Branch Edition (BE) - for those of you that remember the BTS Partner Edition (phased out with the introduction of BTS2006), BE is comparable with it.
There are some restrictions on this though (as currently determined by the powers to be...): - the BE must connected to Enterprise Edition. - two or more BE's can't talk directly to each other, must go through a Enterprise Edition
There's a document available that discusses upgrading to BTS06R2 - it's still a work in progress but it's a good start - MS Upgrade Document
In particular there is a great image that gives a good outline of the dependencies (taken from the document):
Food for thought folks - there's some very exciting times ahead.
Finally it's here - there was some talk internally within MS about an adapter being built to communicate to WF Runtime, thus allowing hosting of WF workflows within BizTalk. At the moment we're at cross roads with BizTalk 2006, as the Orchestration/Business Process designers and technologies is built on a language called XLANG which is compiled into C# and executed. On the other side, we have WF workflows, XAML, XML, .NET based, extensible and looking good.....but it needs to find a home. It's homeless but always keen to meet up with a host. The question of hosting WF Workflows is not taken lightly as scalability, availability, durability etc all come into the equation (the 'hello world' WF console application just doesnt cut it :) ) So let's get the best of both worlds - I previously did a MSDN webcast on this around the time when the message from MS was "for small stuff - use WF. For bigger things use BTS" - but why cant the 2 worlds live together? Now - they can!!!! Microsoft WF Team have released 'BTS Extension for WF' where there is 'no BizTalk code required' (hmmm....maybe I should stop my mission of finding BizTalk people and look at WF people). Go and register on the connect site/fill in a quick survey and get downloading!!!! Grab the BTS Extensions for WF here Happy playing........it's wabbit season...no duck season....no wabbit season....
I'll post more details very soon, but for this session
I will be covering
Windows Workflow Foundation (WF) - 101 basics all you need to know
BizTalk meet Workflow, Workflow meet BizTalk - Hosting WF Workflows within BizTalk 2006 R2!!! (how good is that!!!) (persistence/tracking etc etc all taken care of - a wizard comes to the rescue)
Stay tuned for a full update.
July 6th 4TH is our next meeting (I had to move it till next Wednesday) (thanks Bill)
Sometimes when you have a published WCF Service, you may just want to allow that service to provide a description about itself - rather than go through yet another wizard (re-run the WCF Publishing wizard) to expose out some metadata. I've been doing alot of R2 lately and this exact problem came up. Fortunately I found a quick and easy way. Simply add the following lines to your Web.Config before the </Configuration> tag (take it out when you're finished) <system.serviceModel> <behaviors> <serviceBehaviors> <behavior name="ServiceBehaviorConfiguration"> <serviceDebug httpHelpPageEnabled="true" httpsHelpPageEnabled="false" includeExceptionDetailInFaults="false" /> <serviceMetadata httpGetEnabled="true" httpsGetEnabled="false" /> </behavior> </serviceBehaviors> </behaviors> <services> <!-- Note: the service name must match the configuration name for the service implementation. --> <service name="Microsoft.BizTalk.Adapter.Wcf.Runtime.BizTalkServiceInstance" behaviorConfiguration="ServiceBehaviorConfiguration"> <endpoint name="HttpMexEndpoint" address="mex" binding="mexHttpBinding" bindingConfiguration="" contract="IMetadataExchange" /> <!--<endpoint name="HttpsMexEndpoint" address="mex" binding="mexHttpsBinding" bindingConfiguration="" contract="IMetadataExchange" />--> </service> </services> </system.serviceModel> It doesn't get easier - enjoy!
Currently I'm setting up a system and found an interesting 'challenge'. After some sweat and tears I stumbled upon this Microsoft article. In the article it appears that running IIS 6.0 on a 64-bit box is cool. (obviously or there'd be trouble) It's also cool to run 32-bit ASP.NET apps in 1.1/2.0 It is not cool to run a mix of 32- and 64-bit in the same IIS. Thought I'd save you my pain!
Sensational Sonu has a great article on her blog about how we develop custom WCF Adapters for use with BizTalk R2. She mentions: 1. BizTalk will always call the Adapter custom channel via a 'Request/Response' mechanism - this means for: - Custom WCF Send Adapters - BTS will *always* call IRequestChannel (two-way) (WCF also supports IOutputChannel - oneway)
- Custom WCF Receive Adapters - BTS will *always* call IReplyChannel(two way) (WCF also supports IInputChannel - oneway)
So in short - BTS will always call a 'two-way' method of a custom WCF Adapter. In terms of 'Fire and Forget' one way WCF Services, we still need to call the Two-Way interface and just pass back a null response message. Or you could use your own custom component - said like a true developer! Cheers, Mick.
I'm doing a bit of BAM at the moment (BTS 2004) and came across this:
C:\Program Files\Microsoft BizTalk Server 2004\Tracking>bm deploy c:\projects\bt s_bam\BAM_CreateQuote_Validate.xls Retrieving BAM Definition XML from Excel workbook ... Done! Deploying PrimaryImportDatabase ... Done! Deploying StarSchemaDatabase ... Done! Deploying AnalysisDatabase ... BAM deployment failed. Failed to deploy BAM Analysis database. Failed to connect to Olap server. Please make sure the Analysis Server is funct ional. Connection failed: Server name not set.
Problem turns out to lie in the BamConfiguration.xml (found under ...\Microsoft BizTalk Server 2004\Tracking) file - on this particular machine I installed the bits for BAM after the initial install. Hence why BTS is complaining that it only has half the BAM Picture.
I added in some server + database names and we're all good to go!!!
Note: when running 'bm.exe' from a batch file, it will look for a BAMConfiguration.xml file nearby - if it can't find one, there's alot of kicking and screaming. So as a rule of thumb, CD to the above \Tracking folder and run bm.exe from there.
Sample BAMConfiguration.xml file
<?xml version="1.0" encoding="utf-8"?> <BAM:BAMConfiguration xmlns:BAM="urn:schemas-microsoft.com:BAM" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <DeploymentUnit Name="PrimaryImportDatabase"> <Property Name="ServerName">myserver</Property> <Property Name="DatabaseName">BAMPrimaryImport</Property> <Property Name="RTAWindow">3600</Property> <Property Name="RTATimeSlice">300</Property> </DeploymentUnit> <DeploymentUnit Name="StarSchemaDatabase"> <Property Name="ServerName">myserver</Property> <Property Name="DatabaseName">BAMStarSchema</Property> </DeploymentUnit> <DeploymentUnit Name="AnalysisDatabase"> <Property Name="ServerName">myserver</Property> <Property Name="DatabaseName">BAMAnalysis</Property> </DeploymentUnit> <DeploymentUnit Name="ArchivingDatabase"> <Property Name="ServerName">myserver</Property> <Property Name="DatabaseName">BAMArchive</Property> </DeploymentUnit> <DeploymentUnit Name="CubeUpdateDTS"> <Property Name="ConnectionTimeOut">15</Property> <Property Name="UseEncryption">1</Property> </DeploymentUnit> <DeploymentUnit Name="DataMaintenanceDTS"> <Property Name="ConnectionTimeOut">15</Property> <Property Name="UseEncryption">1</Property> </DeploymentUnit> </BAM:BAMConfiguration>
Hi, I've decided to compile a list of perf settings that I've collected over the years of dealing with large/high throughput BizTalk systems. There's always a few 'tweaks' that can be performed within a BTS system. Here I've decided to focus on the TCP/IP stack and some general tcp/ip registry settings. Have a look through them and feel free to pick and choose the ones you like.(I've created them as a registry file format. So you can just copy below and paste into notepad and viola!) Enjoy! Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management] "DisablePagingExecutive"=dword:00000001 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanManServer\Parameters] "IRPStackSize"=dword:00000014 "SizReqBuf"=dword:00004000 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] "DefaultTTL"=dword:00000040 "EnablePMTUDiscovery"=dword:00000001 "EnablePMTUBHDetect"=dword:00000001 "TcpMaxDupAcks"=dword:00000002 "Tcp1323Opts"=dword:00000001 "SackOpts"=dword:00000001 "MaxFreeTcbs"=dword:00005000 "TcpMaxSendFree"=dword:0000FFFF "MaxHashTableSize"=dword:0000FFFF "MaxUserPort"=dword:0000FFFF "TcpTimedWaitDelay"=dword:0000001E "TcpWindowSize"=dword:0000FBA4 "NumTCPTablePartitions"=dword:00000002 "SynAttackProtect"=dword:00000000 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters] "EnableDynamicBacklog"=dword:00000001 "MinimumDynamicBacklog"=dword:00000014 "MaximumDynamicBacklog"=dword:00004E20 "DynamicBacklogGrowthDelta"=dword:00000064 "EnableDynamicBacklog"=dword:00000001 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTSSvc.3.0\HttpReceive] "HttpBatchSize"=dword:00000001
Recently I came across a great article on BizTalk permissions. You know the production questions you get asked "Do I need to make them DB Owner?" to do the install?? Finally here's a matrix that Thomas Canter created,(yes a picture) that outlines permissions vs task/role.
Check it out Here ----- snip -----
Security Wizard -> Understanding BizTalk Server 2006 Security – Blog
Entry
I've been working on understanding the BizTalk Security model for quite a
while and I keep working my Visio diagram over and over.
For BizTalk Server 2004 simply do not use the Level 0 Security Membership
column.
Please feel free to send me any feed back if this is not clear.

SydBiz.org - has undertaken renovations. We're now close to completion and the membership section is now open. Just click on the "Join Now" button and the rest is pretty easy. Also be sure to check out some of the presentations and I'll me uploading more content in the coming weeks. Enjoy.
While preparing one of my presentations for the upcoming Sharepoint Conference I came across this funny article.
Talks about the principles of poor UI Design (I thought I could be asleep here...so I decided to read 2 words and not to risk me being in a winter hibernation slumber).
I admit I had a good laugh at this - so I'll share. (my favourite is #6)
http://www.sapdesignguild.org/community/design/golden_rules.asp
Golden Rules for Bad User Interfaces
by Gerd Waloszek, Product Design Center, SAP AG – Last Update: 02/27/2007
The SAP Design Guild Website is full of guidelines and tips for good user interface design, and it's not the only one on the Web. Nevertheless, we see examples of bad user interface design everywhere – many more than users would like to see. As people like to do just the opposite of what one is proposing, we thought that it might be a good idea to promote bad user interface design. Therefore, we collected "Golden Rules for Bad User Interfaces" on this page – please help yourself (and do the opposite). We started this page with ten rules and are continually expanding our collection.
Note: The rules are listed in backward order – the most recently added rules come first. In all other respects, the order of the rules is arbitrary and does not reflect their significance.
Golden Rule No. 14: Do not let users interrupt time-consuming and/or resource-hungry processes.
Reasoning: Making processes that put the computer into agony more or less uninterruptible ensures that users take their mandatory coffee breaks.
Example: Start a backup or indexing process while users are not aware of it. Make this process hard to cancel, that is, let it ignore the users' mouse clicks and key presses.
Golden Rule No. 13: Leave out functionality that would make the users' life easier – let them do it the hard (cumbersome) way.
Reasoning: Additional functionality would provide users with too many choices and might confuse them.
Example: When users want to add items to a list, allow them to add items at the end of the list only and let them then move the items to the correct position. That is, do not offer additional functionality for inserting items at their target locations. To add some spice, introduce spurious errors that return items to the bottom when users have already moved them half-way up.
Example: Do not offer the option of selecting multiple items, for example, for moving or deleting items. The option of working on one single item suffices to let users achieve their goals – apart from that it may take a little bit longer...
Example: After inserting a set of new items (for example, by command, drag-and-drop or copy-and-paste) don't show them as selected. This would help users to recognize where in the list the items were sorted in. To detect the items that were just inserted will consume quite some time, besides the pure recall of which items were inserted. (Contributed by Oliver Keim, SAP AG)
Golden Rule No. 12: Destroy the work context after each system reaction.
Reasoning: Destroying the work context allows users to reflect their work and ask themselves whether it really makes sense.
Example: Deselect selected screen elements after a system reaction (e.g. a round trip).
Example: Move HTML pages or tables that have been scrolled down by the user to the top after a system reaction (e.g. a round trip); in the case of multiple pages (e.g. in hit lists or document list) return the user to the first page.
Golden Rule No. 11: Take great care in setting bad defaults: contrary to the users' expectations, disastrous, annoying, useless – it's up to you!
Reasoning: Bad defaults are a nice way to surprise users, be it immediately or – at best, unexpectedly – anytime.
Example: Set default options in Web forms so that users get unwanted newsletters or offers, have their addresses distributed, etc.
Example: Set the default option in dialog boxes on the most dangerous option, for example, on deleting a file or format the hard drive.
Example: In forms, set dates (or other data) on useless default values. For example, set the date for applying for a vacation on the current day.
Golden Rule No. 10: Spread the message of bad examples and live it!
Reasoning: Examples are a perfect teaching method. But as we all know, bad examples are the best – they allure most.
Example: Just follow any of the other golden rules on this page, that's a perfect start.
Example: If you have to make presentations make sure that you include your bad examples in the presentations.
Note: Good examples are hard to find and typically criticized until nobody appreciates them anymore. Why waste time with unproductive discussions?
Golden Rule No. 9: Keep away from end users!
Reasoning: You are the expert and know what users need – because you know what you need. Why should they need something else?
Example: If you think that a certain functionality is not needed don't implement it – why should other people need it?
Example: Many end users have many opinions, you have one. That's far easier and faster to implement.
Note: Doing without site visits saves your company a lot of time and money.
Golden Rule No. 8: Make using your application a real challenge!
Reasoning: This teaches people to take more risks, which is important particularly in economically harder times.
Example: Do not offer an Undo function.
Example: Do not warn users if actions can have severe consequences.
Note: If you want to top this and make using your application like playing Russian roulette, change the names of important functions, such as Save and Delete, temporarily from time to time...
Golden Rule No. 7: Make your application mouse-only – do not offer any keyboard shortcuts.
Reason 1: This will make your application completely inaccessible to visually impaired users. Therefore, you can leave out all the other accessibility stuff as well. That will save you a lot of development time.
Reason 2: This will drive many experts crazy who used to accelerate their work with keyboard shortcuts. Now, they will have more empathy for beginners because they are thrown back to their speed.
Golden Rule No. 6: Hide important and often-used functionality from the users' view.
Reasoning: This strategy stimulates users to explore your application and learn a lot about it.
Example: Place buttons for important functions off-screen so that users have to scroll in order to access them.
Example: Hide important functions in menus where users would never expect them.
Golden Rule No. 5: Educate users in technical language.
Reasoning: Lifelong learning is hip. As many of us spend a lot of their time at the computer, it's the ideal stage for learning. Moreover, sociologists bemoan that people's vocabulary is more and more reducing. Applications with a challenging vocabulary can go against this trend.
Example: Always send URLs as UTF-8 (requires restart) (advanced settings in MS Internet Explorer)
Golden Rule No. 4: Use abbreviations wherever possible, particularly where there would be space enough for the complete term.
Reasoning: Abbreviations make an application look more professional, particularly if you create abbreviations that are new or replace commonly used ones.
Example: Use abbreviations for field labels, column headings, button texts even if space restrictions do not require this.
Examples: Use "dat." instead of "date," "TolKy" instead of "Tolerance Key," "NxOb" instead of "Next Object," and many more...
Golden Rule No. 3: Make it slow!
Example: There are nearly unlimited possibilities of making software slow. For example, you can include long lasting checks or roundtrips after each user input. Or you can force users through long chains of dialog boxes.
Golden Rule No. 2: Do not obey standards!
Example: Do not use standard screen elements for a given purpose, such as single selection (e.g. use checkboxes instead of radiobuttons because they look nicer).
Example: Do not place menu items into the categories and locations they typically belong to (e.g. place "Save" in the "Edit Menu").
Golden Rule No. 1: Keep the users busy doing unnecessary work!
 Example: It's a "good" habit to let users enter data that the system already knows and could provide beforehand.
Example: Let users enter data into fields only to tell them afterwards that they cannot enter data there (e.g. an application lets you enter data on holidays or weekends and tells you afterwards that you cannot work on those days).
Recently while analysing a large (>15GB) tracking database on a BTS2004 install, my trusty friend HAT was coughing and spluttering - and moaning about timeouts. Here's how to increase the timeout value : (from a MSDN arcticle) -
Click Start, click Run, type regedit, and then click OK. -
In Registry Editor, locate and then click the following subkey: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\BizTalk Server\3.0 -
If there is a Tracking subkey, go to step 6. -
To create a Tracking subkey, on the Edit menu, point to New, and then click Key. -
Type Tracking, and then press ENTER. -
Locate and then click the following subkey: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\BizTalk Server\3.0\Tracking -
On the Edit menu, point to New, and then click DWORD Value. -
Type ConnectionTimeout, and then press ENTER. -
Right-click ConnectionTimeout, and then click Modify. -
In the Edit DWORD Value dialog box, click Decimal. -
In the Value data box, type the value in seconds that you want to set for the query timeout value, and then click OK. -
On the File menu, click Exit.
*** NOTE: the timeout value I've noticed only works with a value up to 30000. Any higher causes this value to be igorned. (From what I've noticed) ****
With BizTalk 2006 R2 rounding the corner into the home leg, the folks in the CSD (Connected Systems Division - Biztalk, .NET, WCF, WF) have been very busy!! :)
We're looking down the telescope at BizTalk 'vNext'.
It's current name is 'BizTalk Internet Services' which offers a bunch of services for the 'cloud' (aka internet based wcf services). My personal favourite is the relay service.
Alot of functionality that previously existed in BizTalk has been pushed down into the .NET framework 3.x/4.x (WCF Services etc.)....allowing the BizTalk team to focus on some really cool new BizTalk features.
Here's an email I got earlier from Marjan from MS.
----------------------------------------------
As you may have heard, for the past year the Connected Systems Division has been incubating a set of building-block services that will shape the next generation of application development. On Tuesday the 24th, we will open the incubation of BizTalk Services to the public by inviting developers from all over the world to use the services and provide feedback.
BizTalk Services will be available via labs.biztalk.net. (UPDATE: OPENS 24th Tues - US TIME)
What are BizTalk Services?
These services, which have been in internal incubation for the past year, represent hosted versions of some technologies developed in the Connected Systems Division. Included in this set of services are:
o Message routing – think of this as firewall friendly B2B messaging (Available now)
o Simple publish/subscribe event brokering – Pub/Sub at Internet scale (Coming soon)
o Simple federated identity and access control (Available now)
o Workflow processes – Simple templates for cross-organization integration and the orchestration of business processes interacting with multiple services (Coming soon)
(Just had to stick 'The cloud' image in :)

I recently got an email to inform me I was able to participate in the CSD Technology Advisors program.........
Basically I can sit down and give MS feedback on what works, what doesnt - "the button should be moved over 2cms"..... Specifically about BizTalk, WCF, WF, .NET 3.x, 4.x oh and did I mention BizTalk??
I've had an interesting discussion this week with some of my fellow BizTalk MVPs and also a few MS folks.
Here's the crux of my beef. 1. Stop a Send Port or Orchestration - it is still Enlisted but in the Admin Console it's stopped. (at this stage - you're stopped and my 'stopped' are the same) 2. Shoot a message into BizTalk destined for the stopped Send Port or grab one of the queued up Suspended-Resumable messages and say "Resume" (mind you, you do have other options here of Resume in Debug Mode etc) 3. Guess what happens?? BizTalk Queues the message up as it knows the corresponding Send Port is stopped???? NO!!!!! BizTalk will send the message through the STOPPED send port - (bang head against wall) 4. This 'feature' IS useful for when BizTalk receives a flood of msgs and an issue arises downstream (backend system or so) and you can 'trickle feed' A msg to the back end system. 5. I think this functionality should be tied into some sort of 'Resume for Debug' type wording. Something to indicate that it's an 'unusual' circumstance. 6. The terminology within the Admin Console is what I have an issue with. The port is Stopped, an NT Service is STOPPED, an application is 'stopped' - so these terms of stopped differ in the biztalk world. 7. Outcome of the week's discussion: MS are looking into changing the terminology within the Admin console. 
With over 6000+ EDI schemas and a brand new home grown EDI engine that WORKS!!!! (like BTS2000/2002 days)
Here's a great article that talks about the support for various schemas from the BizTalk Team. http://blogs.msdn.com/biztalkb2b/archive/2006/10/14/edi-support-in-biztalk-server-2006-r2.aspx
---snip ---
EDI support in BizTalk Server (BTS) 2006 R2
Hello all:
BTS2006 R2 provides for design and run time support for six encoding standards and includes over 8000 ‘standard’ XSD schemas 'in the box' ready for implementation. Please do understand that these schemas will only operate with EDI systems in BTS 2006 R2 and are not compatible on Base EDI Adapter (BTS 2004 and 2006 versions). In forthcoming topics I will include documentation on how to modify/customize these schemas.
One of the most asked question is the on a listing of the Version/Release schemas supported in BTS2006 R2 – Microsoft EDI. So here goes:
* included in Beta 2 release.
NOTE: VICS and UCS will not be included in BizTalk Server 2006 R2.
Eric (MS) has been working hard in providing us (loving your work Eric!) with updated BizTalk documentation. The folks are doing a great job over all of this. This is a massive PDF - a single one which encompasses a great deal of things within it.
Here's the email I got earlier.
------ Hello, We have provided a new, updated Monster PDF of the BizTalk Server 2006 documentation set. It is also available off of a link on the BizTalk Server 2006 Developer Center at http://msdn.microsoft.com/biztalk. Highlights include:
· The PDF is in a self-extracting zip file that is approximately 57megs. · The PDF tips the scales at 117 megabytes and includes almost 20,000 pages. · Links are rendered in blue with underlines but do not work. This may be addressed in a future enhancement. · Searching may be slow due to the size of the document. · Feedback, banners, and other content items have been removed to improve the PDF experience.
If you have any comments including ideas for PDF subset collections or for other content, please send them along. Thanks, Eric
Any day now.....it'll be making it's way to the download area and then refreshed by the web front end servers and then.....viola!!! It will appear as a download.
Some great improvements around EDI (6000+ schemas out of the box) - WCF + WCF adapters. - there's a new LOB Adapter SDK that allows us to develop Adapters WITHOUT the need for BizTalk. So your one adapter has legs in many different apps. - lots more.....
Stay tuned......there's some great WCF channel examples being called by BizTalk in the pipelines.
Should see it under http://www.microsoft.com/technet/prodtechnol/biztalk/2006/default.mspx I guess sometime in the *very* near future.
We're supporting some clients through the R2 TAP program which is always an adventure :)
Well I'm making my way back from the MVP Summit and we got to spend
nearly 2 days bending the ears of the BizTalk product team - the
correct term now is The Connected Services Division (CSD) which includes todays technologies of: BizTalk, WF, WCF, .NET Framework and Orcas - so all these things are just 'going' to work going forward.
Here's the things that I'm allowed to talk about.... MVP Summit Day 1 - Registration - for
the previous 4 days I had been skiing up and around Whistler in some
fantastic snow with my cousin. What an experience!!! First time there.
- Seattle,
cold and raining but it's fantastic to be here as there's a buzz in the
air. A thought did cross my mind of "How are we going to have a
conversation at this Summit if there are more than 1 MVP in the room?"
- if you've ever been 'lucky' enough to have 3 or more MVPs in a
room....I'm sure you'd be able to finish all your lunch before you
could get a word in edgeways.
- Met up with some great fellow
BizTalk MVPs (Alan Smith and Charles Young). Charles and I worked
together when I was back in the UK and it's great to hear that he's
stalking his 12 yr old daughter boyfriend and the deeply troubled when
the words "I love you" came out during a phone call he was listening in
on. :) - looks like I've got all that ahead of me :)
- Caught up with MVP Borty and the crew and we went to our APAC regional dinner that evening.
- One
of the highlights of dinner was all the Korean MVPs did a Taekwondo
demonstration (I'm sure it's on YouTube by now) of breaking boards.
There was also some karaoke going on in Japanese (I think) - this one
guy was great. It was sort of a 'Red Faces' night. We then crashed the
Windows Mobile MVP Party at Gamesworks.....get's fuzzy from there
MVP Summit Day 2 - KeyNote + Joint Sessions - what
an experience! Bill Gates gives a keynote on MS and all things, then
opens up the keynote to 1 hour of Q&A to all the MVPs.
- Bill
copped a couple of Salvos from MVPs (who I reckon wouldnt be MVPs next
year :) but in true Bill style put his poker face on and smiled and
answered the questions. Not flustered at all.
- The group all
called him "Bill", some called him "Mr Gates" and the Japanese MVPs
called him "Mr. Bill" during all the Q&A.
- He fielded
questions like "What's your favourite product?", "What hasnt
performed...". Something that sticks out in my mind is when a guy came
to the microphone and thanked Bill for enabling him to have a career in
computers so he could provide for his family (I'm thinking where's the
question..). He then says "while cleaning out the garage he came across
a computer manual that his dad had when he was 8" - the manual as it
turned out was the very first manual for the pre-cursor to MSDos that
Bill's then company had created. You could even get Bill on a support
number in there! (I'm thinking that's gotta be worth a fair bit) The
MVP then ASKED BILL TO SIGN his book!!!! Bill couldnt refuse and $$
just turned into $$$$$ for the book - very funny.
- For the
next session I attended the Developer Division Roadmap delivered by the
Program Group VP - S Somasegar (Soma). Soma spoke about Orcas,
.NET 3.5 and additional plans for TFS capturing more business
data/information within the process.
Soma then talked about WPF/e
and the Friction free deployment capabilities. Brian Goldfarb then
jumped up and did a great demo on WPF/e with inking and working with
rich content within WPF all delivered down via the browser. Some very
cool things in the future are instore. One thing I will say -
regardless of how it's delivered and what you do with it.....you still
need good original content in the first place. Videos, Images etc. They
can be manipulated easily, but originally it needs to be there. All in all a great session filling in alot of the medium-long term visions. - I
then caught a session on LINQ with Anders Hejlsberg. Anders then showed
us some of the up and coming XML features with C# and VB.NET 9.0 -
autogenerating LINQ code from XML! All very nice.
- We all then
went to the Museum of Flight that night where we got to play in flight
simulators and go for a walk back in time. I spent some time getting to
know a fellow BTS MVP Alan Smith - he's based in the UK and does a fair
bit of travel spreading the news in the land of BizTalk.
MVP Summit Day 3 - Deep Dive Sessions around BizTalk and Connected Systems - For
this day we were off the Microsoft Campus and for the most part I was
based in the Adams room within building 43. We setup camp there for the
day.
- The first session was delivered by Sonu Arora and Jesus Rodriguez talking about the new LOB Adapter SDK based of WCF Services. Essentially creating 'adapters' had been an exercise repeated in multiple application environments.....but!!
not anymore. The adapter creation process has been pushed down into the
.NET Framework and 'adapters' are available for all applications......this means.....using the LOB Adapter SDK you dont even need BizTalk to use it!!! Sonu
demonstrated some great demos and one of the major differences I picked
up here from a traditional WCF Service is that these new adapters have
the capability to perform dynamic schema lookups. Essentially have one
WCF Service that is able to return multiple contracts (many hundreds in
some cases). A very good session.
- The next session was
delivered by Gruia Pitigoi-Aron. He focused on extending this new
adapter framework with a couple of Custom WCF Channels that BizTalk
communicates to throughthe WCF Custom Adapter in R2. By controlling the
WCF Channel (c.f. to a pipeline where we have an entry...then an exit)
we are able to loop, correlate and send out multiple request/responses
within one channel. All while BTS is calling an Adapter. I'll have to
start looking into this 'out in the wild' to get the true gist of
what's going on. It's a step closer for BTS to play harmoniously with
WCF. One thing I do remember from the way WCF Channels are called
through the custom WCF Adapter is that BTS will call the Async Channel
methods of BeginRequest, EndRequest + the sync of ProcessRequest.
- The
next session was given by Marty Wasznicky and advanced DR for
BizTalk. He had a great setup on his laptop, 5 servers, 2 biztalk, 2
sql and an SSO. Through the demo he stopped and started various
services to simulate the failing of various components within
BizTalk. At this point in the game, SQL 2005 database
mirroring is not supported as this doesnt play nicely with distributed
MSDTC transactions native to BTS. Some good indepth stuff on
messageboxdb, how instances are locked by a MessageAgent running in
various instances.
- Lunch :)
- We then had a session
from Tapas Nayak demonstrating a real life implementation
of the SAP Adapter based on the LOB Adapter SDK. The main take
away from this was that there was over 300 different contracts that the
SAP adapter could return for consumption from the client. Dynamic
contract lookups and caching services came to be the focus for better
flexibility and performance. Very cool adapter framework.
- Then
Pravin Indurkar gave us an insight into the next Gen WF and WCF which
will be part of .NET 3.5. The integration between these two
technologies is made seemless now. There is a WorkflowHostService and
things just get easier from there. WorkflowInstanceID is now part of
the native WCF Operation Context that gets passed between the two
worlds.....makes life very easy. This allows for 'conversations' to be
had between WCF Services and WF workflows. Also long running WFs can
find a return path back out of the service even if the
channel/connection is closed. If I was a betting man I'd be saying that
alot of the underlying functionality here, has been modelled off
BizTalk
- Next my good friend was Paul Andrew was up, a MS
product manager, spoke about WF vs BTS. It's always and either/or type
message, never a 'you know what, these two technologies can live in
harmony!'
- Next session was delivered by Brad Paris and Tiho
Tarnavski - "WCF and WF BAM interceptor extensions in R2". The
essence behind the new interceptors is that they piggyback off
the WF tracking infrastructure. Which is similar to BTS and
the TDDS Service controlling the movement and population of BAM
information from within BizTalk. Once again to use these
interceptors we dont need BizTalk. When creating a BAM EventStream using the BAM Client APIs,
we usually pass a connect string to the MessageBoxDB. With these new
interceptors we pass a connect string to the BAM Primary Import
Database. The streams that WCF and WF use are DirectStreams and not
buffered Event Streams. At this point there is no support from the TPE
(or equivalent tool) so we have to hand craft a large XML file to get
the Interceptor configured. I look at it and think....I reckon I'll
just use the BAM APIs directly......but I suppose that's not the point
:)
- When I was preparing RFID bits for the BPM Conference last
year in October I got well timed help from Anush Kumar. I met Anush for
the first time face to face - genuinly a great guy! He gave a great
presentation on RFID and the new Microsoft RFID Services framework. He
also told me that fish in Malaysia may be RFID tagged!!
- That
evening I went to the MS Company Store and cash in some chips - very
nice. Then we had dinner with the product team which was great to kick
some tyres with the crew. Great to see all you guys.
I'm currently at the MVP Summit at Redmond and ran into a fellow MVP Alan Smith - he had a nice technique *which is untested in production*. He did stress it was mainly for a developer machine. He referred to it a 'BizTalk Co-Hosting' which I had not heard it referenced to before. Co-Hosting (as described by Alan) What it is: - condensing the BizTalk databases down to 2 (a BizTalkDB and a SSODB) - simplier management/backup etc. NOTE: performance may be an issue here so keep that in mind. How to do it: - during the BizTlak Configuration stage, specify the same Database name for all the databases except SSO (as it doesnt play the game yet) - this means Management, MsgBoxDB, BAM etc etc etc.... - optionally set the RecoveryModel to simple on the BizTalk Database such that there are no log files to worry about :) When to use: - my bet would be on a developer machine where you want to simplify the BizTalk setup and problems that may arise from multiple distributed transactions with Business Processes from BizTalk. Note: We dont need to have ONE BizTalkDB either, we could have TWO or what ever number you want. e.g. ManagementDB + MsgBoxDB in one, and Tracking + BAM in the other. Enjoy, Mick.

Hi all I could start telling you about how great this bootcamp is and how you're going to get so much out of it, but I wont. I could fluff on about different technologies you'll learn and integrate with such as WinWF and WCF as well as CBR within BizTalk 2006 R2. Not stuff from text books but real world experience - we know what works and doesnt.
I could talk about the 'bigger' question - "What makes a good/great design?", "Is that a 'good' solution?"...or does it just limp by? I dont even want to talk about how when you come out you'll know why and where you'll be using WinWF and what BizTalk does for you. You'll also be very excited about the huge range of different messaging options available to you implementing WCF Services....but hang on! Doesnt BizTalk 2006 R2 expose WCF Services? Why should we host our WCF Service in BizTalk versus hand coding? When to hand code?
You'll also get a solid understanding of the BizTalk environment and we'll chat about pipelines, when a promoted property is not a promoted property. How Biztalk processes messages and performance, also let's have a crack at developing custom functoids, pipeline components and even adapters.
We're Business Process and Integration experts let's kick some tyres together. Through these bootcamps, we're going to share that knowledge with you .....the big question is: Are you ready for it?
Overview: This 4-day workshop provides developers with the tools to upgrade their 2002/4 skills and perform advanced orchestrations and training partner management. You will learn to use BAS and SSO, practice developing, managing and customizing adapters and creating custom pipeline components, all within BizTalk rules. This workshop also explores the new features of BizTalk 2006 R2 including developing & consuming WCF Services (Windows Communication foundation) for BizTalk.
Target Audience: Developers and IT professionals with previous experience working with BizTalk 2002/2004 .Net development. (Level 300/400)
Prerequisites: Before attending this workshop, students should have some experience with previous versions of BizTalk and .Net development skills.
Skills Gained:
This four day workshop will focus on: 1. Upgrading your skills from 2002/2004 to BizTalk Server 2006 R2. Connected Systems Roadmap to BizTalk 2006 R2. 2. Perform advanced orchestrations. 3. Gain an understanding of Workflow with in-depth hands-on scenario labs. Assess the difference between Windows Workflow and BizTalk orchestration engine. 4. Take advantage of Trading Partner Management using BAS. 5. Utilise SSO – store sensitive configuration data securely. 6. Develop and manage adapters (e.g. WCF adapters) 7. Create custom pipeline components. 8. Create custom adapters. (e.g. Split messages) 9. Create and work with Rules for the BizTalk Rules Engine.
Key Topics:
Module 1: Create and perform advanced orchestrations This module covers:- • Creating Correlated Orchestrations (e.g singletons, serial/parallel convoys) • Creating and utilising Message Context Based Promoted Properties • Creating Messages based on advanced classes/types. • Creating Direct Bound Orchestrations and exploring the relationship with the MessageBox Database. • Creating Generic Content Based Routed Orchestrations • Utilising Dynamic Ports and Role Link Shapes – the easy way.
Module 2: Creating Rules, Trading Partners and SSO This module shows you how to create rules based on: • Schemas, static classes and databases. • Rules Engine comprehensively explained, including the difference to Windows Workflow Rules Engine. • Calling Rules from Orchestrations and Custom Applications • Registry keys that control Rule/Rules Engine Performance Explore the relationship with Trading Partner Management and BizTalk Server 2006 R2. Including: • Setting up and creating Partners. • Creating custom Partner Parameters used in Processes • Utilising Partners Inbox/Outbox from within BizTalk 2006 • Further Trading Partner integration – RoleLinks explained. Taking advantage of SSO within solutions. • SSO under the covers. • Using SSO and the SSO APIs to store/retrieve secure configuration information.
Module 3: Exploring and Creating Adapters - Advanced This module will take you through exploring and creating adapters out of the box as well as how to create your own. A lap around WCF (Windows Communication Foundation) and customising WCF adapters. Working with the provided Adapters (e.g. MSMQ, Sharepoint, SQL & SOAP Port) Working with some community Adapters • Integrating with SQL Server 2005 Service Broker
Module 4: Creating custom pipeline components This module will examine pipelines and take you through creating your own custom pipeline components.
Module 5: Windows Workflow Foundation This module will introduce Windows Workflow and take you through the architectural concepts right through to building a workflow. Includes extending workflows with custom activities, why custom activities are important, when to write and how to build. In-depth hands-on scenario labs in this module.
Module 6: Investigating BAM and BAM APIs This module examines Business Acitivity Monitor (BAM). We look at BAM enabling your BizTalk Solutions including Related Activities. We cover setting up BAM Observation Models and working with the BAM APIs to “BAM Enable” your non-BizTalk Applications (e.g. WebServices)
Module 7: Optimising Performance & Deployment We look at examining your performance and creating the optimum environment. • Determining the maximum throughput of your BizTalk Solution • Configuring your BizTalk environment for maximum performance • Troubleshooting – where to start, examining & resolving issues. • Creating deployment scripts to fully deploy your BizTalk Solutions
Always great to find some good articles on the workings of BizTalk.
Lee Graber has given some outlines and numbers behind some decisions in his post:
Have you ever thought of using a Send Port Group? Why? - because 1 subscription is evaluated for all Send Ports in the group, hence reducing the load for the BizTalk Messagebox DB. Lee mentions that if you have 8+ identical subscriptions(filter expressions) on individual Send Ports, then consider creating a Send Port Group and adding the Send Ports to it. http://blogs.msdn.com/biztalk_core_engine/archive/2004/07/22/191888.aspx (check out the last paragraph)
A collegue of mine pointed me in the direction of this whitepaper http://msdn2.microsoft.com/en-us/library/bb220799.... that talks about
Building Interoperable Insurance Systems with .NET 3.0 Technologies (me being onsite at the moment at a financial services client - this comes in super handy!) Talks and walks through the design and developing tooling and problems faced during implementation. A great article to get a feel for some of the issues at hand.(look past the SQLServer 2006 mentioned on page 2 :)
Enjoy.
I recently came across this great article that covers: - Microsoft's internal BizTalk 04 - 06 upgrade
- discusses biztalk 32-bit vs 64-bit performance gains
Grab it here - http://www.microsoft.com/technet/itshowcase/content/biztlk06upgtwp.mspx (dont forget to grab the 'technical whitepaper' download on the RHS) Here's a snippet from the document ----------------------- Each of the 32-bit servers that ran BizTalk Server 2004 had a total processing power of 19,661 MIPS. Generally, the e*BIS group did not experience any performance or reliability issues with its BizTalk Server 2004 configuration. The 32-bit servers provided a robust and reliable platform upon which to run BizTalk Server 2004. One of the limitations that the group thought might affect its BizTalk Server environment is that in a 32-bit environment, a single process cannot consume more than 1.5 gigabytes (GB) of RAM. This limitation could cause problems in the future, as BizTalk Server hosts consume and process an increasing number of transactions within the same CPU cycle. This limitation does not exist in a 64-bit computing environment. Therefore, the group expected to achieve better throughput and better performance by running BizTalk Server 2006 on a 64-bit server. Because of the support for 64-bit computing that is included with BizTalk Server 2006, the group determined that it could not only consolidate all of its business feeds into a single BizTalk Server 2006 environment but also greatly reduce the overall number of servers in that environment. ------------------------
Lee Graber (the man behind all things SQL and LOTS of other areas within Biztalk) has posted some great tips around the BTS Message box - interacting with and what's 'changeable'.
Check it out - thanks Lee (one for the bookmarks folks)
I'm thinking this is a bad thing if you want dynamic resolution. I've experienced this with both the XMLReceive and a Custom Flat File Receive Pipeline (I built). 1. Both worked a treat - '5 minutes ago' as I've been working away. 2. Went into the BizTalk Admin console and 'adjusted' a property on the pipeline at the receive location ->clicked on the '...' button next to the pipeline. 3. Even if you dont change anything and hit OK...you're affected. 4. XMLReceive + FlatFile both complain about ' blank document schema' which must be specified. (as in this case I'd changed a few things coding....it took me AGES to come back to here) I even explicitly supplied the correct schema as a property on the FFDASM component I was using and no go! 5. Resolution: go back to the pipeline within the receive location (or send port) and select another pipeline from the list. Click OK to close the property window, then repeat and add your original pipeline but dont go into the pipeline per instance properties pages
Why does this happen??? (yeah good question :) Basically both the XMLDASM and the FFDASM take precedence with Per instance pipeline config properties than *anything* else you provide. e.g. Dynamically processing a flat file - check the SDK example, but here's a pseduo version. ..... //Flatfile schema resolver - normal technique. DocumentSchema docSpec = ......determine which deployed schema to use.
//this line basically tells the Disassemblers which schema to apply. msg.Context.write("DocumentSpecName","<system namespace xml-norm>",docSpec.DocSpecStrongName); _myFFDasm.Disassemble(msg); // line - *
These above lines will work for a year and a day (I've tested this) and in both 2004 + 2006, but NOT when you add perinstance pipeline configs - it seems all 'dynamic-ness' has gone out the window.
When per instance pipeline config is specified, this config data is provided as a Message Context Property (ReceivePipelineConfig) and XMLDasm + FFDasm only look at this for their values - painful.
So as in my case, I hadnt specified a Document Schema within the pipeline config as this pipeline was dynamic (c.f. like the xmlReceive). I explicitly assigned a Schema to the FFDasm.DocumentSchema property and still got the same error as before.
Removing the Config Data did the trick :)
Given that this is the case - I think when you hit 'OK' to save the pipeline config data a warning/message of some description should come up as you may be wanting to modify 'one' value - 'omit xml declaration' for example. The rest of the properties are written in as blanks.
Hopefully I've saved you a bit of pain from mine.
On the whole - BTSTask.exe is a great improvement over BTSDeploy.exe in 2004. A couple of things I wouldnt mind seeing in this tool - the ability to start/stop deployed applications.
Big Gotcha Something I came across after my large scripting effort.....it goes something like this.... (1) 3 biztalk applications - a 'Core' and Two others. (2) For the 'Core' apart from Schemas, Maps, Pipelines + Orchestrations; I had 1 COM Assembly, 2 custom adapters, 4 custom functoids and 3 custom pipeline components
So a reasonable sized deployment that needed to easily be deployed into test/production.
My line of thinking was - "If I could get all the associated *.dlls deployed into the BTS Core Application wthin Development...all would be good." So as we know we can go through the BTS Admin Console and add resources/files/bindings etc. to our application (with various options), that way when we say "Export to MSI..." it's self contained.
The PROBLEM is in the 'Destination Location'.... Using the BTSTask AddResource..... setting the '-Destination:' parameter works a treat (IF your destination location exists within development environment!)
Let me ellaborate.... Development: e:\projects\<project name>\BizTalk\ - maps - schemas etc.... Associated *.dlls - found e:\projects\<project name>\CommonBin\Release
Testing/Production: d:\Applications\<project name>\CommonBin...etc. etc.
So the drives are different and what's more, there is NO d-drive in Development....hmmm....I thought.
(I didnt have a 'demo' project to highlight this....so I've removed company info from below)

Where I want to focus is the 'Destination Location'
These 4 assemblies are deployed using VS.NET 2005 straight from the developers desktop. (When using BTSTask AddResource....-Destination:<loc> - loc has to exist at time of adding and 'exporting MSI' - bts validates)
Export to MSI...fine MSI finally created.
Installing the MSI file in Production/Testing Upon performing MSIEXEC /quiet /i Core.MSI FOLDER=d:\Applications\<Project Name>\CommonBin\ I ended up getting a 'msi package deployment' - a guid as a foldername with *.CAB files underneath. No *.dlls etc to be seen.
Importing Into BizTalk Went to BTS Admin Console and did ImportApp - all looked good.
Then went to the D-Drive and found no new files?? where were my biztalk files? gac-ed files etc?
The ones that needed Gac-ing - found copied to the GAC The BizTalk ones Schemas, Maps etc - found in E:\projects\<project name>\<development project path>\Bin\Deployment\.....smooth! :-(
As far as I can tell this is attributed to the already existing 'destination location' within the MSI on the BizTalk artifacts.
So the reason why it's soooooo close is that if we could override this (i.e. the above FOLDER= parameter takes effect) then all would be sweet in going from environment to environment.
As it stands at the moment, I'm deploying all the files to Testing building the MSIs there and then deploying to Production with all the correct paths hopefully.
Thought I'd save you some tears.
My fellow partner in crime from our Sydney User Group has taken up the challenge and launched a blog!!!
Mark Burch has been solving all sorts of Microsoft PSS BizTalk 'challenges' - great to have you onboard Mark!
He's got a wealth of knowledge and he's on the 'inside' (works for MS) - so he might tell you the best tips for the next race or some get down dirty into the land of BizTalk (as we know, that land is growing)
Watch out Mark...these blogs are addictive...
Mark's Blog -http://biztorque.net/
More and more often your beloved BizTalk 2004 box gets more and more 'things' (in Vista they call them 'gadgets') to run apart from the Biztalk Service. Generally you'll find before long that these things will require V2.0 NET Framework (which is pretty cool)
You'll then find BizTalk 2004 grumbling about all the new routines in the .NET Framework V2.0 that it has no idea about (rightly so)....so...........the way I see it (1) Upgrade to BTS 2006 - sensational! performance, .NET Framework 2.0, Adapter City......but this isnt always possible........
or
(2) Add the following to your BTSNTSvc.exe.config file inbetween the <Configuration>... tags <!-- To ensure .NET Framework 2.0 isn't used on machines where it exists. --> <startup> <supportedRuntime version="v1.1.4322"/> </startup> Sorts all your Framework mismatch errors..... I'd even add it now as a precaution Enjoy!
Onsite the other day I noticed the Admin Console running poorly. Fiddling around with SQL Native Client settings, if we put TCP first on both SQL Server + BizTalk machine - all's fine (as opposed to Named Pipes) Not sure what's going on there...but one to watch out on. Mick.
An interesting thing happened on this project the other day, I wanted to call a WebSite (i.e. do a HTTP GET, then grab the HTML Response) just to make sure that it's up and running. It wasnt a webservice call, just a standard HTTP GET and HTML is returned (bit like going to the Cricket sites, to see the current scores! :) I created an Orchestration with a msgResponse = Microsoft.XLANGs.BaseTypes.Any (this was coming back from the WebSite call) I then sent it straight back to the caller - using PassThru pipelines where ever needed, as this message had HTML and not XML, so no XML inspection could be done. As the goal posts moved, I then needed to Inspect the HTML Response for a certain Version value within the HTML Response. I thought " How do I do anything with a Message type of 'Any'?" 1. Could I just send it back out to disk, a folder...when I open the resulting file it appears all there. 2. Transform it into something more meaningful?? 3. Send it to a helper class for further processing? My problem was that the response was a HTML message and not a XHTML Response.I even threw in a helper method from within an expression type to try and get the type. e.g. EventLog.WriteEntry("I got " + Type.GetType(msgResponse))
One of the problems I had was that I couldnt declare a helper method of public static string GetMessageAsString(Microsoft.XLangs.Any msg) {.....}
The compiler jumps up and down and does nasty things to you! What is the type of 'Any' in C# is the 64 million dollar question. We know that all common Orchestrations Messages can be passed through as an XLANGMessage with it's parts + properties. All good. (I tried this, it failed miserably) After sheer determination and having an overloaded helper method with 10 different possible types (I was racking my brain from XLANGMessage, to BTXMessage, to Object....etc) the type that relates the 'ANY' element is XLANGPart as follows: public static string RetrieveMessageAsString(XLANGPart pt) { StreamReader rdr = new StreamReader((Stream)pt.RetrieveAs(typeof(Stream))); string s = rdr.ReadToEnd(); return(s); }
NOTE: This doesnt deal with different byte encodings, but is easy enough to implement.
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
|