Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-05-2010
mcs mcs is offline
Miembro
 
Registrado: may 2007
Ubicación: Girona
Posts: 229
Poder: 18
mcs Va por buen camino
Error 10054 en Firebird (y otros)

Hola,

Tengo una aplicación que ataca a una base de datos de un servidor Firebird que está en la misma máquina (localhost).

A parte de esta aplicación, hay dos aplicaciones más, en el mismo ordenador, atacando la misma base de datos.

Mientras que la segunda y la tercera aplicación escriben y leen valores de la base de datos, la primera aplicación sólo los lee.

Y no sé porqué, pero no hay forma que esta aplicación (la "lectora") funcione correctamente:
- Constantemente salen errores 10054 en el Firebird.log, lo cual no tiene mucho sentido ya que en teoría se trata de un error de red, pero las otras aplicaciones no tienen problemas, y todo está en local.
- Tambien ha salido el error "invalid transaction handle (expecting explicit transactin start)". Esto tampoco tiene mucho sentido ya que no hago ninguna query en toda la aplicación... Hay una función que espera un evento de Firebird y mira el último registro de una tabla, y otro que recorre toda una tabla (16 registros) y modifica una ventana.

Para el acceso a datos uso los componentes IBDAC. Estoy usando Delphi 2010, Firebird WI-V2.1.3.18195, y ya no sé que más hacer...

Ah, al principio estos errores ocurrían al principio de abrir la aplicación, cuando después de abrir la conexión a la base de datos se intentaba abrir una tabla para leer una variable. He puesto que esta tabla se lea más tarde, y ahora sólo falla cuando se recibe un evento del Firebird y se intenta abrir otra tabla...

Si me podeis ayudar me hareis un favor, ya que estoy negro con este tema...

Saludos,

Marc
Responder Con Cita
  #2  
Antiguo 07-05-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Hola, seguramente tienes un problema con la tarjeta de red, el cable, la conexión de ese equipo al router, etc.

Cita:
INET/inet_error: read errno = 10054 or 10038 or 10093
Multiple entries in interbase.log or firebird.log with errors 10054, 10038, 10093, etc. These errors are caused by network problems - check your hubs, network adapters, etc. It is not an InterBase or Firebird error in itself, but it may cause problems.
Recovery process:
In this case it will be technical support, not a recovery process. If you have this problem and cannot solve it, you can request our support services.
Time: 4 hours and more.
Probable % of saved data: 100%.
Responder Con Cita
  #3  
Antiguo 07-05-2010
mcs mcs is offline
Miembro
 
Registrado: may 2007
Ubicación: Girona
Posts: 229
Poder: 18
mcs Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Hola, seguramente tienes un problema con la tarjeta de red, el cable, la conexión de ese equipo al router, etc.
Pero es que las 3 aplicaciones estan en la misma máquina, así cómo el servidor Firebird... Por tanto, las comunicaciones no salen del ordenador. Y de todas formas, solo falla uno de los programas, no todos...
Responder Con Cita
  #4  
Antiguo 07-05-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pues no sé qué decirte, eso lo dicen ellos, los de firebird.
Responder Con Cita
  #5  
Antiguo 07-05-2010
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
¿ Las tres aplicaciones son tuyas ?.

¿ Todas utilizan los mismos componentes, misma cadena de conexión, misma librería cliente firebird, etc. ... ?.

¿ El fallo está solo al leer esa tabla, o también falla en otras tablas ?.

Salutacions.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #6  
Antiguo 07-05-2010
mcs mcs is offline
Miembro
 
Registrado: may 2007
Ubicación: Girona
Posts: 229
Poder: 18
mcs Va por buen camino
Cita:
Empezado por guillotmarc Ver Mensaje
¿ Las tres aplicaciones son tuyas ?.

¿ Todas utilizan los mismos componentes, misma cadena de conexión, misma librería cliente firebird, etc. ... ?.

¿ El fallo está solo al leer esa tabla, o también falla en otras tablas ?.

