Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   GnuCOBOL (OpenCOBOL) (https://www.cobolforo.es/forumdisplay.php?f=90)
-   -   [Compilador] Error 61 al abrir fichero en 2 programas a la vez (https://www.cobolforo.es/showthread.php?t=1742)

valpo 16 de febrero de 2024 20:22

Error 61 al abrir fichero en 2 programas a la vez
 
Hola, tengo el siguiente problema. Al abrir un mismo archivo indexado en otro programa simultaneamente, no deja ejecutarlo y da erorr 61.
dice
Código:

libcob: error: file sharing conflict (status =61) for file PROPIEDADES ('PROPIEDADES.DAT' ==> PROPIEDADES.DAT)
Osea no me permite trabajar en red . hay solución para esto?

Saludos

Kuk 17 de febrero de 2024 00:40

@valpo, hola, utilizas LOCK MODE en tu programa? Creo que por defecto se hace uso exclusivo, quiere decir que no puedes usar un mismo fichero simultáneamente en varios sitios.

Para poder hacerlo, mira este manual: https://gnucobol.sourceforge.io/guid...%20Letter).pdf

Busca dentro LOCK MODE

Por cierto, qué motor de fichero indexado usas (creo recordar que había como varias posibilidades). Y por curiosidad, qué IDE usas? ;)

Josber 17 de febrero de 2024 13:23

@valpo, yo creo que lo mejor es poner LOCK MODE AUTOMATIC y que sea el compilador el que resuelva los casos de compartición de ficheros.

Un salu2.-

valpo 17 de febrero de 2024 20:32

hola, le puse el LOCK MODE IS AUTOMATIC en la SELECT de los archivos indexados, pero sale el mismo error al ejecutar el segundo programa. No estoy usando IDE, estoy a nivel de consola por cmd, abro 2 simbolos del sistema y corro un programa en cada una y al correr el segundo sucede el error . El motor del ficheros es vBISAM . SI ustedes no tienen este problema que motor tienen , podrian ver?

Código:

cobc (GnuCOBOL) 3.2.0
Copyright (C) 2023 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Keisuke Nishida, Roger While, Ron Norman, Simon Sobisch, Edward Hart
Built    Jul 28 2023 22:59:53
Packaged  Jul 28 2023 17:02:56 UTC
C version (MinGW) "9.2.0"

build information
build environment        : i686-pc-mingw32
CC                      : gcc
C version                : (MinGW) "9.2.0"
CPPFLAGS                : -I/mingw/include
CFLAGS                  : -O2 -pipe -finline-functions -fsigned-char
                          -Wall -Wwrite-strings -Wmissing-prototypes
                          -Wno-format-y2k
LD                      : c:/mingw/mingw32/bin/ld.exe
LDFLAGS                  :

GnuCOBOL information
COB_CC                  : gcc
COB_CFLAGS              : -pipe -I/mingw/include -I/mingw/include
                          -Wno-unused -fsigned-char -Wno-pointer-sign
  env: COB_CFLAGS        : -I"C:\GnuCobol 3.2\include"
COB_DEBUG_FLAGS          : -ggdb3 -fasynchronous-unwind-tables
COB_LDFLAGS              :
  env: COB_LDFLAGS      : -L"C:\GnuCobol 3.2\lib"
COB_LIBS                : -L/mingw/lib -lcob
COB_CONFIG_DIR          : /mingw/share/gnucobol/config
  env: COB_CONFIG_DIR    : C:\GnuCobol 3.2\config
COB_COPY_DIR            : /mingw/share/gnucobol/copy
  env: COB_COPY_DIR      : C:\GnuCobol 3.2\copy
COB_MSG_FORMAT          : GCC
COB_OBJECT_EXT          : o
COB_MODULE_EXT          : dll
COB_EXE_EXT              : exe
64bit-mode              : no
BINARY-C-LONG            : 4 bytes
endianness              : little-endian
native EBCDIC            : no
extended screen I/O      : pdcurses
variable file format    : 0
sequential file handler  : built-in
indexed file handler    : VBISAM
mathematical library    : GMP
XML library              : disabled
JSON library            : cjson

Comentario de Moderador

Usa los botones de resalto de sintaxis y código

Kuk 18 de febrero de 2024 11:15

@valpo, a ver ya no me acuerdo muy bien, pero creo que el AUTOMATIC es el por defecto y hace uso exclusivo del registro que es lo que te está pasando ahora. Lo que tienes que hacer es indicar LOCK MODE MANUAL y luego ir jugando con lecturas añadiendo WITH NO LOCK y sólo bloquear usando WITH LOCK cuando realmente lo necesites como exclusivo, es decir para modificar los datos.

Luego puedes ir comprobando si el registro al que accedes está bloqueado (en uso) y esperar a que se libere. Es decir tienes que aplicar la lógica de acceso concurrente a registros, con sus esperas, vía código.

A ver si te cuentan más cosas los amigos foreros porque yo no lo he usado mucho y hace muchísimo tiempo de eso. Pero vamos que está claro que tu problema tiene solución.


Por cierto, según Micro Focus, el motor DISAM es mejor: https://www.microfocus.com/documenta...migration.html

Y GnuCOBOL permite instalación de dicho motor: https://github.com/OCamlPro/gnucobol...e#isam-support

JCantero 18 de febrero de 2024 20:45

@valpo, has puesto el fichero en las "DECLARATIVES"

Es que si no lo pones cuando se produce un error salta. Si están puestas las declaratives, el error producido se mete en el file-status.

:astro:

valpo 19 de febrero de 2024 14:36

Ok gracias, entonces tendré que hacer uso de DECLARATIVES , abrir de i-o solo para grabar, todo un manejo de archivos. Es que estaba acostumbrado a rmcobol que solo abria los archivos de i-o al iniciar los programas y no habia ningún problema al compartir los archivos .
Saludos.

JCantero 19 de febrero de 2024 17:06

@valpo, no es así

En rm/cobol hay que utilizar las declaratives porque si no no puedes controlar las excepciones.

En rm/cobol (multiusuario ) al abrir un fichero en modo "i-o" y hacer un "read", bloquea el registro si no le pones "with no lock"

Si lo haces en modo "input" no bloquea al realizar un "read", logicamente.

valpo 19 de febrero de 2024 17:37

Exacto, pero solo bastaba "with no lock" en los "read" y nada más , y habría los archivos i-o en todos los programas y todos los usuarios leian, grababan y regrababan simultaneamente sin problemas. En gnucobol no puedo tener abierto 1 mismo archivo de i-o en 2 programas simultaneos. Eso estoy tratando de hacer en gnucobol , abriendo i-o solo al momento de grabar o regrabar, aunque aun no me resulta.. en eso estoy.

JCantero 19 de febrero de 2024 22:59

@valpo, Pero has puesto el fichero en las declaratives ?


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

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.