Manual de errores y soluciones

Anuncio
Manual de errores y soluciones
© Gedisweb versión 3, Abril de 2012
1 Errores de conexión a la base de datos
Estos errores se pueden dan cuando tras una instalación correcta o tras un período de ejecución sin
problemas, dan sucesivos errores informando de que no se puede conectar a la base de datos y aparece
siempre la misma ventana de error no pudiendo entrar a la aplicación Gedisweb.
Chequear lo siguiente:
1) [PARA FIREBIRD/MYSQL/SQLSERVER] Lo primero que hay que comprobar es lo más obvio. ¿Son
correctos los cuatro parámetros, es decir, el nombre del servidor o host, el nombre o path de la base de
datos, el nombre de usuario y su contraseña? Si estamos en FIREBIRD el nombre de usuario será por
defecto SYSDBA (en mayúsculas) y la contraseña masterkey (en minúsculas). Si estamos en
SQLSERVER el nombre de usuario será por defecto sa (en minúsculas) y la contraseña masterkey (en
minúsculas).
2) [PARA FIREBIRD] Si todo lo anterior es correcto, ¿Existe el fichero de la base de datos? Para
comprobarlo tendremos que saber cómo buscar el fichero. La base de datos es de la forma
nombre_de_maquina : path del fichero de la base de datos. En el ejemplo la máquina se llama localhost y
la base de datos es c:\bases_datos\aplicacion.gdb. Si la máquina se llama localhost o 127.0.0.1 quiere
decir que estamos en el ordenador que tiene la base de datos, luego el path del fichero de la base de datos
se refiere a una carpeta local. Si la máquina tiene otro nombre, por ejemplo SERVIDOR deberíamos
comprobar que la máquina en la que estamos se llama igual. Si se llama igual estamos en el caso anterior.
Si no se llama igual, debemos localizar el fichero de la base de datos en la máquina de nuestra red que se
llame SERVIDOR.
3) [PARA SQLSERVER] ¿Se instaló la aplicación como una instancia de SQLSERVER?. Debemos tener
en cuenta que un mismo servidor puede tener hasta 16 instancias de SQLSERVER. Esto se puede ver
haciendo doble click sobre el icono de SQLSERVER en el área de notificación de Windows y, tras la
visualización de la ventana del administrador de servicios de SQLSERVER, abrir el desplegable servidor.
Lo normal es que aparezca el nombre del servidor pero puede aparecer también el nombre del servidor
seguido de una barra (\) y un nombre de instancia. Si es así, lo normal es que el nombre de instancia sea
igual al nombre de la aplicación. Debemos seleccionar en el desplegable esa instancia y comprobar que
está funcionando. En nuestra aplicación deberemos poner en el campo Servidor, el nombre del servidor
seguido de la barra (\) y su nombre de instancia.
Manual de errores y soluciones, página 1
4) [PARA FIREBIRD] ¿Hay conexión a la red? Si no es así pero estamos seguros que el ordenador es el
que tiene la base de datos con lo cual en teoría no necesita la red para salir al exterior y estamos en
windows XP consultar el apartado que hay más adelante titulado Solucionar el retraso de cierre de las
bases de datos Firebird en Windows XP, en la causa/solución 2.
5) [PARA FIREBIRD/MYSQL/SQLSERVER] ¿Tenemos Windows XP service pack 2, windows Vista o
windows 7? Si es así, tenemos que saber que instala un cortafuegos automáticamente que bloquea entre
otros a la aplicación Gedisweb ya que la conexión que hace a la base de datos es vía TCP/IP luego el
cortafuegos estará bloqueando la conexión porque la considerará un acceso a internet no permitido o
peligroso. Hay que configurar el cortafuegos de Windows para permitir el acceso a Internet (aunque sea
local ya que el cortafuegos lo trata igual) a la aplicación Gedisweb y también, si tenemos Firebird, al
servidor de la base de datos c:\archivos de programa\Firebird\Firebird_1_5\bin\fbserver.exe y si tenemos
SQLServer, al servidor de esta base de datos situado normalmente en C:\Archivos de programa\Microsoft
SQL Server\MSSQL\Binn\sqlservr.exe para la instancia predeterminada o en C:\Archivos de
programa\Microsoft SQL Server\MSSQL$nombreinstancia\Binn para las instancias desde la 1 hasta la 15
donde nombreinstancia es la instancia que instala la aplicación Gedisweb.
5) [PARA FIREBIRD/MYSQL/SQLSERVER] ¿Se ha instalado algún antivirus como Panda o Norton
Security o algo parecido? Si es así, estos paquetes traen un pequeño cortafuegos que es posible que esté
bloqueando tanto a la aplicación Gedisweb como a Firebird, SqlServer o MySql si es el caso. Hay que
hacer lo mismo que en el punto anterior.
6) [PARA FIREBIRD] ¿Se ha instalado algún pack de adsl? Según que packs sobreescriben cierta DLL
del sistema (no sabemos cual) que provoca que la base de datos (Firebird) no funcione correctamente y no
arranque. Habrá que reinstalar pero haciendo copia de los datos y restaurándolos después si también
tenemos que reinstalar el servidor.
7) [PARA FIREBIRD/SQLSERVER] ¿Se ha utilizado algún punto de restauración en Windows para
volverlo a un estado estable? Esto realmente pasa cuando se ha instalado algo (como un pack de adsl) que
deja el sistema mal pero que se no llega a restaurar completamente. Habrá que reinstalar pero haciendo
copia de los datos y restaurándolos después si también tenemos que reinstalar el servidor.
8) [PARA FIREBIRD] Observar si Firebird está funcionando y no tiene errores. Para ello hay que ver si
el servicio está funcionando.
9) [PARA FIREBIRD/MYSQL/SQLSERVER] Restaurar las librerías de acceso a datos por si se hubieran
sobreescrito o corrompido. Estas librerías son dbexpint.dll, dbexpmda.dll y dbexpmss.dll. Para ello lo
mejor es entrar a la página de Gedisweb, www.gedisweb.es sección descargas, apartado Comunes y
bajarse las Dlls y ficheros adicionales a la instalación que es un fichero zip que habrá que descomprimir
sobre la carpeta donde esté el ejecutable de la aplicación que por defecto estará situada en C:\Archivos de
programa\<nombre empresa distribuidor>\<nombre aplicación>. El icono de acceso directo que se use
para ejecutar la aplicación debe además tener configurado en el campo Iniciar en la misma carpeta donde
está el ejecutable para que el primer sitio donde busque el sistema sea en esa carpeta y no en alguna otra
que puede tener otra versión distinta de las dlls.
10) [PARA FIREBIRD/MYSQL/SQLSERVER] Restaurar la librería midas.dll. En este caso el sistema
también debería dar el error Cannot load midas.dll. Esta librería es necesaria como interfaz entre DELPHI
(el lenguaje en el que está programada la aplicación) y las librerías de acceso a la base de datos. Lo
primero que haremos es comprobar si existe la librería que se situará en la carpeta system de Windows
(Normalmente C:\Windows\System para win98, C:\Winnt\System32 para windows 2000,
C:\Windows\System32 para windows ME y XP). Si no existiera, entraremos a la página de Gedisweb,
www.gedisweb.es sección descargas, apartado Comunes y bajarse midas.dll que es un fichero zip que
habrá que descomprimir sobre la carpeta system del Windows que tengamos. Una vez hecho esto habrá
que comprobar que la librería se autoregistra correctamente. Para ello borraremos del registro las claves
descritas en el apartado Problemas con la librería midas.dll descrito más adelante en este mismo
documento y volveríamos a ejecutar la aplicación.
Manual de errores y soluciones, página 2
11) [PARA FIREBIRD] Comprobar la librería GDS32.DLL. Esta librería también se sitúa en la carpeta
system de Windows y la debería haber instalado FIREBIRD ya que pertenece a él. En este caso, podemos
entrar en la página de Gedisweb, www.gedisweb.es sección descargas, apartado Comunes y bajarse
gds32.dll que es un fichero zip que habrá que descomprimir sobre la carpeta system del Windows que
tengamos.
Si tras todas estas comprobaciones seguimos sin tener éxito en la conexión no tendremos más remedio
que desinstalar la aplicación Gedisweb y volverla a instalar haciendo previa copia de los datos si es que
estamos reinstalando el ordenador que hace de servidor.
Si aún así, seguimos sin conectar, lo mejor es contactar con Gedisweb en busca de una posible solución.
Manual de errores y soluciones, página 3
2 Errores del tipo Database error: invalid request BLR
at offset XX function XXXXXXX is not defined
module name or entrypoint could not be found
Este es un error que se produce cuando no tenemos las funciones UDF específicas de Gedisweb instaladas
en nuestro sistema o bien disponemos de una UDF más antigua. Las funciones UDF se describen en el
manual de mantenimiento de bases de datos. Nosotros básicamente debemos copiar o restaurar el fichero
gwUDF.dll en la carpeta UDF del directorio root de FIREBIRD. Si se ha instalado respetando las
carpetas propuestas por defecto, sería la carpeta C:\Archivos de programa\Firebird\Firebird_1_5\UDF.
Entraremos en la página de Gedisweb (www.gedisweb.es), sección descargas, apartado comunes y nos
bajaremos Descarga funciones UDF. Es un zip autodescomprimible que propone la carpeta C:\Archivos
de programa\Firebird\Firebird_1_5\UDF (la carpeta por defecto del servidor de FIREBIRD, si fuera un
servidor
INTERBASE
habría
que
cambiar
a
la
carpeta
C:\Archivos
de
programa\Borland\Interbase\UDF) y sobreescribe el fichero gwUDF.dll que haya en esa carpeta. Sólo
hay que instalarla en el servidor.
Manual de errores y soluciones, página 4
3 Problemas con la librería midas.dll
En este caso la aplicación da el error Cannot load midas.dll o, simplemente, da el mensaje de que no se
puede conectar a la base de datos.
Como hemos dicho en manuales anteriores, la librería midas.dll se autoregistra en la primera ejecución
de la aplicación Gedisweb. Este registro implica que se graba también el path donde esté el fichero de
dicha librería con lo que resulta recomendable instalarlo siempre en una de las carpetas comunes del
sistema Windows como la carpeta system32 que es lo más correcto.
Entraremos en la página web de Gedisweb (www.gedisweb.es) sección descargas, apartado comunes y
nos bajaremos midas.dll que es un fichero zip que descomprimiremos en la carpeta system32 de Windows
(Normalmente C:\Windows\System para win98, C:\Winnt\System32 para windows 2000,
C:\Windows\System32 para windows ME y XP). Seguidamente entraremos en el registro y borraremos
todas las entradas que hubiera (enumeradas más abajo) que hagan referencia a dicha librería. Ejecutar
entonces de nuevo la aplicación Gedisweb. Ésta llamará a midas.dll la cual se autoregistrará de nuevo ya
con la ubicación correcta.
AVISO IMPORTANTE: Debemos asegurarnos que no hay otra aplicación que tengamos instalada
anteriormente en nuestro sistema que pueda usar dicha librería ya que probablemente aquélla deje de
funcionar. En esos casos buscar en el disco duro posibles ficheros midas.dll y renombrarlos antes de
probar. Si funciona la aplicación Gedisweb intentar ejecutar la otra aplicación que usa midas.dll. Si no
funcionara, renombrar el fichero midas.dll que hemos copiado nosotros, volver a renombrar el fichero
midas.dll que encontramos en nuestro sistema al nombre original, borrar las ramas del registro
enumeradas abajo y volver a ejecutar la aplicación antigua para que quede todo como estaba antes. Es
recomendable consultar con Gedisweb para ver una posible solución.
Los valores del registro que hay que borrar son los siguientes:
1) De las siguientes, borrar la rama del registro que se visualiza en la izquierda:
HKEY_CLASSES_ROOT\Borland.Midas_DatapacketRead.1
HKEY_CLASSES_ROOT\Borland.Midas_DatapacketWrite.1
HKEY_CLASSES_ROOT\Borland.Midas_DSBase
HKEY_CLASSES_ROOT\Borland.Midas_DSBase.1
HKEY_CLASSES_ROOT\Borland.Midas_DSCursor
HKEY_CLASSES_ROOT\Borland.Midas_DSCursor.1
HKEY_CLASSES_ROOT\CLSID\{9E8D2FA1-591C-11D0-BF52-0020AF32BD64}
HKEY_CLASSES_ROOT\CLSID\{9E8D2FA3-591C-11D0-BF52-0020AF32BD64}
HKEY_CLASSES_ROOT\CLSID\{9E8D2FA5-591C-11D0-BF52-0020AF32BD64}
HKEY_CLASSES_ROOT\CLSID\{9E8D2FA7-591C-11D0-BF52-0020AF32BD64}
HKEY_CLASSES_ROOT\TypeLib\{83F57D68-CA9A-11D2-9088-00C04FA35CFA}
HKEY_LOCAL_MACHINE\Software\Classes\Borland.Midas_DatapacketRead.1
HKEY_LOCAL_MACHINE\Software\Classes\Borland.Midas_DatapacketWrite.1
HKEY_LOCAL_MACHINE\Software\Classes\Borland.Midas_DSBase
HKEY_LOCAL_MACHINE\Software\Classes\Borland.Midas_DSBase.1
HKEY_LOCAL_MACHINE\Software\Classes\Borland.Midas_DSCursor
HKEY_LOCAL_MACHINE\Software\Classes\Borland.Midas_DSCursor.1
HKEY_LOCAL_MACHINE\Software\Classes\CLSID\[clsid]
HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{9E8D2FA1-591C-11D0-BF52-0020AF32BD64}
HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{9E8D2FA3-591C-11D0-BF52-0020AF32BD64}
HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{9E8D2FA5-591C-11D0-BF52-0020AF32BD64}
HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{9E8D2FA7-591C-11D0-BF52-0020AF32BD64}
HKEY_LOCAL_MACHINE\Software\Classes\TypeLib\{83F57D68-CA9A-11D2-9088-00C04FA35CFA}
2) De la siguiente rama, borrar únicamente la entrada a la derecha que se refiera a midas.dll
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\SharedDLLs
Manual de errores y soluciones, página 5
4 Solucionar el retraso de cierre de las bases de datos
Firebird en Windows XP
Cuando el ordenador que tiene el servidor de datos FIREBIRD y, por tanto, alberga a la base de datos de
la aplicación Gedisweb y tiene instalado el sistema operativo Windows® XP en cualquiera de sus
versiones (Home, Professional, Server, Advanced Server), la aplicación que se ejecuta en el mismo
ordenador puede experimentar un retraso anormal cuando queremos salir de ella. Esto es debido a dos
causas fundamentales:
Causa 1: De alguna forma, la extensión de los ficheros físicos de las bases de datos (GDB) se pretenden
incluir en el backup de recuperación del sistema de Windows XP produciendo un retraso cuando se
cierran ya que se actualiza en dicho backup.
Solución 1a: Ubicar la base de datos en una unidad donde podamos deshabilitar la utilidad Restaurar
sistema. Para deshabilitar esta utilidad haremos click con el botón derecho del ratón sobre el icono Mi PC
del escritorio. Elegimos la opción Propiedades. Dentro de ella, elegimos la pestaña Restaurar sistema.
Elegimos la unidad donde está nuestra base de datos y pulsamos el botón configuración. Dentro de la
ventana que aparece marcamos Desactivar Restaurar sistema en esta unidad y se deshabilitarán las
demás opciones.
Manual de errores y soluciones, página 6
Solución 1b: En caso de que la primera solución no fuera posible, las aplicaciones Gedisweb disponen de
un parámetro local para “forzar” a la aplicación a salir rápidamente sin esperar al cierre de la base de
datos llamado Finalizar aplicación rápidamente y que se localiza en la opción de menú
Configuración/Utilidades Parámetros Locales a este ordenador/usuario Windows. Realmente lo
que hace la aplicación es un autokill. Esta opción se ha probado sin aparentes problemas pero no podemos
garantizar que funcione en el 100% de los sistemas. Lo mejor es hacer una prueba con el parámetro
habilitado y ver si todo funciona bien. Si es así, dejarlo habilitado. De todas formas y para evitar efectos
laterales, este parámetro se deshabilita temporalmente cuando se convierte la base de datos a otra versión
o se realizan copias de seguridad de la misma.
Causa 2: El cable de red está desconectado (o lo desconectamos manualmente nosotros según
circunstancias) y, en ocasiones, incluso no se puede conectar a la base de datos. Esto es una nueva
característica de Windosw XP llamada DHCP Media Sense que automáticamente deshabilita la pila del
protocolo TCP/IP cuando detecta que no hay conexión de red.
Solución
2:
Abrir
el
registro
de
windows
y
localizar
la
clave
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters. Añadir una nueva
clave DWORD llamada DisableDHCPMediaSense y establecerle el valor a 1. Para habilitar de nuevo
DHCP Media Sense no hace falta borrar esta clave ya que simplemente estableceremos el valor a 0 en
ella.
Manual de errores y soluciones, página 7
5 Command out of sync
Es un error aleatorio que se suele dar sobre todo en arquitecturas que utilizan una base de datos MYSQL
remota, es decir, ubicada en un servidor de hosting contratado con un proveedor de internet. En este caso
debemos establecer el parámetro Número de registros transferidos en un bloque al valor Todos y que se
localiza en la opción de menú Configuración/Utilidades Parámetros Locales a este
ordenador/usuario Windows. Este parámetro reduce el tráfico en la red sobre todo cuando el ancho de
banda es limitado como pasa cuando se accede a una base de datos remota, pero lamentablemente en
según qué sistemas, no es posible reducir dicho tráfico ya que aleatoriamente se da este molesto error.
Manual de errores y soluciones, página 8
6 Errores en el fichero de tipo No se pudo iniciar la
aplicación porque su configuración es incorrecta
En la carpeta donde reside el ejecutable de la aplicación (normalmente C:\Archivos de
programa\<nombre empresa distribuidor>\<nombre aplicación>\) de la forma aplicación.exe, existe un
fichero de la forma aplicación.exe.manifest que sólo tiene efectividad para los sistemas Windows XP.
Mediante este fichero, la aplicación Gedisweb se integra más en el sistema ofreciendo una interfaz con
gráficos, botones y componentes al nuevo estilo de Windows XP.
Un problema en dicho fichero origina el siguiente error
En este caso lo primero que debemos hacer es renombrar el fichero aplicacion.exe.manifest a, por
ejemplo, aplicación.exe.manifest.bak y probar la ejecución. Si no hay problemas, el fichero por algún
motivo se ha corrompido.
La aplicación funciona perfectamente sin ese fichero aunque con un aspecto al estilo estándar de
windows. Aún así, podemos regenerar dicho fichero manualmente ya que es un fichero de texto con una
configuración muy particular pero muy estándar.
Editar el fichero (o abrir uno nuevo) con un editor de texto, por ejemplo, NOTEPAD y copiar
exactamente el texto de abajo sustituyendo *nombre_ejecutable* por el nombre del ejecutable sin el .exe
y *descripcion_aplicacion* por la descripción que deseemos teniendo en cuenta que debemos usar los
caracteres A-Z, a-z, 0-9 y espacios sin ningún carácter acentuado ni la ñ.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
name="*nombre_ejecutable*"
processorArchitecture="x86"
version="5.0.1.329"
type="win32"
/>
<description>*descripcion_aplicacion*</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="x86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
Manual de errores y soluciones, página 9
Luego colocar dicho fichero renombrado convenientemente en la misma carpeta donde resida el
ejecutable de la aplicación Gedisweb.
Manual de errores y soluciones, página 10
7 Errores en conversión de datos
Cuando se actualiza una aplicación Gedisweb es posible que implique una conversión de datos. Dicha
conversión de datos la realiza automáticamente la aplicación tras haber entrado a ella con un nombre de
usuario y contraseña válidos. Si existe tal conversión la aplicación avisa antes de convertir y tras su
confirmación empieza el proceso.
Ocasionalmente por alguna particularidad en la base de datos del cliente pudiera dar algún error
visualizando una ventana parecida a la siguiente
y seguidamente se cierra el programa.
Lamentablemente, esto exige una intervención por parte de Gedisweb para ver la causa del error con un
probable análisis de la base de datos. No obstante, es posible que con unas instrucciones telefónicas se
pueda subsanar el error. En este último caso, debemos dictar el número de línea donde dá el error (en el
ejemplo, la línea 8) y es muy probable que debamos entrar a la base de datos mediante el programa
IBOconsole si estamos utilizando la base de datos FIREBIRD, MYSQLcc si estamos utilizando la base de
datos MYSQL o MsManager si estamos utilizando la base de datos SQLSERVER. Referirse al manual de
mantenimiento de bases de datos para configurar dichos programas.
Manual de errores y soluciones, página 11
Descargar