Blog

Blogging, Download, General

How do you track the latest Microsoft Downloads

Do you ever wonder how alot of bloggers seems to know when downloads become available on the Microsoft Downloads site? And blog about it almost instantly. I am not a download chaser myself, mostly because I don’t have the stamina to check up on the latest news often enough. And to be clear, I think a simple blogpost about an available download that might interest the audience of the blog is a perfect way to make people aware of the download becoming available. In fact, an RSS feed over latest downloads is exactly what I’m missing at the Microsoft Downloads site. Unfourtunatly, even in the new Silverlight version, Microsoft doesn’t provide it. For now the only thing you can do at the site is to use the advanced search features to look for recent additions. For example:



You could sign up for the weekly download notifications newsletter, but it’s not nearly as useful and doesn’t allow you to receive truly targeted conent.


Luckily, I’m not the first to miss an RSS feed over latest downloads, this feed will keep you up to date with the latest downloads. It won’t let you define keywords like BizTalk, but you can live without that… As far as I know, it’s not an official feed, and not connected to the actual download site, and as such it can at times be a bit (hours to days) behind on the very latest downloads just released.

BizTalk, Links, Maintenance, Monitoring

Linklist: Installing Microsoft Operations Manager 2007 for BizTalk

The aim of this linklist is to keep track of the links and locations I used to download and install Microsoft Operations Manager 2007 and Management Packs for BizTalk, and thus can be used by others for the same purpose.




  • System Center Operations Manager 2007 – Main site at Microsoft.


  • Review Licensing and for more information about licensing read the informational brief. Operations Manager is not an expensive product. It even comes packaged together with SQL for a reasonable cost. Check the link for the latest updated information, on purpose I wont use precise amounts, but roughly it’s $500 for the server install (or $1300 with SQL) and another $30 – $400 for each machine to monitor, depending on the demands of that machine. If it’s a BizTalk machine it’s $400. Compared to the Enterprise License for BizTalk which is $35,000 – it’s hardly worth mentioning.


  • Get the Eval version – Go here to start the process of downloading the evaluation copy of Microsoft Operations Manager 2007. If you are a TechNet Plus or MSDN subscriber, perhaps you’d rather download the full, non-evaluation, copy from there.

  • Get OpsMgr 2007 MOM 2005 Backward Compatibility Management Pack Update – you need it for the management packs we’ll install later.

  • Management Packs – Get your management packs of choice from here. There are quite a few to choose from and I’ve selected only the few I considered important in my case. Those are…

  • Microsoft Windows Server 2000/2003 Operating System Management Pack – for monitoring the operating system.

  • Microsoft SQL Server 2000/2005 Management Pack – for monitoring the database.

  • Microsoft Biztalk Server 2006 Management Pack for SC Operations Manager 2007 – for monitoring BizTalk Server.

  • You cannot install Operations Manager on your XP or Vista development machine, it must be installed on a machine (or VPC) with Windows Server 2003 and SP1. Consider downloading a Virtual Hard Drive as a starting point, for example one with Microsoft BizTalk Server 2006 R2.

  • SQL Server 2005 is required, SQL Server 2000 is not enough. Get a trial of SQL Server 2005 here or make sure the vhd you get comes with 2005, which as far as I know (at this point in time) all except the ones featuring 2008 CTPs do.

  • Some key points about the server environment you are installing to. It should not have Windows Sharepoint (if you have it uninstall it using Add/Remove Windows Components), but it should have Powershell. It should also have IIS (install using Add/Remove Windows Components), .Net 2.0, .Net 3.0  and a sufficient version of MDAC, equal to or later then 2.80.1022.0. As opposed to some other installs I’ve seen, MOM actually has a very good pre-requisites check complete with links to the installs your specific environment is missing. Above I just mention what I consider are the main ones.

64-bit, BizTalk, Configuration, Links, Readings

Linklist: BizTalk 64-bit

I’ve read a few links lately that has to do with issues or gotchas around BizTalk and 64-bit computing. I decided to publish the list to make it more easily available for myself, and others.



I’ll settle for these links for now, but I’ll probably keep adding as I find more 64-bit links relating to BizTalk that interests me.

.NET 3.5, BizTalk, LINQ

LINQ in BizTalk?

Intriguing title, and I think it can be done. It might not be practical, not yet. We’ll get there eventually. But for now…


