While wrestling with SharePoint 2007 SP2 today, I got a great error message. “SharePoint Products and Technologies Configuration Wiza” – Wizzzzzaaaaaaaaahhhhhhh! (this sits nicely with Shazza, Mappa, Timmy, Kimmy, and on it goes…”)  Now to sort the problem out…
So you've got an on-premise WCF Service and you're going to expose the endpoint to the Cloud via ServiceBus. I'm with a client excited about the prospect of Azure and using ServiceBus for connectivity for our local WCF Services. Remember ServiceBus is touted as the firewall friend communications mechanism. Should be pretty easy right? - just follow an article like - http://msdn.microsoft.com/en-us/library/ee732535.aspx If you are on a Secure Server - i.e. one that doesn't have default open slather access to the internet by default you will fall well short. (nb: the Azure ServiceBus documentation is a little thin here also. ie no mention whatsoever) You will get 'can't contact watchdog.servicebus.windows.net' and many others....So.... After much head banging Scotty sat down one rainy day and looked at the full conversation to establish a connection to the cloud via Service Bus NB: XXXX is your ServiceBus endpoint name you configured in the Azure Management Portal earlier. This endpoint lives in the Azure Singapore Data Center When ConnectionMode = TCP (Hybrid)
1. CNAME lookup for
watchdog.servicebus.windows.net > returns ns-sb-prod-sn1-001.cloudapp.net
2. Connect to ns-sb-prod-sn1-001.cloudapp.net
(port 9350)
3. CNAME lookup for XXXX-sb.accesscontrol.windows.net returns ns-ac-prod-sin-001.cloudapp.net
4. Connect to ns-ac-prod-sin-001.cloudapp.net
(port 443)
5. CNAME lookup for XXXX.servicebus.windows.net returns ns-sb-prod-sin-001.cloudapp.net
6. Connect to ns-sb-prod-sin-001.cloudapp.net
(port 9351)
When ConnectionMode = Http
1. CNAME lookup for XXXX-sb.accesscontrol.windows.net returns ns-ac-prod-sin-001.cloudapp.net
2. Connect to ns-ac-prod-sin-001.cloudapp.net
(port 443)
3. CNAME lookup for XXXX.servicebus.windows.net returns ns-sb-prod-sin-001.cloudapp.net
4. Connect to ns-sb-prod-sin-001.cloudapp.net
(port 80)
Also, when we lock this down to https endpoint step 4 above will be over 443
So the complete firewall rules to support both modes should be:
· watchdog.servicebus.windows.net
(9350-9353)
· ns-sb-prod-sn1-001.cloudapp.net
(9350-9353)
· XXXX-sb.accesscontrol.windows.net
(443)
· ns-ac-prod-sin-001.cloudapp.net
(443)
· XXXX.servicebus.windows.net
(80, 443, 9350-9353)
· ns-sb-prod-sin-001.cloudapp.net
(80, 443, 9350-9353)
Note the difference between ns-sb-prod-sn1-001.cloudapp.net
and the others ns-ac-prod-sin-001.cloudapp.net,
ns-sb-prod-sin-001.cloudapp.net Hopefully you won't get caught out at a client site asking for firewall changes, one at a time as you discover them. Enjoy, Mick + big thanks Scotty for the details.
Hi folks, I thought I’d share something that captivated me on this rainy Easter day and that was Visual Studio Asynchronous Programming - http://msdn.microsoft.com/en-au/vstudio/async (you’ll need VS2010 + SP1 before you grab the CTP) There’s a new improved compiler + an extended library for us. Hands up who’s done async programming in either VB.NET or C#??? It’s a pain! Thread management, Main UI threads can only update certain objects, passing values between main + background threads, determining whether a thread has completed its tasks… and so on… Basically all these ‘issues’ keep us from delving further into the world of asynchronous programming cause it very rapidly becomes complex just managing the two worlds – sync + async. Today I was pleasantly surprised!!! About a year ago I saw a great presentation on F# and I was amazed at how if they wanted to run a bit of code async it was simple an extra character as in: set results = ….. <-sync set results! = …. <- run this async (don’t quote me on the above, but it’s something like that – let’s call it pseudo code) Why are we interested in this? – that’s always the first question to ask when investigating. Too many times we here ‘this is really cool’ and ‘check this cool software out’ etc… but the real reason of WHY do we want to go down this road is never answered. On a ‘developers machine’ looking at 5 items, running a single test client – you’d have to say “works on my machine” and you’d have no need to async anything. True. Let’s move beyond our beloved developer box and think about UAT/PROD environments and what your code is doing.
What happens if 4 concurrent requests come along – how is your code going to perform? (As developers we’d be thinking …’it’s in the hands of IIS, not my issue’ :) ) (I recently was presented with a solution that ran across 20 odd servers, the answer to everything was get more hardware to make the app more performant, scalable etc – couldnt be the code.) So as the requests start to build (don’t know an exact number but let’s say 100/sec), what is happening to your code? how often do we sit down with profiling tools on our code in this space? must be the disks..slow…and as always we have definitive proof works on my machine says the developer! It’s not until we see our code running under load that we get an appreciation for where things could be improved and are causing grief for not only IIS but other systems as well. Scalability, performance and scalability – single threaded app/service vs multi-threaded. Multi-threaded tend to win all the time. Let me give you a couple of suggestions where this stuff is great: - As part of a WF/WCF/Class where you want to ‘push’ some processing into the background – critical things can be done upfront, and you can push some of the ‘other stuff’ into the background.
- Take advantage of some of the great multi-core/multi-cpu Servers out there – single threaded tend to run on the same core on the same CPU (known as thread affinity)
Anyway enough jabbering from me and let’s see some of the hidden gems… Async Programming Framework Let me show you a couple of examples (from my set): 1. Fetching a webpage Here I go off to twitter and search for all the BizTalk items. Couple of things to notice - …Async is added to the end of routines for convention, indicating that these are Async callable routines. - not a single IAsyncResult to be seen, no StateObject and no Callback routines! – line 104 the async keyword indicating that this routine itself can be called async if desired (more for the compiler) - line 108 the await keyword is used in the Async framework to ‘wait for the async task to complete’ then move onto the next line. - line 108 WebRequest.Create(…).GetResponseAsync – it’s the GetResponseAsync that is the async method, no …Begin or ..OnEnd calls! Just write it as you read it. - line 109 We get a reference to the response stream (I should check for the existence of data etc – demo code, demo code :)) - line 112 …await stm.ReadAsync(…) – reads the response stream into a buffer on a background thread and we wait there until this completes (await keyword). By all means there’s many other ways to program this, as in we don’t need to wait, we could run this guy in the background quite happy and then check on him periodically.
That’s it! Not too tough at all, multi-threaded goodness right there. You can have blocking and non-blocking calls etc. 2. What about a Chunk of CPU based code NO Async Example – as per normal, doing some cpu things.
Written in Async….
Points to notice: - line 63 async Task<int[]> … to the Async framework the async methods are wrapped within a Task class. We must ‘wrap’ anything we return from our routines within a Task<..> – here I’m returning an int[] -line 66 … = TaskEx.Run(…something to run in a background thread…). As we’re dealing with a block of code, there’s a Task Extension class that allows us to run that bit of code Async. -line 79 await matrix – this line ensures that our async routine has indeed completed (or errored) before we move onto the next line. Too easy if you’ve lived in the other world. As always remember this is CTP so I wouldn’t go rolling out into Prod just yet. The perf numbers I get are pretty much identical to rolling all of this by hand with ThreadPool.QueueWorkItem(…) and IAsyncResult etc. Well done MS! Enjoy and here’s my VS.NET Sample Solutions – I had great fun! Oh – this is also applicable to Silverlight + WP7 apps :)
While looking into an authentication problem I discovered this ‘new’ header sent back from a SharePoint 2010 machine. Health Score? hmmm… I thought, what’s the max and what’s the min values. Is this good/bad? or don’t care? So SharePoint 2010 has several Throttling features it used such as Client Auto Back-off which predominately when triggered, prioritises HTTP requests – such as HTTP POSTS are non delayed or throttled, but HTTP GETs are and new HTTP connections are throttled. Here is one MS page that barely describes the Header – could do with updating that one. SharePoint 2010 determines the health of a server by initially looking at system counters. Let’s dig further…. Upon Reflecting the classic Microsoft.SharePoint.dll, there’s a Microsoft.SharePoint.Diagnostics section which I thought would be a great place to start. I found a SPWebFrontEndDiagnosticsPerformanceCounterProvider class (amongst others there’s a SPDatabaseServer class as well) The line above collection[0] = …. refers to the following collection So putting all this together, the performance counters are: - WebAppPool - “SharePoint Foundation”
- Global Heap Size
- Native Heap Count
- Process ID
- OWSTimer & W3WP
- Processor (_total)
It appears the main class behind all of this is SPHttpThrottleSettings where it appears that the throttling setting is turned off in ‘Single-Server’ deployments. Digging further I came across the big-daddy class of it all (I think) - SPPerformanceInspector – notice the method IsInThrottling() and the other is 2 constants that describe the displayed Throttled messages. I also noticed another method on this class SetupRegKeyHealthScore. Where HKLM\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\14.0\WSS\ServerHealthScore is the actual value you want to assign. A value of 0 is great, 10 is bad. Over 10 means the server will go into Throttling (letting your clients know as well). There’s many other things here, but I’ve got to head swimming. Hope we unraveled this mystery a little more. Mick.
I recently came across a SharePoint Portal that previously was working a treat up until Christmas (just gone) and then the client got this on their Create Site Page: So the good old “Parameter name: key” error…that old chestnut I thought (like I had any idea at that stage). Null – is always an interesting thing. So something is going through a collection and not finding the value, not that they should have tested for the existence of the value first…but we’ll leave that for another story. Why this was happening now? I haven’t got to the bottom of it, could be an update? security patch? SQL update? code somewhere? I find these things happen on the night before an important release date. So after sheer luck of me just ‘doodling’ on the Create Site Page, this appears to have fixed it: From the highlighted area – just simply fill in the empty(null) search box EVEN though we are Creating a Site here. Go figure… Do I add SharePoint to the Wonders of the World list?
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.
There I was the other day slowly building up a new bts project in VS.NET.
You know the way it goes, add some schemas, maybe maps and before long you have a couple of helper assemblies and maybe a custom pipeline component or 2.
The problem is that the C# Assemblies don't automatically get added to your BTS Application in the BTS Admin console.
Usually I'll drag down one of my mammoth powershell 'build all' scripts from a previous project and customise this for the current project. 2 days later I usually stick my head up to see which day it is, and typically as we developers do, build a ferrari for something that a skateboard would do.
So simply put - add the following line to your Post Build Events section on your project in VS.NET.
btstask AddResource -ApplicationName:"Micks Demo App" -Type:System.BizTalk:Assembly -Overwrite -Options:GacOnInstall,GacOnAdd -Source:"$(TargetPath)" -Destination:"%BTAD_InstallDir%\$(TargetFileName)"
Ahhh...too easy.
Enjoy only a few more sleeps till Santa!
Mick.
Here’s something that I hope to save a few hours to you – InfoPath Forms Services. I recently ran into this dreaded error – "InfoPath Forms Services is not turned on” when trying to configure it from within SharePoint Central Administration –> General Application Settings. Forms Services is part of SharePoint Enterprise Services (usually activated via a Farm/Web Application/Site Collection or Site feature) and it relies upon the State Service. So on our intranet, we’re revamping some InfoPath forms that were working in SP2007 and a new SP2010 using the database detach/attach method saw the intranet up and running…almost…except for this InfoPath Forms Services. Most posts on the web talk about simply not having the feature enabled for either a Site collection, and/or Central Admin (and various other red herrings in my case) http://stackoverflow.com/questions/1237956/infopath-forms-services-is-not-turned-on http://mundeep.wordpress.com/2009/02/17/infopath-forms-services-is-not-turned-on/ Basically my source of truth was SharePoint Manager 2010 (great tool from CODEPLEX) which allows connections to SharePoint via the APIs as a standalone application (tip: make sure you launch it in ‘run in administrator’ mode).
From here I saw that on my install I was missing Forms Services listed in the Farm’s Service Applications
I initially thought it was some permissions issue and that I couldn’t see the service under that account (even though I was farm admin), so I launched and checked under the installer account and got the same result. My next questions were: How does Forms Services become missing? How do you manually install/enable it? In this case, I had a classroom SharePoint 2010 VM easily available and looking at it through SharePoint Manager, low and behold the Forms Service service was there!! Listed. The machine I was having trouble with was a standard clean install, that I didn’t automatically run the Configuration Wizard on – as I wanted to have control over the naming of DBs. That was pretty much the difference between the two machines. So I tried a few things: a) installing just the InfoPath Web Admin Feature - stsadm -o installfeature -name IPFSAdminWeb –force and then activating it with stsadm -o activatefeature -name IPFSAdminWeb -url http://sp2010:10000 –force (no luck, it just gave me the InfoPath config under the Central Admin) b) reran the configuration wizard c) repaired setup d) tried to run just the InfoPath Forms Services MSI from the install source. …all to no avail. InfoPath Forms Services – now with ‘deeper’ integration with SharePoint 2010, an internal service but with no real apparent way of getting to it. The Answer: I got thinking and I decided to attempt a backup of the Service from my VM and restore just the Service to the intranet Farm. - Perform a backup of just the configuration Then from there I did a restore (more in hope than anything) such that this process would ‘inject’ the right settings into the Farm Database. At this point anything with InfoPath Forms Services on it was a bonus. In any rate, here’s the backup file in ZIP format from my VM, that you can use to restore if ever faced with a similar challenge :)
Olaf and I were cracking away on some SharePoint 2010 work which we thought should be simple…point SPMetal to the site and start LINQ-ing to our hearts content….. with the one exception that we couldn’t select items from a list based on their Content Type. By default SPMetal.exe doesn’t include these ‘system’ fields (apart from ID + Title – go figure) and the secret is to use an Override file. The good oil is:http://msdn.microsoft.com/en-us/library/ee535056.aspx (Here’s a good article on how .NET Types are mapped to SharePoint - http://msdn.microsoft.com/en-us/library/ee536245.aspx) The simple override/parameters file: <Web AccessModifier="Internal" xmlns="http://schemas.microsoft.com/SharePoint/2009/spmetal"> <ContentType Name="Item" Class="Item"> <Column Name="ContentType" Member="ContentType" /> </ContentType> </Web>
The SPMetal Command Line
The VS.NET Code
static void Main(string[] args) { using (BreezeDataContext dc = new BreezeDataContext("http://breezelocal")) { var myitems = from i in dc.GetList<ContentListTraining>("My Content List") where i.ContentType == "Training" select i; var courses = myitems.ToList<ContentListTraining>(); Console.WriteLine("There are {0} items",courses[0].Title); } Console.ReadLine(); }
I’m in the process of planning a SP2007 to SP2010 ‘migration’ moving over the content database and other web artifacts. I was making sure all things were ticked off and available in the new SP2010 environment such as – additional external scripts, paths, externally accessible images, webparts + flash movie files. Migrated over – fired up the browser and after some minor tweaking most things came over, except for the flash movies. The flash movie was not being displayed. So naturally you think – must be a path, permission, activeX, flash object declaration, upload or even a masterpage might need a tweak… Fired up FireBug in firefox and went to work – we could access the *.swf file directly from within the browser, but when the Page loaded with the link in there… no go. In fact we got a ‘304 not modified’ response within FireBug – which seems pretty normal if the flash player already has the movie locally and it’s just comparing the server version versus the local…but still no flash playing. SharePoint 2010 Web Applications restrict ‘active’ content – aka Flash out of the box. After some digging and a seemingly unrelated option appeared in Web Application –> General Settings. Browser File Handling - Default setting: STRICT This was the culprit, setting this to permissive did the trick. Wow! Have a great weekend folks!
As you know I’m a big fan of Virtual Box being able to run my x64 VMs on my Win7 machine. Yay!! So armed with my trusted new Core i7/8 GB laptop – I figured the VMs will be cooking on this new kit… After installing the lastest VirtualBox (3.2.0) I was away – only to notice the machines were running like a SLUG! (I actually have a cat that has the nick name ‘slug’ and this machine was slower than her) After waiting a full 20mins (still booting - ‘loading windows files…’ etc) my machine Blue Screened for a millisecond and then rebooted. So I rolled up my sleeves and started digging – could be the VHD, the bios, the machine, the 1000 and 1 settings… Firstly I ran a command line command (from under the vbox install dir) - VBoxManage setextradata VMNAME "VBoxInternal/PDM/HaltOnReset" 1 Finally I got a glimpse of the BSOD and it was an error “…STOP…7B…” I twigged this is an error of “Inaccessible boot device….” which I’ve had several times when the SATA drivers couldn’t be loaded by the O/S during boot up. Solution: (in my case) I configured the Virtual Box VM with IDE Storage Controllers and NOT SATA ones for the bootup.(still connected to the same VHDs though) Win2008/R2 boots up and I’m able to load the SATA drivers in and we’re away. Back to BizTalk 2010 Beta playing…. :)
Here’s a handy set of commands when using in particular Virtual Machines with a ‘demo’ environment. We certainly create images for my students to take away with them and the common question is: “When will this OS expire?” or more likely on the 3rd day of a 5 day course I get the error popping up stating the OS has expired and will shutdown every 2hrs. To know when the OS may expire from the command prompt: c:\slmgr –xpr To possibly EXTEND to trial period for the OS c:\slmgr –rearm (note – you can only get away with this a few times) If this fails, you can always jump to MS and try and get a trial key off their site.
I got an email from David Marsh telling me about this new world from MS. Let me share a little… Way back when…LOGO was one of the first languages I learnt as a kid. Moving a turtle around on a page with commands such as PenUp, PenDown, RightTurn etc etc – pretty cool as a kid and then you could draw things (there was a big version of the Turtle that interfaced into an Apple II via a ribbon cable as wide as a 4 lane highway) MS Dev Labs have released a great SmallBasic environment that is very simple to pickup (great for kids). It’s got a very simple set of commands AND it outputs straight to Silverlight.

