Blackberry Professional Server – Blackberry Controller Service Will Not Start

Tech Supporton April 30th, 20104 Comments

Today we had a problem on our Blackberry Professional Server where the “Blackberry Controller” service was stopped and would not start.  Trying to manually start the service would give us the following error:

The BlackBerry Controller service terminated with service-specific error 5003 (0x138B).

Luckily, the fix was easy. There seemed to be some contention with this service and the “DNS Server” service on the same machine.  Stopping the DNS Server service, starting the Blackberry Controller service, and then restarting the DNS Server service seemed to fix the problem.

Deleting the Wrong Mailbox in Exchange Server 2007 – And Restoring It

Tech Supporton April 30th, 201013 Comments

So, it was bound to happen… We removed the wrong user’s mailbox in Exchange Server 2007 today.  Unfortunately, with Server 2007, removing an account, removes the Windows user object and also marks the mailbox in the database for removal.  Luckily, there is a relatively quick fix:

  1. Restore the Active Directory object with the AdRestore utility
  2. Connect the disconnected mailbox to the restored user account

Step 1
First, we downloaded the AdRestore program from Microsoft onto our primary Active Directory server and then ran the command:

> adrestore -r username

The program searches through recently deleted (tombstoned) objects and allows you to recover them.  The username part works as a rudimentary search.  If it finds the object, it prompts you to proceed.  Once you do, the account is restored.  It’s disabled and doesn’t have a password, so you’ll need to set the password and the activate the account. Microsoft has a long drawn-out article on restoring Active Directory accounts, but running this simple tool seemed to work fine for us.

Step 2
In the Exchange Management Console, we went to Recipient Configuration -> Disconnected Mailbox and went to find the deleted mailbox.  Oh crap! It wasn’t there!  Luckily, it turns out that if the mailbox management process has not yet run, you will not see recently deleted mailboxes.  Fortunately, you can force this by going to the Exchange Management Shell and running:

> clean-mailboxdatabase “Mailbox Database

After running this command, the disconnected mailbox now appeared.  You then right-click on it, and select “Connect…”  Check “User Mailbox” and click Next.  Then, select “Existing User,” browse to find the user, make sure their Alias is correct, and click Next. Clicking Finish reconnects the user’s old mailbox to the restored user account.

The reconnection looked like it finished quickly, but we found that it took about an hour for it to fully connect and allow the user access to her email again.  Hope this helped!

Symfony, WordPress and nginx – configuration details and setup

nginxon April 8th, 2010No Comments

After several hours of trial and error, we finally figured out a configuration that works for running Symfony and WordPress together on the same web site using the nginx web server.  This post had a lot of useful information, but none of it worked perfectly for us, so this is what we came up with:

##
## domain.com
##
server {
    listen   80;
    server_name domain.com;

    access_log /home/logs/domain/access.log;
    error_log /home/logs/domain/error.log notice;

    root   /home/www/sfprojects/domain/web;
    index  index.php;
    charset utf-8;

    ## configuration for the WordPress blog with the WP-SuperCache plugin
    ## (remove if not using WordPress)
    location /blog {

        # if the requested file exists, return it immediately
        if (-f $request_filename) {
                break;
        }

        set $supercache_file '';
        set $supercache_uri $request_uri;

        if ($request_method = POST) {
                set $supercache_uri '';
        }

        # Using pretty permalinks, so bypass the cache for any query string
        if ($query_string) {
                set $supercache_uri '';
        }

        if ($http_cookie ~* "comment_author_|wordpress|wp-postpass_" ) {
                set $supercache_uri '';
        }

        # if we haven't bypassed the cache, specify our supercache file
        if ($supercache_uri ~ ^(.+)$) {
                set $supercache_file /blog/wp-content/cache/supercache/$http_host/$1index.html;
        }

        # only rewrite to the supercache file if it actually exists
        if (-f $document_root$supercache_file) {
                rewrite ^(.*)$ $supercache_file break;
        }

        # all other requests go to WordPress
        if (!-e $request_filename) {
            rewrite  ^(.*)$  /blog/index.php?q=$1  last;
            break;
        }

    }

    location / {

        # If the file exists as a static file serve it directly without
        # running all the other rewite tests on it
        if (-f $request_filename) {
            expires max;
            break;
        }

        if ($request_filename !~ "\.(js|htc|ico|gif|jpg|png|css)$") {
            rewrite ^(.*) /index.php last;
        }
    }

    location ~ "^(.+\.php)($|/)" {
        set $script $uri;
        set $path_info "";

        if ($uri ~ "^(.+\.php)($|/)") {
            set $script $1;
        }

        if ($uri ~ "^(.+\.php)(/.+)") {
            set $script $1;
            set $path_info $2;
        }

        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        include        fastcgi_params;

        fastcgi_param  SCRIPT_FILENAME  /home/www/sfprojects/domain/web$script;
        fastcgi_param  SCRIPT_NAME      $script;
        fastcgi_param  PATH_INFO        $path_info;
    }

   location /sf/ {
        root /home/www/sfprojects/domain/lib/vendor/symfony/data/web/;
   }

   error_page   404  /404.html;
   location = /404.html {
        root   /usr/local/nginx/html;
        internal;
   }

}

