Iniciar Sesión

Ver la Versión Completa : [Herramienta] Urgente: Status 98,9 RM-COBOL


joaoalpande
18 de marzo de 2015, 19:00
Boa Tarde ,

Estou com um problema grave num cliente , todas as cópias de segurança estão a dar erro status 98,6 , uso RM-COBOL , utilizo o recovery para recuperar e diz :

File: COCTA1 - Bad block overhead in block 101

Recovery failed. A portion of the data records from index file COCTA1 may
exist in the data recovery file specified for recover2.
See the Utilities Appendix of the RM/COBOL-85 User's Guide
for more information.

Alguém pode ajudar-me?

Cumprimentos
João Alpande

Skype: joaoalpande

Kuk
18 de marzo de 2015, 19:38
joaoalpande, lamentablemente no conozco RM. Pero, a mi modo de ver podria ser fallo del Run-Time (por una actualizacion de Windows o (des)instalacion de algo).

Puede que diga tonterias, pero a lo mejor te doy una idea:


Has probado repetir el proceso en otro PC?
Has probado reinstalar el Run-Time?

Josber
18 de marzo de 2015, 21:08
joaoalpande, el Status 98, significa índice estropeado, por mi experiencia con RM/85, de hace muchos años, no se podían recuperar los índices, la solución más sencilla que yo veo es que en un programa aparte, crees el mismo fichero pero con organización secuencial, lo lees y lo pasas a un nuevo fichero indexado, yo lo tuve que hacer alguna vez y funcionaba perfectamente.

Suerte y
Un saludo.-

Roger
19 de marzo de 2015, 04:42
Intenta con el recovery generalmente el status 98 es un archivo abierto
RECOVERY.BAT ARCHIVO.DAT NUEVO.DAT
Creo asi era la sintaxis
esto es lo que hace

@ECHO OFF
CLS
IF "%1" == "" GOTO ERR1
IF "%2" == "" GOTO ERR1
IF NOT EXIST %1 GOTO ERR2
ECHO Attempt to recover '%1' in place:
PAUSE
RECOVER1 %1 %2
IF ERRORLEVEL 2 GOTO ERR3
IF ERRORLEVEL 1 GOTO REC2
CLS
ECHO Index file '%1' recovered in place. Records with invalid duplicate keys
ECHO can be found in '%2'.
GOTO ENDIT
:REC2
ECHO Attempt to extract data records from '%1' (file structure will
ECHO be retrieved from the original index file):
PAUSE
RUNCOBOL RECOVER2 L=RECOVER2 K A='%1,%3,NOSUB'
IF NOT ERRORLEVEL 1 GOTO GOOD2
ECHO Attempt to extract data records from '%1' (file structure must
ECHO be supplied by user):
PAUSE
RUNCOBOL RECOVER2 L=RECOVER2 K A='%1,%3,SUB'
IF ERRORLEVEL 1 GOTO ERR4
:GOOD2
CLS
ECHO The data recovery file specified for RECOVER2 contains the data records
ECHO from index file '%1'.
ECHO See RM/COBOL-85 User's Guide, Appendix I, Utilities.
GOTO ENDIT
:ERR1
ECHO Usage: RECOVERY index-file-name drop-file-name [data-recovery-file-name]
GOTO ENDIT
:ERR2
ECHO File '%1' does not exist - execution terminated
GOTO ENDIT
:ERR3
CLS
ECHO Recovery process canceled by operator.
GOTO ENDIT
:ERR4
ECHO Recovery failed. A portion of the data records from index file '%1' may
ECHO exist in the data recovery file specified for RECOVER2.
ECHO See RM/COBOL-85 User's Guide, Appendix I, Utilities.
:ENDIT

RMontoya
19 de marzo de 2015, 17:24
Con el recover1.exe lo corriges.
RECOVER1.exe archivo xxxx

archivo sera el nombre de tu archivo con todo y extencion
y las xxxx sera cualquier nombre donde gravara lo no recuperado.

Si tienes RM version 5 o mayor puedes usar los recover1.exe de versiones
mas adelantadas como version 7 / 11.

Alarpe
20 de marzo de 2015, 01:08
¿que versión de cobol usas?

con mi mal ingles, he medio entendido que el problema que tienes es que tienes unos registros del fichero origen en el fichero destino.

creo que has definido mal el indice en el fichero origen y da como error un duplicado de claves.

