473,770 Members | 2,133 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Corruption - how to MAKE it happen?

I am in a friendly debate with some co-workers... and my boss.

We use Access 2003 for the frontend (on workstations) as well as for
the backend (on a Dell PowerEdge running Windows 2000 server, SP4).
We have approx. 20 users *logged in* at any one time (over 300
userid's exist), but we have never run metrics to see how many on
average are accessing the database concurrently.

About once every few weeks, the database mysteriously becomes
corrupted.

One thing that seems pretty reliable is if my co-worker or I are in
design mode of a table and manually edit a record while someone else
is editing the same record via the frontend.

In addition, I thought that if I abnormally exited the program (CTRL-
ALT-DEL and kill the process while the program is loading, etc.), that
there would be a very good chance of corrupting the DB. Especially
(only?) if you killed it while it was accessing a record, before it
closed a recordset, etc.

Can anyone shed any light here? I have found several references
throughout this newsgroup, and even a Corruption FAQ:

http://www.granite.ab.ca/access/corruptmdbs.htm

but I would really like to know if abnormal termination would/should
do it. Random testing so far has been unable to reproduce the desired
corruption. I even tried running the code, setting a breakpoint in
the middle of a record operation, then CTRL-ALT-DELing the process.
No corruption.

Help?

Thanks.

Mar 22 '07 #1
42 2125
Having more than a single user logged in to a montolithic Access database or
a front-end significantly increases the chances of corruption, but does not
guarantee it -- based on your description, however, that does not seem to be
your case.

Because it is a file-server, when used with a Jet back-end, all the
processing is done on the user's machine, thus "abnormal termination" at
particular points in processing may leave internal pointers improperly set
because an operation was not completed. As Microsoft does not publish
details of the internals, and when, where, and why pointers are set/reset,
it's difficult to be more specific. That is, "ungraceful " or "abnormal"
termination is often involved, but it does not **always** cause corruption.

Because of the way Access-Jet operates, see above, it is far more sensitive
to dropped network connections, even if they are intermittent and brief,
than most other software.

And, well, if I had a list of situations that were guaranteed to cause
corruption, I'm not sure I'd think it appropriate to publish those in a
public newsgroup. I'd probably share them with Microsoft, in hopes that a
fix or workaround could be found, so they would soon not apply.

Larry Linson
Microsoft Access MVP

"Doug" <sp*******@gmai l.comwrote in message
news:11******** **************@ y80g2000hsf.goo glegroups.com.. .
>I am in a friendly debate with some co-workers... and my boss.

We use Access 2003 for the frontend (on workstations) as well as for
the backend (on a Dell PowerEdge running Windows 2000 server, SP4).
We have approx. 20 users *logged in* at any one time (over 300
userid's exist), but we have never run metrics to see how many on
average are accessing the database concurrently.

About once every few weeks, the database mysteriously becomes
corrupted.

One thing that seems pretty reliable is if my co-worker or I are in
design mode of a table and manually edit a record while someone else
is editing the same record via the frontend.

In addition, I thought that if I abnormally exited the program (CTRL-
ALT-DEL and kill the process while the program is loading, etc.), that
there would be a very good chance of corrupting the DB. Especially
(only?) if you killed it while it was accessing a record, before it
closed a recordset, etc.

Can anyone shed any light here? I have found several references
throughout this newsgroup, and even a Corruption FAQ:

http://www.granite.ab.ca/access/corruptmdbs.htm

but I would really like to know if abnormal termination would/should
do it. Random testing so far has been unable to reproduce the desired
corruption. I even tried running the code, setting a breakpoint in
the middle of a record operation, then CTRL-ALT-DELing the process.
No corruption.

Help?

Thanks.

Mar 22 '07 #2
"Doug" <sp*******@gmai l.comwrote:
>One thing that seems pretty reliable is if my co-worker or I are in
design mode of a table and manually edit a record while someone else
is editing the same record via the frontend.
I'm not quite clear on how you can be in the design mode of a table and edit a
record. Do you mean datasheet mode?
>In addition, I thought that if I abnormally exited the program (CTRL-
ALT-DEL and kill the process while the program is loading, etc.), that
there would be a very good chance of corrupting the DB. Especially
(only?) if you killed it while it was accessing a record, before it
closed a recordset, etc.
A client has had at least five power failures with no UPSs on the client systems with
about 15 to 20 users while I was on site. There was no corruption of the database.
I was rather surprised.
>but I would really like to know if abnormal termination would/should
do it. Random testing so far has been unable to reproduce the desired
corruption. I even tried running the code, setting a breakpoint in
the middle of a record operation, then CTRL-ALT-DELing the process.
No corruption.
What might work is running a SQL query updating a few thousand records and powering
off the system abruptly.

Tony
--
Tony Toews, Microsoft Access MVP
Please respond only in the newsgroups so that others can
read the entire thread of messages.
Microsoft Access Links, Hints, Tips & Accounting Systems at
http://www.granite.ab.ca/accsmstr.htm
Mar 22 '07 #3
Per Doug:
>About once every few weeks, the database mysteriously becomes
corrupted.
This is one reason why I do my best to avoid using a JET back end for a
mission-critical application.

I've done it... because the user's insisted on it... but in one case I've had
big time regrets about playing along. In that case, the cause of the
corruptions seemed to be something about the file server the back end was on. We
moved the .MDB file to another server and the problem went away.

What made it so bad was that the organization was very large, with extremely
stringent change control procedures in place and getting somebody who had
permission to move the file took literally months - during which the users lives
became very difficult due to the recurring corruptions.

User wound up paying 3 mil for IT to rewrite the app (and, at IT's insistence,
add web access) - only to have to scrap the rewrite and go to another outside
vendor to do it all over again.

If they'd just bought into an SQL Server back end in the first place, I have no
doubt they would still be running that application.
--
PeteCresswell
Mar 22 '07 #4
Is it true then that there is absolutely no way to control the
corruption issues that are relevant to an MDB babckend? That is to
say, that we are unable to detect and correct for these issues via
code, except perhaps by quite literally have a front end re-create the
backend and import the last / most recent set of data backups?

I was also looking into the possible elimination of corruption
conditions, but have found this an extremely difficult task to pin
anything down except certain environmental factors (with the help of
many postings here in this newsgroup). I am curious if anyone has had
any success with "correcting " corruptions from a front end without
having to do the whole make-a-new approach. Any takers?

The Frog

Mar 23 '07 #5
>From: "Tony Toews [MVP]" <tto...@teluspl anet.net>
>
I'm not quite clear on how you can be in the design mode of a table and edit a
record. Do you mean datasheet mode?
Yes, I misspoke. I should have said datasheet mode.

On Mar 23, 8:36 am, "The Frog" <andrew.hogend. ..@eu.effem.com wrote:
Is it true then that there is absolutely no way to control the
corruption issues that are relevant to an MDB babckend? ...I am curious if anyone has had
any success with "correcting " corruptions from a front end without
having to do the whole make-a-new approach. Any takers?
Hey Frog:

I found several references (some from MS) stating that:

"(3) Executing the 'Compact and Repair' options inside an Access
database
regularly is recommended as a procedure to prevent corruption. This
should
certainly be executed every week for a database that is being used
daily. "

ACC2000: How to Troubleshoot/Repair a Damaged Jet 4.0 Database
(Q209137)
http://support.microsoft.com/default...;EN-US;q209137

That isn't exactly "using code", but it's the only thing I've found
that even begins to address this.

Other excerpts from that KB article:

"In most cases, database corruption is *not* the result of poor
programming
techniques or sloppy design." (emphasis added)

(4) Avoid mixing operating systems in a multi-user environment. For
example, Windows 98 with Windows 2000.

(6) When designing the database tables it is prudent to be sensible
about
the number of fields per table. As a general indicator, most tables
should
contain no more than 25 fields.

(7) Consider disabling opportunistic locking on the file server it is
Windows NT or Windows 2000 based.


Mar 23 '07 #6
"Doug" <sp*******@gmai l.comwrote in
news:11******** **************@ y80g2000hsf.goo glegroups.com:
In addition, I thought that if I abnormally exited the program
(CTRL- ALT-DEL and kill the process while the program is loading,
etc.), that there would be a very good chance of corrupting the
DB. Especially (only?) if you killed it while it was accessing a
record, before it closed a recordset, etc.
If it's in edit mode it's much more likely. Have two users (or two
instances of Access on the same machine) edit a memo field
simultaneously, and kill one or both instances of Access and you've
got a pretty good chance of corrupting the records (though not
necessarily the database). You don't even have to kill Access to
make it happen with the memo fields.

--
David W. Fenton http://www.dfenton.com/
usenet at dfenton dot com http://www.dfenton.com/DFA/
Mar 23 '07 #7
"Tony Toews [MVP]" <tt****@teluspl anet.netwrote in
news:s8******** *************** *********@4ax.c om:
What might work is running a SQL query updating a few thousand
records and powering off the system abruptly.
Or running a massive append and killing the process in the middle of
the append.

--
David W. Fenton http://www.dfenton.com/
usenet at dfenton dot com http://www.dfenton.com/DFA/
Mar 23 '07 #8
"Doug" <sp*******@gmai l.comwrote in
news:11******** **************@ n59g2000hsh.goo glegroups.com:
I found several references (some from MS) stating that:
In my experience, since A2K was released, the biggest cause of
corruption is bad versions of Jet and Access. I've had only one
hardware problem (which didn't result in corruption) with Access
since about 2000, and that was with an A97 application.

But with A2K and higher, clients have had more corruption, maybe 1
client a year. One of my clients using A2K had problems when one
workstation got reverted to the release version of A2K -- that's
almost guaranteed to cause problems.

--
David W. Fenton http://www.dfenton.com/
usenet at dfenton dot com http://www.dfenton.com/DFA/
Mar 23 '07 #9
pks
On Mar 23, 7:36 am, "The Frog" <andrew.hogend. ..@eu.effem.com wrote:

.. . .
>
I was also looking into the possible elimination of corruption
conditions, but have found this an extremely difficult task to pin
anything down except certain environmental factors (with the help of
many postings here in this newsgroup). I am curious if anyone has had
any success with "correcting " corruptions from a front end without
having to do the whole make-a-new approach. Any takers?
Frog,

I had a client with about 40-50 users (maybe 35 concurrent) that had
an ongoing problem with corruption. After trying everything that I
could come up with (and a big THANK YOU to this NG), I was left with
intermittent network issues. We then set them up with a Terminal
Server with the BE on the TS and a copy of the FE in each user
profile's desktop, with all users accessing the DB via TS even though
they were in the same office. With the DB network traffic eliminated,
the corruption issue stopped. Even with 2 users accessing the DB
across the network instead of via TS (one occasional and one heavy
user), we had no more corruption.

It worked great until about 6 months ago when the corruption problem
returned, although not as severe. Come to find out that they added a
second TS for users on another floor, and that TS was connecting to
the DB over the network. We haven't gotten anywhere yet with moving
those users to the original server, but with running a compact/repair
2-3 times per week, the corruption is minimal although it still
happens.

FWIW.

Mar 23 '07 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

10
1938
by: Arno R | last post by:
Hi all Yesterday I found a strange corruption-issue that I can't solve yet or actually point my finger at. I converted an A97 app to A2k. I have done this often enough so I didn't expect trouble here. Conversion seems OK and I start the app. BUT . . . Mainform doesn't work. Form comes up but none of the buttons react. Why not? I go to design view and see that code is not compiled. (compile-option is active) So I compile and go to normal...
19
2736
by: Mark C. | last post by:
The company I work for has been running Access 2000 on a Windows NT server with Opportunistic Locking turned off on the server without issue for almost a year. We have just switched to a Windows 2000 file server with service pack 3 installed and are now experiencing at least 2 corruptions a day. The registry setting for Opportunistic Locking that was on the Windows NT server does not exist on the Windows 2000 server so we can not make the...
5
2117
by: Upendra Agnihotram | last post by:
Hi, I am having Client-Server Access application. The source db resides on WinNT Server and some of the client systems are on Windows 2000 Professional. These days i am experiencing frequent corruption of the source database (nearly 3 to 4 times a day) which is on NT Machine?. Please let me know if there is any solution for this --Upendra Software Support Engineer
7
1919
by: Doug Vogel | last post by:
Hi All - I have a client for whom I developed an Access 2000 database. The database is split into 2 files - front-end (forms, queries, reports), and back-end (tables). An .mde file has been made for the front end file. Recently, they have been noticing some "problems" with the system. Basically this system creates invoices for their customers. They have been noticing that some of the invoices are now "wrong", specifically
47
4544
by: ship | last post by:
Hi We need some advice: We are thinking of upgrading our Access database from Access 2000 to Access 2004. How stable is MS Office 2003? (particularly Access 2003). We are just a small company and this is a big decision for us(!) It's not just the money it's committing to an new version of Access!
2
2635
by: Robert Oschler | last post by:
Need help with HEAP CORRUPTION and my MSVC 6 DLL I have a MSVC 6 DLL that I've written. It is used heavily by a Delphi 6 app I've written. For two months everything has been working fine. Then I changed some things in the code recently, and now I'm getting what looks like severe corruption of the heap. I am wondering if it is some strange interaction between the Delphi app and
8
3414
by: ranjeet.gupta | last post by:
Dear All Is the Root Cause of the Memory corruption is the Memory leak, ?? suppose If in the code there is Memory leak, Do this may lead to the Memory Corruption while executing the program ? In nut shell, what is/are the realtion/s between the Memory Leak and Memory Corruption. Juts Theoritical Assumtion below:
14
3366
by: =?Utf-8?B?UHVjY2E=?= | last post by:
Hi, I'm using VS2005 and .net 2.0. I'm creating an application that has 3 forms. I want allow users to move forward and backward with the forms and retain the data users have entered. I thought I'll make the inactive forms invisible but this is creating a memory corruption problem when user close the form2 or form3 and not the formMain. My main form has a Next button which makes the main form invisible and starts a new form which I'll...
8
1632
by: Slez via AccessMonster.com | last post by:
I have read many resources regarding corruption, and implemented as much as possible to prevent it, but I have one user that encounders corruption of their front end database, when no-one else does. Is there something on this users station that could cause this? I'm just fishing for any ideas on possible causes, so any suggestions / tips are appreciated! -- Message posted via AccessMonster.com...
0
9618
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
9454
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10101
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
10038
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
9906
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
8933
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
7456
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
6712
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5354
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.