0

We have a Practice Management system that is about 15 years old. I've been working on it for about 12, and I've never encountered this problem until just recently, and we can't figure it out.

It is written in VB6 which uses ADO/JET to access an Access .mdb file on the network. The application opens the connection when it starts, keeps it open while it's open, and closes it when it exits. It does a LOT of stuff with the DB - the system deals with Patient Accounts, Charges, Payments, Scheduling Appointments, and about a million other things. We have dozens of clients that use this program, each with their own DB and most of them 'offsite', where they have their own server, some number of workstations, between 1 and 20 users, pounding away at the system 24 hours a day, 7 days a week, and except for the occasional DB field bug or having to compact/repair DBs, it's pretty stable.

About 3 weeks ago, we started seeing a problem that we hadn't seen before. We have an 'in-house' system setup for us to use: the DB is on our Server which houses maybe 10 other DBs, and only a couple of people connect in to this system. We started noticing that if someone logged into the system, went straight to our Scheduler screen, and then sat idle for about 5-10 minutes, they might get "Disk or Network Error", or "Cannot find the input table or query X on database Y".

What's strange is that it SEEMS to happen only when 2 or more people are logged into that DB from different computers, and then one of them will get the error (Randomly?) but the other 2 users will be fine.

There is a Timer on the 'main' MDI Parent form of the system which wakes up about ever minute (there are some things which will change the interval to a shorter interval, and there are some things which disable the timer, but we don't think either of them are happening in this situation). It performs a pretty basic SQL Query on the DB: SELECT loggedin FROM Users WHERE UserId = 'DBUPDATER' THIS is the SQL Query that seems to be ALWAYS triggering one of those errors.

There is also a timer that runs about every 2 minutes while a user is logged in to check for emails and a few other things that would be running during this time. And since they are on the Scheduler screen, there's a timer on there that runs every 30s or so which will check the DB to see if any changes to the scheduler have been made to see if it needs to refresh the screen or not.

There are some other strange things: The DB and the Users table seem to be perfectly fine. When the person who gets the error logged into the system - usually only 5 minutes earlier - the system HAD to look at the Users table to mark them as Logged in, and I'm almost 100% sure that the query that it's dying on had been run at least once - probably 4-5 times before it dies.

Once a user gets this error, if they leave the Error's MessageBox on the screen (not quit the .exe), if they try to access that DB file in any way, they get "Disk or Network error" - this includes if they try to open that DB in Access. HOWEVER, they can still get to the Network just fine, and even open up other mdb files IN THE SAME FOLDER as the one they can't open. OTHER PEOPLE on other computers can open that mdb without any errors. Once the user acknowledges the Error, and allow the exe to close, they can open that DB file again just fine.

I'm told that this is not in anyway a Network issue. Our IT guy says he's run pings and traces and all sorts of tests to ensure that the network connection is not getting dropped. I've also run some things on the DB to make sure it's not corrupted and it seems to be fine - and we get it to happen on other DBs.

If anyone has seen anything like this and knows a possible fix, I would greatly appreciate it! Thanks!

New Information (9/5/13 - 10:30am)

We noticed that at the same time we get this error, in the errorlog on the computer that gets the error is a Warning Event that says:

{Delayed Write Failed} Windows was unable to save all the data for the file \MEDTECHSERVER\MEDTECH DATA\VB\SCHEDTEST2\MEDTECH.MDB; the data has been lost. This error was returned by the server on which the file exists. Please try to save this file elsewhere.

SeiferTim
  • 438
  • 4
  • 18
  • What exact versions of Access and what exact versions of Windows are involved? What OS does your server run? Do you know if the problem started after moving to Windows 7 or Server 2008/2012? Or did it maybe start after installing some windows updates? – HK1 Sep 04 '13 at 14:59
  • You might comb through the results on a search at Microsoft's forum. This problem/question has been asked and addressed there many times. http://social.msdn.microsoft.com/Search/en-US/Office?query=%22disk%20or%20network%20error%22&Refinement=68%2C112&ac=4#refinementChanges=108,-68&pageNumber=1&showMore=false My own experience is that I couldn't get rid of it until we moved to SQL Server. – HK1 Sep 04 '13 at 15:02
  • The 3 computers that we've been testing on are all Win 7 - one of them is 64bit, but all 3 of them have gotten the error at different times. All 3 are using Access 2003, and the DB is in 2003 format. The server is Windows 2003 Server. We've been running Win 7 here for awhile now. And the server itself hasn't changed probably in 5 years or so... But I don't know what kinds of updates or things might have happened about 3 weeks ago when we first noticed this problem - or that we weren't getting this problem and just didn't notice it... – SeiferTim Sep 04 '13 at 15:03
  • I'm in agreement with your IT guy that this is not a network related issue, although you're going to have many people tell you that it is. I personally think it's a Microsoft Issue that has to do with File Sharing and MS Access. I think one of the recommendations to get rid of this issue was to disable SMB2 on your Win7 clients. But in my own tests I don't recall if that helped. And I can't say what bearing that would have if your server is 2003 which doesn't include SMB2, to my knowledge. – HK1 Sep 04 '13 at 15:08
  • Thanks, I've been going through forum posts for 2 weeks trying to figure out some kind of reason behind this, and most of them end with: "switch to SQL server". But I know that my boss would not consider that an actual solution. I'll talk to the IT guy to see if he can look into the SMB2 thing - or see if something like that could be a problem. – SeiferTim Sep 04 '13 at 15:20
  • Are you using DAO or ADO? If you're using ADO a switch to SQL Server probably wouldn't be very involving. But DAO might be a different story since VB6 doesn't have ODBC linked tables that I'm aware of. – HK1 Sep 04 '13 at 15:29
  • We're using ADO. It wouldn't be that bad for one or two of the DBs possibly (although I haven't looked into the cost yet), but a: it's never been a problem before, and b: it would take forever for a team of 1 (me) to convert every one of our 40+ client DBs over when some of our clients are out of town and have limited remote access... (speaking as I know my boss would respond) – SeiferTim Sep 04 '13 at 15:37
  • Make sure your IT guy is informed about the *"Delayed Write Failed"* error. Your application error is surely a symptom of that lower-level Windows issue. – HansUp Sep 05 '13 at 17:15
  • Rats! Grasping for anything ... go with *"Please try to save this file elsewhere"*. Try with a copy of `MEDTECH.MDB` at another location on the file share, or a different share. Sorry, that's the best I got. (this was in response to a comment which has now disappeared; I dunno what's up now) – HansUp Sep 05 '13 at 17:20

0 Answers0