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?
there really is no solution to this problem???. It's a COBOL problem???
there really is no solution to this problem???. It's a COBOL problem???
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.
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.
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,
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?
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
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?
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.
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
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.
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.
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.
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.
and this is the WINDOWS.CFG.
I run the program with
..\\rmcobol\\runcobol test-1.cob L=wowrt.dll C=windows.cfg
and this is the WINDOWS.CFG.
I run the program with
..\\rmcobol\\runcobol test-1.cob L=wowrt.dll C=windows.cfg
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,
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,
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.
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.
Your next step is to reproduce the symptoms using a current version. As mentioned earlier in this thread, you are using a version that predates (by years) Windows 10. The latest versions ofthe product will be using later versions of Microsoft libraries and redistributables.
Your next step is to reproduce the symptoms using a current version. As mentioned earlier in this thread, you are using a version that predates (by years) Windows 10. The latest versions ofthe product will be using later versions of Microsoft libraries and redistributables.
Greetings to all.
I have also tried with w12.08 and the problem repeats exactly the same,
anyway I remember that I have also carried out the tests on W7 with RM11 and it also
causes the same problem, so I do not think it is a version problem.
I increasingly believe in a language problem.
Greetings to all.
I have also tried with w12.08 and the problem repeats exactly the same,
anyway I remember that I have also carried out the tests on W7 with RM11 and it also
causes the same problem, so I do not think it is a version problem.
I increasingly believe in a language problem.
I think I have had a similar case. I explain it to see if this helps. As one of my clients was installing Windows 10, the pcs that had a low graphic quality began to present a slowness in reading the files. This was solved by pure chance when they decided to buy new, modern monitors.
In the second case, I identify that the "READ NEXT" does not contain "WITH NO LOCK". This may help but I am not sure.
Anyway I make these two suggestions to see what happens.
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 RECORD WITH NO LOCK AT END
GO TO T-END.
I think I have had a similar case. I explain it to see if this helps. As one of my clients was installing Windows 10, the pcs that had a low graphic quality began to present a slowness in reading the files. This was solved by pure chance when they decided to buy new, modern monitors.
In the second case, I identify that the "READ NEXT" does not contain "WITH NO LOCK". This may help but I am not sure.
Anyway I make these two suggestions to see what happens.
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 RECORD WITH NO LOCK AT END
GO TO T-END.
Hi.
today I have tried to put the no lock in the read and everything remains the same.
I have done 2 tests, in the program I put an ACCEPT CR to stop it just after
opening the file and I open it in INPUT mode.
On the first machine I run it but I don't pass ACCEPT CR, this way the program goes fast,
but if instead of opening the file in INPUT mode, I do it in I-O mode,
the program slows down a lot.
Hi.
today I have tried to put the no lock in the read and everything remains the same.
I have done 2 tests, in the program I put an ACCEPT CR to stop it just after
opening the file and I open it in INPUT mode.
On the first machine I run it but I don't pass ACCEPT CR, this way the program goes fast,
but if instead of opening the file in INPUT mode, I do it in I-O mode,
the program slows down a lot.
So, now you know that the issue is simply the speed of region locks (i. e. record locking) over the network. Which brings us back to SMB configuration - see above. (Files open i-o in the default automatic locking mode lock records during reads.)
So, now you know that the issue is simply the speed of region locks (i. e. record locking) over the network. Which brings us back to SMB configuration - see above. (Files open i-o in the default automatic locking mode lock records during reads.)
Thanks Tom.
I already activated SMB 1.5 and I didn't have a solution either,
could you tell me what I can do ???
Thanks Tom.
I already activated SMB 1.5 and I didn't have a solution either,
could you tell me what I can do ???
Have you changed the SMB 1.0/CIFS Client option and restarted the machine?
At this point, I think you must continue researching SMB on Windows 10 (which changed to SMB3 with encryption, etc.) and attempt to make sure that the connection is forced back to earlier SMB version.
The RM/COBOL product line includes RM/InfoExpress, which was developed to overcome some of the issues created by native file systems that are not necessarily record oriented, and which do things that are rather hostile to record locking, etc. InfoExpress is a client-server implementation of the RM file system.
Note also that this is an issue with any product that has similar characteristics, including several database systems.
Good luck!
Have you changed the SMB 1.0/CIFS Client option and restarted the machine?
At this point, I think you must continue researching SMB on Windows 10 (which changed to SMB3 with encryption, etc.) and attempt to make sure that the connection is forced back to earlier SMB version.
The RM/COBOL product line includes RM/InfoExpress, which was developed to overcome some of the issues created by native file systems that are not necessarily record oriented, and which do things that are rather hostile to record locking, etc. InfoExpress is a client-server implementation of the RM file system.
Note also that this is an issue with any product that has similar characteristics, including several database systems.
Good luck!
Hi. I have a client that uses a pc as a server with windows 2008 server. 4 pcs with Windows 10 professional are connected to the server. Recently my client is experiencing a problem of slowness to display the information in listbox that previously filled quickly. Tom Morrison explains the use of SMB configuration, which I have tried in different ways and the slowness continues. It is not a problem of the program because previously it always worked well. I think something more complicated is being presented possibly because of the changes in Windows 10. I think the experts should review the problem.
Hi. I have a client that uses a pc as a server with windows 2008 server. 4 pcs with Windows 10 professional are connected to the server. Recently my client is experiencing a problem of slowness to display the information in listbox that previously filled quickly. Tom Morrison explains the use of SMB configuration, which I have tried in different ways and the slowness continues. It is not a problem of the program because previously it always worked well. I think something more complicated is being presented possibly because of the changes in Windows 10. I think the experts should review the problem.
I want you to dismiss my previous comment, sorry, but at the moment it was about admin permissions which produced similar problems. Thank you.