Pretty quick ways of building silverlight apps….nice!
Check out http://smallbasic.com –only if you have some free time 
From time to time I check out on what’s happening in my favourite ‘moon lighting’ area – Silverlight. Love the Silverlight potential – I’m a big fan. So from http://silverlight.net – I found a Z-80 EMULATOR!!! (like what’s next an Apple II) You hit the ‘Run’ button and far too many years has passed between me and my Computer Engineering Degree of Demorgans Theorem and Fast Fourier Transforms. Great effort! (by someone whom had SOOO much time on their hands) http://www.expertgig.com/slsample/sl_z80emu/SL_Z80emuTestPage.html
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.
There I was rebuilding a new VPC Image (which I'm running in Virtual Box) and the base VHD is a parent of 16GB.
For an install of Win2008, VS.NET 2010, SQL2008... it's pretty much game over with a full disk.
I spent the last 3 days shifting files around to clear space
So tonight I bit the bullet and Ghosted the partition over to a 200GB - much better :)
This issue I had was that the boot environment was different and 'in the good old days' we'd change the BOOT.INI and bobs your uncle.
Welcome to Vista and beyond...as you know we have the BCD Store
There's a very common tool (blogged about everywhere) called BCDEDIT.EXE which if GUIDs are your think and long command line options, you can 'manually' manage the Store (there's also a bunch of 3rd party apps that say 'lets do this from the UI' - I'm in recovery mode)
For the life of me I couldn't remember the tool I used last time this happened to me, which I said 'don't forget Mick'.
BOOTREC /rebuildbcd
Too easy...then if you can't sleep you could also crack onto BCDEDIT.EXE to 'customise' some aspect.
(e.g. booting up off multiple logical CORES)
Bootrec
Bootrec
Bootrec
I will not forget Bootrec
As part of a 'dev' machine setup, I run on my latop Win2008R2 x64 Hyper-V...why? to simply run x64 hosts. Virtual PC, Virtual Server - will run on x64, but not host x64 O/Ss. So really the only option is Hyper-V in the MS land. I present, demo + and draw all over my tablet screen on a regular basis as well as cut code in Server O/S. The main problems I faced: - was my display was dog slow, especially running VS2010, ppt or generally anything else that an average user might do. - I remove the Hyper-V role off my machine and low and behold it's back to normal. A student pointed me to a TechNet article - http://support.microsoft.com/kb/961661 in which the resolution is to install a VGA Display driver. This is kinda not an option for me presenting etc. Still I needed to run those x64 bit guests. I was contemplating getting a monster laptop (the other day I was training with laptops that had 8GB of RAM, 6GB allocated to the VM!) or setting up various 'Demo RDP Connections' back into the office, so when I'm onsite and I need to demo then (somehow) I can get internet connectivity and RDP back to a server based VM - lot's of potential issues with this approach) So the MS Story in this space at the moment is:- 1) you want to run 32-bit hosts, VirtualPC or Virtual Server running on x64 or x86. Only x86 guests! - 2) you want 64-bit guests -> Hyper-V (therefore you're looking at running Win2K8/R2). At work we have 15+ VMs running on Hyper-V machines really well, so no complaints there when running on Servers. It's just running it on my laptop where's it's not special. Problem is - going fwd, the latest wave of Server Products, SharePoint 2010, Exchange 2010, CRM 5 etc.... only run on x64 So onto to my unbelievable experience....Last night I caught up with a couple of buddies Andrew Mee and Guy Riddle, where Guy mentioned all the pain he'd had in trying to get a x64 but guest up and running on his laptop. Here is his current solution: Guy mentioned his setup: 1) Win7x64 2) VirtualBox - for VM emulation - WITH USB SUPPORT!!!! wow! In the land of BizTalk RFID, I had major issues with USB devices trying to be picked up inside the VM - 3rd party solutions etc. crazy.He mentioned there were a few things to do around the disks etc...but he could run x64 guests on his Win7 machine AND the VMs FLEW!So I thought there was a touch of the amber fluid talking and maybe he was indeed onto something. When I got home later that night I decided tonight was the night to refresh the laptop (fujitsu lifebook t4215/4GB/T7400) and Install Win7x64. My potential issue with Virtual Box: - I have a huge library of VHDs (parents, diffs etc) that for portability suites me down to the ground. I walk into a training room and can transfer my VHDs to the student machines and run them no hassles. - If there's a VirtualBox specific format (VDI) then it yet another step in my export chain. Alas - VirtualBox reads/writes VHDs automatically, unbelievable.So I setup Win7x64 on my latop and got back to 9 sec bootup and shutdown times  - gee that was refreshing after so long without. I installed VirtualBox - it installed like a treat, and does 'snapshots' and has a great user interface. I didn't need to visit the cmd line once. So now for the test - I was going to fire up my SP2010 Beta2 (Win2K8 R2 x64) VHDs, 40GB in size, differencing and Parent, straight from Hyper-V with Hyper-V extensions (in the past when I've done something like this, there's usually a blue screen invovled saying 'boot device not found') Let's give it a crack I thought - all from the UI. 1) Within VirtualBox, I created a machine, added 2 CPUs, 1 NIC and 1400MB of RAM. 2) Attached the Child VHD from my SP2010. 3) I even had 3D graphic acceleration options for my VM, along with amd-v and 'nested tables' for some sort of faster memory access. Turn them all on I thought! We'll put it through its paces. Started the machine...... - upon first boot my hyper-v enabled VM booted straight up to the Login screen! Unbelievable I thought.
- logged in and it found my NIC within 10 secs and was on the network within 20 secs (through NAT). If you've ever experienced a Hyper-V update where your Guests don't talk to the network anymore, until you put the new hyper-v additions on - you'll know the pain.
- mouse/keyboard recognised.
- I then thought - let me install the VirtualBox additions - can't hurt.
- RDP support etc etc ...it's like shopping @ christmas - how good is this! yes I'll have that...and this...
So back to Guy's immortal words - "it runs fast. Snappy, responsive etc" My SP2010B2 in 1.4GB RAM x64 VM runs fanstastic! - Fastest I've seen a VM run on my laptop for a long long time (unless it's WFW 3.11)
It's just so refreshing to have a responsive VM running in reasonable memory. I found that if I allocated 2.5GB to a VM under hyper-v I wouldn't notice a marked improvement. It's not like it flew, and then I had to tweak it back to find that 'optimum sweet spot' What an experience! What I'm seeing is that certainly for the desktop machine, VirtualBox can be a serious contender for x64 guests. Thanks Guy for planting the seed!!!
Guys – something that always gets me. *** Update – I’m actually saying this is not good for a server *** Q. Why when you install Win2K8/R2 out of the box settings have the POWER MODE=balanced??? I’m always amazed by this – there’s 101 other questions + answers you’re asked and you give. But nowhere does the system say (oh a server system mind you) “BTW – you know the 8 Cores you have, you’re gonna use 2 of them at any one time…” It’s a Server O/S not a desktop (Desktop I can totally understand – saving power, greener world etc etc) – server I don’t get. (The flip side to that coin is - “if the server actually ran at a faster capacity – I’d be finished in 30 mins instead of 4hrs” –> therefore you save 3.30mins of green lush rainforest – or some nuclear radiation from entering the world) I find this power setting is always one of those elusive settings on Server, upon first start up you get prompted for Roles, Features, Networking even IE Security Settings….but nothing about limping along. You have been warned – you may think “What’s Mick on about”…did I tell you about the TWO production environments I recently visited and they thought I was a miracle worker… I wonder is SCOM 2007 R2 reports that setting back to the main console??
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.
Whilst on my travels last week I also ran into Oleg Lofman (MCS SharePoint Consultant) whom amongst other things (showed me a great travel game - http://www.travelpod.com/traveler-iq?ba96=7587) pointed me towards a tool called WIM2VHD. Basically this tool allows you to go straight from a WIM file to VHD!! You can even specify an Answer file also. So no need to mount the ISO, go through the bootloader and copy all the files needed, then expand etc etc as part of the setup. So seeing that Windows 7/Server 2008 R2 has a bunch of WIMs under the \Sources folder, you can simply go there and take your pick as to how extensive you want the base OS to be : Core…or something more! Check it out: http://code.msdn.microsoft.com/wim2vhd As you can see below, it’s a pretty extensive and detailed tool: (you can even apply hotfixes to the VHD during this process) --- snip from the above page --- Usage Usage: WIM2VHD.WSF /wim:<wimPath> /sku:<sku>
[/vhd:<vhdPath>] [/size:<vhdSizeInMb>] [/disktype:<dynamic|fixed>]
[/unattend:<unattendXmlPath>] [/qfe:<qfe1,...,qfeN>]
[/ref:<ref1,...,refN] [/dbg:<args>] [/copylocal:<localFolder>]
[/passthru:<physicalDrive>] [/signdisk:<true|false>]
[/mergefolder:<folderToMerge>]
Required parameters:
/wim:<wimPath>
The path of the WIM file to use when creating the VHD. For example:
X:\sources\install.wim
Where X: is the drive letter of your DVD ROM drive.
/sku:<skuName>|<skuIndex>
The SKU within the WIM to use when creating the VHD (e.g. "ServerStandard",
"ServerDatacenterCore", "2", etc.). This value can either be passed as a
SKU name (typically the easiest method) or as a SKU index (which requires
you to have manually inspected the WIM with a tool like IMAGEX.EXE).
Optional parameters:
/vhd:<vhdPath>
The path and name of the VHD to be created. If a file with this name
already exists, it will be overwritten. If no VHD is specified, a VHD will
be created in the current folder with a name in the following format:
<Major>.<Minor>.<Build>.<Rev>.<Arch>.<Branch>.<Timestamp>.<SKU>.<Lang>.vhd
ex:
6.1.7100.0.x86fre.winmain_win7rc.090421-1700.Ultimate.en-us.vhd
NOTE: If the language cannot be determined from the WIM, no <Lang> block
will be included in the VHD name.
/size:<vhdSizeInMb>
For Fixed disks, this is the size in MB of the VHD that will be created.
For Dynamic disks, this is the maximum size in MB that the VHD can grow to
as additional space is required.
If unspecified, a default value of 40960 MB (40 GB) will be used.
/disktype:<Dynamic|Fixed>
Specifies what kind of VHD should be created: Dynamic or Fixed.
A Fixed disk allocates all of the necessary disk space for the VHD upon
creation. A Dynamic disk only allocates the space required by files in
the VHD at any given time, and will grow as more space is required.
The default value is Dynamic.
/unattend:<unattendXmlPath>
The path to an unattend.xml file that will be used to automate the OOBE
portion of Windows setup the first time the VHD is booted.
/qfe:<qfe1,...,qfeN>
A comma-separated list of QFEs to apply to the VHD after the WIM is
applied. QFEs must be in the .MSU file format, which is the default
QFE format for Windows 7. They can also be provided in a .CAB format
if you'd prefer to extract the .CABs from the .MSU files.
To extract a CAB from an .MSU, use the following command:
expand -f:win*.cab <.MSU file> <location to extract to>
/ref:<ref1,...,refN>
A comma-separated list of WIM pieces to apply to the VHD.
A "WIM piece" is the result of a Split WIM, and typically has a .SWM
file extension. The first piece of the Split WIM should be specified with
the /WIM switch. Subsequent pieces should be specified with /REF.
ex: WIM2VHD.WSF /WIM:C:\split.swm /REF:C:\split2.swm,c:\split3.swm
See IMAGEX.EXE /SPLIT /? for more information.
/dbg:<protocol>,<port/channel/target>[,<baudrate>]
Configures debugging in the OS on the VHD.
examples:
/dbg:serial,1,115200 - configures serial debugging on COM1 at 115200bps
/dbg:1394,10 - configures 1394 debugging on channel 10
/dbg:usb,debugging - configures USB debugging with the target DEBUGGING
/copylocal:<localFolder>
Copies all of the files necessary to run WIM2VHD.WSF to localFolder,
eliminating the need to install the Windows AIK or OPK. This does not
include any WIM files, just the binaries that WIM2VHD.WSF depends on.
After this operating completes, run WIM2VHD.WSF from localFolder.
If this switch is specified, no VHD will be created.
/passthru:<physicalDrive>
Applies the WIM directly to the specified drive and makes it bootable.
NOTE: The partition on the disk must be marked as ACTIVE in order to boot
successfully. This action is NOT performed by WIM2VHD.WSF.
/signdisk:<true|false>
Specifies whether or not WIM2VHD.WSF should leave a signature on the VHD
that indicates what version of WIM2VHD.WSF created the VHD, and the date
of creation. The signature will be located at <VHD>:\Windows\WIM2VHD.TXT.
The default value is "true".
/mergefolder:<folderToMerge>
Copies the contents of folderToMerge to the root directory of the VHD.
This includes all subfiles and subfolders. Any files that already exist on
the VHD will be overwritten.
This will certainly make my life easier when it comes to building VMs!!! Thanks Oleg for the tip.
Something that I’ve come across in recent years and it concerns me more and more…long running transactions. For example let’s take an Insurance Company implementing a Claims Process.
The way it works is: - Design Long Running Business Processes around BizTalk Orchestrations
Sounds great on the surface and since BizTalk 2004, the techniques for implementing this were easier. Basically – the BizTalk Environment will look after ensuring state is maintained, waiting Orchestrations are managed and Correlations are in place for return messages, that may return seconds, minutes, weeks or months later.
So in this case we’d implement a main claims process manager which is runs for the duration the claim is active in the system.
A Claim comes in, enters the System and the Claims Process Manager initiates and we’re off and running.
A common technique with long running processes is to forcibly suspend biztalk messages that are in error. At a later date someone looks into the BizTalk Admin Console (or via a WMI query) and ‘deals with’ the suspended messages.
The benefit of these suspended messages is that they potentially can be resumed right where they left off and these messages are stored in the MsgBoxDB awaiting attention. The reason why I don’t think this works: - Messages are immutable – meaning that while they’re in the MsgBoxDB they can’t be changed (technically we *can* changed these messages as a hack, but it’s *not supported*). So if the message is incorrect and in the overall process, we might fix the problem and resubmit that message – we can’t do this from within the MessageBox. We have to export the message out and provide some ‘resubmit to biztalk’ port (usually a file port).
- BizTalk MessageBoxDB is keeping state of the system. In process Claims are part floating around as part of our system (we could also be a bank processing Loans etc etc). If we lose the MessageBoxDB this could spell even more trouble.
- Also system upgrade complexity moves up that extra notch, careful planning and various considerations need to be thought out. Pending Orchestrations have to be allowed to run through to completion; hydrated messages waiting to be sent through Ports, means that those ports must stay around until these messages are dealt with… and many other.
- Backup – despite the recent advancements in SQL Server 2008 (mirroring) we can’t take advantage of it in the BizTalk world.
The supported Technique is to use Log Shipping – The recommended backup interval is 15 minutes so worse case your system is out 15 minutes in the case of a crash.
This is not entirely true… on busy systems the actual log shipping process may take between 15-30 mins to backup. This means that during the time while log shipping backup is running, the system is not being backed up. So all in all your system could be running for 1hr (approx.) with no covering backup.
This essentially is the state of your solution.
What Does Work….in my opinion. - Manage the State of your System in another area, such as SQL or SharePoint.
- Where possible keep the Orchestrations short running.
- Upgrades are simplier
- System maintenance is simplier.
- Provide a MSMQ or File Inbound Port for ‘Resubmission into BizTalk’.
- Use Content Based Routing to establish mutually exclusive processes.
Food for thought folks, from what I’ve worked on and noticed out in the field. Mick.
Hi guys, thought I’d let you know about the rfid operations guide Microsoft recently released. Covers things like HA, RFID Mobile and best practices… yours truly was one of the authors so I’m happy to take any feedback you’ve got. Enjoy – here’s a snippet of what to expect. Welcome to the first edition of the Microsoft® BizTalk® Server RFID Operations Guide. We created this guide to be a valuable resource for anyone involved in the implementation and administration of a BizTalk Server RFID solution. To download a copy of this guide in .chm or .docx form, go to http://go.microsoft.com/fwlink/?LinkId=158724. Which Versions of BizTalk Server RFID Does the Guide Cover?
This guide is primarily for the BizTalk Server RFID product that is released as part of Microsoft BizTalk Server 2009. Even though most of the guidance applies to BizTalk Server RFID that was released as part of BizTalk Server 2006 R2, the guide uses the new platform changes wherever applicable. What’s in It?
This document applies to the operational readiness phase in the solution life cycle management of the project. The operational readiness phase precedes deployment to production. It consists of a set of tasks for ensuring a stable operating environment. It is targeted toward system administrators responsible for BizTalk Server RFID (server computers and RFID devices), DBAs responsible for the SQL servers used by BizTalk Server RFID, and developers involved with maintaining the infrastructure and solution. This document assumes that the BizTalk Server RFID solution has already been validated in a Pilot stage and is prepared for deployment to production. Key portions of this guide are new; however, a considerable portion consists of documentation taken from BizTalk Server RFID Help, white papers, Knowledge Base articles, and other sources. It has been reviewed and evaluated by experts from the community of BizTalk Server IT professionals and members of the product development team, whom we gratefully acknowledge at the end of this topic. We believe that the information presented here will help BizTalk Server RFID users solve—and above all, avoid—many of the common problems that can occur while deploying and maintaining a BizTalk Server RFID installation. Interesting! Where Do I Start?
We organized the guide according to the functional aspects of planning, deploying, and managing a BizTalk Server RFID installation. You can therefore read it according to these functional aspects. If you are performing the following tasks, you can start with the related sections: - Evaluating operational readiness. If you are focused on assessing and evaluating the operational readiness of a BizTalk Server RFID deployment, then start by reading the Operations Checklists section.
- Becoming operationally ready. To ensure that your BizTalk Server RFID infrastructure and applications become operationally ready, refer to the Planning the Environment for BizTalk Server RFID section.
- Managing the operational environment. Most of the topics in this operations guide assist you in managing and maintaining an operational BizTalk Server RFID environment. You will find best practices, key concepts, and procedures for maintaining an operational environment in Managing BizTalk Server RFID and Monitoring BizTalk Server RFID.
Author: Rama Ramani (Microsoft) Editor: Mary Browning (Microsoft) Contributors - Mark Simms (Microsoft)
- Rohan Makhija (Microsoft)
- Ravi Vankamamidi (S3Edge)
- Clint Tennill (Xterprise)
- Damir Dobric, Andreas Erben (daenet)
- Mick Badran (Breeze, BizTalk Server MVP)
Reviewers - Petr Kratochvil (Microsoft)
- Ewan Fairweather (Microsoft)
- Quoc Bui (Microsoft)
- Douglas Trimble (The Boeing Company)
- Robert Auston (Vail Resorts Management Company)
- Luke Rennells (Bank of America N.A.)
Microsoft BizTalk Server 2009 RFID Operations Guide
This was being sent around our office today that I thought I’d just have to share with you…. My first thought was ‘photoshop’….but one of the South African born Girls here swears black and blue that this is normal. Everything about this picture is wrong…at any point the goat could say “forget this…I don’t have the right shoes on” (he would probably bleat it out to his mates) Just goes to show….we’re limited only by our own minds… Thought for “Micks Day”
Hi folks, Much more of the BTS09 material (documentation etc) is starting to appear in the masses from MS. Grab it Here and there are a bunch of others you’ll love to get also. BizTalk 2009 Posters p.s. I’ve also added all the Install Guides and all the PDF posters within the ‘CSD Bits’ Mesh Folder. Cheers, Mick.
My good friend Chris Vidotto a once fearsome BTS warrior came up with the good oil on this. The BPA tool now supports bts09, sql08 and win08 in one update, as well as all the previous environments. The tool will go through and examine your environment in accordance to a predefined set of rules (shipped with BPA) and report back accordingly.
Grab it now… from HERE Mick.
Hi folks – from a previous post where I fudged a DLP-RFID1 x64 driver, I’ve now tracked down ‘proper’ 64 bit version of the DLP-RFID1 Reader. Here it is here - 1. From this page http://www.ftdichip.com/Drivers/VCP.htm download the CDM 2.04.16.exe which does the trick. 2. Double click on the above EXE to install the drivers (the EXE will detect your OS is x64) – the driver is then installed on the machine, but not auto assigned to your RFID1 device. 3. From Device Manager, right click on the DLP RFID1 Reader and select ‘Update Driver’, select ‘Browse on My Machine’ and ‘Select from a List’ (near where you say ‘have disk’). 4. From the Manufacturer list select ‘FTDI’ and select the very top Driver on the RHS (USB Serial Converter) 5. Unplug and replug your RFID1 Device – and viola! all good. 6. Run this Test app RFID1Demo.exe to make sure all is good from http://dlpdesign.com/rfrdr/ NOTE: On my machine I still have an unknown Serial device in Device Manager, but all works none the less. 
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
As I’m looking into sizing up systems currently for a project, the question that you always ask “Is my CPU choice any good?” “Should I go Dual Quad Core or Quad Dual Core?”… and the questions just keep on coming, even in your sleep sometimes  I recently came across a gem of a site that gave me all my answers. There’s a bunch of other CPUs and options available also. Check it out. http://www.cpubenchmark.net/cpu_lookup.php?cpu=%5BDual+CPU%5D+Intel+Xeon+E5420+%40+2.50GHz 
You want to know the ins and outs of WCF at a glance – then the mini-book is a winner. (Just let this puppy fall out of your back pocket in the office and watch the guys instantly want to Sync up their Complete Series of Star Trek with you…) Seriously – great guide, easy to flick through and welcome to another 8 million lines of code you thought you could live without :) Thanks to the efforts of Cliff Simpkins and his team for their dedication on this. 6 Chapters + Code….are you man enough? http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=netfxsamples&DownloadId=4962

Hi folks, Just in case you want to be able to get an excel spreadsheet listing all the possible errors or so, for monitoring and managing your production BizTalk environment (great for rules and monitoring from MOM for e.g.). I came across this - http://blog.paul.somers.com/blog/_archives/2007/4/27/2909713.html Written by fellow BizTalk MVP - thanks Paul!
“The product cannot be installed on this machine since it seems to be a domain controller” What a start to 2009!!! – the above dreaded message when trying to (in this case) install BizTalk RFID on a DC. For me – this happens quite a bit, as I’m building up a proof of concept, a demo, something to show and present with. I always…always….forget to install BizTalk RFID bits before I promote to a DC (this technique can also cause security acct issues after the machine has been promoted to a DC – depends on how the authentication is setup etc) NOTE: BTW – Installing BizTalk RFID on a DC is NOT SUPPORTED (had to put that one in their – keeps both sides happy) For love or money I’ve bounced this question around for a while and come up empty, until…today!!! Niklas Engfelt a senior MS support engineer came to my rescue (he famously provided those thoughts from left field which were on the money! Big thank you Niklas) He suggested grabbing Orca from the Platform SDK and having a browse through – I’d used HEX editors, disassembled files, attached process monitors during installs and looked through any config file with a fine tooth comb…but I’d never tried a MSI Editor. The steps to Enlightenment: (changing the installer validation conditions) - Grab a download of Orca from here (I didn’t have the platform SDK currently installed and wasn’t about to install 1.2 GB worth either) and follow default install prompts.
- If you haven’t done so already copy the RFID_x86 or RFID_x64 folders off the install media to a temp folder nearby (note: sometimes on Win2K8, the system prevents copied files from being accessed until an admin comes along and says ‘these are ok’ by going into File->Properties on each file. It’s weird I know, but I get it every now and then)
- Locate the RFIDServices.msi under the RFID folder and you’re ready to go.
- Launch Orca and open RFIDServices.msi to get something like:
- Under the Tables Column select LaunchCondition and drop the 2nd Row as follows:
- Drop the Row and Save the MSI file again.
- Run Setup.exe as per normal.
Oh what a sweet day! p.s. I’m sure you’d be able to employ this technique onto other MSI’s causing grief. Mick
I've been getting this question quite alot recently, "BizTalk accessing SQL in another domain...", "SharePoint accessing Webservices via NTLM auth only in another domain..." etc. Most of the time we can find a box to stick in a User Name/Password somewhere (e.g. File Adapter in BTS) that will more than likely solve the problem. For the cases where you can't or there's some complicated RPC session (connect to \\server\IPC$ share) that's setup first (several MMC snap-ins for e.g.), then you're given access, "It's so much easier if we're all part of the same domain..." speech you give yourself over and over again....then I may have a technique to help you. Basically we force our Windows to always use specific credentials when communicating with the remote machine X - on a per user by user basis. It goes something like this: (1) login to the local server in question under the acct that is needing access (e.g. svc_acct) - this is usually the 'Web App Pool identity' or the 'BizTalk Service Account' (generally NOT your day to day account) (2) under control panel -> Stored User Names and Passwords (on Vista this is 'User Accounts')
(3) Then add the credentials to suit.
Viola - happy NTLM-ing & Merry Christmas....... Mick.
If you've ever had VPCs that you just want to run and use, irrespective of the actual host time add/edit this little gem to the corresponding *.VMC file <integration> <microsoft> <mouse> <allow type="boolean">true</allow> </mouse> <components> <host_time_sync> <enabled type="boolean">false</enabled> </host_time_sync> </components> ...... - other entries here...... </microsoft> </integration>
 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:
James, a student of mine this week pointed me to a great tool that 'optimises' your SharePoint site (as well as websites in general). Runtime Peformance Optimisation (RPO) is the place where it's all at. You basically plug your URL in and it sends you a report on how it can be optimised. (I'm yet to check this out) James mentioned that it operates off a DLL that you include as part of your swag in the \bin folder (or GAC) and it requires the DLL for runtime operations.
Here's the process..... 1. click on the 'Try now button' 2. Plug the values in for your site.. 3. Then peruse over the emailed results at your leisure..... It does things like Image optimisation, file compressions and even gives you the results in cold and warm boot times! Very very very nice! Looks like I'll be talking to Santa this Christmas!!! 
Folks - while setting up some IIS servers for a BTS production environment I came across this handy little tool. Basically gives you a Tree View of what things you'd like to install on your IIS Web Server from MS (mother ship). Includes things like Service Packs, etc etc. - handy spot to grab all the new files in one spot. (as opposed to the piece meal approach - of install asp.net, oh you need the .net 3.5 framework - install...oh...you also need SP1 ..with maybe a few reboots inbetween) - single place for all the tools and other components that you'll need. - great way to do them all at once. Here's what you're after - http://www.microsoft.com/web/channel/products/WebPlatformInstaller.aspx

