.comment-link {margin-left:.6em;}

Ben Cops

Wednesday, April 27, 2005

BizTalk Server Performance Blog

The BizTalk Server Performance blog is essential reading.

Positional Flat File Processing with BizTalk 2004: Early Termination

Positional Flat File Processing with BizTalk 2004: Early Termination

More undocumented schemaInfo node flags:

allow_early_termination="true"

Friday, April 08, 2005

BizTalk Server Performance : Understanding BizTalk Server 2004 SP1 Throughput and Capacity

BizTalk Server Performance : Understanding BizTalk Server 2004 SP1 Throughput and Capacity

A fascinating read about BTS performance under load & throttling, etc.

Tuesday, April 05, 2005

Programming BizTalk with WMI and the VStudio addin

The WMI addin for visual studio is pretty cool. After some flailing about sans documentation (well there is some, but its along the lines of "HostSettings: Represents the host settings"), and a swift decompile of the management classes to check out exactly what it was doing with what parameter (thanks again, reflector), the paradigm sunk in.

I added managed classes for MSBTS_HostSetting, and MSBTS_Orchestration. From this I can determine the default host:


this.Log(Level.Info, "Getting default host");
HostSetting.HostSettingCollection hosts = HostSetting.GetInstances();
if (hosts.Count < 1)
throw new BuildException("No hosts found");
string hostName = "";
foreach (HostSetting host in hosts)
{
if (host.IsDefault)
{
hostName = host.Name;
break;
}
}


And start an orchestration:


//get all orchestrations on the local server using WMI
Orchestration.OrchestrationCollection orchs = Orchestration.GetInstances();
//loop over all the orchestrations exposed by WMI and find the one we want to start now
foreach (Orchestration orchestration in orchs)
{
if (orchestration.Name == targetOrch)
{
this.Log(Level.Info, "Starting " + orchestration.Name);
orchestration.Enlist(hostName);
orchestration.Start(2, 2, 2);
this.Log(Level.Info, "Started " + orchestration.Name);
}
}

Monday, April 04, 2005

Programming with the 'Management (WMI) Extensions for Visual Studio .NET 2003 Server Explorer'

BizTalk WMI programming: How to write cleaner WMI code a lot faster

This is great. WMI code is bloody awful, late-bound, 1998 nonsense. I mean, look at this:


Query = "SELECT * FROM MSBTS_Orchestration WHERE Name =""" & OrchestrationName & """ AND AssemblyName = """ & AssemblyName & """"
Set InstSet = GetObject("Winmgmts:!root\MicrosoftBizTalkServer").ExecQuery(Query)



Wicked.