Menu

Could you please let me know regarding where we can get VBISAM for RHEL 7

2018-12-28
2024-05-02
  • Santanu Ghosh

    Santanu Ghosh - 2018-12-28

    We are using GNU COBOL Version 2.0 rw-branch. During create INDEXED file we got BDB errors hence we need to use –with-vbisam option.

    Please let me know the steps for use the above mentiined option.

     
  • Klaus Schäfer

    Klaus Schäfer - 2018-12-28

    Could you please give us the erros ? I used bdb for years with datasets with millions of records and had no problems. Meanwhile i use vbisam and it works too. May be, you have an error that occurs with vbisam too. As attachement the vbisam i use. I can't remember where i got it - but with x86 it works perfect - with armhf i have problems.
    Good luck.

     
    • Santanu Ghosh

      Santanu Ghosh - 2018-12-28

      Thanks a lot for your quick help.

      Only need to install the above mentioned vbisam.tgz file right.

      Please let me know after that how to proceed furthe.

       
  • Santanu Ghosh

    Santanu Ghosh - 2018-12-28

    We are using ORACLE (Release 12.2.0.1.0) database. We are using Pro*Cob and the maximum COBOL Programs are using EXEC SQL for retrive the data from Oracle Database.

    We are using only GNU COBOL Version 2.0 rw-branch.
    **(cobc (GnuCOBOL) 2.0.0). **

    We have observed the INDEXED file handler as below with used of cobc -i:
    INDEXED file handler : Berkeley DB 5.3.21: (May 11, 2012)

    Actually got following error when tried to OPEN/READ an INDEXED file from a COBOL program.

    ** BDB0196 Encrypted checksum: no encryption key specified
    BDB0210 xyz.dat: metadata page checksum error
    **

    This INDEXED file created from a master datafile through another COBOL program.

    Thanks in advance for your valuable and great help.

     
    • Mickey White

      Mickey White - 2018-12-28

      Santanu did GnuCOBOL create the INDEXED file?

       
      • Santanu Ghosh

        Santanu Ghosh - 2018-12-28

        Yes, GNU COBOL 2.0 Version rw-barnch has been created the INDEXED file with a input data file (.dat) which populated from ORACLE database table..

        When OPEN/READ that INDEXED file from another COBOL program then got these errors BDB0196 and BDB0210 .

         

        Last edit: Santanu Ghosh 2018-12-28
        • Brian Tiffin

          Brian Tiffin - 2018-12-28

          which populated from ORACLE database table

          What does that mean, Santanu. ESQL? Pull from Pro*Cob into GnuCOBOL or ??

          Edit: Ignore that part, read the other message, Santanu - Pro*Cob it is.


          I'd still be curious what the utilities have to say...

          What messages come out of the Berkeley utilities like db_verify and db_dump when used on the data sets?

          Curious,
          Blue


          More edits...

          Oh, and for the VBISAM I test with here, it is the copy from the Open Source COBOL Consortium in Japan.

          https://github.com/opensourcecobol/opensource-cobol

          The vbisam folder is a standalone configure make install, but you'll need to check out the whole tree, (or figure out the github API options that can checkout just a subfolder).

          Cheers

           

          Last edit: Brian Tiffin 2018-12-28
          • Santanu Ghosh

            Santanu Ghosh - 2018-12-28

            How to see the messages which come out of the Berkeley utilities like db_verify and db_dump when used on Oracle data sets? - Please suggest.

             
  • Simon Sobisch

    Simon Sobisch - 2018-12-28

    A note from Ron on this issue (got in by mail):

    VBISAM Is better than BDB for handling INDEXED files.
    D/C-ISAM is the best if you need to be Microfocus compatible.

    So I would always recommend using BDB only as a last choice.

    But unless there is some name conflict with the Oracle client library and BDB it should work.

     
    • Santanu Ghosh

      Santanu Ghosh - 2018-12-28

      As per our requirement it will better to use that option for INDEXED file which is Microfocus compatible.

      How to check Oracle client library name which conflict with BDB - Please guide.

       
  • Ron Norman

    Ron Norman - 2018-12-30

    Micro Focus uses a version of C-ISAM.
    There is something else called D-ISAM which has a cost and comes from http://www.isamcentral.com/ . I have used D-ISAM for 20 years in my commercial software.
    D-ISAM does handle Microfocus INDEXED files as long as they are nto IDX8 format.

    I've also fix issues with VB-ISAM to better support the COBOL status '02' which means 'Duplicates key ahead'. However VB-ISAM files are not 100% compatible with what Micro focus uses.

    If you send or attach some sample COBOL code that is haing the problem with BDB and Pro*Cob (Oracle) I could test it out. *

    I have attached a copy of VB-ISAM 2.1.1 which I updated a couple of years ago.

     

    Related

    Discussion: Effect of DISPLAY on performance during file processing
    Discussion: ISAM Multiple Instance Behavior: VBISAM vs BDB

    • Klaus Siebke

      Klaus Siebke - 2024-05-02

      Here are two small changes to make VBISAM 2.1.1 compatible with gcc 14 (introduced in Fedora 40).

      See post: https://sourceforge.net/p/gnucobol/discussion/cobol/thread/49d76dc54e/?limit=25#1a3c

      isrecover.c

      diff -u ./old/isrecover.c ./new/isrecover.c
      --- ./old/isrecover.c   2010-05-01 14:51:10.000000000 +0200
      +++ ./new/isrecover.c   2024-04-26 21:31:20.000000000 +0200
      @@ -554,7 +554,8 @@
       ircvuniqueid (VB_CHAR *pcbuffer)
       {
           vb_rtd_t *vb_rtd =VB_GET_RTD;
      -    off_t   tuniqueid;
      + //   off_t   tuniqueid;        §§§KS
      +    long long int tuniqueid;
           int ihandle, ipid;
      
           ihandle = inl_ldint (pcbuffer);
      

      ischeck.c

      diff -u ./old/ischeck.c ./new/ischeck.c --color
      --- ./old/ischeck.c 2015-02-24 21:35:54.000000000 +0100
      +++ ./new/ischeck.c 2024-04-26 21:30:58.000000000 +0200
      @@ -144,8 +144,10 @@
           return 0;
       }
      
      +//static int              §§§KS
      +//ipreamble (ihandle)     §§§KS
       static int
      -ipreamble (ihandle)
      +ipreamble (int ihandle)
       {
           vb_rtd_t *vb_rtd =VB_GET_RTD;
           struct DICTINFO *psvbptr;
      
       

Anonymous
Anonymous

Add attachments
Cancel