And this is the content of our fastcgi_params file which we include above:

fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;

Hope this proves helpful to someone going through the same problems!

TEAC CA200 HH 13-1 Card Reader and Windows 7

Tech Supporton December 8th, 200927 Comments

I recently upgraded to Windows 7 Ultimate on my Dell Dimension E520 and after upgrading, realized that my TEAC CA-200 card reader no longer worked properly.  I went to support.dell.com to see if there were any Windows 7 drivers available, and of course they were not.  Luckily, there is a fix.  Read on…

  1. Download the Windows Vista drivers from the Dell Support site. (I only tried this with the 32-bit drivers.)
  2. Extract the drivers to the C:\Dell\Drivers\R176587 folder.
  3. Go to that folder, right-click on Imgr32b.exe and go to Properties.
  4. Click on the Compatibility tab and under Compatibility mode, check “Run this program in compatibility mode for:”  Then choose “Windows Vista (Service Pack 2).”
  5. Click OK.
  6. Now, double-click to run the file and follow the instructions to install.  You must put it into compatibility mode or it will not run. (When I installed, it hung near the end of the install process. I killed the program, and everything still worked fine.
  7. This should do it and everything should be working now.

In my case, it did not work immediately. I had to open up the PC, disconnect the card reader and then reconnect it.  Once I did that it was immediately recognized.

Hope this helps.

Great Convergence Video – Shift Happens

Generalon November 25th, 20091 Comment

We hope you liked our previous post with the amazing social media video.  We now bring you another great video called “Did You Know 4.0” from the “Shift Happens” project.  The facts and figures in this one are just as astounding.

Not Sure About Social Media? Check Out This Video.

Generalon November 3rd, 2009No Comments

Not sure social media is right for your business?  Check out this interesting video:

If you don’t have a Twitter or Facebook page for your business the question is, “When will you?”

Microsoft releases free anti-virus software

Softwareon October 6th, 2009No Comments

Microsoft has released free anti-virus software, Microsoft Security Essentials, and the initial reviews are very good.  It is very effective at removing viruses and spyware and also has low memory and resource usage.  While this is not an “enterprise-grade” product, it will work very well for home use as well as small business where cost is a factor.

We still routinely recommend Symantec Antivirus Corporate Edition for businesses that need more management and control over their distributed software, but we are now recommending Microsoft Security Essentials over AVG Free for home users. Also, AVG Free cannot be used for commercial use, while Security Essentials can.

If you have any older, out-of-date anti-virus software installed, I’d recommend uninstalling it and installing this.

Welcome to our blog!

Generalon October 5th, 2009No Comments

We wanted to welcome you to the blog for McComb, Inc.  We plan to use this blog to share some of the best and latest technology news that can help you as a small business. We’re constantly on the lookout for new products, ideas and technologies and we want to share the best of those with our customers and readers.

In addition to providing some useful information, a blog is a great marketing tool for any web site.  We often work with our clients to install blogs on their own sites to help with marketing, customer interaction and, of course, search engine optimization and placement.

We primarily use WordPress to power all of our blog and CMS projects. It is an incredible piece of software and completely free to use.  There is a huge installed base, and that also means that there are a ton of plugins available.  We’ll be posting in the near future about our favorite WordPress plugins, but feel free to ask us any questions that you may have in the meantime.

Thanks for stopping by!