You are here

Blog Archive

ACID Rules

A few days ago, I had to look for some information regarding the ACID rules and I didn’t really find anything relevant that helped me understand the topic very well. I even checked many SQL Books because I thought I would be able to find good information in them, but even though they were supposed to be “good books” , I still found nothing good . So I decided to put together all the information I found and a little bit about the topic. First of all we need to understand what the letters A.C.I.D. stand for and what the idea behind it is. The A.C.I.D.

Netmask Quick Reference

Because you never know when you might need one...

What's a netmask?

All devices on a local network have a unique IP address, but each address is inherently divided into two parts, a shared network part, and a unique host part, and this information is used by the TCP/IP stack for routing. When sending traffic to a machine with a different network part, it must be sent through a router for final delivery.

SQL 2005: sp_change_users_login Not Finding Orphaned Users

Most anyone who has moved a database from one server to another is familiar with orphaned users and the steps necessary to map them to a login. MSDN has a great article at in which the sp_change_users_login stored procedure is used to resolve this issue. While the steps listed in the article work 99.9% of the time, there's still that .01% that can drive a developer a little crazy.

A Perfect Cloud App: Multi-tenant Enrollment Systems

A natural fit application for then cloud is multi- tenant enrollment systems, with complex channels involving multiple third party entitles.  One that my company has done lots with in this space that we are roadmapping into Azure we called “EEMS” (Enterprise Enrollment Management Systems).   Check out this pretty cool summary of what it is all about.

TryParse Tutorial

TryParse is something that has been around for a while in both VB and C#, but that isn't used as often as it could be. I have noticed that developers coming from the VB world are often bent out of shape when moving to C# because the ol' standby "IsDate" or "IsNumeric" methods are not available. At the same time, C# programmers, trying to assert their natural superiority complexes, will respond that only wimps and schlemiels would use such silly crutches in their code.

Random Error Message: “$lineinfo' is undefined

I encountered this error message in the process of separating the functionality from one .NET webpage into two. The first webform was using a master page, while the second one was not. My initial version of the second page was made by copying the original page and then stripping out the master page and other code that I did not need.

Once all my changes were done, I started getting this strange error on this very simple line of code: [javascript] var tabs = $("div[id*='divNameHere']"); [/javascript]

Determining the Opportunity Parent Customer Type

In MS CRM, I was creating a customization for a client where I needed to know (in JavaScript) the type of entity the that made up the potential customer of an opportunity (an account or contact).  After spelunking around the code in MS CRM, I saw this (from the function locAddActTo on the opportunity page): [javascript] if (iActivityType != Task) { var aoItems = crmForm.customerid.DataValue; if (aoItems != null) { var oItem = aoItems[0]; sPartyId =; sPartyType = oItem.type; sPartyName =;

Virtualization Speed Traps: Five Ways to Drag Apps Down

As you virtualize more of your company's applications, avoid these five mistakes that could kill application performance for users. One piece of bad news: Your IT staff will have to learn to play nicely.
Comments (1) By Kevin Fogarty

Computacenter Wed, January 13, 2010 — CIO — What has driven the market for virtual servers more than the potential to squeeze several servers worth of performance out of just one physical server? It's the relative ease with which most applications can move from a physical infrastructure to a virtual one.

[ For timely virtualization news and expert advice on strategy, see's Virtualization Drilldown section. ]

But make the move without planning, run into a few of the major performance "gotchas", and your apps sitting on a brand-new virtual infrastructure will run like they're locked in an old box that's sitting around because it's too much trouble to throw out. Here are five virtualization performance points to keep in mind.

1. Skimpy Hardware
Sure, one main purpose of virtualization is to make physical servers disappear, but that doesn't mean the hardware itself doesn't matter, says Ian Scanlon, IS operations manager for Computacenter (CCC), a datacenter and IT services company based in London but covering most of Europe.

Computacenter migrated the 700-plus servers running its internal IT operations to VMware beginning in 2007, and has had very few performance problems, even with applications very demanding of either I/O or computing resources, Scanlon says. All the VMs run on relatively high-end HP blade servers, with 48 GB of RAM and plenty of SAN space each. Without that elbow room, the data warehouse, SQL Server-based applications and other demanding systems might not pass muster with the business units, he says.

2. Weak Supporting Characters
Virtual servers definitely save money, but if you focus too much on cost savings when you're setting them up, you're not going to save money or get decent performance, Scanlon says. High-bandwidth network connections, fiber rather than copper, for example, and powerful SAN gear make far more sense than saving a few bucks in capital costs upfront, he says.

"We went into this [migration] with the goal of saving costs, initially, which we haven't really done," he says. "The benefits really are in agility, the amount of time it takes to stand up a new server or expand something, and making management easier and issues like that. We're not really saving much, but I don't think anyone here would say it was the wrong decision."

According to CIO research, plenty of companies do see substantial savings from virtualization efforts, but they value agility gains just as much.

3. Downsized Support Plans
Everyone likes getting "free" servers by running several VMs on one physical box, but that doesn't mean you've actually gotten rid of any of the load on your infrastructure, says Chris Wolf, analyst at the Burton Group. In fact, you've probably increased the load on your power, network and storage resources.

Five VMs on a physical host use the same amount of bandwidth and disk space as five physical servers, and require the same amount of configuration, security, management, licensing, patching and all the other work that goes into keeping one application or a whole data center running, Wolf says. Cutting your support plans or failing to plan increases to accommodate new VMs may not make a difference on day one of a migration, but software rot will quickly drag down performance.

4. Finger-Pointing Instead of Troubleshooting
In many companies with IT silos, people who don't handle shared responsibility well will pass responsibility for anything running on a virtualized server to the "virtualization guy," says Bob Quillan, senior director of marketing at EMC's (EMC) Ionix division, which focuses on management of virtual infrastructures.

By creating another silo responsible for something that touches every other department in IT, companies set themselves up for extended rounds of finger-pointing—rather than troubleshooting when something goes wrong. Traditional IT groups aren't used to the speed with which a virtual infrastructure changes (a condition EMC techs refer to as "V-Motion Sickness") so they tend to blame problems first on that. Breaking down silos and working out triage and response procedures that work within a virtual environment as well as a physical one, is the only way to keep a small breakdown from becoming a big one, Quillan says.

5. Overcrowding Your Applications
The hypervisor, OS and hardware may all be the same between two VMs running on the same machine (or identical machines): but the applications running on them change the dynamics so completely that you have to continue planning capacity according to the demands of each application on each server, Scanlon says.

It's easy to put half a dozen VMs running a normal application on one physical server, but only two VMs running an I/O-heavy SQL Server app or power-consuming data warehouse, he says.

Running Citrix virtual-application servers on a VM isn't a problem either, unless you forget that the Citrix app itself is a virtual server whose resource demands will skyrocket when everyone who uses it logs in, if you haven't tested it under real-world conditions, he says.

"We've had relatively few problems in performance since we migrated, but I think that's mostly because we started with really good [hardware]," Scanlon says. "It kept us out of a lot of trouble."