![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
http://tracker.firebirdsql.org/browse/CORE-4680
Buscando por ahi algo de lo mio indican que es algo con los eventos , salvo que no este entendiendo bien lo que ahi indican , voy a probar quitando eso , gracias
__________________
IVAND |
|
#2
|
||||
|
||||
|
Ese error dice que hay un problema de comunicación entre el cliente (la aplicación) y el servidor.
O bien es un problema de red, o lo más seguro que sea es que estás intentando conectar con un servidor que utiliza la versión 3.0 pero estás utilizando una librería fbclient.dll más vieja (por ejemplo de la 2.5). Mira la versión del motor de base de datos e intenta poner al lado del ejecutable de delphi la DLL de cliente de la misma versión. |
|
#3
|
|||
|
|||
|
Estimados amigos
Abro nuevamente este tema pues ha vuelto a aparecer esas caidas de firebird 2.5 aun no logro entender , no se si a algun companero le ha pasado , cualquier cosa estoy pendiente a sus consejos en github hay algo del tema de un bug de firebird , pero debido a mi poca experiencia no logro entender https://github.com/FirebirdSQL/firebird/issues/4989 lo q hago ahora es reiniciar firebird ,pero se hay una consulta que he revisado que se tarda un mundo en ejecutarse cada vez que pasa ese problema
Esta consulta se ejecuta en la aplicacion mas usada en esa empresa , cuando esa consulta se ejecuta de manera normal ya todo vuelve a su funcionamiento normal Eso es lo que he nota Nota Importante : No uso Eventos en mi base de datos Conocen uds algun sitio o empresa que me pueda evaluar este problema estoy seguro que se trata de algun problema de base y no de mi sistema , ya he revisado todo los problemas de transacciones de deadloop y todo eso Agradecido quedo en espera de sus comentarios
__________________
IVAND |
|
#4
|
||||
|
||||
|
Hemos indicado algunas posibilidades de lo que puede suceder, no tiene nada que ver con una sentencia sql, y no has comentado nada al respecto.
Además dices que "cuando esta sentencia se ejecuta de una manera normal", ¿eso qué quiere decir? ¿hay alguna manera anormal de ejecutarla? Y pasas un enlace a un problema deadlock, ¿tienes ese problema también? porque no habías dicho nada de eso. Ese código de error, como hemos indicado antes, tiene que ver con problemas de conexión entre algún cliente y el servidor. Además necesitamos mucha más información para poder ayudar con más seguridad, por ejemplo: cuando dices que firebird se cae (aunque yo nunca he visto que se caiga firebird), ¿nadie tiene acceso al servidor o algún cliente sí tiene acceso al servidor? Si nadie tiene acceso al servidor entonces es posible que sea problema de red en el propio servidor. En fin, lo dicho, que con la información que nos has dado solamente podemos indicar un culpable: tarjeta de red, cable de red, wifi (si hay conexiones wifi), etc.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#5
|
||||
|
||||
|
Porque supongo que no tendrás limitado el número de conexiones, ¿habéis cambiado algo en la configuración?
De todas formas eso limitaría conexiones, pero no detiene el servidor. Recuerdo una vez en una empresa que alguien había creado una conexión ssh con el servidor para hacer mantenimiento desde remoto, y cuando cerraba la conexión ssh tenía puesto que se reiniciara el servidor.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#6
|
|||
|
|||
|
Hola Casimiro , nuevamente gracias por la atencion
A ver te explico lo mejor q pueda , en el log de firebird me indica que el servidor se detiene (Caer es un termino que usamos para indicar una parada del servidor ) , ahora no entiendo es porque sucede eso , segun lo que indican es un bug de firebird que aun se extiende a la version 3 , toca reiniciar el servicio para q el sistema funcione nuevante , pero lo que he notado que en esa consulta despues que me da ese error , se pone extremadamente lenta , pasando unos 5 minutos ya se puede trabajar nuevamente rapido con todo el sistema La sentencia no tiene nada que ver en realidad , solo indico que mientras el servidor no se detenga de esta manera esa consulta funciona bien , cuando se detiene con el error que indico , se vuelve extremadamente lenta una vez que el servicio se reinicia , pareceria como q los indices se danan o algo asi Cable , tarjeta y esas cosas no son el problema realmente Paso el enlace porque ahi sabe excatemente lo que me pasa a mi de vez en cuando y no entiendo porque puede pasar Espero haber explicado un poco mejor
__________________
IVAND |
|
#7
|
||||
|
||||
|
Veamos, el enlace que has puesto parece que se trata de alguien que está ejecutando una versión superserver en windows, y además una versión superserver en linux pero con wine, un "emulador" de windows. Es algo que no tiene sentido, si se usa linux entonces instala firebird para linux, pero no "inventos raros". Además el título de "deadlock" parece que no tiene nada que ver con lo que cuenta después.
También le contestan repetidamente que no logran reproducir/repetir el problema que tiene esa persona en su sistema y le indican que puede ser algo producido en su entorno. Además habla de "eventos", algo que dices que tú no usas. Como no puedo ver el sistema que tienes instalado, puedo dar algunos consejos. - Detener todas las conexiones, y si hace falta le quitas el cable de red al servidor, para estar seguro de que nadie conecta (y si conectan por wifi, lo deshabilitas también). - Haces una copia de la BD, y guardas la original aparte, esa ya no la toques. - Sobre la copia haces un backup transportable (gbak -b -t ...) - Si no ha dado ningún error es que está bien la BD. Si ha dado algún error entonces hay que solucionarlo antes de dar los siguientes pasos. - Desinstalas la versión de firebird que tienes instalada. - Instalas la última versión superclassic de firebird 3 (aunque yo instalaría la última de la v4), no instales la superserver, esa está más pensada para windows. - Restauras el backup. - En los clientes instala fbclient de la versión 3, no dejes el de la v2. Ahora dependiendo de algunos factores que desconozco haría unos cambios: - ¿Cuánto ocupa la BD? - ¿Cuántos usuarios/conexiones tiene normalmente? Si tienes muchas conexiones entonces aumenta la memoria RAM del servidor. Algo importante, instala otro disco SSD en el servidor, y luego en la configuración de firebird (firebird.conf) cambia el directorio temporal hacia ese disco, algo como: TempDirectories = /mnt/disk2/temp Por lo demás, puedo decir que utilizo firebird desde que existe (y antes interbase, pues firebird salió de la versión libre interbase 6) y mi tranquilidad es total con todos los clientes, desde 1998 he instalado firebird en empresas de todos los tamaños, algunas tienen BD de muchos gigas y nadie ha llamado nunca con un problema en la BD, salvo por discos rotos y cosas así que no tiene culpa la BD. En el último trabajo son al menos 3000 clientes con varias conexiones cada una, y nadie llama por problemas con la BD. Por eso me extraña muchísimo lo que cuentas, debe ser algo muy localizado en el entorno que tienes, pero no podemos adivinar.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#8
|
||||
|
||||
|
¿Has probado la consulta con los datos que busca el cliente que tarda mucho?
Prueba la misma consulta con algunas variaciones Asigna ALIAS prefijo a todos los campos para evitar alguna ambigüedad que pueda haber.
Prueba con JOIN, LEFT JOIN, y diferente orden de tablas
¿Qué es la función z()? Puede ser que esté haciendo algo que tarde mucho. Si es una UDF, pueda que tenga un error dentro y esté tirando abajo el servidor (división por 0, por ejemplo) ¿Qué indices tienen las tablas? Por lo menos debería haber
¿Has probado recalcular la selectividad de los índices?
¿Has revisado el PLAN que devuelve la consulta? Puede que te de una pista de donde pasa el tiempo buscando datos. ¿Cuantos registros tiene cada tabla? Si utilizas LEFT JOIN podrías unir la que menos registros tiene a la que mas, para evitar recorrer la que más registros tiene. Una posible solución es a veces transformar el SQL en un procedimiento.
Última edición por duilioisola fecha: 23-06-2022 a las 17:08:13. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Entender Firebird 3.... | Neeruu | Varios | 4 | 25-04-2018 13:47:42 |
| TRichEdit, TStringStream y cierto error que no logro "cachar"... | TiammatMX | OOP | 2 | 12-05-2012 00:36:18 |
| consulta mysql que no logro entender | gulder | MySQL | 2 | 14-02-2012 14:54:51 |
| Sigo sin entender el error... | gandalf_27 | C++ Builder | 1 | 11-06-2006 16:35:46 |
| Entender una sentencia | Renees | Varios | 5 | 02-09-2005 19:35:01 |
|