BizTalk’s mapper allows drag and drop replace

I learned a little trick the other day about the mapper which I have never seen documented. It works for BizTalk 2004 and also 2006.

Have you ever had to change a functoid and gone thru the task of dragging the new functoid onto the grid and then reconnecting all of the lines, then having to check to make sure you got them all in order?

Well, what I realized quite by accident is that you can actually just drag the new functoid over the one you want to replace and all your links will maintain themselves. The old functoid will disappear and be replaced by the new one.

Of course there is a limitation when you have different maximum inputs, etc, but for the most part this works with everything else.

Debugging BizTalk Maps and XSLT’s…

Did you ever want to debug a BizTalk map, or any XSLT for that matter? VS 2005 has a great new feature that enables you to do just that. If you are using BizTalk and want to debug your map here’s what you do:


 



  • Right click the BizTalk map and select “Validate Map

  • In the output window you’ll see a link to the .xsl, click on the link to bring it up in VS

  • Right click the .xsl and select “View Source

  • At that point you can set break points in your .xsl

  • Then select”XML / Debug XSLT” – at which point you’ll be able to step thru the XSLT

Debugging BizTalk Maps and XSLT’s…

Did you ever want to debug a BizTalk map, or any XSLT for that matter? VS 2005 has a great new feature that enables you to do just that. If you are using BizTalk and want to debug your map here’s what you do:


 



  • Right click the BizTalk map and select “Validate Map

  • In the output window you’ll see a link to the .xsl, click on the link to bring it up in VS

  • Right click the .xsl and select “View Source

  • At that point you can set break points in your .xsl

  • Then select”XML / Debug XSLT” – at which point you’ll be able to step thru the XSLT

BizTalk and remote SQL on cloned machines – MS DTC issue

While configuring BizTalk with remote management database in pre-production environment I ran into some tricky problem. At Server Group configuration stage received following error:


 


Failed to deploy BizTalk system assembly “D:\Program Files\BizTalk 2006\Microsoft.BizTalk.GlobalPropertySchemas.dll”.


The transaction is in doubt.


 


Cannot open database BizTalkMgmtDb on server btssql001.Verify that you have the required security permissions and that communication between Distributed Transaction Coordinator services on the machines involved is not prevented by current DTC security,   firewall or authentication settings.


 


I followed all DTC configuration recommendations described in the multiserver installation documentation and there wasn’t firewall between boxes.


 


Running DTCTester and DTCPing helped to nail down the cause. DTCTester test transaction failed but DTCPing showed successful RPC test although there was a message in the log that both boxes had the same CID. That was it – boxes were cloned so was the registry entry with MSDTC CID (HKEY_CLASSES_ROOT\CID). Uninstalling and installing MSDTC followed by rebooting cured the problem. Now we know how cloning can be bad J

Thank God for BizTalk 2006

This past week, I had the joy of helping out a Client with BizTalk 2002.  Wow, I haven’t said this in a while!  I decided to jump in my time machine and do an install….Windows 2000 with Visual Studio 6.0 and BizTalk 2002.  I was surprised that I got this working in a short amount of time with no errors!  I fired up the infinite amount of user interfaces for the product and began waking up some of my dormant brain cells pertaining to 2002.


So when you look back at the product, is it really that much different?  You have an editor, a mapper, an orchestration designer…wait, disregard my last sentence.  All I can say about the 2002 orchestration designer is…Yuck.  I then was overjoyed to bring up the Messaging Manager and navigate my way through the Channels and Ports…boy, this was a confusing product, but I will admit that we did get it to work!!!  All I can say is Thank God for BizTalk 2006!  What a difference in just a few years.  I just love looking at old VB 6.0 code….On Error Resume Next and fall through and not catch an error and wonder why it doesn’t work and blame it on BizTalk!


I was able to help out our Client and get them moving in the right direction.  They had some interesting issues, but didn’t know where to look to resolve these issues.  I’ll make a statement here and I don’t think I’m going to shock anyone:


A MAJORITY OF BIZTALK ISSUES THAT I COME ACROSS ARE NOT RELATED TO BIZTALK AT ALL, BUT RATHER EDUCATION ON THE PRODUCT AND IT’S CAPABILITIES.


Installing BizTalk does not mean that you automatically have a good design in place and are free from bad coding.  Do you agree?


 

Whole buncha stuff

So it has been a while. In the mean time, WE SHPPED!!!! It is such a great feeling. I have been on this team for almost 7 years now and this release is defnitely the best (one would of course hope that every release is better than the previous but you never know 🙂 :). I am super happy to have this out there and hope you are all going to be really happy with it and we are already working on really cool stuff for the next release. There is rarely a break from inovating. 🙂 🙂 However, I did manage to take two weeks recently and go to New Zealand which is an absolutely amazing country. You Kiwis really know what is up. Even if a town has only 5 buildings (one of which will always sell fish and chips and the other will have postcards of sheep), you can always find an information bldg which will tell you everything to do, book it for you and send you on your way. It is the best country for tourists. I went surfing, caving, kayaking, glacier hiking, tramping, river surfing, bungy jumping and lots more. It was awesome. I am also apparently now a Hurricanes fan cause the Crusaders win too much and the Blues, well, they are the blues. 🙂 🙂  I think I should spend more time with customers in New Zealand … we’ll see.


