Archive for June, 2010

Not Enough Storage is Available to Process This Command Errors

Tuesday, June 29th, 2010

We recently started having problems on one of our servers.  Processes would start dieing with “Not enough storage is available to process this command” errors. It turns out that this is a catch all error that Windows uses when it runs out of resources of almost any kind.  It rarely has anything to do with the amount of memory or disk installed on your system.  Some of the things that can causes the error to occur are:

  1. System paged pool is exhausted.
  2. System non-page pool in exhausted.
  3. Maximum IRP stack size has been exceeded.
  4. Any number of other things that I have not been able to find documented.

(more…)

Delaying the Loading of Specific Services

Tuesday, June 29th, 2010

On some systems, it may be necessary to delay the loading of specific services in order to allow those services to start successfully.  For example, on one of our servers, the Firebird service suddenly refused to start automatically when the system was rebooted.  We could start it manually but it would fail with error 1055 (service database is locked) when attempting to start automatically.

Apparently, the service database is always locked during the early phases of the boot process.  So, in order to get Firebird to start we needed to delay Windows’ attempts to automatically start the Firebird service.  To do this, you need to make Firebird dependent on another service.  If you do that, Windows will not try to start Firebird until that other service has started.  We chose to make Firebird dependent on the Server service since all systems must have the Server service running if you want to be able to do anything at all.

(more…)

Forcing a Delphi Program to Run with Administrator Privilege

Monday, June 21st, 2010

No matter how hard you try to eliminate the need for administrator access from your programs, sometimes they just need to run as administrator in order to work.  I came across this requirement while recoding our application’s configuration utility.  I dutifully removed all configuration entries  from the registry and moved them to the “All Users” folder but I needed to be able to configure some of our programs to run as Windows services.  No matter how you look at it, this requires administrator privilege.

I didn’t want to force our users to “run as administrator” on Vista, Windows 7 and Windows 2008.  Can you imagine the number of support calls that would generate? :(  So, I starting looking for a way to force the program to request administrator privilege .

(more…)