Link to home
Start Free TrialLog in
Avatar of McGruber
McGruber

asked on

MSAccess MDB corruption

Migrated VB6 (MS Access 2003) based application from Windows Server 2008 Enterprise to Windows Server 2008 R2.  The application is accessed via network share from Citrix XenApp.
 Since the move, we have had an almost daily corruption issue in one of the mdb files.  Does WIN2K8 R2 behave differently than WIN2K8 Enterprise in terms of handling open sessions?  The Citrix servers reboot nightly – some end-users are bad about logging out correctly and leaving sessions idle.
Is there a file monitoring tool, script or some other method to monitor the file for corruption and send an e-mail notification?
Avatar of fhlio_admin
fhlio_admin
Flag of United States of America image

Corruption can happen for any number of reasons and is VERY difficult to fully diagnose.

Is your code compiled?  Have you tried a compact and repair?
Avatar of McGruber
McGruber

ASKER

It was written by an outside vendor.  The code is compiled.  The file repairs when you open it.
"The Citrix servers reboot nightly – some end-users are bad about logging out correctly and leaving sessions idle."

This is DEFINITELY an issue.  This COULD BE the cause.  As an Access Developer, I would build something in that requires users to be kicked out prior to rebooting sessions.  If there are too many broken sessions, this could do it.

Again, there are simply too many variables to answer this simply.
ASKER CERTIFIED SOLUTION
Avatar of Jim Dettman (EE MVE)
Jim Dettman (EE MVE)
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Network appears to be solid.
It is a VB6 app running as an Access app.
The database is not split so Citrix users are sharing the same db.

Could it be oplocks?

http://msdn.microsoft.com/en-us/library/windows/desktop/aa365433(v=vs.85).aspx
Corruption can happen for any number of reasons and is VERY difficult to fully diagnose.

I suppose it is possible.  I am hesitant to say it ISN'T something.  I think that it is most likely the user not canceling and the server rebooting.  If I had an Access database on my computer and kept Killing processes while I was in it, then the likelihood of corruption would escalate.  If you compound that on the number of users that you have it isn't good.

The hardest thing to say about corruption is that we never know what the proverbial straw that broke the camel's back was.  We don't know "how close it is" to corruption.  Lastly, it is, unless there is a specific thing that is triggering it always (I have seen it happen with a lack of compiling the code and compacting and repairing), it is hard to duplicate on command.

The answer to your question is simple, but hard to hear and hard to give.  I don't think anyone can definitively answer it without a doubt.  The best is speculation upon years of experience.
I would add a pre-reboot script that looks for disconnected sessions and logs them out.  (If you let the timers do it, they perform a reset, and not a logout).  If the users not logging out is the problem, then this should help.

Coralon
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial