Clipper/FiveWin - ERROR MUY,MUY PELIGROSO!

 
Vista:

ERROR MUY,MUY PELIGROSO!

Publicado por Jesús (2 intervenciones) el 26/04/2002 19:02:23
Hola,

He entrado por primera vez a este foro, por si quizás alguien hubiese encotrado una solución a mi problema.

Este problema provoca una DESCONFIANZA TOTAL en aplicaciones CLIPPER trabajando en red. No pasa siempre, pero si lo suficiente como para provocar que tus ficheros contengan datos inconsistentes.

Este error es tan grave como que cuando trabajas dos ordenadores en red bajo el mismo programa y bajo las mismas bases de datos, uno de ellos realiza una grabación en disco (p.ej. un albarán y sus líneas) HACIENDO COMMIT SEGUIDAMENTE, y si seguidamente el otro ordenador intenta visualizar este albarán NO LO ENCUENTRA (incluso aún pasando minutos).

Utilizo COMMIT's después de los REPLACE, y la red trabaja únicamente con el protocolo TCP/IP.

La solución parcial que he encontrado que reduce en mucho la frecuencia en que se manifiesta este error, es la siguiente:
- Es provocar lo que se podría llamar 'agitar los buffers de memoria'. Para ello justo después de realizar la grabación y el commit, muevo el puntero del registro al principio del fichero DBGOTO(1), al final (DBGOTO(LASTREC()+1), realizo una búsqueda con DBSEEK(...), y algún COMMIT más.

Esto claramente funciona, pero no al 100%.

Esto es sin dudas UN PROBLEMA GRAVISIMO!

Espero que alguien pueda haberse encontrado con este problema, lo haya resuelto, y por favor que me indique como resolverlo.

Hasta pronto y gracias.

Jesús
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ERROR MUY,MUY PELIGROSO!

Publicado por María Fernanda (48 intervenciones) el 26/04/2002 20:07:54
haz provado con UNLOCK()
El unlock desbloquea los registros o archivo bloqueados por el usuario.
para que puedan ser leídos desde dos u otra aplicación.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ERROR MUY,MUY PELIGROSO!

Publicado por skaigualker (210 intervenciones) el 29/04/2002 09:04:11
Yo hace años, cuando empece a hacer programas para entorno de red, tambien detecte corrupciones en el uso de la funcion commit. Yo lo solucione utilizando siempre, la funcion dbCommitAll() o la instruccion Commit all y nunca mas tuve problemas, pero utilizando el commit para un solo area me dio problemas, corrupciones de indices, perdidas de datos, etc. Nunca investige porque lo hacia, ni tuve mas el problema, porque nunca mas utilize la instruccion commit para un solo area, siempre hago dbcommitall()

Saludos.-
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar