\MSExchangeIS Mailbox\Messages Queued for Submission is not making progress – Exchange 2010

If you get reports from users that their emails are stuck in either the Drafts or Sent Items box and are not being sent, you should run the Microsoft Exchange Troubleshooting Assistant. If you get the following error message from the assistant, check the free space of the drive that the Exchange Transport Role is installed on to ensure it has at least 2.5GB of free space.

Once you free up space, go to SERVICES.MSC and restart the Microsoft Exchange Transport Service. Email should start working again.

Note: If you receive this error on a SBS 2011 box, one of the best ways to free up space is to move the WSUS database to another drive. Instructions for how to do this for SBS 2011 can be found here.


The Dangers of Giving Vendors too much Power

Back in the 90’s I worked for Sonoco. The capital project I was on was to install a new maintenance management software in an entire division of the company in order to, mostly, bring down the cost of spare parts inventory. During this project, many ideas for costs savings came up. One of them was that vendor reps should maintain parts usage history and stock the parts we bought for them in the parts room for us. I voice my concerns but since I was just a kid in my 20’s at the time with no college degree, I was promptly ignored and told to shut up.

This turned out to be a monumentally horrible idea as I predicted. Here’s why:

  • Let’s assume your vendor is a good guy. He’s only out for the benefit of you, the client and he wants to keep you as a client. Well, obviously, the last thing he wants is for you to run out of parts otherwise your machines will go down and you’ll yell at him. So the vendor may decide that, just to be on the safe side, he may need to stock a few extra bearings here and a few extra sprockets there because “you never know when they might have a spike in parts usage and we need to be careful and plan for those things.”
  • Let’s assume your vendor is a bad guy. He’s about $600 behind on his sales quota for the month and right now he’s not necessarily out to benefit you. So the vendor may decide that, since he’s the one stocking your parts room and you’ll most likely never notice, he may need to stock a few extra bearings here and a few extra sprockets there.

This is the danger of giving vendors too much power over your stuff. It doesn’t matter whether the vendor is a good guy or a bad guy, you’re screwed either way.


My Thoughts on BYOD

Bring Your Own Device (BYOD) is one of those new trends I have seen come up in the IT world over the past 2 years.  Basically, the idea is that instead of the company you work for buying you the equipment you need, you just bring your own or you and the company go in half-and-half or something.  Companies like BYOD because it saves them money in equipment.  Why buy an employee an iPad when that employee can just bring their own? 

Like everything else, however, there are some caveats that need to be taken into consideration.  Let’s look at some examples:

  • The employee is using their own laptop for work.  However, their work requires some specialty software so the employer installs this software on the employee’s laptop thereby consuming a user license for that software.  The employee is terminated and now that software must be removed from the laptop.  Because the laptop is the personal property of the employee and that employee has all her tax information and so forth on there, the employee refuses access to the laptop for removal of the software by the company’s IT support.  How does the company reclaim the license?
  • An employee has been using his iPad at the office for months now.  He turns in his two week notice and the current employer finds out the employee is leaving to go work for a competitor.  How can the company search the personal iPad of the employee to determine if he is carrying any proprietary information out the door with him?
  • An employee is using his Lumina 920 Windows Phone to field sales calls.  The employee leaves your company for a competitor that offers more money.  And you now realize that all of your clients have only that employee’s cell phone number as the primary contact for your company.  Since the phone does not belong to the company, there is no way to seize the phone number.
  • An employee has been using his laptop for work for four years now.  You know that employee has lots of company data on that laptop.  One day, the employee comes to work with a brand-new Dell Latitude laptop.  What happened to the old one with all that data on it?  Was the hard drive properly wiped using a D. O. D. compliant shredding software?  Did he just give it to this kids without cleaning off all that proprietary data?

In all the above cases, the company is at a loss.  It is difficult to just search an employee’s personal property without some type of privacy violation which could lead to bigger problems.  Furthermore, an employee who uses their own laptop/computer/smartphone/other device may not consider security at all since the employee views the device as their personal property and not as a vessel of corporate property.  How are security updates getting done, if at all?  What if the employee is allowing friends or other family to use the device to play games or for their own use?

BYOD can be a real money saver in regards to having to purchase equipment.  However, as always the long term costs must also be considered.  Devices that are not under the control of the company yet contain company information can pose true security issues and place the company in a bad situation regarding privacy.  In my opinion, BYOD is a bad idea for most organizations – especially those that are governed by some type of federal regulation such as HIPAA.

Before your company proceeds forward with a BYOD policy, you may wish to consult a lawyer.



If you get this blue screen during installation of Windows, one of the most likely causes is bad media.  Replace your DVD or download a new ISO image.

If you get this error installing Windows 7 in a VMWare Workstation virtual machine, VMWare has that “easy install” feature were you can type in the product key in VMWare’s set up screen before installation of Windows starts (as well as specify username and password).  Make double sure you have a legitimate product key.



Handling Truncation in SSIS

Truncation is what happens when you try to fit a string of one length into a field that holds a string of a shorter length.  In most cases the last characters of your string are cut off so it will fit in the field.  Of course, in the case of SSIS your package will error to a grinding halt if truncation is not explicitly handled.  We see truncation very often in fields such as first name, last name, address, and so forth when moving data from one platform to another.  While there are many ways to handle truncation, I’m going to discuss some of the more common I’ve seen here along with their plusses and minuses.

Approach One:  Use Substring() ,or equivalent function, in your SQL statement to pull out only as many characters as you can handle in the destination.  In the example below, we are using the Mid() function since we are pulling from an Access 2000 database.  The FirstName and LastName fields in the Access database are of length 20 but our destination has those same fields of length 10. 

The pros of this approach is that it is quick and easy and keeps your overall dataflow clean.  You don’t have to worry about getting possible truncation errors during different steps of your dataflow.  All of the “mess” is contained in that one nice and neat little SQL statement. 

The cons of the approach are that you will lose data.  You are forcibly truncating strings, after all.  If someone has a long last name, that name is going to come over with the last few letters missing. 


Approach Two:  Use a Data Conversion Task to shorten your strings en route to the destination.  You can either ignore the truncation by configuring so in the Error Output, or you can redirect strings that would be truncated to another table. 

The pros of this approach is it gives you the opportunity to redirect any rows that will be truncated to another table or flat-file for later analysis.  This may be very important for some data where you can’t lose anything.

The con of this approach is it makes your data flow a bit messier.  You will have now the “copy of firstname” and “copy of lastname” columns as shown in the screenshot below and the original firstname and lastname columns.  You can remove unwanted columns by adding a Sort task and not letting them pass through, but again, it’s a bit messy.



Approach Three:  Attempt to use a script component to shorten the data.  Consider the  following code:

public override void Input0_ProcessInputRow(Input0Buffer Row)
        if (Row.AddressOne.Contains("Avenue"))
            Row.AddressOne.Replace("Avenue", "Ave");
        if (Row.AddressTwo.Contains("Suite"))
            Row.AddressTwo.Replace("Suite", "Ste");

Notice that we are attempting to replace certain words commonly found in addresses with their abbreviations.  This approach is commonly used with approach two so as rows get redirected, more words can be found to be abbreviated thereby cutting down on error.

The pros of this approach is that it can certainly cut down on truncation in a more acceptable way.

The cons of this approach is that it will not work for all data and it can be hard to maintain as you are constantly adding cases to your switch statement or more “if’s” in the case of this example.

Truncation is one of those things that you are guaranteed to deal with when working with data.  Some vendors are certainly more generous with space in their database than others.  Why do some vendors make some string fields so small?  Who knows.  But at least we do have a few options on how to deal with it.  Maybe not perfect options, but options nonetheless.

If anyone has any cool approaches to how they handled truncation, I look forward to reading about them in the comments section or via links to your own blogs.