The case of the annoying Tomcat 6 Monitor

Ever since installing Tomcat 6 on my Windows 7 machine at home I’ve had an annoying message box pop up every time I restart my machine: Access is denied. Unable to open the service ‘Tomcat6’. Since it takes less time and effort to click on OK than to sort out the problem that is exactly what I have been doing … but enough is enough.

Access is denied

Tomcat IS running – so what is causing this error?

I confirmed that the Tomcat 6 service was running even though I got this message box – so what was causing it ? It turns out that Tomcat 6 Monitor Application was causing this error. Tomcat 6 Monitor Application is a GUI for monitoring and configuring the Tomcat 6 Service. It needs to be executed by the Administrator user and the UAC is getting in the way at start up time.

Are you feeling brave ?

The only solution I have found to work so far is to remove the Tomcat 6 Monitor Application from the Windows startup. And the only way to do this is to remove a registry entry …

Fire up regedit (Start Menu > Search programs and files > regedit.exe) and remove the following key:

  • Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run


Now you should not see this annoying message box every time Windows starts up. But it also means that Tomcat 6 Monitor will not be started on Windows startup.

Running Tomcat 6 Monitor manually

You may still want to run the Tomcat 6 Monitor since it does provide nice shortcuts for configuring and monitoring the state of your Tomcat 6 service. You can execute the Tomcat 6 Monitor via Run as administrator or you can configure the shortcut in the Start Menu to always execute the application as administrator.

Find the shortcut to the Tomcat 6 Monitor in the Start Menu (Start Menu > Apache Tomcat 6.0 > Monitor Tomcat) and right-click on it. Select Properties.


Click on the Shortcut tab in the Monitor Tomcat Properties window. Click on the Advanced button and check the Run as administrator checkbox.


Click Continue on the Dialog that pops up and now you should be able to start the Tomcat 6 Monitor by simply clicking the shortcut in the Start Menu. Windows will still flash the UAC though since you are running this application as administrator.


Update: 05 December 2010

The comment by Scot shows once again that there is always more than one way to skin a cat. Thanks Scot.

If you would still like to have the Apache Tomcat Monitor fired up on startup then replace the steps in this post with the following:

  • Leave the registry key ApacheTomcatMonitor at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run untouched. This will ensure that Windows starts up the Tomcat Monitor.
  • Right click on the tomcat6w.exe executable found at %CATALINA_HOME%\bin. Click on the Properties menu item and then select the Compatibility tab. Check the Run this program as an administrator checkbox under the Privilege Level section. Click the OK button.

Run as administrator

When Windows starts up now you will no longer get the Access is denied. Unable to open the service ‘Tomcat6’ message. The UAC will pop up and ask you to confirm the starting of the Apache Tomcat Monitor.


Tech-Ed Africa 2010 sessions I’m attending

I’ll be attending the following Tech-Ed Africa 2010 sessions in Durban next week:

Monday, 18 October 2010

  • Understanding the Microsoft Application Server: AppFabric, WF, WCF, and More (APS201)
  • What’s New in Windows Communication Foundation in .NET Framework 4 (APS306)
  • Using the MVVM Design Pattern with the Microsoft Visual Studio 2010 XAML Designer (DTL323)
  • Code Contracts and Pex: Power Charge Your Assertions and Unit Tests (DTL207)
  • Why functional programming matters – A look at F#, C#, and more (DTL304)
  • Building RESTful Applications with the Open Data Protocol (DTL310)
  • My Favourite Windows Presentation Foundation 4 Features (WCL206)
  • 10 Ways to Protect Users of Your Web Applications (WUX303)

Tuesday, 19 October 2010

  • LINQ, take two – realizing the LINQ to Everything dream (DTL414)
  • WCF: The Unified Services Programming Model for SOAP, REST, Data, and RIA Communication (WTB327)
  • Behaviour-Driven Development: Taking Unit Testing to the next level (DPR303)
  • RIA & Rich Client Applications: There is life beyond HTML (WUX311)
  • The Windows API Code Pack: Add Windows 7 Features to Your Application (DTL316)
  • Rx: your prescription to cure asynchronous programming blues (WTB324)
  • Designing and Developing a Windows Phone 7 Silverlight Application End-to-End – (part 1 of 2) (WPH202)
  • Designing and Developing a Windows Phone 7 Silverlight Application End-to-End – (part 2 of 2) (WPH303)
  • Windows Server AppFabric Caching: What It Is and When You Should Use It (APS309)

