Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-02-2008
Avatar de chrids506
chrids506 chrids506 is offline
Miembro
 
Registrado: abr 2006
Posts: 70
Poder: 19
chrids506 Va por buen camino
2 Aplicaciones Escribiendo Informaciòn en servidor [evitar choques]

Saludos, mi preguntas es como evitar que 2 usuarios estén modificando un archivo al mismo tiempo en el servidor, me explico,
estoy desarrollando una aplicación en delphi que crea un archivo xml y 6 archivos de imágenes y luego las sube al servidor, hasta aquí todo bien, pero quiero evitar que 2 personas estén trabajando en un mismo fichero al mismo tiempo para evitar reescrituras y demás, cual es la forma mas viable de evitarlo?

Gracias, no estoy seguro de haberme explicado lo mejor posible, si tienen alguna duda me preguntan
Responder Con Cita
  #2  
Antiguo 22-02-2008
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Pues no sé si sea lo mejor pero al final siempre cae uno en el viejito (pero efectivo) sistema de bloqueos. Si el usuario A abre para modificación el registro X, se crea un bloqueo en un archivo de bloqueos, entonces si otro usuario desea modificar el mismo registro primero se verifica que no haya un bloqueo activo para ese registro, de lo contrario solo puede consultarlo. Lo que no puede evitarse es que el usuario A modifique algo y guarde (liberando el bloqueo) y luego el usuario B modifique el mismo registro segundos después, perdiéndose lo que había cambiado A.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #3  
Antiguo 22-02-2008
Avatar de chrids506
chrids506 chrids506 is offline
Miembro
 
Registrado: abr 2006
Posts: 70
Poder: 19
chrids506 Va por buen camino
Cita:
Empezado por AzidRain Ver Mensaje
Pues no sé si sea lo mejor pero al final siempre cae uno en el viejito (pero efectivo) sistema de bloqueos. Si el usuario A abre para modificación el registro X, se crea un bloqueo en un archivo de bloqueos, entonces si otro usuario desea modificar el mismo registro primero se verifica que no haya un bloqueo activo para ese registro, de lo contrario solo puede consultarlo. Lo que no puede evitarse es que el usuario A modifique algo y guarde (liberando el bloqueo) y luego el usuario B modifique el mismo registro segundos después, perdiéndose lo que había cambiado A.
Esto se podría evitar denegándole el permiso de lectura también a B, así cuando lo lea lo va a leer corregido, ahora si el programa A tiene un inconveniente y no retira el bloqueo? bueno, se me ocurre que escriba la hora del bloqueo y que esta expire a los 30 min, hasta acá todo bien, ahora como evito que los 2 gestionen el permiso al mismo tiempo?
Responder Con Cita
  #4  
Antiguo 22-02-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
No se yo, pero 30 minutos de vigencia para un bloqueo es una eterninidad... hasta 1 minuto me parece exagerado.

Y según mi novato punto de vista, es practicamente imposible gestionar un bloqueo al mismo tiempo, (mismo día, misma hora, mismo minuto, mismo segundo, misma centésima de segundo, misma milésima de segundo).
__________________

Responder Con Cita
  #5  
Antiguo 22-02-2008
Avatar de chrids506
chrids506 chrids506 is offline
Miembro
 
Registrado: abr 2006
Posts: 70
Poder: 19
chrids506 Va por buen camino
Cita:
Empezado por ContraVeneno Ver Mensaje
No se yo, pero 30 minutos de vigencia para un bloqueo es una eterninidad... hasta 1 minuto me parece exagerado.

Y según mi novato punto de vista, es practicamente imposible gestionar un bloqueo al mismo tiempo, (mismo día, misma hora, mismo minuto, mismo segundo, misma centésima de segundo, misma milésima de segundo).
Pero puede pasar, pero bueno, es viable, lo del bloqueo de 30 min es solo si se da una cosa fuera de lo normal, como que se caiga el programa y no quite el bloqueo, es para cubrir todas las bases , en otro caso el bloqueo durará el tiempo que el usuario esté modificando el archivo, osea al darle click a salvar se va a levantar el bloqueo, que se logra con eso? que nadie este modificando el mismo archivo y se pierda tiempo, como lo ven ustedes?
Responder Con Cita
  #6  
Antiguo 25-02-2008
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Esa clase de problemas son los que nos vinieron a solucionar los motores de bases de datos quienes alegremente se encargan de gestionar toda clase de cosas que antes teníamos que hacer a mano, solo que en este caso no se trata de bases de datos. Coincido en que un bloqueo de 30 minutos es una eternidad. De hecho el bloqueo es justo antes de la actualización por lo que no debería pasar de algunos segundos.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #7  
Antiguo 25-02-2008
Avatar de chrids506
chrids506 chrids506 is offline
Miembro
 
Registrado: abr 2006
Posts: 70
Poder: 19
chrids506 Va por buen camino
Gracias a todos por sus respuestas, lo tomaré en cuenta
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Guia Aplicaciones cliente/servidor Artemix175 Servers 0 20-06-2007 15:49:40
Aprender SQL/Interbase/Aplicaciones Cliente Servidor camelumi Varios 1 24-09-2004 17:52:16
Aplicaciones BD Cliente-Servidor.. Que Camino Tomar? Jvilomar Debates 0 01-07-2004 19:09:09
Aplicaciones Delphi Cliente/servidor TelloClos Conexión con bases de datos 8 09-06-2003 17:12:38
Aplicaciones Cliente Servidor leury Varios 0 20-05-2003 02:43:56


La franja horaria es GMT +2. Ahora son las 21:50:17.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi