Hi Higuchi-san,

(1)
What made you think this problem rarely occurs in PG 10 or later?  Looking at 
the following code, this seems to happen in PG 10+ too.

    if (do_wait)
    {
        write_eventlog(EVENTLOG_INFORMATION_TYPE, _("Waiting for server 
startup...\n"));
        if (wait_for_postmaster(postmasterPID, true) != POSTMASTER_READY)
        {
            write_eventlog(EVENTLOG_ERROR_TYPE, _("Timed out waiting for server 
startup\n"));
            pgwin32_SetServiceStatus(SERVICE_STOPPED);
            return;
        }
        write_eventlog(EVENTLOG_INFORMATION_TYPE, _("Server started and 
accepting connections\n"));
    }


(2)
What state should we consider SERVICE_RUNNING as?  Isn't it the state where the 
server has completed startup processing and accepts connections?  If no, how is 
it different from SERVICE_STARTING?

(I know that when -w (wait) is not specified, the status becomes 
SERVICE_RUNNING whether or not the server completes startup processing...)


(3)
+                               write_eventlog(EVENTLOG_INFORMATION_TYPE, 
_("Server startup timed out but might continue in the background\n"));

This message is new, isn't it?  I think the existing message "Time out..." is 
enough.


(4)
+                               write_eventlog(EVENTLOG_ERROR_TYPE, _("Server 
startup failed. Examine the log output.\n"));

The first sentence (phenomenon) and the second line (detail or action) should 
be separated with a newline.  Below are some examples in pg_ctl.c.  Note that 
write_stderr() writes to the eventlog when running under a Windows service.

                write_stderr(_("%s: could not start server\n"
                               "Examine the log output.\n"),

            write_stderr(_("The program \"%s\" was found by \"%s\"\n"
                           "but was not the same version as %s.\n"
                           "Check your installation.\n"),


Regards
Takayuki Tsunakawa


Reply via email to