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
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
0