CRM 4.0 Sitemap caching

OK, I have no idea if this has been blogged about before, but it’s officially Turkey Day so I thought I’d give a little mention to how my day before Thanksgiving went. On a side note, you may have noticed that I haven’t done much blogging recently. I apologize for that, it’s been a busy past few months, followed by busy conference days, followed by vacation, followed by returning to the mountain that’s been building during my pseudo-absence. I promise to do better. But I digress…

This morning I had some phone calls and in the middle of my calls one of my developers came to me and said he couldn’t login to CRM. I was on the phone, so I asked him to investigate on his own. He came back to me asking if we had rolled our CRM development database back to about April because it looked like all our changes were gone. WHAT!? OK, everyone freeze and no one gets hurt.

Turns out it was a simple mistake by our DBA, but a high impact mistake nonetheless. So here’s the deal, we’re looking at upgrading to SQL 2008 for our primary database server so we were going to have him create a copy of the databases on the temporary SQL box. The problem was that when he reattached the databases, he attached a backup of our CRM database rather than the one he just detached. We found the mistake and attached the actual copy. Only one problem now, everything looked fine except we were getting a sitemap error. So what gives?

Long build-up for a short answer. When they attached the actual database they didn’t cycle the CRM website. Quick fix, with 2 options:
1. IISRESET should have caused the sitemap that was cached to get pulled from SQL again.
2. Export the sitemap which pulls from the database and just import it. Since importing a sitemap has an immediate effect you should see the changes as soon as you refresh the page.

MA4CalloutPlugin.log – The most documented file on the internet

So I’m driving to work like any other day, knowing that I’m moments away from getting called. I rarely actually make it to work without getting notified of something, and today was no exception. Today’s fire was that our production CRM server was running out of disk space. Now we were debugging an issue and I had intentionally turned on CRM tracing at a verbose level. Doing so can cause a disk to fill up pretty quickly, but I knew we would be OK until I got to work. Interestingly, this time CRM tracing wasn’t the only culprit. Instead, my colleague on the IT side called and found another file growing at a fast pace as well. My first question was “What’s the filename?”. “MA4CalloutPlugin.log”. “Doesn’t ring a bell. How big is it?” I asked. “12 gigabytes” he replied. I thought about it on the way in… Callout… Plugin… pretty sure we’re in the CRM space at this point. OK, it wasn’t a file I was familiar with so when I got to work I decided to perform a Bing search. Nothing. So I did a Google search. Nothing. Huh? Nothing? How can something exist and it not be documented on the internet somewhere? Isn’t that illegal or something?

So, I guess I can be first to talk about it. Obviously at 12GB I wasn’t about to open it in Notepad and take a look. My first instinct was to check if there were any open handles for the file. Fortunately nothing had a lock on it despite its increasing size, so whatever was writing to it was doing it intermittently which helped. Knowing that nothing else had it open exclusively, I decided to rename it and create a new empty version of the file. I probably wouldn’t have been that careless if it hadn’t have been a log file but the alternative was that CRM drops to its knees, which made for easy decision. A few moments later the file size on my newly created log file began to grow. At 74KB, I felt a little better about opening it versus the 12GB monster that was there.

Feeling the suspense yet? Alright, after breaking open the file I noticed a series of exceptions getting logged with their stack traces. What was it? The call to MobileAccess.CalloutPlugin.UpdatesProcessorPlugin.GetSupportedEntities(Guid organizationId) made it apparent. This log file was for MobileAccess. Of course! MA = MobileAccess. This was TenDigits logging a permissions issue that no one was addressing. Problem solved and I’m now perhaps the first person ever to put content up on the internet that can be indexed concerning MA4CalloutPlugin.log! I am such a pioneer.

Windows 7 – New features (new to me at least)

So, I’ve been using Windows 7 as my primary development box for a few weeks now and I have to say it feels good. So far I’ve been quite happy with it. I was using Windows Server 2008, and before that Vista, but I have to say it keeps getting better. I figured no better way than to list a few of my favorite new features.

Probably one of my favorite things, as mentioned by Scott Hanselman, is that I can finally shut the lid on my laptop and have all faith that it will in fact go to sleep. Even better than that, it will wake up too! I used to feel like I was winning a morning lottery every time I’d turn it on. Prior to Windows 7, I seemed to get a lot of instances where the monitor would be on, yet black, and my only choice was to forcibly power it down and boot back up, losing everything. I have had to do that once with Windows 7 so far, with 1 wonderful exception: Windows 7 told me “Hey, I tried to restore and it didn’t work last time. Want me to try again?”. Thanks, 7, please do. 🙂

Beyond that, Windows 7 continues to surprise.  I have to attach to a projector now and again when I’m presenting and perform the fabled Fn+F8 key to get my stuff to show up on the monitor. It seems that I’m a bit challenged at getting this viscous cycle to land on what I want. Again, Windows 7 comes to my rescue. I haven’t seen it documented anywhere, but hitting the Window key + P combination lets Windows 7 handle that for you and the selection is much more obvious. Thanks again 7!

Figure 1. Windows 7 Projector selector.
Figure 1. Windows 7 Projector selector.

Let’s what else has made me happy lately… by now most have experienced Aero Snap, which allows you to do things like dragging a window to the top to the screen to have it maximize. What I didn’t see documented anywhere however was a neat little feature called Aero Shake. Basically if you drag a window left and right quickly, it will minimize all the other windows that are open allowing you to focus in on just the window you shook. I haven’t seen it mentioned anywhere, but me likey!

That’s it for now kids!

Does the world need another CRM blog?

Call me Dan, but more importantly call me late to the party. I suppose I should start off with the standard background info, but that gets old. Basically, I’m a developer/architect who deals primarily with the Microsoft side of things. I’m no fanboy and I don’t enjoy flaming wars between Microsoft and Apple, but I think the competition is healthy and can be dicussed without mudslinging. I’m sure you’ll catch commentary from me from time to time, but that’s me. Alright, back on target. As I said, I’ve been developing Microsoft based solutions for quite a while now, so I have to thank Microsoft for indirectly paying my mortgage for the last 15 years. There’s been times of frustration (VB6) and thankfully times of joy (C#). Ah, C#.

It feels like home, it’s the language that I had been waiting for and as soon as I could get my hands on it, I did. So how do I feel about it now? You can have it when you pry from my cold, dead fingers. So what does all this have to do with CRM? Well, as I mentioned I’ve been architecting solutions for years and at my new job the company was already fully engaged with CRM. Now I was fully aware of the term and had heard of the product here and there, but had never been directly exposed to it. That all changed this past March. “Beware the Ides of March”  indeed. Now, having spent about half of my working day with CRM for some 4 and a half months how do I feel? Late to the party. How did I never see this product before? Why wasn’t I told of it’s simplicity and elegance? Don’t know, don’t care. I’m just glad I found it, and I’m glad that I’m pushing beyond the standard limits of CRM this early on.

So, does the world need another CRM blog? I think so. If I can point out one spot of pain that can save someone else the trouble then I’m happy. So I’ll see what pearls of wisdom I can drop at others’ feet. This should be fun.