FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Error Unable to complete network request
Buenos días:
He leído la guía del estilo y buscado la información, pero no he encontrado más que uno del 2005 pero no hay solución ¿? http://www.clubdelphi.com/foros/showthread.php?t=17785 El problema es el siguiente: Tengo una aplicación que en local trabaja correctamente, en red local con TCP/IP también, sin cortes ni nada, pero cuando se conecta por TCP/IP a una dirección IP fija remota y está inactivo 5 o 10 minutos aparece el mensaje de error Unable to complete network request to host "XXXXX" Error writing data to the connection siendo XXXX una IP fija. Los equipos tienen todos Windows 7. El firebird instalado es la versión 2.5.5.26952 en modo SuperServer. He encontrado en foros y en todos ellos aportan como solución el bloqueo del firewall del puerto 3050, o configurar el host He configurado las excepciones, he dejado incluso sin firewall ni antivirus el equipo por si fuera algo de esto. Sigue sucediendo el problema. También he revisado el fichero c:\windows\system32\drivers\etc\hosts y añadido la IP fija también. Hice todas las actualizaciones de Windows 7. El número de conexiones simultáneas a la base son: 1 Local 1 En red local 2 En red remota. ¿Alguna idea que pueda hacer o efectuar? Muchas gracias de antemano. |
#2
|
|||
|
|||
Mantienes abierta la conexión a la base de datos o conectas cada vez que necesitas alguna cosa?
Si mantienes abierta la conexión y la linea de internet tiene microcortes, pierdes la conexión y aparece este error. |
#3
|
|||
|
|||
Hola, la conexión del servidor tiene fibra a 400 Mb, y los clientes fibra a 200 Mb.
He realizado un ping y no hay microcortes al menos desde el servidor hacia fuera y de los dos equipos que se desconectan hacia fuera. La aplicación abre la base de datos y mantiene abierta Si hubiera cortes ¿no se desconectaría también en red local? He probado el sistema en otro servidor con Windows 2003 y con un equipo de Windows 10 y no hay desconexión. Por otro lado, he buscado "firebird y microcortes" y resulta que en esta ocasión el buscador de Clubdelphi.com me aparece este hilo http://www.clubdelphi.com/foros/showthread.php?t=82425 Antes busqué por esas palabras y nada. En cualquier caso, he realizado todo lo que se indica ahí, incluso http://www.firebirdfaq.org/faq136/ Disculpadme, ahora no puedo borrar el hilo. Última edición por Jab fecha: 09-06-2016 a las 18:06:35. |
#4
|
|||
|
|||
Que operaciones realizas?
Yo realizo conexiones de este tipo de la siguiente formas Envia info cuando el usuarios da click en el boton A >> Abro conexión Inserto informacion en la bd; Cierro Conexión; El punto es que no tienes por que tener la conexion abierta todo el tiempo y dependiendo de la informacion que requieras intercambiar con el servidor podrias usar un servidor DataSnap o WebService. Saludos. |
#5
|
||||
|
||||
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#6
|
|||
|
|||
He mirado otras cosas:
Por lo visto el programa cliente accede a una ruta mediante asignación DHCP con IP asignada automáticamente y tiene el puerto 3050 bloqueado. Aunque se conecta al servidor con el programa. Y servidor no tiene la IP pública aunque el software puede conectarse a esa IP hasta que temporalmente se desconecta. He asignado una IP local al ordenador de conexión y he pedido que se abra el puerto 3050 dirigido a la IP de cada equipo remoto con su proveedor de acceso a Internet y también que se mantenga la IP pública, siguiendo los consejos de http://www.firebirdfaq.org/faq136/ También me he guiado con esta entrada -> https://firebird21.wordpress.com/tag/puerto/ que hablan de la IP pública. Mañana os cuento si toda esta configuración ha funcionado. bitbow muchas gracias por tu respuesta, las conexiones que utiliza son cliente-servidor usando TIBDataSet con campos persistentes. Desconozco el tema que me indicas de DataSnap o WebService. Pero estoy de acuerdo contigo en que debo cambiar algo de las rutinas para que sean accesos concretos o más robusto ante errores. Casimiro Indiqué lo de borrarlo o unirlo al anterior antiguo porque puede perjudicar al foro tener dos hilos duplicados, era por eso. Que no había visto el otro hilo. No obstante, gracias también por tu aportación. Lo he visto, pero el equipo que hace de servidor tienen Windows 7. No es un servidor "real" como en el de pruebas con windows 2003 o en otros equipos con windows 2008, que sí funciona correctamente y no hay cortes. Conclusiones: salvo porque en el entorno de pruebas tenemos un Windows 2003 (servidor) con Windows 10 como cliente, y en el que da problemas son los dos Windows 7, ahora están iguales. Es decir, puestos con IP fija pública y el 3050 habilitado en todos los routers con una IP local asignada fija, no dinámicamente para los equipos clientes. Última edición por Jab fecha: 09-06-2016 a las 21:08:23. |
#7
|
|||
|
|||
Buenas, el problema sigue apareciendo.
Con un equipo con Windows 2003 y Windows 10 como cliente, va todo correcto, no hay error ni desconexión. Con un equipo con Windows 7 como servidor y Windows 7 como cliente, aparece el error al cabo de varios minutos. He probado en desactivar el firewall, y los clientes no tienen antivirus como el servidor, pero el problema se mantiene. Así que he procedido a instalarle en uno de los equipos con problemas un antivirus y dejar el firewall activado. Además, he añadido lo que comenta Casimiro http://www.intitec.com/varios/Firebi...50-win2003.pdf como puerto reservado, aunque sea para Windows 7. Pero nada, sigue dando problemas. No sé qué más hacer. |
#8
|
|||
|
|||
Bueno, más cosillas, sigo actualizando el hilo por si alguno le resuelve en el futuro.
Por más que leo observo que todos aportan como solución un problema de la red, existe el archivo LOG encontrado por ejemplo en C:\Archivos de Programa\Firebird\Firebird_2_5\) https://firebird21.wordpress.com/201...rchivo-de-log/ En mi caso en el lado del cliente dice INET/inet_error: read errno = 10054 INET/inet_error: read errno = 10038 En el lado del servidor SERVER (Server) Thu Apr 14 17:29:34 2016 Unable to complete network request to host "server". Timeout occurred while waiting for a secondary connection for event processing Y luego SERVER (Server) Thu Jun 09 19:10:59 2016 INET/inet_error: read errno = 10054 SERVER (Server) Thu Jun 09 19:14:11 2016 INET/inet_error: read errno = 10054 SERVER (Server) Thu Jun 09 19:22:02 2016 INET/inet_error: read errno = 10054 SERVER (Server) Thu Jun 09 19:27:32 2016 INET/inet_error: read errno = 10054 SERVER (Server) Thu Jun 09 19:30:33 2016 INET/inet_error: read errno = 10054 Que corresponde con https://firebird21.wordpress.com/201...-104-en-linux/ Indica que "El error 10054 “connection reset by peer” es un problema de la red que a veces puede deberse a una red que está mal configurada o a un problema de hardware. " Por lo que parece existen routers que cierran el puerto por inactividad, y al parecer ese no es el problema según el proveedor de acceso a Internet porque su router no cierra la actividad si no hay tráfico. He revisado la red varias veces pero no encuentro fallo. |
#9
|
||||
|
||||
¿Usas post_event en algún caso?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#10
|
|||
|
|||
Hola Casimiro, gracias por tu aportación. No se utilizan estos eventos en la base.
No obstante, con la base de datos remota y otros casos no hay desconexiones, esto es lo raro. ¿Por qué lo preguntas? |
#11
|
|||
|
|||
No lo indiqué, este problema ha empezado al poner la aplicación en este sistema en remoto y fue hace 3-4 días. El mensaje de error del 14 de Abril debe corresponder a algún otro suceso guardado en el log pero no con este problema.
He creado una conexión a la máquina que hace de servidor donde está la base de datos, y lo hago desde un entorno de pruebas y se desconecta también, puedo descartar que el problema sea de las máquinas clientes remotas, puede ser del servidor. Pero en el log de la máquina cliente no aparece este error, lo acabo de comprobar. Utilizando otra aplicación lo dejas sin hacer nada, al cabo de unos minutos aparece "Error reading data from connection". Y ya cierra el programa con errores. En el log no aparece este fallo ni read errno 10054 ni nada. He conectado el IBExpert v 2016.4.4.1 a la base remota, y dejado sin efectuar ninguna acción durante unos minutos, y se desconecta indicando: "Cant't format message 13:98 -- message file C:\windows\systema32\firebird.msg not found. Error reading data from connection. Connection will be closed immediately". Creo que puedo descartar problema de Software. |
#12
|
|||
|
|||
Es muy raro el error que se te presenta, como te indicó arriba, por que tendrías que dejar tu conexión abierta después de un proceso de lectura o escritura? En mi caso realizó inserciones a la base de datos de forma remota pero abro y cierro la conexión, mi conexión no se queda abierta más de 10 segundos en el peor de los casos.
Los componentes de bases de datos tienen eventos en donde puedes gestionar (con bastantes limitaciones) estos errores. Saludos. |
#13
|
|||
|
|||
Nueva prueba:
Arranco la aplicación IBExpert anterior, conecto a la BD remota y la minimizo. Acto seguido realizo un ping XX.XX.XX.XX /t Aunque ya se hizo esto con anterioridad y no había paquetes perdidos, es una manera de comprobar si manteniendo el tráfico en la red el equipo servidor desconecta la conexión o no. Aunque el proveedor de acceso a Internet confirmó que no existía ningún firewall del router que cerrara el puerto 3050 por inactividad. Al cabo de unos minutos se desconecta dando el mismo error anterior. Realizo un ping -t -l 51200 XX.XX.XX.XX por si es el problema del tamaño de los paquetes por ejemplo. Al cabo de 2 minutos no hay paquetes perdidos. |
#14
|
|||
|
|||
Cita:
Observa que uso el IBExpert y también sucede ¿Lo que indicas es que abra y cierre la base de datos completa por cada vez que hago una inserción? |
#15
|
||||
|
||||
Prueba desde otro sitio, por ejemplo desde tu casa u otro sitio que puedas controlar y que existan los mínimos "obstáculos" entre tú y el servidor.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#16
|
|||
|
|||
Comentaba anteriormente una duda, que operaciones realizas sobre la base de datos? Y por qué es necesario tener abierta la conexión (cuanto tiempo aproximado.) ?.
La verdad nunca he necesitado ma tener una conexión remota más de algunos minutos, para las conexiones de mis portales (en delphi con intraweb) se maneja un pool de conexiones y no presentó problemas (la conexión se abre 30 min ) pero es un esquema diferente. Puedes revisar instalando otras versiones de firebird, y antes de eso revisar la configuración de este a fondo. Harea algunas pruebas para ver si sucede los mismo. Suerte, saludos. |
#17
|
|||
|
|||
Si, efectivamente, realmente te muchos creen que esto es algo fuera de lo usual, pero cuando trabajas en ambientes remotos (Internet), así es como se trabaja o con un pool de conexiones, no abres toda la base de datos sólo la conexión (la carga la maneja el servidor no tu aplicación), imagínate tener abierta una conexión por horas o días, esto si sería descabellado a menos que realmente uses esas conexiones todo ese tiempo.
Saludos. |
#18
|
|||
|
|||
Hola de nuevo compañeros, y gracias por vuestras aportaciones.
Casimiro, ya lo había probado antes, pero volví a hacerlo desde mi casa con Windows 10 cliente y servidor windows 2003, y va perfectamente. Puede estar parado 40 minutos con la conexión abierta y al pasar el foco al programa, retoma todo correctamente y no se desconecta, como cabía esperar. Bitbow, el programa es cliente-servidor y son unas 120 tablas, el módulo activado son unas 20 tablas, normalmente las conexiones remotas no dan problemas y pueden estar horas conectados sin fallo, con bases de 4 o 5 millones de registros en una tabla y concurrencia de 10-12 personas por ejemplo. En este en concreto son unos miles de registros nada más. Abrir la base y las tablas cada vez que hago una inserción lo veo poco viable porque tarda unos 10-12 segundos, es más robusto pero más lento. Creo que el error viene del servidor. Desde mi casa también se desconecta a ese equipo La semana que viene vamos a cambiar el equipo que hace de servidor a ver si es del equipo o de su router u otro software que esté merodeando. Parece claro que aunque el software es mejorable y se podría gestionar de otra manera como apunta Bitbow, podría deberse a algo puntual de la red en software o hardware. Os iré contando y al final cuál fue la solución. |
#19
|
|||
|
|||
Creo que convendría revisar tu esquema para la consulta de información (es complicado manejar ese volumen e información en tiempo real), una recomendación seria manejar tablas temporales o clientdataset y posteriormente aplicar los cambios o migrar a un esquema con datasnap.
Hay un tema (debate) reciente que trata de que esquemas manejar y como se podría hacer de la mejor manera en un ambiente en internet, se plantean algunas buenas practicas y otras no tanto, no encuentro el tema pero lo vi en el listado reciente. Como mencionas >> Revisar la infraestructura e red y el servidor para poder garantizar conectividad y estabilidad. La realidad es que con los mejores enlaces y hardware si no planteamos bien el esquema a utilizar, una caída del enlace en algún punto podría suponer detener el trabajo por horas. Saludos y suerte. |
#20
|
||||
|
||||
Eso de mantener las conexiones abiertas te va a causar algunos de dolores de cabeza por decir muchos.
Enviado desde mi SM-G900H mediante Tapatalk
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Unable to complete network request to host 'xxxx' | gluglu | Conexión con bases de datos | 10 | 08-03-2013 20:48:34 |
Unable to complete network request to host | tulio | Firebird e Interbase | 8 | 27-02-2013 18:35:59 |
Error de Coneccion (Request BLR) | Onti | Firebird e Interbase | 7 | 21-04-2005 02:52:11 |
Error en IB7 Unable to complete network | eyscom | Firebird e Interbase | 6 | 01-04-2004 04:26:27 |
"Unable to complete..." La conexion se pierde durante la ejecución | ESA | Firebird e Interbase | 2 | 24-03-2004 15:09:49 |
|