BizTalk Databases down to BizTalk Database!

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.

MVP Global Summit Day 3

Day three of the MVP summit was held at the Microsoft Campus.   Things started badly with a long and slow bus ride through heavy traffic leaving me with no time for breakfast when I finally arrived at the conference centre.   I boarded the shuttle for building 43 to find most of my fellow BizTalk MVPs (the ones who have been staying in downtown Seattle since the weekend) equally late, and we arrived en masse about 15 minutes into the first session.    Jesus Rodriguez was on his feet presenting the forthcoming WCF adapter SDK with a particular focus on building LOB adapters with metadata harvesting and dynamic, consumer-orientated contracts.   Sonu Arora presented code examples.


After a frantic and barely successful search for coffee, I sat through the next session with Gruia Pitigoi-Aron.   This continued the focus on the new adapter framework, discussing the development of custom WCF channels from the perspective of BizTalk developers.   Custom channels can be exploited in BizTalk land using the WCF Custom Binding adapter that will ship with R2.   Gruia sees this as a new extension approach to be used alongside custom code in orchestrations and pipeline components.      I need to do more thinking at some point about this approach.   Although the adapter allows custom channels to interact with the BizTalk message box, this does not mean that you automatically get the recoverability and tracking you might need in a real-world solution.   The appropriate use of this new facility will, I trust, become clear as we begin to apply it for real.


Next up was Marty Wasznicky discussing the BizTalk Server disaster recovery model and support for high availability.   Microsoft has certainly improved this side of things, and we saw a good demo (slightly cursed by the demo gods at the end) of a BizTalk installation being recovered.   Marty had to present under the eagle-eye d scrutiny of Lee Graber who, although now working with the SQL Server product team, joined us for part of the day.  I was amused by Lee’s comments about BizTalk’s feature history.    ’No’, he said on more than one occasion, ’that feature wasn’t introduced in BTS 2006; it was in BTS 2004 SP2’.   Ah, the voice of authority.


Not being a system administrator, I was suitably impressed by the DR features that Marty demonstrated.   This was, however, the subject of some discussion later in the day, with alternative viewpoints and strategies being discussed.    The inability to support SQL Server mirroring was a matter of some concern.    Again, BizTalk DR is a subject I need to look more deeply into.


After lunch, we were briefly back to adapter-land with a presentation by Tapas Nayak looking at Microsoft’s new WCF SAP adapter.   This was especially interesting in terms of seeing the application of dynamic contract creation features in the new framework.


The direction of the day now changed with a fascinating presentation by Pravin Indurkar on the next release of WF.   This will be part of .NET 3.5 which will ship in the ’Orcas’ time frame.   Pravin discussed and demonstrated a number of extensions that more closely integrate WF and WCF, allowing workflows to be exposed as services via WCF bindings and behaviours.   WF will include new Send and Receive activities, and will support a context exchange protocol that will support a wide spectrum of service-orientated interaction patterns, including ’conversations’ similar to patterns used in SQL Server Service Broker.   This is very powerful, and I couldn’t help thinking that, conceptually at least, we were seeing something of a stepping stone on the way to integrating .NET 3 into a future version of BizTalk.    WF 2.5 will support durable services via a persistence provider, and may even offer BizTalk-like features such as property promotion.  


Next up was Paul Andrews, a Microsoft product manager, who discussed the drivers for choosing between different integration and workflow technologies (specifically BizTalk and WF).   We’ve all sat through presentations were an attendee annoys us by reacting visibly and negatively to the presentation.   On this occasion, I was that attendee, so I apologise to Paul if I made his life difficult.   However, I profoundly disagree with the line he took.   A major aspect of my work as a BizTalk consultant is to help clients understand how to best select and fit available technologies to their requirements, and I therefore want to see a Microsoft approach that is grounded in a solid understanding of the nature of specific technologies.   To me, Paul’s approach would be analogous to comparing and contrasting the IP stack to Internet Explorer, and suggesting that while IE might be suitable technology for use by ’enterprise’ customers, an ISV would probably want to install the stack.   After all, draw up a tick-box list of features offered by IE and the IP stack, and you will see that the stack essentially offers a subset of the features you can access via your browser.    So, if you don’t have ’enterprise’ requirements, you only need the IP stack to access the Internet.   Enterprise clients, of course, don’t need the stack.   Huh?


