Ver Mensaje Individual
  #6  
Antiguo 22-02-2008
rolandoj rolandoj is offline
Miembro
 
Registrado: abr 2007
Posts: 395
Reputación: 18
rolandoj Va por buen camino
No fué definitivo; pero es el camino correcto

Cita:
Empezado por jachguate Ver Mensaje
Uf... en los tiempos de interbase 6 yo todavía no hacía aplicaciones multihilo, pero es probable que firebird heredara de allí una limitante:

El protocolo local no soporta multihilos.

Eso te obliga a forzar una conexión por el protocolo de red, por ejemplo, añadiendo localhost o 127.0.0.1 como host de la cadena de conexión. Por ejemplo:

localhost:c:\datos\basededatos

en lugar de

c:\datos\basededatos

Hasta luego.

Hola jachguate,

Una vez más, muchas gracias por la ayuda.

Hoy probamos y aunque no se solucionó totalmente, si hubo mejora y no hay duda que es el camino correcto. Veamos:

Excepto en una de las pruebas, en la que uno de los clientes quedó bloqueado, no se presentaron más bloqueos; pero, normalmente, solo a uno de los clientes le devolvía la respuesta correcta. Al otro cliente se le devolvía el siguiente mensaje de error :

"Error writing data to the connection"

Una investigación de ese error en Internet indica varias causas; pero, en este caso, la más probable es un problema con el software cliente de Interbase, que según encontré en algunas notas muy antiguas, no es hilo seguro en versiones anteriores a la 7.

Me queda una gran duda:

dbExpress usa su propio driver cliente "dbxint30.dll" para conectarse, y más nada. Puesto que este es todo el cliente y es la última versión, yo suponía que era un hilo seguro, y por eso, inicialmente no lo había verificado. No encuentro lógico que a estas alturas de la historia no lo sea.

Una posible explicación es que falle al tratarse de una conexión a una versión antigua de la base de datos; pero no debería haber mucha diferencia entre ese manejo para una versión anterior y la de la versión actual, por lo que no me es muy convincente que excluyeran esa capacidad.

Investigué en Internet y no pude encontrar nada que afirmara, o rechazara, el hecho de que ese driver sea un hilo seguro. En cambio, encontré una nota de Agosto del 2007 en que alguién expresaba dudas en que la creación de la conexión dbExpress fuera hilo seguro, y varias notas confirmando que mi metodología de acceso (crear una nueva conexión para cada hilo) es la correcta con dbExpress.

Todo esto, unido otra serie de errores y problemas, que he venido encontrando al avanzar con dbExpress, me tiene bastante intranquilo.

En últimas, la aplicación correra contra Oracle 10, donde yo esperaría que esto se arreglara; pero, abusando de tú gentileza, mucho agradecería toda la documentación a que pudieras remitirme, y comentarios con los que pudieras ilustrar el tema y / o anticipar posibles problemas.

Muchos saludos
Responder Con Cita