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.
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.
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.