Buenas tardes compañeros,
Estamos trabajando en un proyecto que necesita de una base de datos para almacenar información (qué raro, no? jajaja) y elegimos PostgreSQL para ello. Durante la instalación de la aplicación, hacemos una instalación desatendida de pg utilizando Windows Installer.
Funcionaba perfectamente sobre Windows XP y sobre Windows Server 2003, así como sobre Windows Vista (salvando el hecho de desactivar temporalmente el UAC que también hemos podido automatizar); el problema radica en que, justo después de la instalación del servidor y levantar los servicios, hacemos lo siguiente:
Conectamos con el superusuario. Correcto
Creamos un usuario. Correcto
Creamos un tablespace. Correcto
Desconectamos el superusuario. Correcto
Conectamos con el usuario que acabamos de generar. Correcto
Creamos la base de datos. Falla. Devuelve un error 57014 (query_canceled) que no sabemos a qué se debe. Según he estado leyendo en la documentación de PostgreSQL entiendo que ha saltado el timeout (el mensaje completo es: "Error 57014: canceling statement due to user request"). Hemos probado aumentando el timeout pero sigue apareciendo este error.
No obstante, si paramos la instalación de nuestro programa, nos conectamos a la servidor que acabamos de instalar (bien a través del pgAdmin III, bien a través de .NET con la npgsql, que es la misma que utiliza el proyecto de instalación) podemos seguir trabajando sin problemas y crear la base de datos, el esquema completo, secuencias, vistas, tablas, valores por defecto, ...
Hemos probado a no crear un tablespace por si fuera problema de los permisos de la carpeta (y utilizar el tablespace por defecto) pero no ha resuelto el problema. Hemos probado también a modificar las opciones de la instalación desatendida, pero nos parecen triviales. Hemos probado a hacer la instalación de PostgreSQL manualmente y ha funcionado correctamente.
Este error solo lo recibimos al instalar sobre Windows Vista y no en todos los ordenadores que hemos probado (3 en concreto, en uno lo hace correctamente y en 2 falla). Hemos comprobado diferencias entre los equipos y aparentemente no hemos encontrado ninguna diferencia además de la arquitectura: el pc que funciona es de 32 bits, y los pc's que fallan son de 32 y 64 bits respectivamente.
La verdad es que no entiendo por qué se produce este error. ¿Nos está faltando algo en la instalación? ¿La npgsql puede dar algún problema bajo estas circunstancias? ¿Puede que no sea problema de la instancia de PostgreSQL? ¿Qué más pruebas podemos hacer para detectar el problema?
Siento mucho haber sido tan extenso, pero creía conveniente hacer una exposición clara de cual es la situación y el problema.
Muchas gracias de antemano,
Un cordial saludo.