Hello,
 
I downloaded the 8.0 beta Windows installer at http://pgfoundry.org/projects/pginstaller.
It installed wihtout any issue on my W2K SP4 machine.
 
However, when trying to install it on a W2K server through a terminal server session, I have the following error:
 
==== initdb.log =============
 
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.
 
The database cluster will be initialized with locale french.
 
fixing permissions on existing directory C:/Program Files/PostgreSQL/8.0-beta1/data ... ok
creating directory C:/Program Files/PostgreSQL/8.0-beta1/data/global ... ok
creating directory C:/Program Files/PostgreSQL/8.0-beta1/data/pg_xlog ... ok
creating directory C:/Program Files/PostgreSQL/8.0-beta1/data/pg_xlog/archive_status ... ok
creating directory C:/Program Files/PostgreSQL/8.0-beta1/data/pg_clog ... ok
creating directory C:/Program Files/PostgreSQL/8.0-beta1/data/pg_subtrans ... ok
creating directory C:/Program Files/PostgreSQL/8.0-beta1/data/base ... ok
creating directory C:/Program Files/PostgreSQL/8.0-beta1/data/base/1 ... ok
creating directory C:/Program Files/PostgreSQL/8.0-beta1/data/pg_tblspc ... ok
selecting default max_connections ... 10
selecting default shared_buffers ... 50
creating configuration files ... ok
creating template1 database in C:/Program Files/PostgreSQL/8.0-beta1/data/base/1 ... WARNING:  could not find a match for Windows timezone "Paris, Madrid (heure d'été)"
FATAL:  could not create shared memory segment: No error
DETAIL:  Failed system call was shmget(key=1, size=1196032, 03600).
child process was terminated by signal 1
initdb: failed
initdb: removing contents of data directory "C:/Program Files/PostgreSQL/8.0-beta1/data"
==== en dof initdb.log =============
 
I have not checked the code yet, but I had very recently fixed a similar problem on the application my company develops (which is compatible with PotgreSQL ;-) ).
My guess is an issue with the identifier given to CreateFileMapping (which is usualy used to create a shared memory segment, to implement the equivalent of Unix's shmget) :
In short, if you want the segment created by a service to be visible from a terminal session, you must prepend "Global\" to it's name.
Beware, this is not supported under NT4, so you must have conditionnal code to prepend this only from W2K or up.
Also, there are similar issues with the name given to CreateMutex and OpenMutex (used to implement cross-process synchronisation objects).
 
Hope this helps
 
Regards
 
Thomas Boudalier
Neolane
 
PS: I am a very big fan of PostgreSQL, and so far have converted dozains of our customers. Keep up the good work.
 

Reply via email to