For IE, read BizTalk, and for the IP stack, read WF, and you may begin to understand where I am coming from on this.   Try to imagine how many minutes I would be allowed to stay in a client’s building before being marched back to the entrance if I was to take this approach in helping them to select appropriate technologies.   Maybe three?  


The point, surely is that WF is foundational.   It is a framework on which we build.   It is not a ’product’ to be compared and contrasted with other products.   BizTalk will, in future, build on this foundation.   K2 ’Black Pearl’ will build on this foundation.   MOSS has already built on this foundation.   MIIS is building on this foundation.   Developers will build on this foundation when implementing custom workflow solutions.   Edge servers will exploit this foundation and then interact with BizTalk which builds on this foundation and integrates with other services which build on this foundation.   You’ve got to understand the found

Complimentary Infosys BizTalk, VSTS and .NET 2.0 Resources

Infosys have just published a number of books and whitepapers which cover the key features in BizTalk 2006, VSTS and .NET 2.0 on their website. Complimentary copies of the books are available, the whitepapers are free downloads (PDF).
Of particular interest are:

BizTalk Server 2006 (book), which ‘provides a critical evaluation of the new features of BizTalk […]

Importing Biztalk rules and export to Windows Workflow Foundation

Importing Biztalk rules and export to Windows Workflow Foundation

With just a few mouse clicks a Biztalk rule policy is exported to the Windows Workflow Foundation. Export the Biztalk file as a WFRules file.


This generates a complete Visual studio solutions. That includes the .rules file, the Business Object model (including get/set properties)

and an executable engine.


And voila, here is the results of a CarDiagnosis example with the recommendation that I have to get ‘Fuel’

It’s just a console output, but you hopefully get the idea. It’s an executable solution that can be incorporated into the IT infrastructure.

I don’t think we can make it any easier.

Ghosts and ghouls in your server: 0x80004015 — NT Service out-of-body experience

Authors in the New Age genre like to quote so called out-of-body-experience like memories of people who survivedd clinical death, tunnel with the light in the end and so on. Today I found that this is not a purely human phenomena…


Suppose you wrote an NT service and implemented a COM object inside. Sure thing, you have to call CoRegisterClassObject to register the class factory. Then you quickly start and stop your service and CoRegisterClassObject returns 0x80004015, which means that identity to run COM object and identity of the process don’t match. EXCUSE ME? BUT HOW? The only way to do so is to set RunAs property on AppId registry key for your class CLSID, and you did not do that!!!


Well, the secret is easy. Your initialization got a little late and your process already got shutdown event and even killed most of the threads. While it prepares itself for the better world and observes the light in the end of the tunnel, it’s idenity SYSTEM evaporates and it transgresses into a new, sort of semi-divine entity that exists mostly as a memory inside the OS core… The problem is that what’s allowed to SYSTEM, is not allowed to Jupiter, including registering a class with a different identity. Amazing, isn’t it?

And the fix is easy. It only happens if your service already shuts down, so you can just ignore this specific code. Well, not always — it can also mean that your registry is bad — but in this specific case that’s just it. One-line fix, a whole day of investigation!…

A Spate of Infectious Disease

First of all I would like to apologise to anyone that attended the Technical briefing in Wellington yesterday and was looking forward to my session on “Building Applications Users Love”. I will be making a video of this session available after next weeks event in Christchurch to share with you all through my blog.


For those of you that are not parents you may not be familiar with the NZ tradition of coffee group. Mothers with babies the same age living in the same area meet once a week at a different home to socially interact. This is a great outreach for mothers that have after years of being powerfull business woman left the work force to embark on a new journey.


