Run-Time Error 3008

Greetings again from Belgium.

Lately, for an unknown reason (maybe, I am doomed!), I have been facing miscellaneous little, but bothering, problems in some of the applications I designed in MS Access 97.  Here, comes another problem that I do not really know how to solve as it happens "by itself".

I have an application that was running on a machine to which were connected (through a LAN) different other machines.  Everything went fine for months.  Lately, about two or three weeks ago, the application has been transferred onto another machine and, of course, the shorcuts have been modified accordingly.  Ever since then, little glitches occurred and here is the most occurring one.

Two ladies are entering data into the application; therefore, when they have no data to enter, they keep the application opened but minimized on their task bar.

About once or twice per day, they see the icon flashing on the task bar and, when they click on the flashing icon, the follow error message appears:

"Run-Time error '3008'
The table '\\chievres-lra\helpdesk management.mdb' is already opened exclusively by another user, or it is already open through the user interface and cannot be manipulated programmatically."

That error message is followed by another message:

"Disk or Network error!
The Microsoft Jet Database Engine cannot find the input table or query 'MSysModulus2'.  Make sure it exists and that its name is spelled correctly.
The save operation failed."

Right after that display, a last message appears:

"Out of memory!"

Before I make any comment to those error messages, I would like to precise a couple things:
1) there is no security system attached to the application.
2) only five users are authorized to used the application through the Groups feature of the Windows NT environment.
3) the application used by the ladies is a Replica version, the Design Master version being on my machine.

Now, here are my comments:
1) how can the database be "opened exclusively" as nowhere have I been setting anything to do that? The way I set all my applications is "record opened exclusively" and not database.
2)"...and cannot be manipulated programmatically": no one of the users has the knowledge to manipulate programmatically and, considering the Replica status of the application, no new coding and no coding edition is enabled.

I do not understand why that error occurs and, consequently, I do not know how to solve it.

Please, help me.

Thanks,

Jean-Philippe Guilbeau
guilbeaujAsked:
Who is Participating?
 
chewhoungCommented:
How many client machine do you have? Does every client machine has their own Access 97 installed?

Backup your mdb before you do this.

One other way you can try is split your mdb into 2. One with tables only (data mdb), one with all other objects (app mdb).
Link app mdb with tables from data mdb and put this 2 files on the server machine.
Link the shortcut in every client machine to this app mdb.
Then see if the error occur often.


And,
you should make sure all the setting in the registry key I mention above is same at all client machine.
I mean all setting under:

HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\3.5\Engines\Jet 3.5

If all is same, try bring up the value for MaxLocksPerfile for 2 machine and see what happen. Restart machine after set new value.
0
 
wesleystewartCommented:
I "solved" some similar mystery errors with JetComp.exe.  It is available from microsoft.

Essentially it is an improved repair/compact.

Is there any code running when these errors occur?

Do you have any timer events getting triggered?

Are you adding the records through code?  If you are, do you explicitly set your DAO objects (recordset, database) to nothing when you're done with them?

Wes
0
 
guilbeaujAuthor Commented:
Wes,

1) No code is running when these errors occur!
2) No timer events are getting triggered!
3) The records are not added through code! Records are added through regular forms filling!
4) Nothing is being done when the error occurs, the application being minimized.

Thanks for the help,

Jean-Philippe
0
Cloud Class® Course: Microsoft Azure 2017

Azure has a changed a lot since it was originally introduce by adding new services and features. Do you know everything you need to about Azure? This course will teach you about the Azure App Service, monitoring and application insights, DevOps, and Team Services.

 
wesleystewartCommented:
So the forms, which are bound to tables, are open essentially all the time?  Probably a bad idea, though if it worked for you in the past it might not be the problem now.

Does this happen regularly enough that you can time the interval between failures?  Then you can compare the intervals to the settings in >>Tools>>Options>>Advanced and see if the failures coincide with the ODBC refresh time intervals or something like that.

Wes
0
 
guilbeaujAuthor Commented:
Wes,

1) Only 2 tables are open at the same time (through a one-to-many relationship).
2) The error occurs once or twice a day on a irregular manner (interval).
3) It seems to have started ever since the application has been moved from a machine to another one.
4) I repeat: it even occurs when nothing is being done when the error occurs, the application being minimized.

Thanks,

Jean-Philippe

PS: Have a nice week-end!
0
 
chewhoungCommented:
Make sure you know about windows registry if you want to do the following:

Run regedit on every machine to check the settings for Jet under

HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\3.5\Engines\Jet 3.5

make sure every machine is the same (change the base value to decimal so that you know what you are looking at).

If every machine is the same, try bring up the value for MaxLocksPerfile.
0
 
guilbeaujAuthor Commented:
Chewhoung,

What is MaxLocksPerfile?
What does it do?
What should be the most appropriate value for MaxLocksPerfile?

It seems that all the Run-Time error '3008' occured ever since the application got moved onto a machine with Windows NT 4.0 environment. Is it something special that could have generated, directly or indirectly, such an error?

Thanks,

Jean-Philippe Guilbeau
0
 
chewhoungCommented:
MaxLocksPerFile = Maximum locks allow to a mdb.
I'm not really sure what it will do.
I have read some comment in this area that they use 20000 for that value. The default is 9500.

how is your application being setup?
one typical setup is:
every client computer has a mdb that has linked table to a mdb in a server computer.

if your setup is: one mdb file in the server and every client computer is running that mdb in the server, you should be thinking of setting up the above environment.
0
 
guilbeaujAuthor Commented:
Chewhoung,

The application (.mdb file) is located on one machine and each customer is using it through a shortcut.

I have been thinking of an .mdb on each client computer with linked tables to an .mdb in a server computer but I have denied that possibility because, as the boss here is constantly asking for modifications or additions of feature, there would be too many dependencies upon replications for updating.

Please, also keep in mind that that error occurs on a random basis: sometimes, there can be days without encountering it and, at other times, the error is encountered twice a day.  That really is what bothers me!!!

Thanks,

Jean-Philippe Guilbeau
0
 
guilbeaujAuthor Commented:
Thank you, Chewhoung, for your help!
As I do not want you to keep waiting for the promised points, I'll grant them to you even if it'll take a while before I'll see if all your suggestions did solve my problem.

Thanks again,

Jean-Philippe Guilbeau
0
 
chewhoungCommented:
hi guibeaui,
how is the thing going on? everything ok?
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.