Wednesday, 20 October 2010

  • Best Practices: Building a Real-World Microsoft Silverlight Line-of-Business Application (WUX407)
  • Task Parallel Library: Design Principles and Best Practices (DTL424)
  • WCF Made Easy with Microsoft .NET Framework 4 and Windows Server AppFabric (APS310)

Happiness and Sadness

I’m really looking forward to the AppFabric and Windows Phone 7 sessions and am excited about both sets of technologies. I am bitterly disappointed though that the following two Tech-Ed North America 2010 sessions are not being presented given that Udi Dahan is in South Africa this week delivering his Advanced Distributed System Design with SOA & DDD (5 days) course:

  • Command Query Responsibility Segregation (ARC302)
  • High Availability: A Contrarian View (ARC308)

Upgrading a MacBook (13” Aluminum, Late 2008) – Part 1 (RAM)

I love my MacBook. It was the first 13” aluminum unibody notebook from Apple and although it was launched as part of the MacBook range it has since migrated to the MacBook Pro range.

I run my MacBook through a 24” Samsung SyncMaster T240 and use the wired keyboard and wired mouse. This gives me a nice desktop setup and when I need to be mobile the 13” form factor is perfect.

Lately I have begun to feel the limits of the stock 2GB RAM and the 160GB HDD. So it is time for an upgrade. I will be embarking on a 2 part project to upgrade both the RAM and the HDD of my MacBook.

RAM Specifications

Clicking on Apple > About This Mac showed that 2GB of RAM was installed and clicking on More Info … > Hardware > Memory showed that each of the 2 available memory slots had 1GB DIMMs.

About This MacMemory Slot information

According to the memory specifications at Apple Support my MacBook can take a max of 4GB RAM with the following specifications:

  • Double Data Rate Small Outline Dual Inline Memory Module (DDR SO-DIMM) format
  • 30mm
  • 1 Gigabyte (GB) or 2 Gigabyte (GB)
  • 204-pin
  • PC3-8500 DDR3 1066 MHz Type RAM

After looking at the price of Apple RAM I decided to rather purchase 2 x 2GB modules from Kingston (KTA-MB1066/2G). These are reasonably priced and are compatible with my MacBook.

Upgrading the RAM

Apple provide detailed instructions via their support site on how to upgrade your RAM. I shut down my MacBook and disconnected it from the power adapter. I had my new RAM, some precision screwdrivers and was ready to begin.


Opening up the MacBook

Turn the MacBook over and push down on the door latch to release the access door. Remove the access door and the battery. The battery has a handy tab on it to make lifting it out of the bay easier.

Remove access door and battery

Next remove the eight screws that secure the bottom case of the MacBook. The screws at the top of the picture have slightly larger heads than those at the bottom and are easier to get out. I used a 1.4mm flat screwdriver on the top screws. I tried a #00 philips precision screwdriver on the bottom screws but my precision screwdriver was obviously not good enough. I finally resorted to a 1.2mm flat screwdriver to get the bottom screws out. You may notice that I only have 7 out of the 8 screws out. I couldn’t manage to get the final screw out and eventually gave up after stripping the head.

Removing the screws

Thank goodness the screw I couldn’t get out was a corner screw. I carefully pivoted the bottom case open around the remaining screw. Finally ! I was in.

Making a plan ...

Removing the old RAM

Touch a metal surface inside the MacBook to discharge any static electricity from your body. Then push the ejection levers on the sides of the memory modules outwards to release the first memory module from the memory slot. The memory should pop up at an angle. The first image in the sequence below shows the first memory module popped up at an angle with the second memory module still clearly visible below it. Remove the memory module from the slot remembering to hold the module by its notches and not the gold connectors.

Repeat the steps to release the second memory module.

Removing the old RAM

Installing the new RAM

Touch a metal surface inside the MacBook to discharge any static electricity from your body.  Align the notch on the gold edge of the module with the notch in the lower memory slot. Tilt the memory module and push it into the bottom memory slot. Use two fingers and push down the memory module with firm even pressure until it is level. The first two images in the sequence below show the first memory module tilted and then pushed level under the second (top) memory module.

Repeat with the second memory module. The last two images in the sequence below show the second memory module tilted and then pushed level above the first (bottom) memory module.

Installing the new RAM

Closing up the MacBook

Reverse all the steps from Opening up the Macbook. Replace the bottom case making sure it is sitting flush. Then replace and tighten the screws. Place the battery back into the bay and then replace the access door. Press it down gently until the latch moves to the closed position.


Switch on the MacBook and make sure it boots. Clicking on Apple > About This Mac now shows that 4GB of RAM is installed and clicking on More Info … > Hardware > Memory shows that each of the 2 available memory slots has correctly installed 2GB DIMMs.

About This Mac Memory Slot information