My role on the team has changed a bit and now I have a team to help work on all the great features. Sumitra S has been working with me for a while now and I am going to work on getting her to post to this blog as appropriately. She rocks and along with a bunch of work on the messagebox core functionality she wrote the (internal) OM which exposes all of the data and operations in the Admin MMC Group Hub Page. Also joining us now is Adrian Hamza after working on the Share Point adapter most recently He has his own blog which you should all checkout at http://blogs.msdn.com/ahamza. He is great and we are really looking forward to his work on the core engine. Craig C has also joined the team and will be helping define some of the long term direction we are going towards. Should make an awesome team. 🙂 🙂 🙂


So now maybe I will give you some good technicall details so that you are not just reading fluff. 🙂 One thing I have really wanting to post are some learnings I have had with using Yukon and 2 tips that could really help some people avoid the gotchas that we hit when porting code directly that must run on both Yukon and Shiloh (I’d post more but it is 1 am).


1) After a number of conversations with the optimizer team, we discovered a hidden gem in the use of WITH SCHEMABINDING on UDFs. Our UDF simply took in three datetime variables and did a somewhat complex comparison of them and returned 1 or 0. It did not touch any tables and so did not affect any data. In Yukon there is a new feature / attribute associated with a UDF called SystemDataAccess. This property can be seen via:


SELECT OBJECTPROPERTYEX(OBJECT_id(’<MyFunction>’), ‘SYSTEMDATAACCESS’)


Without the WITH SCHEMABINDING option, this property is always set to 1 so the optimizer assumes that you might access the data and will add sort / spool to your plan to protect itself from data changes. Adding the schemabinding hint, causes the function to be parsed when it is created and then you can see this property set to 0 and the sort / spool disappears. It is really quite nice and can be a very large perf improvement which I believe will be KB’d at some point. In our case, this is a major gain in the performance of dequeue for large queue sizes. Thanks to the SysRepublic guys for discovering the perf issue with large queues and triggering this discovery. You will find that our peformance for large queues is better on Yukon in some scenarios because of this .


2) Always owner qualify tables and sprocs / udfs which you execute. SQL plan cache access actually uses this as part of its lookup in the cache and missing this can cause a certain amount of extra cache misses and plan (re)compiles resulting in higher CPU utilization and potentially lower performance. What I mean is instead of “SELECT * FROM Foo” you would write “SELECT * FROM dbo.Foo” assuming the owner of Foo is the dbo. Unfortunately this is something we found too late and it actually didn’t make it into our RTM bits as it was not a functional bug and was such an extensive change that we could not risk our RTM date since we had reached our perf goals. We are pushing to QFE this, though, and I will let you know if / when this happens. All it means is that in certain scenarios, on Yukon, we would use more CPU than on Shiloh.


