Gary Fuqua, CISSP
asked on
Problems with compiled Access database
I have a database that was working fine compiled. The db is split into front end and back end. Recently, the back end has been corrupting, requiring us to perform a repair. This happens when more than 5 users start working on it.
I decided to run the db's uncompiled and have no problems, with multiple users. We are running the front-ends from a network share using a shortcut. I have also tried it by having a local copy of the front end. Either way, after more than 5 users start working on the system, the back end corrupts, when someone exits and comes back into the database.
I have noticed that the locks file doesn't seem to be working like I would expect. I recall that when you opened the lock file (or a copy) when the Db is open, it used to list all the users in the db. Now it only seems to list the last user to open the db. Is this normal behavior?
All of the computers are running 32 bit Windows 7 and Office 2010.
Any suggestions for how to get the compiled version working again. My thought is perhaps an office/windows update has somehow broken this feature from working.
Any suggestions?
I decided to run the db's uncompiled and have no problems, with multiple users. We are running the front-ends from a network share using a shortcut. I have also tried it by having a local copy of the front end. Either way, after more than 5 users start working on the system, the back end corrupts, when someone exits and comes back into the database.
I have noticed that the locks file doesn't seem to be working like I would expect. I recall that when you opened the lock file (or a copy) when the Db is open, it used to list all the users in the db. Now it only seems to list the last user to open the db. Is this normal behavior?
All of the computers are running 32 bit Windows 7 and Office 2010.
Any suggestions for how to get the compiled version working again. My thought is perhaps an office/windows update has somehow broken this feature from working.
Any suggestions?
As Scott mentioned, "make sure your network is healthy and robust".
Is anyone accessing the BE via a wireless connection? This can cause problems as well, as wireless connections can get easily dropped, leading to BE corruption. I had this happen when a user copied an application to a laptop, and was walking around the office with the application open. He would invariably drop his connection causing severe backend corruption.
Is anyone accessing the BE via a wireless connection? This can cause problems as well, as wireless connections can get easily dropped, leading to BE corruption. I had this happen when a user copied an application to a laptop, and was walking around the office with the application open. He would invariably drop his connection causing severe backend corruption.
As the others have said, you need to focus on the network.
I'd doubt the compiled vs un-compiled state has anything to do with it, but it is conceivable. With the users sharing the FE, it's possible that the compiled code has become corrupt. You can either:
a. create a new DB and import everything into it.
b. Use /decompile when starting Access followed by a compact/repair to make sure that all compiled code is dumped.
After that you should compile ensuring there are no errors and users should not be sharing a single copy of the front end.
Jim.
I'd doubt the compiled vs un-compiled state has anything to do with it, but it is conceivable. With the users sharing the FE, it's possible that the compiled code has become corrupt. You can either:
a. create a new DB and import everything into it.
b. Use /decompile when starting Access followed by a compact/repair to make sure that all compiled code is dumped.
After that you should compile ensuring there are no errors and users should not be sharing a single copy of the front end.
Jim.
ASKER
Moved the database FE to the workstations. Still have the same problem.
We made sure all the power setting for the computer are set to always stay on. Specifically, the network adapter power settings were set to "never shut down" to save power.
I don't have complete control of the domain network, so I can't do the testing myself. I was thinking of suggesting following tests to the techs responsible:
1. Run and log an extended ping from the server to the workstations.
2. Shut down anti-virus on server and workstation. Maybe white-list the FE & BE. What else should be white-listed?
3. Verify that there isn't any real-time backup getting in the way.
Any other specific tests / steps I should consider?
We made sure all the power setting for the computer are set to always stay on. Specifically, the network adapter power settings were set to "never shut down" to save power.
I don't have complete control of the domain network, so I can't do the testing myself. I was thinking of suggesting following tests to the techs responsible:
1. Run and log an extended ping from the server to the workstations.
2. Shut down anti-virus on server and workstation. Maybe white-list the FE & BE. What else should be white-listed?
3. Verify that there isn't any real-time backup getting in the way.
Any other specific tests / steps I should consider?
ASKER
Also verified that users have "Full Control" on the folder where the back end is stored.
You hit all the main points that typically give you trouble.
Jim.
Jim.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Interesting and would not have been the direction I would have thought given that it seemed to be dealing with the number of users.
Glad to hear you finally tracked it down though.
Jim.
Glad to hear you finally tracked it down though.
Jim.
Agreed - thanks for posting back and letting us know.
ASKER
This is what worked.
Backends corrupt for a number of reasons, but one of the most common is a dropped network connection. Be sure your network is healthy and robust.
Users require read/write/create/destroy permissions on the folder hosting that BE file. From what you've written, it almost sounds as if someone does not have permissions on that folder.