![]() |
![]() |
| 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
|
||||
|
||||
|
Cita:
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. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#2
|
|||
|
|||
|
Gracias. Probaré mañana
Cita:
Muchas gracias por la respuesta. Tecnicamente muy interesante y una de las mejores que he recibido en mis preguntas al foro. Me recuerda un problema que se presenta en la configuración del BDE donde a veces es necesario probar diferentes notaciones para indicar caminos de red, y a otro muy similar que de paso experimentamos hace poco, no solo con los aplicativos Delphi, sino con una red en general donde, debido a problemas en la configuración general, por un tiempo fué necesario indicar en los clientes la dirección IP, en lugar del nombre de equipo en la red que debía accederse. En este momento estoy donde otro cliente; pero creo que mañana podré probar la solución que planteas. Te tendré al tanto. Muchos saludos |
|
#3
|
|||
|
|||
|
No fué definitivo; pero es el camino correcto
Cita:
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 |
|
#4
|
||||
|
||||
|
Hola.
Como te he comentado, nunca intenté hacer una conexión multi-hilo a interbase, en ninguna versión. Creo que para efectos de pruebas, y para comproabar que el problema no está en dbExpress, podes valerte de realizar exactamente la misma prueba, pero sobre firebird, lo que no implica mucho mas que, hacer un backup de la base de datos, desinstalar interbase, instalar firebird con soporte para "legacy applications", restaurar el backup y realizar la prueba. Cita:
Cita:
Quizás el equipo de desarrollo de interbase no se planteó la necesidad de soportar multiples conexiones concurrentes desde una misma aplicación y por tanto desde una única instancia del cliente, hasta muy tarde, y no lograron completar el trabajo hasta después de la v. 6.0. Cita:
Finalmente, puedo garantizar que el cliente de firebird 1.5 y superiores se desempeñan muy bien en entornos multihilos. En ocasiones esporádicas, las aplicaciones que usan esa característica han presentado algun problema que de primera mano atribuyo al cliente, pero que no he logrado comprobar. En mi caso, las conexiones las hago usando IBX como capa de conexión. Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#5
|
|||
|
|||
|
Hola jachguate,
Perdón por la demora. Estaba ocupado con má proyectos y otros aspectos de este. Estaba esperando Oracle para probar; pero como se ha demorado el conseguírlo, en el primer tiempo libre, he hecho unas pruebas preliminares con Firebird 2.0.3 Estas pruebas han fracasado, lo que me tiene bastante preocupado. Pienso elaborar unas pruebas independientes para descartar posibles errores de aplicación que puedan haberse introducido con la migración a Delphi 2007. Mientras tanto, como mencionas que a veces hay fallas que atribuyes al cliente, podrías comentar más detalles al respecto ? Hay otro punto que me preocupa: El hilo de donde viene cada evento que accesa la base de datos es uno que yo no he creado. Se supone que es generado automáticamente cuando el Servidor invoca la librería ISAPI que maneja los eventos del caso, y por tanto, en todo momento he estado suponiendo que es seguro; pero, a estas alturas, y después de numerosos problemas con delphi 2007, ya desconfío de todo. Has usado esa tecnología ?. Por la misma razón anterior, creo que no sobra comentar lo siguiente: El manejo de hilos bajo ISAPI (y en general), hasta donde sé, parte de no usar variable globales (típicamente, todas las variables tienen su origen dentro de la rutina que se invoca en el hilo), o si se necesitan, hay que proteger cualquier acceso a ellas mediante secciones críticas. Todo el código está basado en ese principio. Hay algo adicional que creas que se deba tener en cuenta ? Gracias de antemano por cualquier ayuda |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Cuadno usar Post, applyupdates con DBExpress? | alopete | Conexión con bases de datos | 3 | 29-10-2007 14:28:09 |
| Como Actualizar DBExpress | Gran Cacique | Conexión con bases de datos | 1 | 17-10-2007 17:42:40 |
| Conviene usar DBExpress? | ivan022481 | Conexión con bases de datos | 5 | 30-06-2007 14:20:48 |
| Titulemos los Hilos que publiquemos como mejor podamos | dec | Debates | 16 | 25-10-2005 19:33:08 |
| Como conecto Dbexpress con MySql | norberto_larios | Conexión con bases de datos | 3 | 10-09-2005 16:42:39 |
|