When implementing/deploying and building all things BizTalk/Silverlight and related, there's going to be a time when you're needing to see what's on the wire.
I've currently found a few handy options:
- FireFox's FireBug - brilliant! a plug-in straight from the browser environment. Deals only in Browser initiated traffic though.
Gives great anaylsis on HTML page composition/scripts and dynamic content source - A MUST for any Silverlight work
- Fiddler - sets itself up as a proxy that your browser requests through, once again, my browser has to initiate the calls.
- Smart Sniff - smsniff - 48kb and this is a full blown packet anaylser giving access to all packets to/from NICs. - THIS by far is my choice!
Check them out folks - Smartsniff small enough to go on any memory key.
All free!
Folks - it's been one of those weeks (I know it's only Tues :) I just got to a point where I was just opening up tooo many RDP connections, managing them - some using Terminal Services Gateways, others not. Configuring BTS boxes/SQL Servers/MOSS/Indexers/Search..... and the list goes on. From client to client or even our network internally - my head was rapidly filling up with these random ip addresses that I wished I didn't have to remember. So I wanted to have a way simply to manage all these windows (a crude version I wrote some years back was simply to drop 6 RDP ActiveX controls onto a web page an knock yourself out). I needed: - to work on Vista and Win2008 as well as the other list of usual suspects. - be able to set Terminal Services Gateway on some. They panned out as follows: - Remote Desktops - found in Win2K3 Admin Tools SP1, which is OK as it presents a simple tree view and you're away.
- Terminals (currently 1.7) - SENSATIONAL!!! I almost wanted to get VNC etc just to use those bits.
It's got - network tools, port scanners just absolutely brilliant, a well polished application with a very very handy toolbar. Only ONE problem for me......no TSG support :-( - forums state this is planned..... :)
Check out TERMINALS HERE
- Royal TS - Supports RDP Terminal Service Gateway Connections :)
So this one for the moment is one that I'm going with, just downloading .NET 3.5 SP1 as we speak and about to fire this up on Vista (x86).
Does a very good job at managing RDP connections, it doesn't support any of the other clients.
Presents a TreeView allowing groupings of connections (although I had to 'Create a Document' first)
Check out Royal TS HERE Conclusion: Terminals *would* be the one I'd go for if it supported TSG connections......have to check back shortly.
Wow! I had to venture into the 'cave' and solved this problem - talk about a character building experience!
I'm currently building a Mobile BizTalk RFID 1.1 solution for TechEd08 that runs on a PPC with a Kenetics CFUHF Reader.
*** Early Screen Shot *** :)
So in building out this application the details always bring unforeseen challenges to light:
1) The application houses all the BizTalk RFID pieces (providers, device proxies etc) so registration, and starting/stopping providers/device discovery and applying properties to the device needs to be all taken care of.
2) I built an RFID Mobile Provider for the Kenetics device - I worked with their support engineers solidly for a week to build what I needed. I took a trip down memory lane and have had enough pinvoking to last till Christmas.
3) The app also manages a several local SQLCe databases - one for my app, the others for the operation of BizTalk RFID Mobile locally on the device (mainly for it's OOTB store/forward mechanism).
After weighing up several options in this solution and how to get data to/from the device reliably I decided to go with SqlCe Merge Replication as we needed to push/pull data from several tables and schema changes.
4) Which leads me onto one of the most little known items......
How do I setup SqlCe Merge replication? it's a mine field, change something here and boom over there.
The picture
Phase 1:
Forget ISA for the moment. If you can, aim to get replication running in a local environment first (e.g. Local LAN on same network, through VPNs etc)
Getting the SQL bits Setup Ok - the pieces to the initial puzzle.....
- Sql Server Side
- Sql Server and it's additional Sql Mobile Replication Bits - download from here.
- IIS to expose a replication 'end point' where the remote devices will connect to and replication will take place through. IIS can be separate out onto a different machine.
- As in my case, somewhere that the 'snapshot' DB information will live to merge down to the devices. Mine was a UNC share - SQL created this after I completed the Publication wizard.
- Installation -You want the SQL Server Compact 3.5 Server Tools installed on BOTH the IIS AND SQL Machines (if these are one and the same, then you only need it once)
The server tools has two main components - one being the bits that drive IIS and the other being a wizard that configures the exposed virtual directory and sets security onto it. If IIS and SQL are on separate machines, the easiest way to go is: - get SQL to publish the snapshot to a UNC share e.g. \\sqlserver\data - On the IIS box, run the Configure Web and Synchronization Wizard (installed with the above server tools) and a later screen will ask you where this data is coming from - simply point to the UNC share.
- Mobile Device Side
- The equivalent SQL Mobile Replication tools need to be installed (above and beyond just normal SqlCe database components install) - SQL Server Compact 3.5 for Windows Mobile
*** NOTE: make sure that the bits on both the Mobile + Servers all match ***
- Server Side Security - For this let's work backwards, from the publication through to the exposed endpoint.
- Publication Security - this is set through the Publication Access List within SQL Mgmnt Studio
The group in question is the ExhibitorsGroup
Create a publication within the SQL Management Studio
(Publication General Properties)
(Snapshot Properties - note the file location)
(FTP Snapshot + Internet - I've just used Internet and no IIS server name as this is configured in the Mobile Wizard)
(Publication access list - I've blanked out sensitive info, but you can see the BETDEV\ExhibitorGroup being manually addded to the list) The rest of the publication settings are defaults - for me anyway.
- Let's go to the UNC share - = C:\Public\Exhibitor.SqlCE.FileShare
This is the UNC share that IIS repl component will connect to at the back end. Note: the BETDEV\ExhibitorsGroup obviously needs r/w access to this folder.
- Let's run the 'Configure Web and Synchronization Wizard' to configure the IIS component.
(you'll find it off the tools menu after you've installed the Mobile Server Tools from the links above) Note: one of the interesting things I found here is that after running the wizard, I normally go a tweak a few things in IIS - directory browsing etc. As a rule of thumb, if you want to change something with the Virtual Directory that is created at the end of this wizard, re-run the wizard to do it!!! :)
Press next if prompted with the welcome screen note my options here - SQL Mobile and press Next.Cool
Select the site and Create a Virtual Directory (I'm re-running the wizard so I'm going to select Configure Existing). Press Next.
I created an alias of SqlCERepl directory and accepted a sub-directory under the SqlMobile dir. (you can change this, but looking around the forums it was a source of grief - I could do without :) )
Here - I selected HTTP and not HTTPS access to the VirtualDirectory (and SQL Service agent). I did this as if you remember the diagram at the top of this post, ISA will serve as the HTTPS endpoint and will fwd the request via HTTP to our IIS/SQL box. IF you do want to change from HTTP to HTTPS or visa versa - re-run this wizard. Save you about 4 hrs of head banging. Click Next when ready.
On this page - I selected 'Authentication required' and not anonymous. This has something to do with the data that I'm replicating as I'm using a Filter based on 'UserName'. So in my case, the username that the devices connect with will be my differentiator (I looked into using something like 'deviceID' but didn't get too far) Click Next.
Select the type of authentication to be made against IIS - I selected NTLM (basic is fine also - but you need to be mindful that we're using HTTP at this point) Quick note on Security: So far, we've got 2 areas that need authentication. 1) the IIS virtual directory and 2) accessing the actual SQL Publication in the UNC share and SQL Publisher Access List.
So if the two machines are separated (IIS + Sql), NTLM will no transverse these machines (known as the 'double-hop' problem) so I'm assuming Basic or Kerberos is the safer bet. Click Next when ready.
On the Directory Access Screen note the presence of the ExhibitorsGroup and also this publication is accessing the UNC Share we created earlier. Next to continue.
UNC path specified - here you can see how this could be pointing to this SQL Share sitting on another machine as in the 2 machine hosted scenario. Click Next and Finish to see something like:
You're virtual directory is now configured. To test your configuration so far go to: /sqlcerepl/sqlcesa35.dll?diag" temp_href="http:///sqlcerepl/sqlcesa35.dll?diag">http://<server>/sqlcerepl/sqlcesa35.dll?diag - diagnostics screen to get something like: You should be prompted to login - enter account details that have access.
This is our fallback screen - next we will configure the ISA component and come back to our test screen to make sure. You're done - here. :)
- Configure ISA Server
ISA server will be the bridge between our public SSL access and our internal IIS/SQL Server. We would effectively like ISA to simply route the request and pass it through without to much tampering with our good packets.
ISA Server is on IP address: IP:Y_Internal The Internal Server here is : 10.1.0.191 The public Interface on the ISA Server is for our purpose known as IP:X_Public and it's FQDN is : demo.micks.org (in otherwords - this is the public DNS name that will point to the public interface of your ISA box)
NOTE: Make sure you have your SSL cert ready - I created an inhouse cert from a standalone cert server. You need at least a 'Server Authentication' Certificate to apply within ISA. (I'll show you a little trick in the mobile app to get round the fact that the certificate is from a non-trusted Cert. Authority by default) The friendly name on the cert should be - 'demo.micks.org' (without the quotes) All this keeps SSL happy.
- Create a publishing rule in ISA 2006 that will effectively route all requests coming to the public interface to our internal IIS/SQL Server.
- Fire up the ISA MMC and create a New Web Server Publishing Rule - I've called this sample rule, "Public to Internal IIS/SQL Repl"
Click Next when done.
- Rule Action - set to Allow
Next
- Publishing Type=Single Web
Next
- Server Connection Security - SSL.This means that SSL is going to be used over the public network.
Next
- On the Internal Publishing Details - I tend to hardcode the IP address in, just to reduce any ambiguity.
Note the IP address - internally acessible only. 10.x.x.x
Next
- Further settings on the Internal Publishing Details
NOTE: the option of fwding the original client host headers to the internal IIS/SQL (I found a variety of incomplete HTTP Header details errors attempting to sync if I cleared this checkbox)
We also can restrict the access on this rule by specifying the path of /SqlCeRepl/* (this is obviously the Virtual Directory created earlier)
 Next
- Fill in your public DNS name - don't worry that the wizard screen is showing http://demo.micks.org and NOT https://demo.micks.org
Next
- Create a listener (if you need to ) as follows:
(I've modified the screen shot slightly - from my listener) Note the ports: 8443 that SSL requests is coming on. You can use 443 if you prefer, I had other things on those ports) Also - I setup NO Authentication and replication works. You *could* try setting up Basic Authentication here and using Delegated Authentication (ISA server will login to the IIS/SQL box on your behalf with the inputted security credentials).
I've also supplied the Certificate here as well (add your cert to the machine store ahead of time)
A way to test if your auth is going to work - fire up your browser and try /sqlcerepl/sqlcesa35.dll?diag" temp_href="http:///sqlcerepl/sqlcesa35.dll?diag">http://<server>/sqlcerepl/sqlcesa35.dll?diag
You should be prompted for login details ONLY ONCE. If you need to supply them twice and then you see the diagnostic page, your mobile application replication will fail :-(. Once and once only.
Next.
- Authentication Delegation- we want the client to auth. directly against the backend (routed through ISA of course :) )
Next.
- User Sets - because we don't have authentication here, ISA can't determine users, so All Users is our only option.
Next.
- What a glorious site....almost done......
Click Finish to complete the wizard.
- Right click on the rule just created and select Properties - we need to change the Link Translation to OFF
This was the major source of my grief - I kept getting 'HTTP Headers malformed...' ERROR:28035 when trying to sync from the Device - yay!
I was fortunate to be able to contact a friend of mine Darren Shaffer (Mobile MVP) that explained what was required to be sent back/forth in the headers during the conversation - big thanks there Darren!
- You should be able to browse to /sqlcerepl/sqlcesa35.dll?diag" temp_href="https:///sqlcerepl/sqlcesa35.dll?diag">https://<yourserver>/sqlcerepl/sqlcesa35.dll?diag - it should WORK :)
If not - resolve before moving on. (you may get IE grumbling about the Certificate being invalid if it's an inhouse cert)
- Configure the MOBILE replication piece!!!
- Make sure you have installed the SQL CE 3.5 Core + Repl CABs at least.
- On the mobile device, I tend to have routines to Add and Remove DB Subscriptions as I found that if any publication changes on SQL Server happened - e.g. a field was modified, or a table added/removed from the Publication, then Merge Repl would fail even though it previously was working.
Easier to Remove the Subscription on the local SQLCE db, and then add it again.
Note: InternetUrl = " temp_href="https://">https://<yourserver.com> Username + pass must be a user that has access to all the bits we configured above. In my case, someone who is a member of the ExhibitorsGroup.
The code looks like this:
1: public void AddReplAndSync() 2: { 3: //using System.Data.SqlServerCe; 4: bool bAddRepl = false; 5: try 6: { 7: if (DoDBLookup("SELECT count(*) as cRow FROM __sysMergeSubscriptions WHERE Subscriber='ExhibitorSubscription'", "cRow") != "1") 8: { 9: bAddRepl = true; 10: } 11: } 12: catch 13: { 14: bAddRepl = true; 15: } 16: 17: SqlCeReplication repl = new SqlCeReplication(); 18: repl.InternetUrl = AppSettings.Settings.ReplServer + "sqlcesa35.dll"; 19: repl.InternetLogin = AppSettings.Settings.ReplUser; 20: repl.InternetPassword = "XXXXXX"; 21: 22: repl.Publisher = AppSettings.Settings.ReplPublisher; 23: repl.PublisherDatabase = AppSettings.Settings.ReplPubDB; 24: repl.PublisherSecurityMode = SecurityType.NTAuthentication; 25: repl.Publication = AppSettings.Settings.ReplPubName; 26: repl.Subscriber = AppSettings.Settings.ReplSubName; 27: repl.SubscriberConnectionString = string.Format("DATA SOURCE='{0}'", ESDAL.GetDBPath()); 28: 29: try 30: { 31: if (bAddRepl) 32: repl.AddSubscription(AddOption.ExistingDatabase); 33: CloseAllDBConnections(); 34: repl.Synchronize(); 35: } 36: catch (SqlCeException e) 37: { 38: MessageBox.Show(e.ToString() + e.NativeError.ToString()); 39: } 40: 41: } 42: 43: public void ReplRemove() 44: { 45: CloseAllDBConnections(); 46: SqlCeReplication repl = new SqlCeReplication(); 47: repl.SubscriberConnectionString = string.Format("DATA SOURCE='{0}'", ESDAL.GetDBPath()); 48: repl.InternetUrl = AppSettings.Settings.ReplServer + "sqlcesa35.dll"; 49: repl.InternetLogin = AppSettings.Settings.ReplUser; 50: repl.InternetPassword = "XXXXXX"; 51: repl.Publisher = AppSettings.Settings.ReplPublisher; 52: repl.PublisherDatabase = AppSettings.Settings.ReplPubDB; 53: repl.PublisherSecurityMode = SecurityType.NTAuthentication; 54: repl.Publication = AppSettings.Settings.ReplPubName; 55: repl.Subscriber = AppSettings.Settings.ReplSubName; 56: try 57: { 58: CloseAllDBConnections(); 59: repl.DropSubscription(DropOption.LeaveDatabase); 60: } 61: catch (SqlCeException e) 62: { 63: MessageBox.Show(e.ToString() + e.NativeError.ToString()); 64: } 65: } 66: 67: private void CloseAllDBConnections() 68: { 69: if ((_dbCon != null) && (_dbCon.State != ConnectionState.Closed)) 70: { 71: _dbCon.Dispose(); 72: _dbCon = null; 73: GC.Collect(); 74: } 75: 76: }
Trick to deal with Inhouse generated certificates - Within your mobile app we create a class that essentially returns True when asked 'Is this Cert. valid?'
Somewhere upon starting up your app - e.g. Form_Load - insert LINE#1 below.
LINE#3 onwards describes the class 'MyCustomSSLPolicy'
1: System.Net.ServicePointManager.CertificatePolicy = new MyCustomSSLPolicy(); 2: ...... 3: using System; 4: using System.Collections.Generic; 5: using System.Text; 6: using System.Net; 7: using System.Security.Cryptography.X509Certificates; 8: 9: namespace MicksDemos.Utilities 10: { 11: public class MyCustomSSLPolicy : ICertificatePolicy 12: { 13: public bool CheckValidationResult(ServicePoint srvPoint, 14: X509Certificate certificate, WebRequest request, int certificateProblem) 15: { 16: return true; 17: } 18: } 19: }
Closing note:
Hope you find this useful - I've done this a few times now and am amazed with the lack of info around this especially through ISA.
If you get any errors around "Can't contact SQL Reconciler..." etc errors - GENERALLY try and rebuild the snapshop server side, then try syncing again.
Nighty night!
At TechEd 2008 in Orlando, an announcement Silverlight 2 Beta 2 will be publicly available later this week. Improvement areas are: - UI Framework, including improvements in:
- animation support
- error handling and reporting
- accessibility support
- keyboard input
- performance
- more compatibility between Silverlight and Windows Presentation Foundation
- Rich Controls, including:
- Visual State Manager, permitting the creation of controls as templates
- text wrapping
- scrollbars for text boxes
- Networking Support, including:
- improved cross domain support
- security enhancements
- upload support for web client
- duplex communications (a server “push” model from server to a Silverlight client)
- Rich Base Class Library, including:
- improved threading
- LINQ-to-JSON
- ADO.NET Data Services support
- improved support for Simple Object Access Protocol (SOA)
- Deep Zoom Support, including:
- a new XML-based file format for Deep Zoom image tiles
- a new MultiScaleTileSource that enables existing tile databases to utilize Deep Zoom
- event-driven notification for zoom/pan state
Thanks Scotty for the reference to this. Check it out from the Silverlight Horse's Mouth Cheers, Mick.
I was cracking into getting my machine setup for a Silverlight project that I'm working on and came up with the above error.
Now....I admit....running x64 Windows 2008 on my Fijitsu Laptop mighten be the best combination given the huge support for my laptop drivers that I have. I installed all the new(er) Silverlight 2.0 Beta bits from http://silverlight.net (VS2008 Silverlight 2.0 Beta 1 Bits) and opened up my VS2008 seeing all the new Silverlight project types - cool! (I thought) Each time I either created or opened an existing project - boom! up came the error. So I figured the installation didn't complete properly.........after running/re-running/uninstalling/installing countless times the error was still there!!!! My one solace and saving grace was running the following command line: devenv /setup ......"I'm on my way, on my way to happiness today.....ah huh ah huh ah huh"........ 
Back in V2.0 we had a Web Service that did this sort of stuff for us, now in V3.0 it's delivered straight from the Object Model. Essentially: - We create a batch of XML which could have 'adds, updates + deletes' in there.
- We call the web.ProcessBatchData(xml) method, handing to it our wishes.
This technique is fast, and CAML based :( So if you need to add 100 items to the list - this would be a way to do it. (I've got to check whether this technique fires event handlers on the lists or whether it's a 'back door' thing)
Note: in the snippet below, the fields are referenced via their namespace#<name> - you can get the field's details by saving your list 'As a template', downloading the *.stp file, renaming to *.stp.cab, opening it and looking into the *.xml file there. - you could also call the lists.asmx webservice (..\_vti_bin\lists.asmx) and calling the GetListCollection(); method to see a chunk of describing XML. 1: "<ows:Batch OnError=\"Return\">" + 2: "<Method ID=\"A1\"><SetList>" + myGuid + "</SetList>" + 3: "<SetVar Name=\"ID\">New</SetVar>" + 4: "<SetVar Name=\"Cmd\">Save</SetVar>" + 5: "<SetVar Name=" + 6: "\"urn:schemas-microsoft-com:office:office#Title\">" + 7: "New Manager</SetVar>" + 8: "<SetVar Name=" + 9: "\"urn:schemas-microsoft-com:office:office#Body\">" + 10: "Congratulations to Mary for her promotion!</SetVar>" + 11: "<SetVar Name=" + 12: "\"urn:schemas-microsoft-com:office:office#Expires\">" + 13: "2003-09-14T00:00:00Z</SetVar>" + 14: "</Method>"
Here's a small MSDN article on it - http://msdn.microsoft.com/en-us/library/cc404818.aspx
Cheers,
Mick.
Clayton sent through a great picture that explains what the main placeholders are on SharePoint Master Pages. Well done CJ - thanks! 
Hi folks, While freezing in NZ (this week) I came across this this great MSDN article discussing some of the lower level implementation details around .NET 3.5 Framework. The part that interests me is the Presence information (right at the end of the article) where once a connection is setup, you can get presence information about the other party - right from the .NET 3.5 framework.
If you've ever had to try and develop for that other ways i.e. by talking straight to communicator, or messenger or... etc.
You'll realise that they each have a slightly different API set, (some accept SIP, some don't, some require it, some don't...) and it's opening up trouble - cause on the target deployment machine...can you imagine the production guys when you say "hang on, I've just got to go and download Messenger (from Live)...." Anyway - here's the article. Enjoy - http://msdn.microsoft.com/en-us/magazine/cc163356.aspx
It's a page that's hidden away and difficult to land on from a Search....so I thought I'd list it here for us all
http://www.pc-ap.fujitsu.com/support/drv_lb_vis64_t4215.html
Windows Vista 64bit Drivers
| Driver Name |
Readme file |
Version |
Size(bytes) |
| |
|
V.6.10.0.5274A |
5,352,330 |
| (FUJ02B1) |
|
V.1.23 |
11,655 |
| (FUJ02E3) |
|
V.1.20 |
11,434 |
| (For model with Fingerprint sensor) |
|
V.7.7.0.68 |
206,889 |
| (For model with Bluetooth module) |
|
V.5.00.07 |
29,491,323 |
| |
|
|
654,550 |
| |
|
V.6.2.1.1002 |
252,448 |
| |
|
V.9.16.2.3 |
164,250 |
| |
|
V.2.1.77 |
935,338 |
| |
|
V.6.0.40001 |
55,209 |
| |
|
V.1.0.0A |
2,236,416 |
| |
|
V.3.0.1.2 |
1,958,494 |
| |
|
V.9.1.11.0 |
6,710,882 |
| |
|
V.7.14.10.1147R |
10,535,384 |
| |
|
V.10.6.0.46 |
3,701,179 | |
After much trialling and not much success.....Skype would install on my Windows Server 2008 x64 no problems, but at the sign-in screen the app would crash.
This happened in many different ways over many different Skype install permutations.
I think I've cracked it with an older version being the goods:
http://www.oldapps.com/download.php?oldappsid=SkypeSetup_3.0.0.190.exe
Cheers,
Mick.
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
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!
Kirk Allen Evans recent blog post caught my 'silverlight eye'.  Shows some interesting effects that can be done with Silverlight and importantly has the src code there for you to learn from. Well done Kirk!
I'm about to run training at the Microsoft BizTalk RFID Solution Days and I was contemplating rebuilding my host O/S which is Win2008 RC1 x64. The RFID devices that the students will walk away with are USB based. I use a third party USB Sharing software to share the USB ports to the VPCs. The thing I've noticed is that using the USB drivers the sharing and responsiveness works a treat. The problem is that there are no - 64 bit USB drivers for the RFID1 device.....until now!!! :) I decided to 'fudge' a *.INF file that installs the x64 bit drivers much in the same fashion as the i386 drivers. So my current setup is: (a) Host - Win2K8 x64, RFID devices plugged into it with x64 USB Drivers. (b) USB Sharing Software (c) Inside a VPC (using Hyper-V) running the 'client' of the USB Sharing I install the x32 bit USB Drivers. This VPC is running x32 BizTalk RFID and basically the course! We're cooking!
Grab the drivers below RFID1_Usb Drivers x64 x32.zip
UPDATED: Windows 7 x64 will install these drivers from http://www.ftdichip.com/Drivers/VCP.htm
A CDM 2.04.16.exe has it all - http://www.ftdichip.com/Drivers/CDM/CDM%202.04.16.exe
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.
I received an email from a good friend of mine Venkatesh (who has just moved into his own company) and has a wealth of knowledge in BizTalk RFID - he headed up the development team in India in creating the product. Top effort! Great product. Venkatesh ran some of our first RFID training sessions over Christmas in Singapore and India - and with Venkatesh as talented as he is has come up with a 'Tool' to help all of you troubleshoot and resolve BizTalk RFID related issues. Enter RFIDMon - monitors events, WMI etc. - helps to keep your BizTalk RFID looking good :)
Love the new site too!!! Check it out here - RFID Monitor
Watch this S3Edge space
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!!!
Well looks like the team have made ready some great goodies in WSS 3.0 SP1, MOSS SP1 and SPD SP1. These are Service Packs with enhancements also. You need to install WSS 3.0 SP1 first then install MOSS SP1 (if you have a MOSS server) Grab the details from the links below for both x86 AND x64 versions....
| Link | Details | | | WSS 3.0 SP1 (download) | Windows SharePoint Services 3.0 Service Pack 1 delivers important customer-requested stability and performance improvements, while incorporating further enhancements to user security. This service pack also includes all of the updates released for Windows SharePoint Services 3.0 prior to December of 2007. You can get a more complete description of SP1, including a list of issues that were fixed, in the Microsoft Knowledge Base article 936988: Description of the Microsoft Windows SharePoint Services 3.0 Service Pack 1. | | | MOSS 2007 SP1 (download) | The 2007 Microsoft Office Servers Service Pack 1 delivers important customer-requested stability and performance improvements, while incorporating further enhancements to user security. This service pack also includes all of the updates released for the 2007 Microsoft Office System servers prior to December of 2007. You can get a more complete description of SP1, including a list of issues that were fixed, in the Microsoft Knowledge Base article 936984: Description of the 2007 Microsoft Office Servers Service Pack 1. | | | New Features in SP1 whitepaper (download) | This white paper describes features that are included in Microsoft® Office SharePoint® Server 2007 Service Pack 1 (SP1) and Windows® SharePoint Services 3.0 Service Pack 1 (SP1). In addition, this paper provides some guidelines for planning your solutions to work with current and future versions of Microsoft SharePoint Products and Technologies. | | | Sharepoint Designer 2007 SP1 (download) | Microsoft Office SharePoint Designer 2007 Service Pack 1 delivers important customer-requested stability and performance improvements, while incorporating further enhancements to user security. This service pack also includes all of the updates released for Office SharePoint Designer 2007 prior to December of 2007. You can get a more complete description of SP1, including a list of issues that were fixed, in the Microsoft Knowledge Base article 937162: Description of the Microsoft Office SharePoint Designer 2007 Service Pack 1. | | Enjoy,
Mick.
Just to let you folks know - you no longer have to create special pipeline components, cases etc. for handling flat files. R2 will resolve (dynamically) the schema from those that are deployed!!! (c.f. to xml) To set it up: - create a custom pipeline + add a FFAsm component to it. - leave the schemas properties blank. - BizTalk will now use dynamic resolution for the incoming schemas.
This is great news!!!! I can now throw out my 'dynamic FF schema resolver custom component'
Enjoy!
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.
Finally the word on the street is out with Volta finally being announced (cool name).
What is it? What can it do for me? (lately 
Here's an example scenario: - you write a classic .NET Winform/Client App. - put your 'Volta' hat on and nominate sections, routines etc. of your app and which tier/layer you would like the components/classes/sections to run on. - You then nominate Web Layers or classic CLR client layers etc. - Volta crunches your design and boom!!! You've got your SENSATIONAL multitier app from your original single whole app.
In fact - check out this great Walkthrough for the 'Hello World app' You don't need to worry about app splitting yourself the Volta 'directives' do the work.
When I was at Uni this sort of thing was in an area of my studies (simplified and more specific though - nominating code sections to run concurrently across many distributed CPUs....yeah I know - I'll get back to some English).
Where is this going? Did I tell you about the next version of BizTalk codenamed 'Oslo'....
My take is that this is (and this is purely just me kicking some tyres with you guys) that BizTalk vNext is all about Modelling. Having a central repository that holds all forms of 'models' that describes not only the process, design, test....but Volta is a preview on the 'deploy' aspect of these Models. The important point in BTS vNext is that *it is the Model that is executed* not some result of a process that you've run a week ago on that model, otherwise these models get out of date quite quickly. Here's the 'official Volta blurb'- ------------------------
On Wednesday, December 5th, Live Labs will announce Volta, an experimental developer toolset that enables developers to build multi-tier web applications by applying the familiar techniques and patterns of developing .NET applications. In effect, Volta extends the .NET platform to further enable the development of software+services applications, using existing and familiar tools and techniques. Similar to other technology previews from Live Labs, the purpose of releasing Volta as an experiment, allows for testing of the model with customers and partners in order to gather early feedback and continually influence the direction of Live Labs technologies and concepts. In addition, where and how Volta will fit into a product roadmap is not the end goal, but rather to experiment with new alternative models to enable Microsoft to continue to be innovative in this new generation of software+services. Volta Key Messages: Volta is an experimental developer toolset that enables developers to build multi-tier web applications by applying the familiar techniques and patterns from the development of .NET applications. Developers can use C#, VB, or other .NET languages utilizing the familiar .NET libraries and tools. Volta offers a best effort experience in multiple environments without requiring tailoring of the application. Volta furthers Microsoft's software+services efforts by making it easier to write and build multi-tier applications. Volta automates certain low-level aspects of distributing applications across multiple tiers, allowing programmers to devote their creative energy to the distinguishing features of their applications. Via declarative tier splitting, Volta lets developers postpone irreversible design decisions until the last responsible moment, making it faster and cheaper to change the architecture to accommodate evolving needs. Through MSIL rewriting, Volta follows developer's declarations to turn a single-tiered application into a multi-tiered application, generating boilerplate code for communication and serialization. Volta, like other technology previews from Microsoft Live Labs, is an example of the rapid innovation of web-centric technologies happening at Microsoft. The purpose of the technology previews, such as Volta, is to test new technologies and product concepts with customers and partners and to gather early feedback to influence the direction of Live Labs projects.
The problem about Sharepoint implementations is that typically when you create your Sharepoint Web Application from Central Admin, there is one ContentDB that you assign. Then spare no more thought to it...... In update KB934525 MS added a new command to stsadm called MergeDBs. This handles it all for you in a single command. You need to specify, WebApp1 address, contentDB1 and an excerpt of the stsadm -o enumsites command to specify the site(s) you want to 'migrate' to ContentDB2. Here's a great step by step article by Todd Well done!
I recently came across - Distributed Pub/Sub Project up on CodePlex (judging by its date/time stamp this project has been there for a little while) What is interesting is to see where MS are looking to take these sort of systems and why - the whitepaper is a *must* read.
Coming from the land of BizTalk where we typically eat/sleep/breathe pub/sub - here is a 'new' prototype project designed at building a low latency distributed pub/sub eventing system (but I won't mention ESB .... I promise :) ) Check it out - I'd love to know your thoughts Cheers, Mick.
Move over Thierry Henry(shame he's gone to Barca :), Kylie and U2..... make room for .NET 3.5 up on your wall. The folks at MS have been super busy, while talking about what will be in .NET 4+ they release the posters. Stay tuned for more! Grab the .NET 3.5 Common Types and Classes

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!
Well I recently went down the task of upgrading my notebook to x64 - Win2008 RC0. So far so good - a little hunting for the vital drivers (bluetooth) and it's rocking.
I then went to continue on with some BizTalk RFID work and boom!!! I forgot that I needed to update these drivers also .
Fortunately after some researching (knew I'd put that Computer Engineering degree to good use) - I found the drivers I needed, although they don't say "DLP RFID Drivers...." Essentially they are some sort of USB port converter - works fine with the DLP_RFID demo program.....cool.......
When you install the Drivers - from Device Manager, select 'Update Driver....' and explicitly point to the root of the DLP x64 driver's folder. From here you will be presented with 4 driver options. Select 'USB Serial Converter' .....you're away! I've done all the hard work for you - grab them here 
Hi guys, if you've ever embarked down the 'hey I want to monitor my bts system through Operations Center 2007', you'll realise that there is a fair conversion process to take the original BTS2006 MOM Pack from *.AKM format to the newer *.XML format. Essentially you do: 1) Install a conversion tool on MOM 2005 SP1 machine 2) run the conversion process 3) take the exported file to your Operations Manager 2007 4) Import the *.XML to Ops Mgr 2007 to generate the classes. Or........ you could download the ready made version - http://www.microsoft.com/downloads/details.aspx?FamilyId=389FCB89-F4CF-46D7-BC6E-57830D234F91&displaylang=en Wow what a winner!!!! Problem solved....... cross that one off the list 
You've been working away playing with the great DLP devices, reading tags and making things go 'beep'. BizTalk RFID RTM-ed not too long ago (Sept 14th was public release) and with that, your DLP provider needs to be updated - last time, I promise. To save you the pain, Scotty and I have been through this for you and provided the Device Provider Assemblies.zip (56.44 KB) (updated) for your pleasure (or is that leisure?) Scotty is a man of many words and he explains the 'Way of the Peaceful warriors' path that must be walked to achieve the goal. Enjoy guys - I'll be letting you in on some big announcements soon.....(I'm not pregnant! ) Mick.
Hard working and always available 'Big Kev' aka Scott Scovell has come up with a gem in his latest blog post. Grab the sequence and the order of components, as well as finer details around the need to change BizTalk RFID Services from using your default website (usually if Sharepoint is on the box, then it's a good idea to) Well done Scotty! Nice one.
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
I recently came across this and thought I'd share it with you - keep it handy for those planning meetings :) | Microsoft BizTalk Server 2006 R2 Editions - Comparison Chart | | SKUs | Microsoft BizTalk Sever 2006 R2 Editions | | | Enterprise | Standard | Branch | Developer | | Primary Scenario | Designed for customers with enterprise-level requirements for high volume, reliability, and availability | Designed for businesses with moderate volume and deployment scale requirements | Specialty version of BizTalk Server designed for hub and spoke deployment scenarios | Available for development and testing purposes, and BizTalk Server 2006 Evaluation Edition (EVAL) is for free evaluation purposes | | License | Per processor basis | Per processor basis | Per processor basis | Per processor basis | | Price (in US Dollars) | $30K per proc | $8.5K per proc | $1.8K per proc | $500 per proc (free with MSDN Universal) | | Functionality | Complete EAI, B2B, and Business Process Management functionality | Complete EAI, B2B, and Business Process Management functionality | Subset of BizTalk Server functionality appropriate for intra-enterprise hub-and-spoke scenarios | Complete EAI, B2B, and Business Process Management functionality | | Accelerators | Includes all vertical industry accelerators (RosettaNet, HIPAA, HL7, and SWIFT) | Includes all vertical industry accelerators (RosettaNet, HIPAA, HL7, and SWIFT) | - | Limited solely to designing, developing, and testing solutions | | Adapters | Includes all current and new application and technology adapters | Includes all current and new application and technology adapters | - | Includes all current and new application and technology adapters | | RFID | Includes BizTalk RFID | Includes BizTalk RFID | Includes BizTalk RFID | Includes BizTalk RFID | | Host Integration Server (HIS) | Includes Host Integration Server 2006 Server Edition | Includes Host Integration Server 2006 Server Edition | Includes Host Integration Server 2006 Server Edition | - | | Applications | Unlimited | Five | One | Unlimited | | Failover | Scale out/failover multiple message boxes | - | - | Non-production (must participate in the ISV Royalty Program to sell these SKUs) | | Maximum Processors | Unlimited | Two | Two | Not Applicable | | Virtual Processors | Unlimited | - | - | - |
Hands up who's feeling like a second class citizen? R2 launched weeks ago. Where's the version I can sink my teeth into?? The 120 day Trial Edition is so yesterday....so what's cooking....???
The MSDN Developer edition will be available on/from Wed 26th (US Time),
so Thurs morning or so for us.
I got an interesting piece of BizTalk trivia for you all from folks at Corp........ | Factoid | Source | | 12 of the 15 largest Retailers in the World run Microsoft BizTalk | Elsevier Food International, September 2006 (sourced from PlanetRetail database) | | 5 of 10 largest Hotel Chains in the World with over 2 Million rooms use Microsoft BizTalk | Hotels Magazine, July 2007 | | 6 of the 8 largest U.S. Pharmacuetical Companies use Microsoft BizTalk | Fortune 1000 by Industry, April 30, 2007 | | 4 of the 5 largest U.S. Electronics Parts Manufacturers use Microsoft BizTalk | Fortune 1000 by Industry, April 30, 2007 | | 9 of 10 largest U.S. Telecommunications Companies use Microsoft BizTalk | Fortune 1000 by Industry, April 30, 2007 | | 9 of the 10 largest Aerospace and Defense Companies in the U.S. run Microsoft BizTalk | Fortune 1000 by Industry, April 30, 2007 | | 5 of the 8 largest U.S. Chemical Companies run Microsoft BizTalk | Fortune 1000 by Industry, April 30, 2007 | | 4 of the 5 largest Railroads in the U.S. run Microsoft BizTalk | Fortune 1000 by Industry, April 30, 2007 | | 9 of the 10 largest Insurance Companies in the World run Microsoft BizTalk | Insurance Information Institute (from Fortune Global 500 data) | | 23 of 27 EU member governments use Microsoft BizTalk to provide more efficient government services | European Union web site |
The only thing I say is ...... "What am I doing wrong" :)
I'm currently kicking back at the partner conf. here on Hamilton Island - I have to kick myself to remind me that I am on a conference. Beautiful scenery and temperature....I'm sure you get the classic sunset palm tree over a beach image in your mind........no more need to be said. What I did want to share - I'm currently listening to Ian Polangio (MS Sharepoint TS) where he brought up a couple of great (beta) Search sites. 1. http://mrsdewey.com/ - here's a talking person who acts and 'shows' parts of your search results. (She has a bit of attitude to boot as well)
2. http://www.tafiti.com/ - silverlight based search site. Builds trees and it's quite interactive. I did a search on my name 'Mick Badran' and some interesting results came up 
Very interactive in Silverlight - lots of things spinning and moving and pinning

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....
In the previous beta this tool supported a huge range of different blogs and their respective APIs....except Sharepoint. (There was a tweak we could do, but essentially you had to turn off NTLM authentication and go with Forms.....generally this wasn't going to happen anytime soon) Enter - LW Beta 2 - pick up your copy HERE Enjoy!
If you're like me and run a few virtual machines each day, then running them with ease is key I reckon.
Generally I've found on dual core machines etc. virtual server makes better use of multi-cpu based hosts than what Virtual PC2007 does (VMWare vs VPC is another debate :)
The only draw back is that I've always had to setup this IIS based website and it gets painful, particularly on a laptop etc. when all sorts of things get installed and uninstalled etc. IIS sites sometimes stop working and thus your only lifeline to the running virtual machines.
Well VMRCplus is the answer! (This used to be an internal MS tool which it looks like they've released to the public)
YOU DO NOT NEED IIS with this baby - it uses the COM Api behind the scenes.
Grab it here........
VMRC PLUS
Some features to wet your appetites:
- Direct control of local or remote instances of the Virtual Server service. IIS and IE browser are no longer required!
- Tabbed interface to quickly jump between Virtual Server hosts and guest VMRC sessions.
- Reusable saved states: this feature allows users to preserve a particular saved state and return to that state at any time.
- Multiple guest selection supported for startup/shutdown/save/display.
- Browse button navigation for media, hard disk images, ISO images, .VMC files, etc.
- Drag and Drop support for .VMC files, ISOs images, VHD and VFD files.
- Resizable desktop support for guests running Virtual Machine Additions (maximize VMRC window supported).
- Limited cut and paste of text from host to guest (only).
- A built-in utility to take JPG screenshots of running guests. Useful when filing bugs.
- Built-in error notification with Virtual Server eventlog viewer.
- A Virtual Networks Manager and Virtual Disks Manager that cover all features.
- Keyboard shortcuts (e.g. Ctrl-S to save state a guest).
- Create multiple guests at once.
- Create guest from parent (or multiple guests)!
- Automatic reconnect to a designated Virtual Server host.
- Toolbars in both Guest and Console Manager for quick access.
- Unlimited number of guests.
- Maximum of 32 Virtual Server hosts.
- Sorting on columns of guests so you can sort based on status and multi-select.
- Automatic detection of Virtual Machine Additions and notification.
- Detection of Virtual Server 2005 R2 SP1.
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!
Years ago we struggled when clients surfed to web pages, to try and get any sort of information out about them. To get more info, we would present a little page with some client script to determine ('mine' being the operative word) their capabilities (cookes, script, even had access to Navigation History etc etc) I was recently contacted by a site and part of the request I was presented with my User_Agent string for my initial request. HTTP_USER_AGENT=Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; Tablet PC 2.0; InfoPath.2; FDM) Who can determine the most out about this machine? So your default User Agent strings *do* tell alot about the software you're running. We can modify this, but you run the risk of websites etc. not interacting fully with you (and I know how much we all love our Ajax!)
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......
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....
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!
I could talk about it........I soooo wouldnt do it justice........forget the pacman cocktail machine. See MS Surface Here’s a Microsoft Surface demo:
I'm pretty excited about this one! BI - Business Intelligence. It usually comes up towards the end of my project (especially BizTalk ones), what do we now do with our information within our SQL Cubes?? I find that the subject of BI is never properly addressed - whitepapers etc etc. How do you set this up, more importantly - how can you make it effective and meaningful for your Organisation.
*Good question I think* - I know SQL 2005 has a whole bunch of prediction models etc etc....once I get my winning lotto numbers out of it....this blog will be just cease.....till then :)
So what's cooking (the paperback version) of this offering:
- 5 days - get comprehensive and specific expert knowledge for 5 days. (Could be some of the most fruitful 5 days you spend!)
- Our instructors have worked with Microsoft Corp in creating and delivering the Microsoft BI Official Curriculum - they definitely know their stuff
 (we know your time is precious - we aim for our offerings to be pinpoint and as effective as possible for you)
- Learn out the new Microsoft BI Platform- Sharepoint 2007 Portal Dashboards, Performance Point, Proclarity, OLAP Cubes and more
- I'm someone that learns by doing.....so 40% of the course is interactive hands-on labs!
- We've partnered with DDLS (this allows us to focus on what we do best together) - to bring you the best possible learning experience.
- (I'm wanting to get on the course!!!! Brilliant....delivered to your city....you dont have to travel to the heights of Mt. Everest to find someone that knows about BI :))
More Information, Course Details - HERE
Book on the Course HERE
Hope to see you there!! :)
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.

During the conference I had the pleasure and oppty to spend some time with Andrew and his family. The conference was tooooo short - should have been 4 days.
It's not often you come across great inspiring people, with a great attitude to 'lets see if we can make this better', and a fantastic personality to match!! (nothing worse than wall flowers). We kicked some tyres around Sharepoint and hatched a few ideas of "what would be really cool if...".(stay tuned) Very level headed guy with a great perspective on what's important and what's not....I suspect that may have alot to do with his wife Meredith :) (just a hunch!) It's a pleasure. Mick.
A magic piece of software that deserves a great rap!!! :)
There I was....on a client site 'inbetween' meetings (as best you get) and I got a call from another client having a biztalk issue and needed some guidance. (sound familiar....family members wanting remote phone support....)
So I was chatting to my beloved/dear client trying to sort out the issue. If only I had a view of their screen....I thought 
I then ran some thoughts through my head.....Netmeeting....I could try and get that going, but what about firewalls...the whole I'll call you, no you call me thing - it works, doesnt work....time consuming to set up etc. (you get the picture) - I'm thinking this is gonna be at least a 30min phone call.
Then I remembered (as a MVP) I get a few offers each month of 'use our product' type deals....and I remembered this one from Microsoft called 'Tahiti' - sharing/collaboration tool. (not to be confused with the Tahitian - "Save the cheerleader....save the World!")
Now get this - from digging up the past email, clicking on a link, 3MB download, installing and setting up a session, inviting the person at the end of my support call (via email, or I could use IM). And then they doing a corresponding setup etc. 15minutes!!!! 15 minutes only!!!
And within that time I was seeing their screen, control of their screen AND we had invited another techie to the session to help resolve their area of the problem.
So 3 people, all behind respective firewalls - collaboratively sharing etc.
SENSATIONAL!!!!! It really is a top top top (3 tops - must be good :) application.
Well you can grab the application (which is now called SharedView) from Microsoft Connect - Shared View



And now the finally........in 15 minutes...the sharing window!

(AND it's the sort of app that if you've got running....people are GOING to stop by your screen and think it's the next SilverLight application!!)
After being directed by a TechNet article to get the latest version of WDS - I was ready for the install. Double clicked on wdssetup.exe - ready to roll. A big error message says "Please remove previous versions....then upgrade" After scouring add/remove programs and the updates, there was not 'apparent' entry called 'Windows Desktop Search' (I was directed to another article that mentioned if I checked the 'MSN Apps' registry to see if there was a WDS Version registered there.....I had a version number 3.0.0.000x but not much more as in a productID) I finally resorted to a registry hack - searched for all key/values that had 'Windows Desktop Search" somewhere (as this was the path under c:\program files\..." - and I hacked away. (this was a VPC image with undo disks turned on - so dont try this at home boys and girls :) After completing that....I thought I'd re-run WDS 3.01 setup again.......and I got further than before - in fact the furthest I'd gotten. I arrived at a welcome screen with a 'Next' button....guess what the first thing it did after I hit next.......... ".....Upgrading previous versions......" ......now where's that number to book myself in!!! 
There I was preparing some demos for this upcoming conference and BAM, the old API quirks are lurking.
Basically I wanted to simply set the Title or Name fields on a File in a Document Library. All sounds simple enough.
Here's the code:

It's a pretty simple sample, grab the file you want - in my case I'm just picking the first one. Line 48/49 - compile and run, but do not set the Title of the file element. *** Lines 50-52 are the winners.
So even though the in lines 48/49, there is actually a 'Title' property and it's settable, it falls on deaf ears as far as WSS is concerned.
I was hoping the File and its corresponding list item were kept in sync......never assume.
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).
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.
Today in class (in the beautiful city of Perth :) I was busily going through a class demo in BTS06 R2(Feb CTP) and I created a Project having: - BizTalk project
- Test App
- BizTalk Wizard Published WCF Service hosted in IIS.
I then needed to give this out to the 12 students in class, so I (some something quick): - zipped up the project + Test App
- exported the Bindings info (via a MSI)
- Seeing I had made a few changes in IIS to the virtual directory/web app created I decided to use IIS Mgr, select the Virtual Directory, then under 'Tasks....' select 'Export to Config file xml' option
This essentially saves the metadata (that's normally placed in the IIS metabase) into the file - I envisaged the students would be able to 'Import XML IIS Config file' and be done with it..........
nice thoughts...... After all was said and done, the error we got was something like "Receive location /SERVICES/WCFSERVICE/page.svc" could not be found. All was inplace and worked on my machine.....we did discover what the problem was and moral to this story..... "/SERVICES/WCFSERVICE/page.svc" is treated differently to "/Services/wcfService/page.svc" (this was the actual BTS receive location path settings for the 'basicHttpBinding'. Solution: - either change the BTS receive location to capitals....or....recreate the Virtual directory under IIS.....or......modify the virtual directory config.xml file.
Now we know......
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 :)
The future is bright - setting up Tokens that are visible across 'The Cloud' is already done! http://sts.labs.live.com - shared token http://relay.labs.live.com - shared relay services We get access to these services typically through WCF and various channels and behavior options going fwd. What this means for us - less code and if your client and server application/service are behind firewalls at different locations. net.relay://..... So I think in 'yesterdays terms' we called the relay service - http tunnelling 
With these services we get Policy and Metadata exchange such that if any settings change on the service, then the client is automatically re-authed and prompted for Tokens.
Go and check out the labs here - very cool stuff!
Microsoft have released a downloadable book for planning and architecting MOSS http://technet2.microsoft.com/Office/en-us/library/64f7f9fb-3994-477f-9e6d-570812c3d5131033.mspx?mfr=true Here's a page snippet Downloadable book: Planning and architecture for Office SharePoint Server 2007 Updated: December 14, 2006 This book provides information and guidelines to lead a team through the steps of planning the deployment of a solution based on Microsoft Office SharePoint Server 2007. The audiences for this book are business application specialists, line-of-business specialists, information architects, IT generalists, program managers, and infrastructure specialists who are planning a solution based on Office SharePoint Server 2007. This book also includes links to planning worksheets for recording information related to your planning and deployment activities. Click the following link to open a Microsoft Word .doc file that you download to your computer and print. This document contains the same information as the "Planning and architecture for Office SharePoint Server 2007" section of this TechNet Web site. The size of this document is approximately 7 MB. Planning and architecture for Office SharePoint Server 2007 (http://go.microsoft.com/fwlink/?LinkId=79552&clcid=0x409)
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.
This has been one of the toughest assignments for a while due to the lack of error details. No eventlog and no AD or MOSS Logs.
Basically setting up In-coming Emails works like this: 1) the MOSS Server in the farm will poll a SMTP 'drop' directory (usually c:\inetpub\mailroot\drop). So mail has to find its way to that drop directory.
2) The Sharepoint Directory Management Service will (if told to) go and automatically create 'entities' (contacts) and assign them email addresses in the OU specified below. That's the theory!!
The DM causes a couple of issues - you've got to run the site under an acct. that has access to the OU (you may need to assign assign the appropriate permissions to the OU in AD for this user)
The DM creates these Contacts by supplying a Schema full of info and this inturn creates the Contact. Problem - what if your AD schema doesnt match what DM expects....."Error in Application!"
(This took me the longest - as I had this running in 5 mins on a client site and then on a different site....no go)
The schema 'additions needed' for the DM to work 'seemlessly' are added when you install Exchange2003/2007 - the initial parts of the install are ForestPrep and DomainPrep - I ran these on their own without installing Exchange and the DM worked a treat!!! (I'm sure you'd be able to add the appropriate schema extensions 1 by 1 without the need for Exchange and then be able to run any mail server - but which ones?)
3) Within Central Operations setup the incoming emails to be something like this:
My server is called MOSS and it's part of the LITWAREINC Domain

3) Now under site settings you can easily enable Incoming emails

Always handy info to keep at an arms length, especially when doing upgrades of BizTalk 2004 to 2006 or building/migrating Sharepoint webparts from v2.0 to v3.0. Msdn article found here: Breaking Changes Enjoy - Mick.
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)
It's all pretty easy actually - if you have IE7 look in the drop down list of search providers (top RHS) and you'll see me
Dont know whether you'll use it - but it saves me all the time when I'm out on site and "I know I put that somewhere....." thought comes into my head. The way to set your own provider up: - Create an XML Sample Provider file - from here
- Upload the file to your blog somewhere - let's say the root.
- Add the line to the top of the page
<link rel="search" title="<your title>" href="<url to searchProvider.xml>" type="application/opensearchdescription+xml" /> - Save all and you get a nice little drop down entry like mine!
Enjoy!
Basically - it can act as a fast backup/restore using this feature. No need to trawl throughback through the tapes and yes....I know WSS 3.0 has 2 levels of Recycle.....BUT guaranteed those Users are fantastic creatures :) We could put 7 recycle bins in..... Check out http://support.microsoft.com/default.aspx/kb/929649
While struggling to get all the links together and the correct version of all the accessories to .NET 3.0 RC1 (as this is what BTS requires).
I wanted to develop Workflow based solutions as well and noticed my friend Paul Andrew has read my mind in his post HERE
Here's a snip:
I have a Windows Vista RC machine and a Windows XP machine which I've installed these on. It's also the same install on Windows Server 2003 if you use that as your development environment.
Hi folks just to let you know that there's has been a recent update to this, make sure you grab the latest copy. Sept. 06 is the latest I believe.
How handy to have all that material in a searchable CHM file!!! (might add it to my classroom images :) )
Get it here
Updated a machine to all the latest patches/updates/hotfixes...whatever. Rebooted (there's always that moment where you wonder "will it" or "wont it" startup again.......
My system gave me a great error message (worst thing is - this was working fine before the patches. Windows didnt care)

While working on a BTS 2006 solution - I decided to use the SQL Adapter to call a stored Proc to update data. While the SQL Adapter wizard is OK, there's no real reason to use it. I usually delete everything it creates, apart from the Schema for namespace samples. The Namespaces you specify through the wizard is there mainly for the SQL Adapter to figure out where the bits are for it to process, and where return results should be inserted into...... In alot of solutions I build, I usually have a single generic SQL Update Orchestration, not an Orch, Schema + Port for each type of SQL action required. The trick to all this is how the SQL Adapter handles the messages sent to it. More details is found in the SQLXML documentation. The paper back version: Let's say I have two tables and a Stored Proc that I want to use within the SAME DB (if I want to talk to different DB's then we'd need to create a separate message for the different DB's to update due to the fact that the physical SQL Port (whether it be 'dynamic' or physical) e.g. SQL://ServerName/DB....... Table A: PacMan Players Fields - Name, email Table B: PacMan Scores Fields - email, score Stored Proc: UpdateScores Params: email, score, gametime If these three were in the same DB here's the message(s) that you'd need to send to the SQL Adapter (could even be via CBR and not ALWAYS an Orch). e.g. a sample message for stored procs. <sqlRequest xmlns='http://micksdemos.sql'> <Updates> <UpdateScores email='jackiechan@j.com' score='54' gametime='1200' /> <AnotherStoredProc p1='2' p2='aaa' p3='....' /> </Updates> <Results> <!-- **** Set to be ANY element here, with 'skip' processing set via the schema **** --> </Results> </sqlResults> e.g. a sample message for tables (further details on this message structure can be obtained from SQLXML Documents) <sqlRequest xmlns='http://micksdemos.sql'> <sync> <after> <PacManScores email='jackiechan@j.com' score='22000' /> <PacManPlayers Name='mick' email='mick@b.com' /> ... </after> </sync> </sqlResults> Now the interesting thing upon the results being returned for the called Stored Procs We sent down batches of 400 updates to be performed via the stored proc method, and the results were supprising!!!! We got a message back via one of the several Two-Way SQL Ports defined (each talking to a different database, being activated via CBR) The return results was a Multi-part message with 400 parts!!!!!! In this case I was waiting for the return message within an Orchestration and then carrying on (mainly for BAM purposes to capture timings, average call times etc) Do you know how hard it was to find an appropriate message type?????? If I made a multi-part message type with 5 parts it's not 400. If I made one with 400 parts (each part was a type of ANY) then I'm sure we'd have a batch in the future with 401 updates...boom! blows up. So my challenge was to find the appropriate message type for this return message.....needless to say "I'm still looking" I tried (1) XLANGMessage - not serializable and bts wont compile in the IDE. This is the most logical cause then I could just go through the parts grabbing each result message. (2) XLANGPart - long shot, individual part of a message, but also if a Message if declared as ANY type then this is the .NET Message Type that represents it behind the scenes. (3) ANY - Compiled and run, error when the results message is returned, as the ANY type is still dealing with a single part message (4) XMLDocument - yeah right! Sort of the one that you cover your eyes, run the test and peep through your fingers looking at the screen to see if it worked....or more like *hoped' it worked :)
Solution: Create a simple Custom Pipeline Component to Consolidate the Return parts The Orchestration is fine to go on continuing processing. The thing that stumped me is that I send in a Batch within a Single XML Document, why dont I get that as a response??
I could imagine when sending a single update this problem never occurs. (and it hasnt in the past) Here's the custom pipeline component - this one's in VB.NET as per the client's coding standards on this. (I use the VirtualStream found in the SDK) - this is not production ready code. Further stress testing needed. Here's a snippet showing the execute method (BTSHelper.VirtualStream - is the VirtualStream class from the BTS 2006 SDK) #Region "IComponent Members" Public Function Execute(ByVal pContext As IPipelineContext, ByVal pInMsg As IBaseMessage) As _ IBaseMessage Implements IComponent.Execute Try Dim msgReturn As IBaseMessage = InternalMyExecute(pContext, pInMsg) Return (msgReturn) Catch ex As Exception Throw ex End Try End Function Private Function InternalMyExecute(ByVal pc As IPipelineContext, ByVal inMsg As IBaseMessage) As IBaseMessage Dim outMsg As IBaseMessage = Nothing Dim outPt As IBaseMessagePart = Nothing Dim outStream As BTSHelper.VirtualStream = Nothing Dim sw As StreamWriter = Nothing Try If (inMsg.PartCount > 1) Then 'combine all the parts into one - painful return results from SQL. outMsg = pc.GetMessageFactory().CreateMessage() outMsg.Context = inMsg.Context outPt = pc.GetMessageFactory().CreateMessagePart() outStream = New BTSHelper.VirtualStream() sw = New StreamWriter(outStream) sw.Write("<{0}>", _documentRootElement) For i As Integer = 0 To inMsg.PartCount - 1 Dim sptName As String = String.Empty Dim s As String = GetMessagePartAsString(inMsg.GetPartByIndex(i, sptName)) sw.Write(s) Next sw.Write("</{0}>", _documentRootElement) sw.Flush() ' we DONT want to close the stream i.e. sw.close() outStream.Seek(0, SeekOrigin.Begin) outPt.Data = outStream outMsg.AddPart("Body", outPt, True) Return (outMsg) Else 'single part Return (inMsg) End If Catch ex As Exception inMsg.SetErrorInfo(ex) ' the inMessage is the one that gets reported on in BizTalk within the pipeline EventLog.WriteEntry(_EVENTLOG_SOURCE, "SQL Combiner Exception Internal Execute- " + ControlChars.CrLf + ControlChars.CrLf + ex.Message, EventLogEntryType.Error) Throw ex Finally End Try End Function Private Function GetMessagePartAsString(ByVal pt As IBaseMessagePart) As String Dim xdoc As XmlDocument = Nothing Try xdoc.Load(pt.GetOriginalDataStream()) Return (xdoc.DocumentElement.OuterXml) Catch ex As Exception Throw ex Finally xdoc = Nothing GC.Collect() End Try End Function Public Sub CopyStream(ByVal src As Stream, ByVal dst As Stream) Try If (src.CanSeek) Then src.Seek(0, SeekOrigin.Begin) End If Dim DATA_BLOCK As Integer = 4096 Dim bytesRead As Integer = 0 Dim buff(DATA_BLOCK - 1) As Byte bytesRead = src.Read(buff, 0, DATA_BLOCK) While (bytesRead > 0) dst.Write(buff, 0, bytesRead) bytesRead = src.Read(buff, 0, DATA_BLOCK) End While Catch ex As Exception Throw ex End Try End Sub Private Sub CopyMessageParts(ByVal sourceMessage As IBaseMessage, ByVal destinationMessage As IBaseMessage, ByVal newBodyPart As IBaseMessagePart) Dim bodyPartName As String = sourceMessage.BodyPartName For i As Integer = 0 To sourceMessage.PartCount - 1 Dim partName As String = Nothing Dim messagePart As IBaseMessagePart = sourceMessage.GetPartByIndex(i, partName) If (partName <> bodyPartName) Then destinationMessage.AddPart(partName, messagePart, False) Else destinationMessage.AddPart(bodyPartName, newBodyPart, True) End If Next End Sub #End Region
Grab the code from below - This sample is aimed to be something to look and discover from rather than be a 'ready made installable package'
SqlCombiner.zip (9.63 KB)
If you think of this as a proxy server for RDP Clients then that works. It can also sit behind an ISA 2006 server. You need the latest RDP 6.0 client. Download it from Microsoft here. Read the KB article here (which includes links to versions for OSes other than 32-bit XP, as well). 
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. ------------------------
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.
Making some headway with this issue I'm experiencing.
I can now go into the BizTalk Application and configure most of the resources found within the Application. I've ventured into Microsoft.BizTalk.ApplicationDeployment.Engine.dll (found in the GAC) and was able to enumerate all the resources etc.
The only thing I havent been able to do is 'an update' to the resource properties (metadata). I can re-add the resource and overwrite the existing ones, this time with the correct settings, but the problem here is that resources that have dependenies fail. e.g. schemas, maps....
For better of for worse right now I've located the two tables in the BizTalkMgmtDB and modified those directly - all looks good.
The interesting thing is I used %BTAD_InstallDir% extensively throughout the DestinationLocation.
Setting that at deploy time use: msiexec /i <package.msi> /quiet /log <logfile> TARGETDIR=<your location>
Somewhere within the MSI Installer component within the Package - TARGETDIR=%BTAD_InstallDir% (Even though all the documentation talks about %BTAD_InstallDir% being an environment variable)
Usually when referencing an external website we use http://...... and we lose all the security etc. information that comes back from our crawls. (In contrast to the File://c:/docs/... etc etc)
A handy tip you can do is IF you know the site is a sharepoint site you can use the SPS moniker so the indexing service uses the Sharepoint APIs to contact the site as opposed to the http:// protocol handler. (1) for SPS v2 use SPS://..... (2) for SPS v3 use SPS3://....
Enjoy.
When I was onsite recently doing a sharepoint migration to MOSS 2007 from WSS V3 - for whatever reason all the servers (and databases) were blown away and all the client had was one content database of their site.
(Who said client sites werent exciting)
My solution here: (1) install and configure the farm independent of the original content database (2) Setup the the Shared Services for the Farm (3) Extend 1 virtual server and create a new content database. Here's the trick.... (4) From 'Application Management'->'Content Databases'....add another ContentDB (5) Now select the original ContentDB as an additional one to add. At this point when you click 'OK' there should be two in the list (I had to actually drop to the command line as this content database addition was going to take more time than the webinterface allowed. stsadm -o addcontentdb -databasefile:..... -databaserver:..... -url:......) (6) From the list of two Content Databases - take the non-original ContentDB offline and then remove it. Viola! Worked a treak...I had to sort out a couple of things around links etc.
(I did try a few other techniques first and got a whole bunch of errors around 'object not in the correct state')
Cheers,
Mick.
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.
Buried deep down in one of the Install Guides (multiserver, pg 23) I came across a section that shows you where to change the BAM alert email formats.
Basically there are two files - emailNotification.xslt and fileNotification.xslt both found in the ...\Microsoft BizTalk Server 2006\Tracking directory.
If you want to split the function of BAM alerting to different machines (the Provider, Generator and Distributor within the Notification Services) then there's a little step you need to do, to tell the BAM Alerting Event Provider where these new XSLT files are.
Within the Tracking Dir:
1. Run ProcessBAMNsFiles.vbs - this creates a *.adf file. 2. Edit the *.adf file to point to the new names/location of your modified *.xslt files. 3. ReRun ProcessBAMNsFiles.vbs so it picks up the modified *.adf file and makes the changes to the BizTalk Runtime. 4. Restart the BAMAlerts Windows Service.
Handy one - especially being able to modify those emails.
From students one of my most asked questions about MOSS is...."Will it handle an upgrade?"...something along the lines of .."...you know we have a medium installation of 183 distributed V2 sites with central portals, index propagation and search."
So I thought I'd outline some of my initial upgrade experiences from MOSS RTM. (On this install - used by a small-medium sized company, they were up for technology so we had SPS2003+SP2...->MOSS Beta2 installed for a while. The RTM install wouldnt kick off until I removed Beta2)
After the product key in the setup I got these upgrade screens....(once the product is installed we can always run the psconfig.exe to start the 'wizard')

I'm doing all at once here - as this company is pretty standard in that fashion. Customisation here weigh in at about 10% of the overall Sharepoint site functionality.


Here's the screen for the File Locations - I moved these out to D-Drive (separate disk) and all the Indexing will be hit pretty hard. Rule of thumb is to allow 200% space increase for the indexed content. So if you're indexing 100MB, then 200MB free for indexing is recommended. Actually the search/index process in MOSS is pretty well defined and taking its roots from 'Indexing Service' many many moons ago. The indexes (known as Catalogs - you can access these through the APIs etc) are stored in a highly optimised format. Compressed! And the process of 'indexing' content can be 'tweaked' through things like 'the number of Word lists' in memory, Shadow Indexing and finally the master Index.

Some one was smiling....:)
 So at this point I have all the binaries installed and all the appropriate files registered. The Wizard will go and (hopefully) create the first Admin Site, which from there I can provision the actual Content based sites and the Shared Services (search, excel, mysite etc)
(damn...got hit with a 'we need to reboot to continue...' - so rebooting now.)
Just came across this great info I thought I'd share with you all.
If you're like me over Christmas you'd be giving some thought on how to make the most out of your newly slated WSS/MOSS 2007 Server.
Hold onto your hats - stop all custom development and give your graphic designers a buzz.......
Here's something to keep an eye on in the coming weeks!! Over 40 new templates......
http://www.microsoft.com/technet/windowsserver/sharepoint/wssapps/v3templates.mspx
Here's a snippet from the page.....(expense site, bug tracking....:)
Coming Soon: New Application Templates for Windows SharePoint Services 3.0
 |
Application Templates are out-of-box custom scenarios for the Windows SharePoint Services platform, tailored to address the needs and requirements of specific business processes or sets of tasks in organizations of any size.
Microsoft will release a new set of 40 application templates for Windows SharePoint Services 3.0. Some of the previous scenarios, such as Help Desk, Project Site, Knowledge Base and the Employee/HR templates will be improved to incorporate and highlight new capabilities in Windows SharePoint Services 3.0. New scenarios will also be added to address specific customer needs and business requirements.
While Application Templates can be used to solve particular business needs, they can also provide a starting point for partners and developers looking to build deeper Windows SharePoint Services solutions. The new templates will make use of Windows SharePoint Services 3.0 capabilities and be compatible with Office SharePoint Designer 2007 to help make customization easier. |
| 40 New Application Templates* |
Forty new Application Templates are coming soon for Windows SharePoint Services 3.0. Twenty of the templates will be “site admin templates” and available in English only. These templates will be easy for site administrators to install in a template gallery without requiring server administration access.
The remaining twenty will be “server admin templates” and available in eleven languages (English, French, Italian, German, Spanish, Portuguese, Japanese, Chinese Simplified, Chinese Traditional, Korean, and Hebrew). These will be created as site definitions, providing tighter integration and enhanced functionality within the Windows SharePoint Services platform. They will require a server administrator to install.
*List of Application Templates for Windows SharePoint Services 3.0 subject to change.
Upgrades: Microsoft will release tools and guidance to help customers upgrade from some of the previous Application Templates for Windows SharePoint Services 2.0 to run on the new Version 3.0 platform. Application Templates for Windows SharePoint Services 3.0 are not backwards-compatible with Version 2.0. |
Multi-Language Server Admin Templates
 |
Absence Request and Vacation Schedule Management |
 |
Budgeting and Tracking Multiple Projects |
 |
Bug Database |
 |
Call Center |
 |
Change Request Management |
 |
Compliance Process Support Site |
 |
Contacts Management |
 |
Document Library and Review |
 |
Event Planning |
 |
Expense Reimbursement and Approval Site |
 |
Help Desk |
 |
Inventory Tracking |
 |
IT Team Workspace |
 |
Job Requisition and Interview Management |
 |
Knowledge Base |
 |
Lending Library |
 |
Physical Asset Tracking and Management |
 |
Project Tracking Workspace |
 |
Room and Equipment Reservations |
 |
Sales Lead Pipeline | |
English Only Site Admin Templates
 |
Board of Directors |
 |
Classroom Management |
 |
Clinical Trial Initiation and Management |
 |
Competitive Differentiation Site |
 |
Discussion Database |
 |
Emergency Management for Government Agencies |
 |
Employee Activities Site |
 |
Employee Self-Service Benefits |
 |
Employee Training Scheduling and Materials |
 |
Equity Research |
 |
Manufacturing Process Management |
 |
Marketing Campaign Planning and Execution |
 |
New Product Development |
 |
New Store Opening |
 |
Product Portfolio and Profitability Management |
 |
Request for Proposal |
 |
Sports League |
 |
Team Work Site |
 |
Timecard Management |
 |
Vendor Performance Rating | |
(This is courtesy of Ross a collegue of where I'm working onsite currently)
What you need is:
(1) a Send Port with the MSMQ Send Adapter (2) XMLTransmit pipeline
Within the MSMQ Send Port adapter - set the Body Type to a value of 30 (this translates back to the Win32 API values and you can look them up for the enumeration, so it's not a value of 8=BSTR a trap which we may fall into)
Within the XMLTransmit pipeline - click on the ellipse to set per instance configuration settings for this pipeline.
Set 'Include XML Declaration' =false
Set 'Preserve BOM...' = false (byte order mark - the 3 chars that are a bomb, upside-down question mark etc) so the client wont receive it.
Once this is done - all good!
Your clients who expect just ActiveX formatted messages only, are happy to play with BizTalk.
Thanks Ross!
Handy one to keep around setup.exe /s config.xml /l <logfile> /CABPATH <cabfile> That will help the clusters.
As you may know, the BTS VS.NET IDE plugin during a build goes off and compiles your BizTalk maps, schemas and orchestrations to C#. Then from there we have another compile and viola - we have dlls produced. The IDE uses the compiler XSharpP.exe to produce your C# files. Wouldnt it be nice to see what the C# files are - also very useful for line by line debugging. All you need to do is to create the appropriate Registry Key and corresponding value Key Location: HKCU\Software\Microsoft\VisualStudio\8 Key Name: BizTalkProject Value Type: DWORD Value Name: GenerateCSFiles (this is the only acceptible value at this point) Value : 1 Done! Load a BTS Project up, and compile - you'll see some changes. Note: I have had this fail a couple of times on some huge BTS solutions with over 40 odd 'Solution Folders' (and bts projects under those etc).
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/
While delving into the depths of this for a current project - I shot a question off to the team over in Redmond in relation to the TPE and grabing related data from different areas of a BTS process.....NOW this is where it got great!!!
Vikas responded and check out his fantastic blog - dedicated to Biztalk and TPE!!!
In particulare I'm interested in Continuations
Thousand thanks Vikas + co.
Cheers,
Mick.
Hi guys,
I'm currently researching ways to do this outside of an orchestration - e.g. pipeline.
Here's a simple technique you can use INSIDE an Orch.
(1) variable declarations in the Orch.
System.Type MapToApplyType;
(2) message declaration
<schema type or whatever> msgIn;
System.Xml.XmlDocument msgOut;
(3) code in the Orchestration - in the getType function you could grab that string from rules or anywhere.
In an expression shape: (for eg)
MapToApply = System.Type.GetType("MyMapAssembly.MyMap, MyMapAssembly,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=abfe123ef93cc2aa");
(4) in a message construct shape for msgOut
// the line below is GOLD where
transform (msgOut) = MapToApplyType(msgIn);
There you have it!!! BTS looks after the finding and loading of the map. transform is an internal keyword of bts.
Have fun,
I recently came across yet another great BizTalk tool - this tool gives you a view of the Tracking database with a twist You can follow a message through BizTalk and see how long each stage took - Orchestration or other. Pretty cool just to be able to see timings and paths right infront of you. This tool was initially developed by Unisys for their performance testing of BizTalk - well done all!
 Link to BizTalk Time Breakdown - Boudewijn's adapter blog
Something to share with you - ever wanted to clear out the tracking database? two ways to do this:
1. considerate way - only purges completed items MSDN BTS06 Proper Purge
2. inconsiderate way - FAST! purges ALL data in the DTA. Stored Proc - dtasp_CleanHMData (useful in test environments etc) This will truncate the tables within the DTA DB - just like new!
Cheers,
Mick.
Hi folks - as you all know it's about Connected Systems - not neccessarily about one technology on it's own.
I'm a firm believer that we're always trying to solve a customer's problem/solution which will involve more than just BizTalk.
In our 'BizTalk' space now (with R2 TAP on the way), we have technologies such as:
- BizTalk 2006
- RFID
- WCF
- WinWF
- SSB
- SSIS
- All the LOB adapters from BizTalk 2006
- MOSS 2007
- MSMQ/MQSeries etc.
So as an 'integration specialist' we need to know not only how these work and the benefits of each for certain environments, but also how to create an effective solution in these technologies. (not something like - "I believe you can do that in .....I just need to watch some webcasts on it first" :)
The Sydney BizTalk User Group has launched a Connected Systems Mailing list.
How to JOIN: 1. send an email to stserv@list.sydbiz.org with SUBSCRIBE cs@list.sydbiz.org in the BODY of the message (you can put anything for the SUBJECT, or leave it blank)
So come and join my one other friend to kick this off. :)
How to UNJOIN: 1. send an email to stserv@list.sydbiz.org with UNSUBSCRIBE cs@list.sydbiz.org
Once again Andrew Leckie has sent through another gem - a performance document comparing BTS04/SQL2000, BTS06/SQL2000 and BTS06/SQL2005. The tests were carried out by 'InfoSys' in the US - well done guys.
Some very interesting results
Grab the document here - biztalk-2006-performance-benchmarking-Report.pdf (674.5 KB)Good stuff.
Very handy to have about keeping IIS6 streamlined, and outgoing socket connections adjustable. So when BTS is busy crunching away and creating sockets to various endpoints.
On a current project, we use a 'helper' class to talk to an ERP system (pronto) and the helper class creates (& destroys upon cleanup) a socket with each instaniation.
Problem is that Windows will not immediately return the discarded socket back to the socket pool for up to 2 mins (due to slow networks etc. and the TCP setup needs to be fully 'flushed' as I understand)
The issue is - in busy times within the registry there is a value that says - the user (aka BTS) can only create 5000 socket connections at any one time. 1024 are already taken in the well known port space (esp. on a server) so we found we were hovering around the 3900 active connections at once...till things went bad.
These settings below - one for IIS accepting/servicing a higher number of socket connections and the other is for outgoing user connections.
It's always interesting moving these bottlenecks along....to see what the next component that presents itself as the bottleneck.
Enjoy.
Controls the number of simultaneous HTTP connections (and hence limits number of simultaneous connections serviceable by IIS6).
- On Windows Server 2003 RTM x86, this comes out to around 8,700
- On Windows Server 2003 SP1, the limit has been removed
- On Windows Server 2003 SP1 x64, since NPP is bound by available memory, you can increase concurrent connections by merely adding more RAM.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters Type: DWORD Value: Range from 0 to 2^32-1
Controls the max port number that TCP can assign. Every unique client making a request to your web server will use up at least one of these ports on the server. Web applications on the server making outbound SQL or SMB connections also use up these ports on the server... so it highly affects the number of concurrent connections. HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
Type: DWORD
Value: Range from 5000 to 65536
I'm impressed again with another piece of software!!!
While touching base with a fellow brilliant BizTalk buddy of mine Enrique, he led me to this.
Here's an app - 1 application to run that requires no installation on the target machine(s) that allows you to -share desktops, extend desktops across an IP network!!!
Check out MaxiVista - seeing that NetMeeting in Vista is being phased out and replaced with Windows Meeting Space...more 'locked' down and not as free and easy as netmeeting
The good old infamous registry key will save those grey hairs. Basically if BTS runs into any grief during an upgrade process and bombs out...this key tells BTS setup to 'feel free and rerun the upgrade again'
In the case of pre or post upgrade configuration failures, add a DWORD registry entry RerunUpgrade=1 under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\BizTalk Server\3.0_Migrated.
The setup can be executed multiple times even after the BizTalk 2006 installation. This enables us to complete the upgrade successfully in case it fails because of some unprecedented scenario.
More info: http://blogs.msdn.com/biztalk_upgrade/archive/2006/02/22/537344.aspx
Vishal has written a great tool (very easy to use) that will incrementally add your current Tracking Archives to a 'master' tracking database that has all the goodies in it for analysis. BTS Stitching tool
So in essence you keep your production Tracking database down in size!!!! no 30GB databases please!! (on several occasions it's been days to reduce these DBs) Schedule regular archiving and pruning---> use this tool --> you then have a regular complete Tracking DB for super analysis.
----- Snippet from the Readme file ----- Once the aggregate database has been setup there are multiple ways you can add another backup to it. - You explicitly specify the backup file to the sql stored procedure.
- You can specify a folder containing a list of backups to the sql stored procedure. The stored procedure automatically appends the backups taking care of the order in which they need to be uploaded. All backups that have already been uploaded or are older than the last one added, will be automatically skipped.
- <fully automated> After a setup a SQL server agent job is added. You can enable the job and specify the folder location. The job automatically runs and appends and new backups.
Enjoy, Mick.
Hey folks - I couldnt pass this one up to let you all know about the great things that are in store for Sharepoint 2007. Angus Logan has once again done a great job of highlighting them.....I reckon he's got one of the best jobs!!! :) click HERE to check it out.
I'm sharing a trade secret in enabling you to get efficent and optimised WebCast type presentations from your machine. You need: (1) Windows Media Encoder (2) Custom Optimised WebCast Settings - Blogcast.zip (2.02 KB) (these arent mine, they just get handed down through the generations) When I first used media encoder to record a presentation, I found that there was a fair few settings that were thrown in my face, from source/destination Video/Audio feeds, to interlacing and dithering with dropped frame rates and whether you wanted YYUV or something else (then my mind drifted back to biology with some XX, YY + blue or brown eyes..) I fumbled through the options and said 'Record' as I was doing my presentation on stage.......started well......then within about 10 secs my machine was dying a slow death and not responding what so ever.....I later found out, that default-ish settings when recording locally to a file are recording at DVD quality etc etc. (you do that ONCE) So I came across these settings (2) and they work a treat. As per usual, when recording for viewing over the web, (1) stick your resolution to max of 1024x768 (2) on some machines, you may need to adjust the video driver 'Hardware acceleration' setting to be either on none, or 1 bar. Otherwise you mighten be able to see your mouse during the recording (the MSDN folk gave me that tip during a webcast I did) You're on your way - AVI, WMV etc etc recordings.
Seems like it's the night for a braindump over the last couple of weeks..... Hotfix 923632 will do the job. Also be sure to follow these steps
after applying hotfix 923632:
1. Open regedit and go to
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTSSvc$<HostName>
Make sure host name is the name of
the BizTalk host which is publishing messages which are routed to multiple
req/resp subscribers.
2. At that key, add the DWORD value
AllowMultipleResponses and set it to a value of 1.
3. Restart the host service after
making this change.
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.
Well I finally submitted a good enough business case for financial controller at home and got an XBOX 360...cool.
Using Media Center (on the kids PC, running RC1 of Vista), I promised that all the kids videos, pictures etc. could be played through the lounge TV.
I finally got all the components talking to each other and entered a couple of IDs that the XBOX gave me to pair up with Media Center.
I went looking on the XBOX 360, through the libraries to play videos........alas!!!! Only 3% of them were there. What's going on!!!??? I thought.
I (later) found out that XBOX 360 only plays WMV/MPEG video files, no *.avi's or quicktime ......
So I did a little digging and came across a couple of cool articles.
One - to run a NES emulator on the XBOX 360 - here - through Media Center to the XBOX, pretty cool...
Two - to play different video types, there's one article here about using Media Encoder 9 on the fly to encode what you have into WMV for Media Center, the other is to run an app that already does it - both free!!! Three - the easiest solution of them ALL - MCE Video Encoder
Now I'm putting my home network to better use than the office ;)
Mick.
Mike sent me an email today (I know I was lucky, I got one!) After he mentioned that he got a Dual Quad Xeon 64 bit....Mac Machine, he told me about driver issues (not a good sign). So Mike was going to have to wait a little longer for the crunching of those holiday snaps..... This little nLite is a .NET 2.0 app that can create bootable CDs/DVDs from your O/S Source material. It will (1) incorporate special drivers - so for on 64 bit machines....SATA drives....nVidia RAID drivers and they usually give you a floppy disk (or in my case I had to download some). Now with a floppy disk....who's seen a machine that has a floppy drive lately??? they seem to be history. So good luck on the floppy disk! So being able to add drivers to the installation media is just a gem!! Especially for ALL your wacky devices....Boot CD that does the entire lot. (2) nLite will REMOVE the apps that you dont want e.g. Outlook Express, Windows Messenger..... so the actual install size is smaller. (so nLite doesnt just not install them, they are not on the cd) (3) slip stream service packs + updates + hotfixes (nice!!!) - so I havent tried adding BTS to the install mix, but I'm working on it :) (4) unattended/silent installs. Nice app - save you a stack of time if you're in the business of building base O/S's etc. Dev/Test/Stage/Prod environments. Thanks Mike! Check it out here (best of ALL it's FREE!) Cheers, Mick.
|