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

Ben Cops

Tuesday, June 29, 2010

SQL Azure; under the hood

the basic setup in SQL Azure is this; each database occupies multiple nodes through a single primary database that processes your queries and two secondary copies that provide HA (and the guaranteed %99.9 SLA). If the primary fails for any reason, secondary copies pick up immediately and carry on. When it comes to computational capacity; SQL Azure cluster contain 100s of nodes that provides massive scale. Each node serves many tenants. Through load balancing and throttling mechanisms we keep the clustered balanced.


(from this thread)

Wednesday, June 23, 2010

BizTalk support for SysPrep

Back in 2005 or so I spent a chunk of time trying to make BizTalk work with SysPrep so that we could clone developer images for a BizTalk development team. At the point at which I was writing scripts to edit SIDs in the database, I gave up.

Its nice to see then, that this is now a supported procedure! Ace:


Sysprep creates a VHD of a BizTalk Server 2009 installation (including the operating system and all prerequisites) for quick deployment on other virtual machines. An image created using Sysprep will choose a new computer name in order to join the domain the first time it starts. To get BizTalk Server running properly, it is necessary to update various instances of the computer name that are stored in the registry and databases.

Tuesday, May 18, 2010

BizTalk Support Cycles

Not just BizTalk in fact, the whole lot, although this gets you straight to BTS.


Took me a long time to find this!

Monday, May 17, 2010

Introducing NQueue


I needed a batch processing framework for reliable scheduling and execution of jobs with no single point of failure.  There really wasn’t one available (that I could find anyway) so I wrote one.  It borrows elements of its architecture from BizTalk and other places and uses a competing consumers model to run both the work and the scheduling aspect. Its pretty stable, even if elements of the UI are a bit kooky.  Its available on codeplex now, take a look. 

Codeplex site here, with full source code and installers http://NQueue.codeplex.com/

Documentation here NQueue Overview.docx

Project Description
NQueue is intended to provide a work scheduling and execution framework and toolset that contains no single point of failure. Using a farm of servers and a clustered SQL server backend, multiple NQueue windows services compete to evaluate configured schedules and execute work NQueue is a distributed system written in C# composed of the following high level components;
  • Admin tool – A windows form application that enables add and delete operations against the various artefacts in a NQueue installation (jobs, schedules, host instances). This would typically be used to view or change the system configuration although it can also be used to immediately enqueue items of work for execution (during testing for example)
  • NQueue Monitor website – A website allowing operations and support staff to view the progress of configured jobs. They may also pause or disable job instances from this tool.
  • SQL Database – all state for the system is stored in a central (clustered) SQL database.
  • Windows services – NQueue processing services running on any number of configured servers competing to evaluate job schedules and execute job code.
  • Client API – A .net class library that users can consume/inherit from to allow their job code to interact with the framework.
  • NQueueCmd – command line enqueuing of work to execute immediately.

Lap Round Azure – Steve Marx

I’m on the Azure self paced course at the moment and enjoyed this overview from Steve Marx


Most impressed with this, which is his slide deck.  A single SVG file which is zoomed around while he talks, all served out of Azure.  Very, very cool!


Thursday, March 25, 2010

Every BizTalk install is different

here's a new one - a BizTalk server in a different domain to the SQL server.
SSO configuration fails with Login failed for user , even though the account is correct, the correct username and password is supplied and the user is in the right group (which you can see in SQL server).

The state parameter to the error gives a further clue: state 12 = Valid login but server access failure


In our case it was because the groups were set up as Domain Local Groups from the domain that SQL wasn't in - I assume this causes the issue because permissions can't be assigned to the group because its local to another domain.  Changing the groups to domain global fixed it.

If you configure BizTalk Server to use domain groups, you must create and specify domain global groups

If you plan to use one domain for all your servers and no Wide Area Network (WAN) exists, we recommend that you use domain local groups. 
If you plan to have a multiple-domain topology, and the following conditions are true, we recommend that you use domain global groups:
  • The SQL Server-based server is in a data center.
  • You have a perimeter network (also known as DMZ, demilitarized zone, and screened subnet).

So, the recommendation is Domain Local Groups for single domain installs, and Domain Global Groups for multi-domain installs.

Monday, October 19, 2009

BizTalk DR – marked backups and log shipping process explained

For some reason the MSDN docs around this are a bit grim – Nick Heppleston has a great explanation of the process here;

Configuring BizTalk Backup for Disaster Recovery – Part 1

Read more: http://www.modhul.com/2009/06/29/configuring-biztalk-for-disaster-recovery-part-1