Consultor Eletrônico



Kbase P14670: Cannot start procopy prodb or prorest a database when hostname exceeds 28 characters on Linux
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   7/23/2008
Status: Verified

SYMPTOM(s):

database fails to start with error 8619

** This process terminated with exit code 2. (8619)

This process terminated with exit code <number>. (8619)

Database lk file still exists after the failure.

Database lg file is not created.

prodb fails with error The file dbname.lk exists.

prorest fails with error The file dbname.lk exists

!!! ERROR - Database restore utility FAILED !!! (8564)

The file DBname exists. This indicates one of: (528)

The database is in use by another user. (529)

The last session terminated abnormally. (530)

If you are CERTAIN the database is not in use by any user or server, (531)

simply erase DBname.lk and try again. (532)

Create a new database using the prodb fails

Create a new database using the procopy fails

prostrct repair of database on Linux fails with error (6928)

Unable to create lock file. (6928)

FACT(s) (Environment):

OpenEdge 10.x
Progress 9.x
Progress 8.x
Progress 7.x
Linux IBM POWER 64-bit
Linux x86 64-bit
Linux Intel

CAUSE:

The hostname on Linux is limited to 255 bytes. Progress uses a C function called "gethostname" to determine a UNIX machine"s hostname. If the hostname is longer than 28 characters Linux returns a null string to Progress, as opposed to a truncated name. The gethostname function returns the correct hostname value, however the return code is a -1 which means that the gethostname function failed. The -1 return code results in Progress setting the hostname in the .lk file to nulls rather than the value returned by the gethostname function. Since a nul string is returned in the low level functions, this is part of the reason for the remaining .lk files and in some instances, zombie shared-memory segments pids have been known to occur.

FIX:

The full hostname must be less or equal to 28 characters on Linux.

To determine the length of the current hostname, run the 'hostname | wc -m' command at the UNIX shell prompt.

To change the name of the Linux hostname, type 'hostname <newhostname>' (where <newhostname> is 28 characters or less).

This operation will require ROOT permission. An alias (for the long) hostname can be created in /etc/hosts of "yphosts" (if NIS is used).