There are ways to utilize many of the C# 3.0 features in 2.0, even extension methods, and there is even a LINQ library that allows you to do LINQ to objects in .NET 2.0. However these approaches still requires Visual Studio 2008 (or rather the C# 3.5 compiler), since they make use of Visual Studios multi-targeting features. And if you have to use Visual Studio 2008 there is really no point in not using .NET 3.5. But BizTalk doesn’t work with VS.NET 2008 yet. At least not the Visual part. There should however not be anything stopping you from building for example pipeline components or functoids with Visual Studio 2008. The way I’ve understood it, it’s “only” the designers and project templates that are missing. And since Visual Studio 2008 functions side-by-side with Visual Studio 2005, it’s totally plausible to do one type of development in one tool and the other in another. Not very practical though. I’m guessing we have to wait quite awhile to get VS.NET 2008 support. Information about when this will be is scarce, about the only thing I’ve found is below.


From Paul Somers blog (Pauls blog seems to frequently use more resources than allowed and can at times not be viewed, so I am choosing to reproduce part of it here. The blogpost itself seems to be quoting someone else, but I couldn’t say whom or what)
With the launch of Windows Server 2008, SQL Server 2008 and Visual Studio 2008 right around the corner, a number of you have asked when you will be able to take advantage of the new platforms with BizTalk Server.  We are currently investigating various options to deliver updates prior to Oslo. As we have done historically, this would follow the RTM of Windows Server and SQL Server.  This will give us time to do the final work and testing to ensure compatibility.  Our intent is to provide an integrated release that supports the updated Tools (Visual Studio 2008), OS (Windows Server 2008) and DB (SQL Server 2008) as part of an infrastructure update.


To me this suggest availability at the earliest somewhere in Q4 2008, if we’re lucky, since at the moment SQL 2008 is planned for Q3. This will probably happen through a SP1 for BizTalk Server 2006 and R2. And based on the above that release will be much larger then just tools, or even .NET 3.5, compliance.


With all that said, although I think LINQ and the new language features are cool, I can’t really say it’s something that I am really missing in BizTalk development. Being able to run BizTalk on Windows Server 2008 utilizing SQL Server 2008 excites me more then getting access to LINQ. Oh, and don’t take this post as stating truths, it’s just my 5 cents as it stands right now.


[Edit: For an example of using LINQ to XML in a helper class from an Orchestration, view my post here.]

Adapters, BizTalk, Configuration, Messaging, Pipeline Components

Delivery Notifications outside Orchestrations – a pure Messaging approach

Scenario
You have a pure messaging solution (no orchestrations) and you wan’t to be able to keep track of messages delivered to their destination by send ports and adapters for internal logging purposes. That is, you want delivery notifications, or acknowledgements, that a message has been successfully delivered to it’s configured location by your send port adapter.


Background
Kevin B Smith (old Microsoft blog here) explains the concepts and functionality of Acknowledgements (ACK) and Negative Acknowledgements (NACK) in this post and Stephen W Thomas has a sample based on that explanation for download here. But both of those deals mainly with doing this from an orchestration. But how do you enable delivery notifications with messaging only and how do you handle the acknowledgement (or for that matter negative acknowledgements) returned?


Solution
It’s really quite simple. Kevin talks about how the system context property AckRequired is set to true. That’s what need to happen, for example in a custom pipeline component.

// Abbreviated version of a Custom Pipeline Components Excute method 
public IBaseMessage Execute(IPipelineContext pContext, IBaseMessage pInMsg)
{
pInMsg.Context.Promote(“AckRequired”,
“http://schemas.microsoft.com/BizTalk/2003/system-properties”
true);
}

This will cause BizTalk to generate ACK and NACK messages when the adapter reports a message as succesfully delivered (or in the case of a NACK, when the adapter has failed and a message will be suspended). These messages are special and will only be published to the MsgBox if there is someone subscribing to them.


So you need a port, in the screenshot below a direct bound receive port in an orchestration, that filter on acknowledgement messages (in this case on BTS.AckType == “ACK”)

and something that you can use to correlate back to the message that was sent message. Me, in my internal logging solution, use a combination of BTS.InterchangeID and BTS.AckSendPortID. It might not work in all scenarios, but it does where I am using it. There are other properties you can use like BTS.AckID (that maps back to the original messages MessageID) or BTS.ReceivePortName (that maps back to the original receive port). To see a complete list of Message Context Properties available for ACK and NACK messages follow this link.


Limitations and possibilties
In this scenario receive ports are One-Way, and the goal is to keep track of the delivery of messages received by BizTalk to their subscribers internally within the BizTalk solution. There is however nothing that stops you from having a send port that filters on, for example, BTS.AckReceivePortName to route acknowledgements back to the original sender, in a pure messaging way, instead of an orchestration. And since BizTalk is publish-subscribe based, you can do this at the same time that you take the orchestration approach, if you so wish.


If there is a demand, I’ll package a sample, but the meat of the solution is above – the rest is just plumbing.