Month: November 2013

Service Manager Authoring tool trims offerings

Quick FYI: The authoring tool strips off the XML tags that are used by service and request offerings. apparently a known issue.

This is kind of a theme with the service manager: mutually exclusive tools. My last project involved a custom coded form in Visual Studio, imported into the authoring tool as a DLL form control against a custom class, that was then imported into the console to add the Enums. I count myself lucky that project didn’t require offerings, so I didn’t run into this issue, but it’s indicative that it is easier to move work between different IDEs then to get one tool that does >= 95% of authoring tasks.

If you know anyone at Microsoft in the Service Manager group, ask them to spend some time improving the tool chain for

Bottom Line: don’t put workflows, form customization or class definitions in the same MP as templates, or offerings.


Service Manager Authoring tool memory leak

Here’s an interesting thing I ran into:

Authoring Tool Memory Error

As you might suspect, I’m on a laptop that regularly hosts my entire System Center lab, including fully implemented Ops Manager, Service Manager, Config Manager, Exchange, Lync, GCDC, Firewall, etc, so it’s probably not a hardware memory issue. (VMWare workstation is awesome, btw)

It turns out that the Authoring tool is a 32-bit application, and thus is subject to the 32-bit address limit, which on windows (even 64-bit like my virtual data center nee laptop) means that applications are limited to 2 GB of usable address space. Additionally, it looks like the authoring tool has a memory leak when closing a MP, that can leak as much as 400 MB each time you close an MP.

Authoring Tool Memory Leak

This was generated by repeatedly opening and closing the same small MP that contained exactly one entry: a form customization of the user CI Form. (Process Explorer is also awesome, fyi). Given the way that the CPU time required to open subsequent MPs increases, I suspect there is an object reuse issue, and that the extra CPU is sorting all of the abandoned objects from previous loads, but that’s total speculation, so +1 NaCl

Bottom line: Restart your authoring tool if you’re going to be working on multiple MPs.

Adding Relationships to Abstract Base Classes

So maybe you’ve had a idea of some data that makes sense for every everything ever. One of mine is a Maintainer relationship for every CI to go along with the owner relationship that comes out of the box. This would give us one person (or group) who could be assigned to any incident or service request that affected the CI in question, to go along with my Data Owner Must Approve for reviews. (more…)

Change Request drives maintenance mode

The Case:

Sunday night, 1:30 AM. the NOC team is ringing your phone, desperately trying wake you up. one of the critical business apps is down, and they have been trying to reach the team who owns it for close to an hour, but every call goes to voice mail.

you fall out of bed, rush through a shower, speed a little bit on the freeway towards the data center, and check in with security. It’s Sunday, but based on what the NOC sees from Ops Manager, everything is down, and you don’t know if you can get it back online, unsupported, before business starts in 5 hours or so.

you turn the corner towards your company’s rack, only to see the entire critical app team sitting around a card table; playing poker, eating pizza, and watching the software maintenance package on the critical server run though it’s offline upgrade. Their mobile phones are all stacked in the center of the table, because there is no signal in the data center, and they’re halfway through “CR99281: Routine maintenance update to critical business app”, scheduled for Sunday, 12:30 AM to 4:30 AM.


Owners of Configuration Item should review

Anyone who’s dug around in the underpinnings of Service Manager (especially while customizing activities) has probably seen the default bool property called “OwnersOfConfigItemShouldReview” that’s part of the Review activity class, but not exposed on the form. You might also have seen the default relationship System.ConfigItemOwnedByUser that’s on the Configuration Item base class (for Windows computer CIs, this is exposed in the form as the Custodian relation).

Maybe you, like me, have wondered why MS didn’t implement this? it seems a very useful feature. ever heard someone say “if they want to change MY server, they are going to have to ask me FIRST”.

One of my clients requested this functionality as part of their change management process, but we ended up using it in several service offerings, including financial approvals for purchases based on Provance’s Cost Center CIs. I’ve thought about this a couple of times, and I liked the way it worked for my client so much that I spent a weekend writing a clean implementation to share here.