SQL Server Profiler: ignoring Report Server by default

SSRS is notorious (at least to me) for being very chatty with its SQL Server (Database Engine) data sources.  When I want to do some SQL profiling, I inevitably want to ignore anything coming from the report server so I can just look at what my app (or linqpad, or whatever) is doing.

Historically this has meant firing up Profiler, starting a trace, then going into the filters and adding Report Server to the list of applications to ignore.

Today when I did that, I figured there must be a way of making that the default, and sure enough there is:

First, choose Edit Template:


You shouldn’t need to change anything on the resulting page, it should default to SQL 2008 and “Standard” – yours is likely to say “Standard (default)” since it’s your default.  Mine says “Standard (user, default)” since I’ve made this change already:


Now choose the Events Selection tab:


Now click on Column Filters (just like you would in creating a new trace to modify its properties)


Then for Application Name, add “Report Server” (without quotes) to the “Not like” collection (again, same as if you were creating a new trace)


Click OK to dismiss that dialog and then Save to dismiss its parent, and you’re all set!

Next time to create a new trace, you’ll notice it already has Report Server filtered out!



joke mismatches

Sarah’s learned a bunch of jokes from one of her favorite shows – The Backyardigans.  However, she mixes them up a bunch.

For instance, from last night (J == me)

  • S: What’s big, red, and eats rocks?
  • J: I don’t know.
  • S: Because she’s ugly and smells bad!

The 2 original jokes:

  • What’s big, red, and eats rocks?
  • A big red rock-eater!


  • Why does the Empress wear makeup and perfume?
  • Because she’s ugly and smells bad!

There’s lots of mismatches like that from Sarah, including these 2 she swaps the punch lines for:

  • Q: What does Tarzan say when he sees a herd of elephants?
  • A: Pupcorn!


  • Q: What is a dog’s favorite snack?
  • A: “Look, it’s a herd of elephants!”

Admittedly, it does get a bigger laugh from me, so perhaps it’s intentional – I’m not sure I’ll ever know.

ObDilbert: Dilbert.com

BofA’s Georgann isn’t a team player, it seems?

BofA’s got a twitter account for helping people out (nice they’re at least trying) – see http://twitter.com/BofA_Help

There’s 2 things that jump out at me on their page: the team photos on the left and their “team picture” profile pic:






The things I noticed about those:

  • Georgann (^gs) is the only one not smiling in the first set of team member pictures
  • Seriously, it’s a picture of you going up on the internet, and it’s in an official corporate capacity.  Could you at least pretend to smile long enough for a picture?  If you hate the job that much, perhaps it’s not right for you?  Admittedly a lot to infer from a pic, but still 🙂
  • There’s only 5, not 6, team members in the profile pic
  • Guess who the missing team member is in the profile pic?
    • You guessed it!  Georgann!
    • One could argue she took the profile pic and perhaps she’s the team’s lead/manager, but getting someone else to take the picture (or using the camera’s timer) and making sure the whole team is in the profile pic seem like pretty simple things to accomplish, I would think. 🙂

    The message that comes across is a bit like “Welcome to Bank of America!  We’re happy to help!  Well, about 83% of the time, but still!”

    My problems trying to give money to Bank of America

    The saga thus far:

    • Summer, 2009 – Bank of America has an online special where you can open an account with no minimum balance.  Since that’s my biggest problem with my current (at the time) BofA checking account, I call to see if they can make that change to my existing account.  They say they can’t and I have to open the new account then close the current one.  Not a great customer experience, but I do the open+close anyway.
    • Fall, 2009 – I need the money from my BofA checking account (the one opened during the summer, the only one left open) in a different account (at another bank) and transfer it over – this leaves the account with a $0 balance. (I later learn that apparently this was a huge mistake, as we’ll see)
    • January 13, 2010 – due to having a zero balance and 60 days of inactivity (as I learned later), Bank of America decides to go ahead and close my checking account.  No email (I get other emails about the account fine), no warning, just closed.  Not even a notification that it was closed.
    • January 15, 2010 (a Friday)
    • my boss is up in New York and drops by a BofA branch to deposit a check into my account.  They tell him the account is closed.  He emails me to let me know.
    • I try to login to my account online to see what’s up and get notified that my account has been closed (well, not directly, I have to infer it from this error)
    • image
    • I call the 800 number (Online Banking support, it seems) from the error message (800-933-6262) and ask what’s going on.  Very nice lady (I really should write notes during calls to customer support lines) explains the “60 days inactivity + zero balance = auto-close account” logic and (thankfully) reopens the account.  Once I get off the phone with her, I try to login to the BofA website again and it works fine – account is there, same number, same transaction history, etc.
    • I call my boss and let him know that the account had automatically closed, that it’s back open, and he should be able to make the deposit now.
    • He goes by during lunch to the same BofA branch up in New York and tries to make the deposit again.  They tell him the account is closed.  He emails me what happened.
    • This will be a common theme throughout this post – the 800 number people in charge of online banking can reopen an account, and their system says the account is then open.  However, the system used in the branches (“Merlin”, I think, I learn later) is different and says the account is still closed.
  • In the email thread, my boss and I guess that the account reopen won’t “take” (process, complete, whatever) until that night and he’ll try again the next business day (Monday)
  • January 16 – 23, 2010 – we’re on a cruise without free Internet access ($.75/min WiFi in the room, though), so I don’t actively try to resolve this any, although I do find out from my boss that he’s tried 2 more times (Monday and Wednesday) to deposit the check, both times the branches again saying the account is closed.
  • January 23, 2010 (a Saturday) – I tried logging into the BofA website and apparently it’s been auto-closed again as I get the same error message as the above screenshot.  The idea of a nightly job that scans for accounts with those criteria (60 days of inactivity + zero balance) and automatically closes them seems reasonable, although I was surprised that 1) there’s not a bit on the account metadata that exempts it from that or 2) if the bit exists, that my account didn’t have it turned on when I called to have it reopened, at least long enough for me to make a deposit at a branch.
    • At this point I suspect I may have a race condition problem facing me – when the account gets “reopened” it’s only open until the next nightly job run, so I only have that day’s remaining window of time to get some kind of deposit made to keep the account from getting auto-closed again.
  • January 24, 2010 (a Sunday) – no idea if it will actually help or not, but since I had transfers set up between this BofA account and a checking account at another back (in both directions), I start a $1 transfer into the BofA account (I later learn that BofA won’t do transfers under $10, but I digress).  An external incoming transfer isn’t going to cause BofA to reopen the account on its own, but my open is that somehow this $1 might make it in to the race condition I fear is happening and get me out of the cycle that’s going on now.  It wouldn’t “process” until the 28th anyway, so it doesn’t really help, but I figured it couldn’t hurt, either.
  • January 25, 2010 (a Monday)
    • Since I need to head out to a dentist appointment anyway, I take a check made out to me and run by a branch after my dentist appointment.
    • I call the 800 number on the way over and explain that I want them to reopen the account again so I can make the deposit at the branch I’m driving to.  Guy on the phone says “just have them reopen the account when you get there”
    • Since reopening the account on the phone was just a matter of asking for it, that seems reasonable to me, so I pull up to the branch, walk to a teller with the ~12k check I’m trying to deposit, and explain what I’m trying to do.
    • The teller directs me to an assistant-manager-type person (we’ll call her A) who happens to be standing just to my right (she was chitchatting with a couple of the tellers before I walked up), and she directs me back to her office.  At this point I’m not sure why this is necessary since it was so simple on the 800 call, but I go in anyway.
    • Why not give their real names?  Mainly because I don’t really blame the people here – the problems are more systemic within the company from my point of view.  The people at the branch were just acting as trained/instructed.  I have no reason off-hand to believe a different branch would have given me a different experience.
  • A looks up the account, says it’s closed (thanks, already knew that), and that I would need to open a new account
    • I point out that the same account was just reopened 10 days ago, so clearly they can reopen a closed account and not need me to open a new one.
    • Since the whole point of this particular account was the no-minimum-balance bit, I certainly don’t want to go back to a “regular” account – at that point there’d be little point of staying with BofA if I’m forced into yet another new account
  • A then relents and says they could reopen the account, but “their policy” (I can’t get her to explain exactly what this means, given the behavior I get from the 800 number people) says that an Account Maintenance Authorization form needs to be filled out and that it would take 3 days to get the account reopened.  Oh, and since I’ve made the apparent mistake of opening it as a joint account, my wife would have to come in with me.  My wife, of course, being the one at home watching our 3 kids.
    • A explains how they need the joint account owner because they (my wife in this case) may have decided to close it and doesn’t want to allow it to reopen.
    • I point out that her scenario would make sense, but in this case BofA actually did the closing of the account, not either of
    • A says she can only tell that it was closed, not what caused the closing. (Seriously?  Wow.)
    • I point out that no form was needed and zero interaction with my wife was necessary when the 800 number people reopened the account at my request.
    • I also point out that I could tell the account was actually reopened (instead of the people on the phone just claiming it was) since I couldn’t login to the website before (“no eligible accounts”) and then I could after, and when I did login, it showed the same account number, same transaction history, etc.
  • A says she’ll get her manager – we’ll call him N.
  • A comes back a couple minutes later and says N is finishing up with a customer and he’d be right with me.
  • I ask A whether N will be able to do anything or if he’ll just be repeating what she’s said.
  • A replies that he’ll just be saying the same thing.
  • I say I guess I’ll have to call the 800 number and start walking out of her office (and the branch).  A decides to follow me out of the branch, although at this point her intent seems more around keeping me from yelling where other customers can hear me rather than actually trying to work through my problem (I’m guessing my disappointment was visible at this point).
  • I go out to my car in the parking lot and call the 800 number from my cell.  This time I don’t say that I’m going to a branch (since that triggered the “just have them open it for you” comment before).  They reopen the account. 
  • As they reopen the account I specifically ask “Will I be able to immediately go to a branch and deposit into this account now?”
    • The rep forgives my split infinitive (presumably) and answers that yes, the account is “fully open” and I’ll be able to make a deposit.  Great.
  • I go back into the branch with the check and talk to the same teller lady I had initially talked to before. I ask her what the status of the account is, she pulls it up, and says it’s indeed open.  She has me fill out a deposit slip – I’m not a fan of doing so since all the info needed is on the check (it’s endorsed with the acct # on the back), but I go ahead and do it since I just want to get this done 🙂
  • For reasons unknown she hands me off to another teller (we’ll call him W) to actually do the deposit, but since she’s said the account is open, I’m hoping I’m beyond the major hurdle at this point.
  • So I scoot down to W’s teller spot (since she handed the check and deposit slip to him after I handed them to her).  W types at his terminal for a couple of minutes while I read and re-read the FDIC statement sticker on the handrest.  He then tells me the account is closed.
  • I point out that the previous teller just said it was open.
  • W brings over another teller (not the first) and shows them his screen.  They don’t know what’s wrong.
  • W tells me the account status is closed so he can’t do the deposit.
  • Lacking many other options, I call the 800 number while standing at W’s teller station while he waits.  Once I put in my SSN (ugh) and acct #, I hit 0 to get to a CSR and wait for a couple of minutes on hold.  A friendly Kevin comes on the line.
  • I put Kevin on speakerphone and explain how I just called in a few minutes ago, the account was reopened, and I’m trying to make a deposit at a branch but they’re saying it’s closed.
  • Kevin looks up the account and says it’s indeed open with no signs that it’s still closed and that the branch should have no problems processing a deposit.
  • At this point the cell phone is in speakerphone mode and sitting on the ledge between W and myself.  W decides to pick up my phone to talk to Kevin.  I’m not a fan since I’d like to hear both sides (which was the point of me putting it on speakerphone to start with), but I’m trying to play nice.
  • So now I can only hear the W side of the conversation.  W mentions that there are 2 screens, and the first one (gray? green? I forget) says the account is open, but when he goes into the other screen (blue? Merlin? I forget) it says the account is closed so he can’t do the deposit.
  • They keep chatting for awhile and I kind of fade out and keep re-reading the FDIC sticker at this point.
  • After a few minutes I hear W saying “Hello?  Hello?” and he hands the phone back to me.  He says that Kevin hung up but that there was nothing Kevin could do to fix it.  Of course, at this point I only have W’s word on what was actually said, but I’ve given up on trying to resolve this at the branch.
  • I drive back home, and while on the drive I call the 800 number again and get to a CSR, this time Stephen, and explain everything that’s happened at this point (which takes a few minutes on its own).
  • Stephen says he notices that the account has done transfers in from an external checking account before and asks if that’s an option.
  • I say it sure is, but I didn’t think that would really help any.
  • Stephen says he’s sure that the account won’t auto-close if there’s a pending incoming transfer.
  • Once I get home, I hop on and do the transfer from my other bank’s checking account
  • January 26, 2010 (today, a Tuesday)
    • First thing in the morning I try to login to the BofA site to see if Stephen was right.
    • Unfortunately, Stephen was dead wrong.  The account’s been auto-closed again.

    I do have an “out” in that I could take Jessica to the bank with me and go through the form + 3 day wait that the branch requires (although at this point I’m having to assume it would even work), but that means having to find a babysitter or take kids to the bank, neither of which I’m particularly happy with, especially given how much effort I’ve put in at this point.

    However, I figured I’d at least document the saga as it stands now.  If/when I get this resolved, I’m sure my brain will do its best to flush/block these memories, after all 🙂

    last night’s IE security update (KB978207) broke Outlook 2010 Beta’s IMAP support for me

    I have my gmail account in Outlook (imap + smtp) 2010 Beta and it’d been working fine until last night’s emergency IE (“Google Hack”) security update.  When I opened Outlook this morning (the machine had rebooted from the security updates), the 3 favorite folders I had from that account were missing.  I went to expand the account in the left-hand tree and got an error that Internet Mail was no longer registered and that I needed to reinstall it (wish I had copied the dialog before dismissing it 🙂

    Thankfully just running Office 2010’s repair did the trick and it’s working fine again, although I did have to manually add back those 3 favorite folders.

    I checked the event logs to see if there was something else that might have been the culprit, but that was the only thing of significance I saw.

    LinqPad 2.0 killer feature – export to Excel, Word

    If you read the beta page, you’d think the only thing that went into the 2.0 release was adding support for (tons) more data sources.

    That’s nice and all, but it won’t actually affect me any (at least in the near-term).

    The export to Excel, though, is a big time and hassle savings for me since the nicest method before was linqpad –> sql –> SSMS –> save results as csv –> excel.




    They each do exactly what you think they do, and it’s awesome to have them! Yay!

    call for improvement: flatten a tree from a root node

    Here’s the naive C# 2.0 implementation – feel free to use Aggregate, SelectMany, and whatever else you want to for the improved version

    public static IEnumerable<T> GetTreeItems<T>(this T self, Func<T, IEnumerable<T>> getChildrenFunc)
        var items = new List<T>() { self };
        var children = getChildrenFunc(self);
        if (children != null)
            foreach (var child in children)
                if (child != null)
        return items;

    No restriction on traversal order or order of items in the returned sequence.

    Example caller: an asp.net page getting the tree of child controls:

    var allControls = this.GetTreeItems<Control>(c => c.Controls.Cast<Control>());

    Stream.Write overload that’s always been oddly missing

    I’m always surprised of places that force you to pass in the offset and length into arrays.  After all, strings are just char arrays, but it’s common that you don’t have to tell API’s which subset of those chars you want to pass 🙂

    It’s such a simple overload, too.  Very odd to me that it’s missing from Write.

    public static void Write(this Stream self, byte[] bytes)
        self.Write(bytes, 0, bytes.Length);

    ugly code for FileUpload+UpdatePanel workaround

    I won’t be keeping it like this (because it’s making me vomit a little in my mouth), but it works and I figured I’d post it before killing this off and going a different direction.  I have no doubt with my current theme this will get cut off badly, but I’m hoping RSS readers handle it fine 🙂

    protected void gvActiveRequests_RowDataBound(object sender, GridViewRowEventArgs e)
        // HACKY!
        // We need the FileUpload control to work under a full postback (it doesn't work under
        // a normal UpdatePanel async postback).  Because of that, we need the button that
        // triggers it to trigger a full postback, so for each "submit" button, we add it as
        // a postback trigger.  The problem is that when the GridView first loads, none of
        // those buttons are visible.  By the time the gridview goes into edit mode, modifying
        // the triggers of the updatepanel doesn't help because we're only doing a partial/async
        // update.  Because of that, we have to cause the button that puts it into edit mode
        // (Change Status) to *also* do a full postback, for the only reason being that we need
        // the adding of the submit buttons to happen during a full postback so it actually "takes"
        // on the client side (since the contents of the updatepanel are what gets updated, the
        // triggers collection does not).
        // Got that?  Good.
        var submitButton = e.Row.FindControl("btnSubmitStatusChange");
        if (submitButton != null)
        var changeStatusButton = e.Row.FindControl("btnChangeStatus");
        if (changeStatusButton != null)