VFP application slow and freezes

Hi:

I have 3 VFP-9 applications installed at one client that have issues where they are slow to load, freeze up for all of the users using the app., and have problems saving where it "waits" until a record can be saved.

The apps. are on a Windows-2012 server with Win-7 and Win-XP workstations. There are 20+ users in an app sometimes. The EXEs are running from the server. The largest table has about 150,000 records. Separate views are used for each user.

Is there anything that I can tell their IT person to change on the server? They have (new) CAT-6 cabling with a Ghz switch. The workstations have 3/4 GB RAM and no internet access. I saw a previous post that said something about SMB2 but I don't know what to tell them.

Is there anything that I can change in my code to improve throughput?

Any thoughts would be appreciated - I feel like I may get fired....

Thanks.

Cathie
NYC
ramramcatprogrammerAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

ramramcatprogrammerAuthor Commented:
Correction - it is a Windows-2008 server.
0
gheistCommented:
You can selectively disable ASLR using EMET (or run the application in windows 95 mode - as you see viable)
0
David Johnson, CD, MVPOwnerCommented:
this all seems to point to the sql server implementation on the server.. sql server may be disk io starved or memory starved.  I would place more credence on disk io starved.
0
IT Pros Agree: AI and Machine Learning Key

We’d all like to think our company’s data is well protected, but when you ask IT professionals they admit the data probably is not as safe as it could be.

pcelbaCommented:
To avoid shared file access and to have SQL Server everywhere is Microsoft goal...

Steps you should do to make the app working better are:
1) Copy all the executables, VFP run-time, and r/o files (incl. view definitions and appropriate databases) to the client workstations. The app will then load quickly without delays.
2) Turn SMB2 and possibly oplocks off on both the server and all workstations. Oplocks status is not clear and the on/off value must be tested. (XP does not support SMB2, so no need to turn it off...)
3) Remove DBF, CDX, FPT, and similar files from antivirus checks on both the workstations and the server
4) Try to disable IPv6 (I just don't know how big impact this brings)

Windows administrators should know how to do it. You could simply tell them "Optimize the environment for shared file access".

You could also test how your app runs locally on the server via Remote desktop (RDS). This means local file access which is much faster than any network access. (I suppose you don't use some remote data storage like OneDrive etc.)

That's not all but everything else will mean the app code update... Are you ready for it?

What you could do before the app update is to analyse what commands cause the biggest slow down, then think about some new indexes to speed your queries up etc. To have as much data locally as possible is the solution today.

And then you may start thinking about new (non-Microsoft) platform for your apps...
0
David Johnson, CD, MVPOwnerCommented:
4) Try to disable IPv6 (I just don't know how big impact this brings) The operating system is using ipv6 more and more.  Disabling ipv6 is a non trivial solution and it is no longer a recommended action to take.
0
pcelbaCommented:
I wouldn't agree... The life without IPv6 is nothing exceptional. IPv6 is still not mandatory protocol in almost all today's company networks. If its disabling could help to fix the older app behavior then I would use it.

Unfortunately, I did not test this setting yet... I've just read about it.

Interesting attempt would be to ask Microsoft for help... Of course, the Visual FoxPro must not be mentioned in the request... Instead of VFP you may create a small C++ program which simulates Win32 API calls similar to VFP behavior. All these calls are visible in e.g. Process Monitor software and the scenario 1. open file, 2. read file, 3. lock the file region, 4. read the locked block, 5. write the locked block, 6. unlock, 7. close is nothing complex.
0
ramramcatprogrammerAuthor Commented:
Thanks for all of the input.....in case I wasn't clear, these are VFP applications using native VFP databases, tables and views (not SQL-Server).
I have advised my client to first try excluding the VFP data files/folders from their anti-virus software and go from there. I am waiting to hear from them.
Will let you know.....
Cathie
0
pcelbaCommented:
I understood that but you have to realize the shared file access goes against Microsoft vision of centralized everything (in the cloud preferably). You may expect more and more problems when using DBFs shared on the file server...

To move all the files which are not updated by the app to the local PCs will speed the whole app significantly. Why do you need to place all the views, r/o tables, and the application itself at the server?

This, of course, means app update. But you may think about it in the new version. To write a simple app loader which checks the new application availability on the server is easy task.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
LeeTutorretiredCommented:
I've requested that this question be deleted for the following reason:

Not enough information to confirm an answer.
0
ramramcatprogrammerAuthor Commented:
I'm sorry that this question seems "abandoned", it was not my intention. I do not have access to the servers and workstations where my app. is installed and have asked my client's IT department to remove the DBFs, CDXs and FPTs from the anti virus as well as turn off Oplocks on the server and Win-7 workstations.
To date, they have not made the changes so I really don't know if those ideas resolved the issue. At this time, my client is not going to want to pay to convert to SQL server.
0
pcelbaCommented:
That's interesting... If I understand it well they did nothing (probably) but they do not complain to the slow and freezing system any more... So does it still freeze?

Please post the current status of this problem. TIA.
0
ramramcatprogrammerAuthor Commented:
They have not yet changed any settings but they sometimes reboot the server when many workstations complain of slowness. I'm sorry for the lack of responsiveness, the client's IT people are not very cooperative.
0
pcelbaCommented:
OK, if they are somehow satisfied or inactive then this question may be deleted...
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
FoxPro

From novice to tech pro — start learning today.