This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

network data access

Good Morning I have the following problem:
I have a server with W10 and my programs installed on it (runcobol v.11, 5 users).
I have 2 more computers with w10.
if I run the query from one of the network computers, everything is fine. 
But if I run the same query on both workstations, the second computer that runs
it slows down tremendously.

I have verified that the problem is that the 2 computers access the same file
that has been opened. 
I have removed firewall and antivirus and it does not fix the problem. What I can do?

 

  • 0
    there really is no solution to this problem???. It's a COBOL problem???
  • 0 in reply to 

    You didn't give enough information to receive proper advice.

    Most important: is this a new problem or did it work as expected in the past, possibly in a different environment (XP or Windows 7 instead of Windows 10)? 

    Was the file server accessed by only one client computer at a time until now? 

    Is the COBOL application designed for multiple simultaneous users, or does the application lock the entire file for the duration of the "query" (you'd likely need the source to tell)?   If so, the second instance will wait until the first instance is done, and that will make it appear slow. 

    Please provide more information and we'll do our best to give you some advice.  I'm sure you are aware that RM/COBOL v11 is 13 years old, and while there is no reason that I know of that it won't work on Windows 10, it's certainly not a supported  or tested configuration.

  • 0 in reply to 

    Hi Landscape,

    I completely agree with Uwe. First of all, you are using a product that was produced before Windows 10. 

    Do you have a Cobol source sample to understand your "query"? Are you opening the file in I/O or Input mode?

    Was this running fine and something changed or it is a new installation? 

    Regards,

     

  • 0
    First of all, thanks for responding.
    The program is developed by me. I open the file in open I-O mode
    
    OPEN I-O LIST.
    IF TIPO-ERR = 1
       GO EXIT-PRO
    END-IF.
    
    I think I don't lock the file, how do I know?
    
    I run the program on one of the pcs, and I run the same program on the other. 
    The first one goes well but the second one goes very very slow. I repeat, thank you very much

     

  • 0
    This is probably an issue with your SMB settings on one or both of your Win10 systems. Unfortunately there are several issues that can cause problems. The two leading candidates are encryption and cache timers.

    Search something like "windows 10 smb slow". You will be treated to a lot of results. Good luck.
  • 0 in reply to 

    Still not enough information. The SELECT clause is important as well, as it determines if files are shared and the file and record locking algorithm that's used.  If you don't specify anything, then "automatic single" locking is the default. 

    I suggest you read the section entitled "File Sharing" in the RM/COBOL User's guide and about the "Lock Mode" clause in the "File Control" section of the RM/COBOL language reference manual.  Then, explicitly specify and control the record locking that you want to use to make sure that locks are released as quickly as possible when you're done with the records. This is especially important if you're running over a network.  If one client has the record locked, the other client won't be able to get at it until the lock is released and you should be able to make that happen a lot faster.

  • 0 in reply to 

    I have done this test

    IDENTIFICATION DIVISION.
    PROGRAM-ID. TEST-1.
    *
    *
    ENVIRONMENT DIVISION.
    CONFIGURATION SECTION.

    INPUT-OUTPUT SECTION.
    FILE-CONTROL.

    SELECT OPTIONAL LST ASSIGN RANDOM "LIST.DAT"
    ORGANIZATION INDEXED
    ACCESS DYNAMIC
    RECORD KEY LST-MAIN-KEY
    ALTERNATE RECORD KEY IS LST-SPLIT-1 =
    LST-DATE-X LST-CL-X
    STATUS FILE-STATUS.

    DATA DIVISION.
    FILE SECTION.
    FD LST.
    01 LST-REG.
    03 LST-MAIN-KEY.
    05 LST-CL-X.
    07 LST-CL PIC 9(4) COMP-3.
    05 LST-INVOICE PIC 9(5) COMP-3.
    05 LST-DATE-X.
    07 LST-DATE PIC 9(6) COMP-3.
    03 LST-DATOS.
    05 LST-STRING PIC X(15).
    05 LST-1 PIC 9(6) COMP-3.
    05 LST-2 PIC S9(3)V9(2) COMP-3.
    05 LST-3 PIC S9(6)V9(3) COMP-3.
    05 LST-4 PIC S9(9)V9(3) COMP-3.
    05 LST-TAB0.
    07 LST-TAB-TAB.
    09 LST-TAB PIC S9(5)V9(3) COMP-3 OCCURS 8.
    07 REDEFINES LST-TAB-TAB.
    09 LST-TAB1 PIC S9(5)V9(3) COMP-3.
    09 LST-TAB2 PIC S9(5)V9(3) COMP-3.
    09 LST-TAB3 PIC S9(5)V9(3) COMP-3.
    09 LST-TAB4 PIC S9(5)V9(3) COMP-3.
    09 LST-TAB5 PIC S9(5)V9(3) COMP-3.
    09 LST-TAB6 PIC S9(5)V9(3) COMP-3.
    09 LST-TAB7 PIC S9(5)V9(3) COMP-3.
    09 LST-TAB8 PIC S9(5)V9(3) COMP-3.
    05 LST-5 PIC X(10).
    05 LST-6 PIC X(10).
    05 LST-7 PIC X(10).
    05 LST-8 PIC X(10).
    05 LST-9 PIC X(10).
    05 LST-10 PIC X(10).
    05 LST-11 PIC X(10).
    05 LST-12 PIC X(10).
    05 LST-13 PIC X(10).
    05 LST-14 PIC X(10).
    05 LST-15 PIC X(10).
    05 LST-16 PIC X(10).
    05 LST-17 PIC X(10).
    05 LST-18 PIC X(10).
    05 LST-19 PIC X(10).
    05 LST-20 PIC X(10).
    05 FILLER PIC X(206).

    WORKING-STORAGE SECTION.
    77 W-CL PIC 9(9) COMP-3 VALUE 0.
    77 LN PIC 9(9) COMP-3 VALUE 0.
    77 CR PIC X(1).

    77 FILE-STATUS PIC X(02).
    77 TIPO-ERR PIC 9 VALUE ZERO.

    PROCEDURE DIVISION.
    ONE SECTION.
    ONE-1.
    OPEN I-O LST.
    IF TIPO-ERR = 1
    GO T-END.

    DISPLAY " " LINE 1 POSITION 1 ERASE
    "TEST-1" LINE 1 POSITION 1 LOW.


    ACCEPT CR.

    MOVE 10 TO LN.

    MOVE 0282 TO W-CL.

    INITIALIZE LST-REG.
    MOVE W-CL TO LST-CL.
    START LST KEY NOT < LST-MAIN-KEY INVALID
    GO T-END.
    READ-LST.
    READ LST NEXT END
    GO T-END.

    IF LST-DATE < 200101 OR
    LST-DATE > 201231
    GO READ-LST.

    IF LST-CL NOT = W-CL
    GO T-END.

    DISPLAY LST-CL CONVERT LINE LN POSITION 10
    LST-INVOICE CONVERT LINE LN POSITION 20
    LST-DATE CONVERT LINE LN POSITION 30.

    ADD 1 TO LN.
    IF LN > 22
    MOVE 10 TO LN
    DISPLAY " " LINE LN POSITION 1 ERASE EOS
    END-IF.

    GO READ-LST.

    T-END.
    CLOSE LST.
    EXIT PROGRAM.
    STOP RUN.

     

     

  • 0 in reply to 

    and this is the WINDOWS.CFG.

    I run the program with

    ..\rmcobol\runcobol test-1.cob L=wowrt.dll C=windows.cfg

     

  • 0 in reply to 

    Hi,

    I do not see any problems in the code. I would use OPEN INPUT instead of OPEN I-O if the file already exists. Also I do not see the need to use l=WOWRT.DLL as it does not use WOW at all.

    If nothing changes you should follow Tom's recommendation about windows 10 smb slow.

    Regards,

     

  • 0 in reply to 

    Hi.

    I have activated SMB 1.5 and there is no difference either.

    I have continued doing tests, I have tested on machines with w7 (server and workstation with W7) and the result is the same.

    The problem is that if I run the test alone, it works fine, but if I run it on 2 machines, it slows down a lot.

    There is no one who has this problem ???

    I am very sorry to insist on this issue but I am beginning to think that it could be a problem of RMCOBOL.

    There have been people who have told me that the solution is to work by remote desktop, but I think this is just a patch.