Salutacions.
Hola,

- Si, las 3 aplicaciones son mías.
- Todas usan las librerías IBDAC, el mismo GDS32.DLL, la misma cadena de conexión, etc.
- El fallo ahora ocurre sólo al leer una tabla en concreto, pero antes pasaba con otra (la que abría inmediatamente después de abrir la conexión).

Estoy todavía mirandolo, y por lo que parece (pero no estoy seguro) el problema está en que se cierra la conexión con la bb.dd. No sé, es un follon de narices...

Saludos,

Marc
Responder Con Cita
  #7  
Antiguo 07-05-2010
mcs mcs is offline
Miembro
 
Registrado: may 2007
Ubicación: Girona
Posts: 229
Poder: 18
mcs Va por buen camino
Había un tercer error que me sale mucho menos, pero siempre en el mismo punto (abrir una tabla y situarme en el último registro).

El error es "Error reading data from the connection".
Responder Con Cita
  #8  
Antiguo 07-05-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Tiene pinta de estar dañada la base de datos, por qué no haces un backup/restore, por si acaso.
Yo haría lo siguiente:
  • Desconectar a todo el mundo. Asegurarme de que no hay ninguna conexión abierta a la base de datos.
  • Hacer un copia -> pega de la misma
  • Hacer el backup: gbak -b -t -v -user sysdba -password masterkey labasedatos.fdb labasedatos.fbk
  • Restaurarla: gbak -r -v -p 8192 -user sysdba -password masterkey labasedatos.fbk labasedatos.fdb
Y probar que funcione ok.
Responder Con Cita
  #9  
Antiguo 07-05-2010
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Puede ser una corrupción en los sectores de esa tabla, como dice Casimiro, o bien podría ser un bug en las IBDAC para Delphi 2010 (Delphi 2010 tiene cambios muy importantes en aspectos básicos como las cadenas de carácteres, y es muy posible que las versiones antiguas de IBDAC no funcionen correctamente), y que se desconecte inadecuadamente una vez realizada la conexión, y por ese dé el error de red.

¿ Las otras dos aplicaciones también estan programadas en Delphi 2010 y con la misma versión de IBDAC ?.

NOTA: Respecto a "invalid transaction handle", alguna transacción tienes que tener, puesto que no se puede realizar ninguna operación en la base de datos sin realizarla dentro de una transacción. Las transacciones no son solo para escribir, también son necesarias para aislar en las lecturas de las tablas.

Salutacions.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).

Última edición por guillotmarc fecha: 07-05-2010 a las 19:29:45.
Responder Con Cita
  #10  
Antiguo 10-05-2010
mcs mcs is offline
Miembro
 
Registrado: may 2007
Ubicación: Girona
Posts: 229
Poder: 18
mcs Va por buen camino
Casimiro,

El viernes hice lo que me dijiste, el backup de la base de datos y su restauración. La aplicación continua fallando de la misma forma.

Gillotmarc,

La versión de IBDAC que usamos es la última, para Delphi 2010. Todos los programas estan compilados en Delphi 2010 y con la misma versión de las IBDAC.

Me miraré que el componente de transacciones esté configurado igual en las 3 aplicaciones, y si esto no funciona empezaré a quitar código hasta dejar lo mínimo más mínimo, a ver si así encuentro que c*** hace fallar.

Saludos, y muchas gracias por vuestras sugerencias.

Marc
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Socket Error # 10054 con TIdHTTP rolandoj Internet 10 19-01-2012 15:45:11
error 10054 en firebird gmontes Firebird e Interbase 2 23-06-2008 21:27:38
Sobre el socket error #10054 fer21unmsm Varios 4 27-03-2007 17:12:00
Error 10054 de Firebird Durbed Firebird e Interbase 3 04-09-2006 12:25:42
Unknown win32 error 10054 ElCherchu Conexión con bases de datos 6 14-07-2006 02:38:43


La franja horaria es GMT +2. Ahora son las 02:51:16.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi