Kbase P16771: HOSTNAME is hgshot, expected hgsmail. (4192) when changing node name
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  2/17/2009 |
|
Status: Verified
SYMPTOM(s):
HOSTNAME is hgshot, expected hgsmail. (4192)
<filename>: HOSTNAME is <hostname>, expected <hostname>. (4192)
dbname.lk is not a valid .lk file for this server. (4196)
<file-name> is not a valid .lk file for this server. (4196)
The 4192 and 4196 errors result when the database is up and running while the node name is changed
The Host parameter supplied was hgshot, however, this Host is hgsmail. (5149)
The 5149 error message results when starting the database when the node name has changed
MC/ServiceGuard (HP cluster management software) in use which creates a virtual host
4 databases in use
All databases use same -H hostname with a different IP address
Hostname < 28 characters
removing -H $HOSTNAME from server startup does not resolve issue
Database Server cannot be started with a logical hostname in Progress 9.x
FACT(s) (Environment):
Progress 9.1x
HP-UX 11 64-bit
OpenEdge Category: Database
CAUSE:
Each of package has a logical hostname (with different IP address, for the clients to connect to) which is necessary so that the package can run on either system in the cluster. When sending mail from the server, the host is changed from hgshot to hgsmail, the mail is then sent and the hostname changed back to hgshot. It is at this point that the 4192 message appears. We do not bind to a variable (hostname). The hostname will be whatever the hostname is when the database is started and this is then the information that is stored in the .lk file together with the the PID and mode.
The reason that the node name is checked, is because it is possible for the database to be running on a particular server and for the filesystems to be exported via NFS.
When an attempt is made to start the database, a check is made to verify if it is already running. The existence of the .lk file is an indication that it is, but not absolute proof, so it is also verified.
The process id (PID) of the broker (or user if in single user mode) is fetched from the .lk file to verify if that process is still running. If this is the case, then the database is definitely in use. However, if the .lk file is on a NFS exported filesystem, somebody could try to start the database from a different machine that has the filesystem mounted (when the database is already up and running). In order to prevent this from happening, we need the host name to know if the process id is on the system that is trying to start the database or someplace else.
The watchdog process periodically checks for the existence and validity of the
.lk file. If it has been removed or no longer valid, the database must be shut down because now there is no protection against starting it up while it is already running, which is absolutely certain to lead to database corruption.
FIX:
If you run the database in a clustered environment, because the watchdog process does NOT allow simultaneous access from multiple nodes (for the reasons explained above), all database access MUST be from the same node the database server is runnning on, or via network connections to servers running on the node hosting the database.
Do not change node names around under the database. Changing the hostname under the DB will result in the database shutting down, and possibly a variety of other non Progress processes as well, as it will interrupt the stability of the cluster in some cases. Consider using some simple messaging to push mail to a common mail process.