no se si usar indexación en un fichero o en dos ( fichero dat/ fichero dat + fichero inx) yo empleé un compilador con la segunda opción. cuando tenía un error 98, leía el fichero dat como archivo de acceso directo en modo secuencial y generaba de nuevo un fichero indexado.

joaoalpande
24 de marzo de 2015, 15:52
ola , o arquivo está corrompido, o Recovery não recupera , fiz programa para ler sequencial e não consegue recuperar o arquivo , outra solução?
uso RM-COBOL - 85 VERSION 6.09 FOR UNIX
Skype: joaoalpande

Gracias
João ALpande

Josber
24 de marzo de 2015, 16:13
joaoalpande, yo tengo el compilador de RM-Cobol/85 ver. 5.36.00 para MS-Dos, si quieres enviarme el archivo estropeado y la estructura de la DATA DIVISION, puedo probar a ver si con esa versión se puede hacer algo.

Mi correo es [email protected]

Un saludo.-

joaoalpande
24 de marzo de 2015, 16:34
Enviei

Gracias

RMontoya
24 de marzo de 2015, 18:17
Enviei

Gracias

Si es necesario enviame tambien el archivo dañado
para ver si con el RMCOBOL 7.0 se puede recuperar.

Saludos.
[email protected]

joaoalpande
24 de marzo de 2015, 18:52
hola ja enviei

Añadido despues de 4 minutos
hola já enviei

Josber
26 de marzo de 2015, 09:20
Lo siento joaoalpande, no hay manera de leer el fichero, ni con RM/85, ni con PWC9, he intentado el recovery de RM y el DataEditor de PWC9 de todas las maneras que se me han ocurrido y no ha habido forma, con el recovery, parece decir que el fichero tiene claves duplicadas, cuando el fichero no las soporta, pero no creo que sea así.

Lo siento mucho.

Un saludo y suerte.-

joaoalpande
27 de marzo de 2015, 16:39
gracias

rukko
1 de abril de 2015, 17:49
Cuando ocurre el error 98 normalmente son malas noticias, por que hay inconsistencia entre la tabla de índices y lo datos, hasta donde yo se el recovery te puede restaurar programas y librerías, nunca me ha funcionado con archivos. Creo que hay dos opciones: primera (que creo que no la tienes) es un backup, y la segunda es tratar de regenerar el archivo pero con basándote en otros archivos.

En el desarrollo de mis aplicaciones siempre tengo eso presente, todos o por lo menos los archivos mas importantes los puedo regenerar partiendo de otros, por ejemplo, archivo de inventarios, si se me dañáse lo puedo regenerar partiendo de las estadísticas de venta; por lo regular los archivos mas importantes los tengo diseñados de esa forma.

Ahora bien en mi caso yo tengo el manejo de información con cortes mensuales, es decir, si hoy pierdo un archivo tengo un punto de restauración, que en ese caso sería el del mes anterior, de esta manera solo tendría que recuperar lo del el mes que esta corriendo.

He llegado a esta conclusión por que los clientes nunca, nunca te hacen caso de hacer respaldos periódicos, y me ha pasado en el peor de los casos que un cliente tuvo que capturar toda su información de enero o agosto. Por eso es que cambié la estructura de los archivos...

Regenereishion. :D

Suerte amigo... y pues ve curándote en salud!

Kuk
1 de abril de 2015, 20:08
Yo solo uso PowerCOBOL. Alguna vez me ha pasado que el fichero se daña por corte de electricidad, o se queda pillado el PC a la hora de un WRITE/REWRITE, da File-Status=39 (FD diferente de la estructura fisica del fichero) cuando haces WRITE/REWRITE. En estos casos, lo que hago siempre es leer el fichero en modo secuencial y a la vez crear otro a partir del leido. En lectura (READ, ACCESS MODE IS SECUENTIAL) funciona siempre!

Josber
1 de abril de 2015, 20:16
Yo solo uso PowerCOBOL. Alguna vez me ha pasado que el fichero se daña por corte de electricidad, o se queda pillado el PC a la hora de un WRITE/REWRITE, da File-Status=39 (FD diferente de la estructura fisica del fichero) cuando haces WRITE/REWRITE. En estos casos, lo que hago siempre es leer el fichero en modo secuencial y a la vez crear otro a partir del leido. En lectura (READ, ACCESS MODE IS SECUENTIAL) funciona siempre!