These two things are just so wierd that I figured I would post about them as case one could be a big gain for those who do this (which might not be a lot of you) and case two is probably all of us and these are fixes that can do which have no effect on Shiloh but can have large gains on Yukon. Hope this helps some of you and I expect the Yukon guys will KB this stuff at some point (as well as investigating why #2 is currently worse than Shiloh).


Next time, I will post something cool about BizTalk, but now I have a coulpe more things to catch up on before I go to sleep. 🙂


Thx


Lee

ENTSSO and Password Synchronization

ENTSSO and Password Synchronization

A long time ago, I commented that I was surprised that the Enterprise Single Sign-on
(ENTSSO) service that came with BizTalk Server 2004 (and Sharepoint Portal Server
2003) was so manual based: Users needed to keep their credentials and mappings updated
by hand, and even so using very awkward console applications.

Apparently, however, this was an scenario in mind but, I think, not implemented in
the V1 version of ENTSSO that shipped with BizTalk 2004. However, Password Synchronization
was added to ENTSSO for version 2.0, which came out with Host
Integration Server 2004!

As I understand it, the model around password synchronization is having adapters hooked
into ENTSSO that can notify it when either a password change has been made in the
Active Directory (or another system for which an adapter exists) so that the ENTSSO
can update the password stored in the Credentials Database (SSODB), and even forward
that notification to other systems so that full synchonization can be done. This feature
is included in the ENTSSO version of BizTalk Server 2006, by the way, though the stuff
necessary to support has to be installed explicitly.

The way I ran into this information was while researching the ISSOPSAdmin interface
of the ENTSSO API in the BizTalk documentation, which is the programmatic interface
you can use to configure and manage password synchronization adapters:

namespace Microsoft.EnterpriseSingleSignOn.Interop

{

   [InterfaceType(0)]

   [Guid(“C35718F9-C35C-4cd4-8978-2B4CE1792F1B”)]

   [CoClass(typeof(SSOPSAdmin))]

   public interface ISSOPSAdmin

   {

      void AssignAdapterToAdapterGroup(string adapterName, string adapterGroupName);

      void AssignApplicationToAdapter(string applicationName, string adapterName);

      void ClearDampingTable();

      void ClearNotificationQueues(string adapterName);

      void GetAdaptersForAdapterGroup(string adapterGroupName, out string[]
adapters);

      void GetApplicationsForAdapter(string adapterName, out string[]
applications);

      void RemoveAdapterFromAdapterGroup(string adapterName);

      void RemoveApplicationFromAdapter(string applicationName);

      void SetAdapterProperties(string adapterName, IPropertyBag properties);

   }

}

 

You can find out more about ENTSSO and about the password synchronization mechanism
in this MSDN WebCast: Enteprise
Single Sign-on integrated with Microsoft BizTalk Server 2004 and Microsoft Host Integration
Server 2004
. It has some good scenarios that show where ENTSSO can be used, as
well as some good demos.

Participation Oriented Web Sites Part II

Participation Oriented Web Sites Part II

Participation Oriented Web Sites Part II


In my previous post  I introduced the conceptual model and logical model behind Participation Oriented Web Sites.


In this post I would like to concentrate in the mashup social arena by looking at examples and implications of how people reuse existing web content to support BYOC


Let us start by looking at the Participation Oriented Architecture of the MashUp EcoSystem



As you can see this architecture is built upon existing SOAs and data services and utilities.


Put it simply as of today the internet has over 8 trillion web sites, the majority of them are individualistic, disconnected, unique in some ways.


The idea behind mashups is that there is a shift in the decrease of the entropy of the web content towards a more structured sense, where entropy is a measure of disorder/chaos.


So what is the secret to aggregating the best content from the top few websites out of the trillions available already, not mentioning the near quadrillion images available aswell?


Take a look at the best web 2.0 sites of 2005


Take a look at the web 2.0 awards of 2005


Next take a look at the following web 2.0 site usage analysis



 


 


As you visit each site individually you will notice that there is a hierarchical trend of influence.



1st most inflential characteristic to any succesful web 2.0 site is the Users naturally.
2nd most infleuntial characteristic to any succesful web 2.0 site is the Data the users provide via BYOC.
The least most infleuntial characteristic to any succesful web 2.0 site is the Functionality engine that users leverage to BYOC.


So the advice to any web 2.0 bandwagoner, is plan very carefully.


Concentrate initially on your social market, and then focus on the data services that they can provide.


When you have the first two questions answered, then focus on the technologies and how best to leverage them.


So we now have an understanding of where the internet has been, and where it is now in the unstructured/structured arena and we have seen how people play the pivotal contributing part towards reuse of web content.


But is there going to be a point in time in the near future where human behaviours will be captured and automated?


Will the internet evolve towards a state of decrease in entropy on its own momentum(ie everthing will become more ordered and categorised) and will this be enabled by automating systems to provide the ultimate in UKM Universal Knowledege Management?


Will the future websites automate BYOC ie autoaggregate content themselves. ie Will there one day be a automashed web site? what do we call that Web 3.0?


Human Participation Oriented Web Sites ie Web 2.0 => Auto Participation Orinted Web Sites ie Web 3.0


hmmm 2010 maybe or even sooner?


It’s that time of night again where my brain goes into the twilight zone, so i’ll stop speculating here for now.


BTW When will dotnetjunkies sort out the user comment issue, that has been sabotaged by the comment spam filters?


Donny Mack long time no hear friend, so what’s the eta for the fix for this content management software bug?


Did I not ask this same question this time last year?


I would love to get back my user comments visible on the blog itself.


Currenty I can only get them by the email link.

Customer Reviewers Needed for Transacional Adapter Whitepaper

I have been working the past month on a whitepaper entitled, “Developing a Transactional BizTalk Adapter Using the Microsoft Base Adapter Classes“.  It is almost ready for customer review and I would greatly appreciate any feedback before I finalize it.  My asking for your comments is not to have you check the validity of my technical content or give me grammatical recommendations. Rather, I want comments like:



  • “Please explain topic X to me more. I have never understood that and Microsoft has not done a good job of that”.

  • “Can you add a section on Y? I feel it would really help other developers as I really struggled in this area since the documentation is lacking”.

That’s the kind of stuff I want from developers so Microsoft can better serve you and make adapter development easier for our customers. Let this paper be a means to share any lessons learned in your development process to benefit others like you.


If you are interested please click on the “EMAIL” link at the top of this page and send me your email address. I will most likely send you directly the version to review by this Thursday, April 6th. Again, it will not be in an edited or finished state at that point but you are reviewing for missing or expanded content anyway so it should not matter.


Thank you for your assistance on this!


Kind regards


Mike