Hola. Buenos días. Mi problema está ya resuelto pero quería conocer vuestras opiniones en este tema.
Resulta que tengo una tabla de productos con 4 campos objeto texto. Pues bien, ayer ha sido la segunda vez que se corrompen los datos:
Los contenidos de un campo aparecen en otro, salen repetidos y/o cruzados. Parece que lee de un lugar y graba en otro porque concateno al objeto contenidos y aparecen mezclados los datos de un campo con los naturales de otro campo. (El proceso completo funciona durante muchos meses de forma correcta)
No se cortó la corriente del servidor (windows server en instalación local con S.A.I.).
No he perdido información relevante porque los 4 campos se actualizan a diario (…) durante un proceso de importación de datos desde diversos CSV de diversos proveedores. La información perdida es la de aquellos productos descatalogados que ya no aparecen en los CSV.
Para resolver el problema he detenido vServer (cerrando antes todos los enganches, claro) y después he eliminado los ficheros .cni .cnv .cnd, arranco servidor, compacto y regenero tanto índices como datos y vuelvo a importar todo. “Aparentemente” todo funciona Ok.
Sé que hay personas programando con Velneo que tratan de evitar los campos objeto texto pero son útiles y no sé si esto que me sucede es habitual o no, si ese hábito de evitarlos es un miedo a lo desconocido o pura mala experiencia al usarlos.
No sé si a otras personas también les están sucediendo estos “poltergeist”.
En mis aplicaciones he hecho un uso intensivo de los campos de Texto, tanto los de contenido plano como los de texto enriquecido. Durante más de 10 años y de momento sin problemas de corrupción de datos, que por otra parte sería dramático y motivo suficiente para descartar Velneo.
Un ejemplo de uso son las aplicaciones que tienes en Mis Ejercicios con Velneo. Son aplicaciones donde el código de ejemplo se guarda en campos de Texto. A veces estoy muchas horas con un algoritmo concreto y se pueden realizar cientos de lecturas y escrituras en poco tiempo sobre un mismo campo de Texto, sin experimentar problemas.
Es cierto que hace unos años hubo un problema con el refresco de los campos de Texto, pero se solucionó completamente.
Para muchas aplicaciones el uso de campos Objeto Texto es imprescindible y en Velneo funcionan francamente bien.
Y si.
Seguro que tu experiencia con estos campos es óptima. Pues la mía no.
¿ Que suceda porque yo uso esos campos de forma no apropiada ?, puede ser.
Esta tabla funcionó perfecto desde Septiembre-21 hasta el 5-enero-24, cuando se corrompió por primera vez. La tabla se ha mantenido en unos 20.000 productos durante un par de años pero han llegado nuevos proveedores y con ellos más productos. Incluso repetidos con diferentes precios según su proveedor.
Han pasado 9 meses hasta esta segunda ocasión. Entre medias la tabla ha ido creciendo en registros. Al principio unos 20.000 y ahora 50.000 con idea de añadir otros 30.000 más con los productos de un nuevo proveedor.
A diario, estos 4 contenedores se regeneran mientras sigue creciendo el nº de registros (cada día unos 50 productos nuevos).
Todo parece que funciona como se espera hasta que una combinación de factores confluyen y … ¡ Plof ! a tomar por saco los datos. Ignoro el motivo. Tendré que buscarlo.
Esta información es de Agosto-24:
Supongo que para vServer 1 giga con 640 megas no será problema …
Nota: La info 46.298.201 es el tamaño comprimido.
Nota2: Ahora la info en el servidor es esta, después de recuperar los datos de los productos “activos” (no descatalogados)
Si se cruzan campos es posible que estés usando el comando “crear copia de ficha en memoria”, y después alta de ficha.
Cuando haces esto tienes que asegurarte de usar el comando “Limpiar campo objeto” y dejar esos campos vacíos.
Si necesitas traspasar su contenido, guárdalo en una variable y después lo metes en el alta al procesar la ficha en memoria.
Es un comportamiento extraño, que según soporte, es porque el campo guarda un enlace al contenedor, que es donde están los datos.
Hola, buenos días.
Gracias por comentar. Aunque en mi proceso, en el que supongo sucede el problema, no uso el comando “crear copia de ficha en memoria” ni tengo otros procesos relacionados con esta tabla que copien o traspasen fichas (solo altas y actualizaciones) si es cierto desconocía el comando “limpiar campo objeto”.
Como no se puede borrar el contenido de campo objeto texto asignando una cadena vacía ( “” ) asignaba un espacio en un bucle y después ponía el contenido en otro bucle.
Esto tiene que ser así porque la importación procede de diferentes CSV y hay otros motivos más.
Ahora ya uso "limpiar … " para borrar el contenido pero temo que vuelva a suceder igualmente.
De nuevo se han corrompido los índices. Los datos de 4 campos objeto texto de una misma tabla salen cruzados.
Habitualmente los “depuro” en fin de semana pero llevaba unos cuantos findes sin hacerlo y el simpático despiporre está servido.
Para recuperar los índices no sirve vaciarlos con la orden para Limpiar campo objeto, compactar datos y compactar contenedores, regenerar datos e índices. Al volver a importar se mezclan los contenedores.
En mi próxima modificación llevaré los objeto texto a 4 tablas diferentes y a ver si tengo más suerte. En última instancia tendría que generar 66000 ficheros de texto multiplicado por 4 … 264000 y mucho código para soportar ese jaleo así que espero que baste la primera opción.
Saludos.
( espero que vuestro santo regreso haya sido menos indigesto )