Last Friday was coffee group as normal… one baby had been sick days before and come Sat night/ Sunday morning adults, babies entire families were all infected. Amasing how contagious this thing is! From 1 to 8 infected in 4 days.


Indigo (my 11 month old daughter) was hit Sat evening with myself affected Monday evening and my wife early Tuesday morning. We spent Tue & Wed in starship childrens hospital with little Indigo undergoing rehydration. I am working from home today as I fear I’m still contagious to others… unfortunately I will miss Intergen’s UX Twilight tonight but I’m sure Sam Allen and the team will do a stellar job.


It is great to know that I can reluctantly pull out of an event that is so important to us all and have Darryl, Jeremy, JD, Mike and Sean pick up the load. You guys rock and i’ll be back on board shortly. Look out for backgroundmotion.com!

Ghosts and ghouls in your server: 0x80080005 — NT Service out-of-body experience

Authors in the New Age genre like to quote so called out-of-body-experience like memories of people who survivedd clinical death, tunnel with the light in the end and so on. Today I found that this is not a purely human phenomena…

Suppose you wrote an NT service and implemented a COM object inside. Sure thing, you have to call CoRegisterClassObject to register the class factory. Then you quickly start and stop your service and
CoRegisterClassObject returns 0x80080005, which means that identity to run COM object and identity of the process don’t match. EXCUSE ME? BUT HOW? The only way to do so is to set RunAs property on AppId registry key for your class CLSID, and you did not do that!!!

Well, the secret is easy. Your initialization got a little late and your process already got shutdown event and even killed most of the threads. While it prepares itself for the better world and observes the light in the end of the tunnel, it’s idenity SYSTEM evaporates and it transgresses into a new, sort of semi-divine entity that exists mostly as a memory inside the OS core… The problem is that what’s allowed to SYSTEM, is not allowed to Jupiter, including registering a class with a different identity. Amazing, isn’t it?

And the fix is easy. It only happens if your service already shuts down, so you can just ignore this specific code. Well, not always — it can also mean that your registry is bad — but in this specific case that’s just it. One-line fix, a whole day of investigation!…

Windows 2003 SP2 & XmlLite

Windows 2003 SP2
As reported on Slashdot and elsewhere, Microsoft has just released Windows 2003 SP2 – further details and the necessary download can be found here (for x86 systems) and a list of ‘whats new’ is available here. They’ve also released something I’ve not seen before with the ‘Hotfix Scan Tool‘ which will ‘scan for […]

MVP Global Summit Day 2

Day two of the MVP summit is over.   We were at the Washington State Convention & Trade Centre all day, but will be decamping to the Redmond campus tomorrow.   The day started with an unscheduled bout of ’pre-match’ chanting from the Canadian MVPs.   They are an excitable crowd, and have spent much of the day ensuring that we all know which country they come from (Canada, I believe).    It appears that all Canadian MVPs (with the exception, I am glad to report, of Brian Loesgen) wear identical clothing.   Very strange.


VP Richard Kaplan got things underway informing us that the conference is being attended by 1,700 MVPs from 90 countries.   The MVP community is certainly a very diverse group which helps give the conference a rather different feel than, say, the PDC.   Bill Gates was up next, and provided us with a typical Gatesian keynote tour de force.   He talked about the implications of moving to 64 bit computing and painted lots of cameo pictures of possible technology futures, emphasising some of his favourite topics along the way such as ink, recognition, etc.   It’s interesting to note his acceptance of the ongoing transition of the programming ’backbone’ to the Internet.   He also discussed what was to become something of a recurrent theme during the day; namely the move to multi-core parallel processing, and the implications on software.


Wisely, Bill kept the speech fairly short, and then moved on to a Q&A session.   There were too many questions to record here, but they included topics such as the problems faced by the IT in western countries due to the lack of graduate entrants into the industry, philanthropy, ’Software as a Service’, the role of blogging, how to improve IT support for dealing with natural disasters, his all-time favourite Microsoft product, low-cost computing in the third world, the future of Live Search and a fascinating, but all too brief discussion on the evolution of technologies from tools to social insignia (yes, I’m serious).


One rather sour note was the reaction of a handful of attendees to some of the questioners whose first language was not English.   I would like to see them attempt to ask a question publically in, say, Japanese, and cope with the same level of sniggering and rude comments.   Not good, guys.   Where I come from, we consider this attitude to be a form of racism and regard its practitioners as social pariahs.   The MVP community is a global community, and should be respected as such.


Sean O’Driscoll then finished off the session by announcing the dates for the 2008 MVP summit – 14th-17th April.


After the break, I attended the Developer Division roadmap session led by S Somasegar (Soma) who is the Developer Division corporate VP.   He introduced us to the highlights of the Orcas release of Visual Studio.  Eric Carter demonstrated the Tools for Office and the way in which Outlook can be easily extended using Form Regions.    Soma talked about friction-free deployment and the introduction of cross-platform WPF/e.   Brian Goldfarb then demonstrated the use of ink overlaid on graphics and videos in WPF.   WPF is certainly impressive.


Soma finished the session by discussing some of the future directions for Team Foundation Server.   There will be an emphasis on testing tools and the capture and tracking of business requirements.   He also briefly discussed the challenges of multi-core programming and talked about the investment Microsoft is making in this area.


After lunch, I attended a session with Anders Hejlsberg.   Anders, despite suffering the wrath of the software demo gods, provided us with an intensive introduction to LINQ.   I’ve played a bit with this technology, but there is surely nothing better than to sit in on an introduction from Anders himself.   LINQ is fabulous.   I realise the functional programming crowd probably find it little amusing that the rest of the development world is just now discovering monadic coding, but after years of using datasets, XML DOM and the like, the advent of LINQ in its various forms is truly exciting.


Anders graciously demonstrated the Literal XML features of VB.NET 9.0, leaving the C# developers feeling distinctly uncomfortable for a minute or so as we realised that perhaps there is a point to VB.NET after all!   He then salvaged our faith in C# by demonstrating a Visual Studio add-in that auto-generates C# XLINQ code directly from XML.   We sat through a huge number of demonstrations, but the overall themes were the declarative nature of the technology, the reduction in coding this brings, the clarity of the code in focussing on the ’what’ rather than the ’how’ and the clear and logical factored structure of the LINQ stack.   All very good stuff indeed.


The third, and final, session of the day was with Don Box and Chris Anderson.   Don did the talking and Chris provided a kind of silent running commentary by typing a stream of consciousness in Notepad.     Chris also wrote the code for the demos.   The session was the subject of some discussion over dinner this evening, and everyone seemed to have a different view and interpretation.   My perspective is that Don was inviting us to think a certain way about XAML.  Specifically, he described how XAML and the .NET 3.0 framework can be perceived as a platform for building DSLs (Domain Specific Languages).   Don took us through an example where he defined a domain-specific schema as a set of C# classes, and created XAML to act as a model within that domain.   He ’interleaved interpretations’ of the domain with the schema definition (in plain English, he implemented additional functionality within the classes), and created transformational code in order to transform from the ’newer to the older’ – i.e., from the domain model to actual run-time code.   As part of this, Don showed how C# 3.0 lambda expressions and expression trees could be used effectively to represent and transform abstract syntax trees (ASTs).   Don also showed us a simple graphical tool that represents any XAML in a generic fashion and provides a simple graphical DSL interface.


I am not well acquainted with the world of XAML, so the

Pappas Bros Review

I’m in Dallas doing a short WCF training today/tomorrow and had dinner tonight at Papas Bros, supposedly the best steakhouse in town. Whenever someone recommends something as the best, I’m immediately skeptical, but this place indeed lived up to the qualifier. Excellent food and pleasant atmosphere.
So if you’re in Dallas/Houston, I’d highly recommend it. Try the crab cakes for starters (amazing), the lobster bisque (even better), and the prime ribeye (to die for). I just wish I had saved room for dessert. 😉