Ir al contenido


Foto

Componente de aceso a datos multihilo ¿es necesario?


  • Por favor identifícate para responder
2 respuestas en este tema

#1 Sergio

Sergio

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.092 mensajes
  • LocationMurcia, España

Escrito 24 junio 2011 - 06:12

Para que dos hilos puedan acceder a un mismo DataSet, este ha de ser de una clase que permita el uso multihilo, como ocurre por ejemplo con UIB, pero no con otras.

La duda que nos surge es si una aplicacion que se pasa a UniGUI necesitaria que los componentes fuesen multihilo o no.

En principio supusimos que era necesario, ya que un solo modulo apache contendria varias instancias de la aplicacion, cada una corriendo en un hilo, pero dandole vueltas hoy -y tras ver lo complicado que puede ser cambiar unos componentes por otros, en especial los UIB que son raritos- ya no lo tenemos tan claro: Cada hilo va a tener su propia conexion a la base de datos, con sus propios componentes, asi que ningun componente es usado por dos hilos nunca.

Asi que "seguramente", mientras no uses nada de bases de datos en tu modulo principal (hay un modulo que si es comun a todas las instancias, las variables que declaras alli son accesibles desde todas y te puede servir como nodo central donde intercambiar notas entre usuarios conectados y esas cosas) no es necesario que los componentes de acceso de datos sean multihilo.

Y en esas estamos, si no hace falta multihilo, el cambio seria rapido, pero si hace falta cambiar, la cosa se pone algo mas gris, icluso gris oscuro!

Lanzare tambien la pregunta al programador de UniGUI a ver que me comenta.
  • 0

#2 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.484 mensajes
  • LocationMallorca

Escrito 24 junio 2011 - 09:11

Hola Sergio.

Cuando hice algo parecido (Intraweb), usé la segunda opción que comentas : poner las conexiones y datasets en un datamodule propio para cada sesión, de forma que no hubiera problemas por acceso multi-hilo.

Eso tiene un mayor consumo de memoria, pero no te tienes que preocupar por usar dbExpress, Fiplus, ... o cualquier otro componente de acceso.

Saludos.
  • 0

#3 Sergio

Sergio

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.092 mensajes
  • LocationMurcia, España

Escrito 24 junio 2011 - 11:23

Pues me quitas un gran peso de la cabeza, sobre todo a mi hermanod que es al que le toco lidiar con las UIB a ver que tan facil es sustituir unas por otras... y hoy tenia la cara algo palida despues de una sesion de lucha libre con las UIB, que segun me cuenta son raritas para todo.

Por ejemplo, Tabla.Fields[0].AsString pasa a ser Tabla.FieldsAsString(0) y cosas de este estilo y peores, como que la version ultima no era ni para D7, otra locura que nos impediria pasar luego a unicode y estas cosas post delphi 2007.
  • 0




IP.Board spam blocked by CleanTalk.