Ya probamos lo del modo secuencial Kuk, y no hay manera de leerlo tampoco, me envió los archivos y con el RM/85 que tengo lo intenté de un montón de maneras, incluso desde POWER, poniéndole al fichero BTRV, y nada, por eso le comenté que me daba la sensación de que por algún fallo, tenía la clave principal duplicada en muchos registros, más que nada porque estuve investigando, (destripando), el fichero que me envió. Creo que el problema de lectura secuencial, también lo tiene porque en los ficheros que tiene creados, el de datos y el de índices estan juntos, con lo cual la hemos cag...

Un saludo.-

Kuk
1 de abril de 2015, 20:26
Josber, los ficheros de PowerCOBOL al menos la version 9 que uso yo tambien todo va empaquetado en un solo fichero! ;)

Oye, pasame ese fichero que tengo una idea... Si cuela, os la cuento, si no pues no hare el tontolaba publicamente! :D

Josber
2 de abril de 2015, 08:03
Si ya lo sé Kuk, pero hubo un tiempo en que los ficheros de RM, iban los índices por un lado y los datos por otro, era muy cómodo de trabajar con ellos, si tenias algún problema, lectura secuencial al canto e índices regenerados en un momento.

Un saludo.-

Kuk
2 de abril de 2015, 13:16
Pues no ha habido suerte. Tengo tun programa (ni me acuerdo donde me lo bajé), para analñizar ficheros RM (y los Fujitsu tambien), el cual analiza el fichero, te da toda la info de longitud de registro, blocksize etc. pero ademas exporta en secuancial todos los datos del fichero. Era eso lo que queria intentar, pero se para el proceso en el 98% o por ahi, con lo cual no extrae datos (eso lo hace la final).

Muy raro me parece que se haya dañado de semejante manera el fichero! :nocreo:

Añadido despues de 3 horas 42 minutos
Me referia a esta movida: http://www.janes.demon.co.uk/rm-decode.zip

Dentro va el ejecutable y la source code Delphi.

joaoalpande
9 de abril de 2015, 13:01
Gracias a todos, creo que no hay una solución

Kuk
9 de abril de 2015, 14:45
He intentado abrirlo con el Fujitsu DataViewer y DataConverter pero tengo el mismo problema:

File corrupted...

Me temo que no hay solucion. La unica manera en teoria podria ser obtener el formato de los ficheros RMFK y su empaquetado (mirando en internet y el fuente Delphi del programa que decia antes) y leer casi byte a byte y sacar lo que es sacable...

RMontoya
9 de abril de 2015, 19:29
Si Tu Rm Es 5.30 O 5.35 Se Puede Arreglar Con Recover1 De
Rm Version 7.

En Una Ocasion Te Pedi Enviarme Tu Archivo Para Probar
Pero No Recibi Nada.

Saludos.

Mi correo es: [email protected]

joaoalpande
10 de abril de 2015, 17:15
buenas tardes, utilizado la recuperación de versión cobol rm 7, 8 y hasta 12 y no dió para reparar, pero si desea enviar el archivo a la entrega ondes?

JÁ Tinha enviado no dia 24/03/2015 , mas enviei novamente.

Gracias

artem22
7 de enero de 2021, 03:37
Para los errores 98 de Rmcobol que no los recupera el recovery...

1.- Convertir el archivo de Rmcobol a formato Acucobol
2.- Desde acucobol generar un archivo texto
3.- Desde Rmcobol el archivo texto parsarlo a indexado
4.- Con eso el archivo queda restaurado

Nota. Si se alenta el proceso recomiendo ejecutar los programas
con DosBox. en una makina de 64 bits
esto lo hace mucho mas rapido

[email protected]

---------- Post añadido : 03:37 ---------- Post anterior : 03:33 ----------

Para convertir archivo dañado de Rmcobol a Acucobol

vutil32 -convert -a archivo.dat

ENRIQUE ALONSO
9 de enero de 2021, 00:45
Cordial Saludo
Gracias por la respuesta, voy a ver como se instala DosBox

artem22
9 de enero de 2021, 05:38
A mi me paso que no podia recuperar el error 98 de Rmcobol ni recovery1 ni recovery2

1.- Converti el archivo a Acucobol 8
vutil32 -convert archivo.dat

2.- Desde acucobol hice un archivo texto de esos datos
3.- De ese archivo texto genere el archivo nuevamente desde Rmcobol
4.- Y todo bien....

Lo hice en una makina de 64 bit con el DosBox . y fue mas rapido