Consultor Eletrônico



Kbase 18081: The Server Terminated With Exit Code 1.(800), NT, Procontrol
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   15/10/2008
Status: Verified

FACT(s) (Environment):

Windows NT 32 Intel/Windows 2000

SYMPTOM(s):

Errors when trying to start a database server from ProControl.

** The server terminated with exit code <number>. (800)

Cannot Find Lock (.lk) file.  See EVENT VIEWER. (5780)

Rebooting the Server temporarily solves the problem

Errors return after stopping the database and trying to restart.

CAUSE:

Shared Memory that should be assigned to the server is already in use (this may seem strange as the database server should not be running).

FIX:


Use the Task Manager to examine what applications are currently running.

Experience has shown that some Vendor supplied system manager tool may be tying up the Shared memory.  Compaq's Server manager and HP's toolkit have caused the problem before but the names can be different and only have in common that they are server monitor tools or performance tools.  Ending the tasks will release the shared memory and the Database servers can restart.

To find out what program is in fact using the Shared Memory install "Windows NT Server Resource Kit, Supplement 4 Utilities".

The resource kit contains the tool OH.EXE (Open Handles) utility which can be used to view the open handles or to view object types and names.  Please read the online manual for detailed description on the tool or use "OH.EXE /?" for usage information.

The first time the OH.EXE is run a reboot has to be performed as a flag in the kernel has to be raised before the executable can obtain information from NT.

To view specific BaseNamedObjects the command for OH is:

   OH.EXE -t section -a > OH.TXT

The OH.TXT that will be generated can be sent to Progress Technical Support if needed.

View this text file and search for a line similar to the following (the path and name of your database will replace c.dlc.sports.):

   \BaseNamedObjects\sharemem.c.dlc.sports.0

In front of this line, the executable using this memory is displayed together with its Process ID (PID).

    189 (executable)  Section     0044 ...
    ^^^

The PID can then be used to kill the process.  After this the database server should be able to be started.  Since it is not the normal procedure to kill processes on NT, first try closing the application that the executable refers to, in the right way. If this does not stop the application and the locking of the shared memory, the KILL command (KILL /? for information) can then be used to stop the process.

It might be that several applications are tying up the shared memory so examine the entire OH.TXT for PID's connected to the database.  The applications that have given the problem should not be started again, as they will continue to give the 800 error message.

If desired, the OH.EXE can later be disabled with Gflags.exe (in the Windows NT 4.0 Resource Kit) by clearing  the check box for "Maintain a list of objects for each type" in the Global Flags window, then restarting the system.