473,791 Members | 3,122 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Interesting issue with compaction. Any ideas to eliminate?

I have stumbled upon an interesting issue with regard to compaction of
an access frontend database which resides on a DFS target that utilizes
FRS to mirror the sharepoint, and I was wondering if anyone knows a way
to overcome it.

For those who are unaware of DFS or FRS, DFS stands for Distributed
File System, and basically involves "mounting" various sharepoints that
reside on various computers underneath one special sharepoint. When
you access the mounted directory under the DFS share, you are invisibly
redirected to where the share really is. FRS stands for File
Replication System (I think. it could be Service, tho). If you
indicate that a particular mount point in the DFS share has two or more
target sharepoints, you can tell Windows to use FRS to ensure changes
to the files in the sharepoint are replicated to the other targets.
Both of these are built-in technologies of Windows 2003 server.

On to what I have observed. We have a frontend/backend Access 2003
database application residing on one of these FRS replicated
sharepoints, and have the option to compact the database on close
turned on. What I am seeing is that when the compaction occurs, the
frontend database is renamed to DB1.mdb, and this name change is then
replicated to the other servers. The name is never changed back again,
leaving the shortcuts that the users use to access the database broken.
I have turned off the compact on close option, and the effect stops,
so the issue is linked to compacting on a FRS replicated sharepoint. I
would like to turn the compaction back on, as the database tends to
grow rather large, but I do not want the database's filename to change.
Any ideas?

Nov 13 '05 #1
11 2288
da********@gmai l.com wrote:
I have stumbled upon an interesting issue with regard to compaction of
an access frontend database which resides on a DFS target that
utilizes FRS to mirror the sharepoint, and I was wondering if anyone
knows a way to overcome it.

For those who are unaware of DFS or FRS, DFS stands for Distributed
File System, and basically involves "mounting" various sharepoints
that reside on various computers underneath one special sharepoint.
When you access the mounted directory under the DFS share, you are
invisibly redirected to where the share really is. FRS stands for
File Replication System (I think. it could be Service, tho). If you
indicate that a particular mount point in the DFS share has two or
more target sharepoints, you can tell Windows to use FRS to ensure
changes to the files in the sharepoint are replicated to the other
targets. Both of these are built-in technologies of Windows 2003
server.

On to what I have observed. We have a frontend/backend Access 2003
database application residing on one of these FRS replicated
sharepoints, and have the option to compact the database on close
turned on. What I am seeing is that when the compaction occurs, the
frontend database is renamed to DB1.mdb, and this name change is then
replicated to the other servers. The name is never changed back
again, leaving the shortcuts that the users use to access the
database broken. I have turned off the compact on close option, and
the effect stops, so the issue is linked to compacting on a FRS
replicated sharepoint. I would like to turn the compaction back on,
as the database tends to grow rather large, but I do not want the
database's filename to change. Any ideas?


Just an opinion. One should never allow multiple users to open a single
shared file as this leads to frequent corruptions and degrades performance.
The recommended approach is to split your app into a shared "data only" file
and individual local copies of a "front end file" for each user. With this
approach "Compact On Close" is rendered pretty useless as it only compacts
the front end file meaning that you are back to doing regular manual
compactions on the data file and your original issue becomes moot.

--
I don't check the Email account attached
to this message. Send instead to...
RBrandt at Hunter dot com
Nov 13 '05 #2
I believe the cause of this is that Access renames the current copy, then
compacts it into a file with the old name, and finally deletes the renamed
original. I can't think of what a work-around might be for this problem.

On 19 Jul 2005 07:13:47 -0700, "da********@gma il.com" <da********@gma il.com>
wrote:
I have stumbled upon an interesting issue with regard to compaction of
an access frontend database which resides on a DFS target that utilizes
FRS to mirror the sharepoint, and I was wondering if anyone knows a way
to overcome it.

For those who are unaware of DFS or FRS, DFS stands for Distributed
File System, and basically involves "mounting" various sharepoints that
reside on various computers underneath one special sharepoint. When
you access the mounted directory under the DFS share, you are invisibly
redirected to where the share really is. FRS stands for File
Replication System (I think. it could be Service, tho). If you
indicate that a particular mount point in the DFS share has two or more
target sharepoints, you can tell Windows to use FRS to ensure changes
to the files in the sharepoint are replicated to the other targets.
Both of these are built-in technologies of Windows 2003 server.

On to what I have observed. We have a frontend/backend Access 2003
database application residing on one of these FRS replicated
sharepoints, and have the option to compact the database on close
turned on. What I am seeing is that when the compaction occurs, the
frontend database is renamed to DB1.mdb, and this name change is then
replicated to the other servers. The name is never changed back again,
leaving the shortcuts that the users use to access the database broken.
I have turned off the compact on close option, and the effect stops,
so the issue is linked to compacting on a FRS replicated sharepoint. I
would like to turn the compaction back on, as the database tends to
grow rather large, but I do not want the database's filename to change.
Any ideas?


Nov 13 '05 #3


Steve Jorgensen wrote:
I believe the cause of this is that Access renames the current copy, then
compacts it into a file with the old name, and finally deletes the renamed
original. I can't think of what a work-around might be for this problem.


You *might*, and this is strictly thinking aloud, be able to capture
such an event or cause such an event to be written to the Event Log,
and you could write a Windows Service that would clean up the whole
sorry mess in response to the event. Of course, this is quite a lot of
work for such a bitty problem, and it might not even work at all!

Edward

Nov 13 '05 #4
As I indicated, it is a front-end/back-end split database. It just
happens that both the front-end and back-end reside in the same
directory on the server. I see your point that the compact on close
will only affect the front-end. It does appear, though, that this
compaction still is effective, as the frontend tends to grow in size
during the normal process of use. I figure that this means temporary
tables are being generated and then deleted on the frontend in order to
load a form or report. I have no way of tracking this behaviour down,
as I was not the one who designed the app, and I wouldn't know where to
start to look. My preference is to keep it the way it is, and get the
compaction to work.

Nov 13 '05 #5
da********@gmai l.com wrote:
As I indicated, it is a front-end/back-end split database. It just
happens that both the front-end and back-end reside in the same
directory on the server. I see your point that the compact on close
will only affect the front-end. It does appear, though, that this
compaction still is effective, as the frontend tends to grow in size
during the normal process of use. I figure that this means temporary
tables are being generated and then deleted on the frontend in order to
load a form or report. I have no way of tracking this behaviour down,
as I was not the one who designed the app, and I wouldn't know where to
start to look. My preference is to keep it the way it is, and get the
compaction to work.


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I believe you missed the point Rick Brandt was making - each user should
have a copy of the front-end on their PC (or work folder, if you're
using a VPN). It sounds like you have ONE front-end on a server and ALL
users are using that one front-end. This is a no-no 'cuz it can lead to
corruption.
--
MGFoster:::mgf0 0 <at> earthlink <decimal-point> net
Oakland, CA (USA)

-----BEGIN PGP SIGNATURE-----
Version: PGP for Personal Privacy 5.0
Charset: noconv

iQA/AwUBQt05QIechKq OuFEgEQJX0gCfZz n57/xNPCYatkIK0VFhX 49smZUAoMBs
Qoo32bcKNdpHhMo EEZZF4vWy
=s9Li
-----END PGP SIGNATURE-----
Nov 13 '05 #6
"da********@gma il.com" <da********@gma il.com> wrote in
news:11******** *************@f 14g2000cwb.goog legroups.com:
I have stumbled upon an interesting issue with regard to
compaction of an access frontend database which resides on a DFS
target that utilizes FRS to mirror the sharepoint, and I was
wondering if anyone knows a way to overcome it.


Sharing a front end is a stupid thing to do to begin with. Each user
should have their own copy of the front end.

The back end *is* shared, though, and that still needs to get
compacted. But, since no shortcuts point to it, only links in the
tables, there is no problem caused by the propagation of the name
change of the back end, since no one is opening it directly. To
avoid the problem with not propagating the renaming of the file back
from DB1.MDB, don't compact with the actual back end open in the
front end. Instead, run code that renames the back end, compacts it
to the original file name (i.e., creates a new file) then deletes
the original (or, better still, archives it somewhere).

If you're not using an MDB file for your data, there is no problem
at all once you get away from wrongly sharing the front end.

--
David W. Fenton http://www.bway.net/~dfenton
dfenton at bway dot net http://www.bway.net/~dfassoc
Nov 13 '05 #7
"da********@gma il.com" <da********@gma il.com> wrote in
news:11******** *************@g 49g2000cwa.goog legroups.com:
As I indicated, it is a front-end/back-end split database. It
just happens that both the front-end and back-end reside in the
same directory on the server. I see your point that the compact
on close will only affect the front-end. It does appear, though,
that this compaction still is effective, as the frontend tends to
grow in size during the normal process of use. I figure that this
means temporary tables are being generated and then deleted on the
frontend in order to load a form or report. I have no way of
tracking this behaviour down, as I was not the one who designed
the app, and I wouldn't know where to start to look. My
preference is to keep it the way it is, and get the compaction to
work.


If you are *sharing* the front end (i.e., multiple users opening it
simultaneously) , that is the source of the bloat.

A properly designed front end will grow to a certain point and then
stop growing. If it continues to bloat, then you have design
problems (such as non-compiled code). There are a few things to do
for this problem:

1. move any temp tables to a separate temp.mdb that is either
recreated in code when needed, or copied from an empty reference
copy on the server.

2. distribute your front end as an MDE so it can't decompile (which
results in recompiling on the fly, which results in bloat).

Converting to an MDE will fail in cases where there's something
corrupt in the code. Often corruption in the compiled code is hidden
by VBA's use of flags to tell whether code has been compiled instead
of actually recompiling the whole thing. The result is that invalid
compiled code can exist in a project that throwse no errors when you
compile it.

The creation of the MDE throws away all the compiled code and starts
over from the canonical code, and will thus reveal all errors in the
canonical code. A decompile will do the same thing.

Why am I mentioning all of this? Because recompiling of code because
of invalid compilation is one of the causes of bloat.

Last of all, once you have non-shared front ends and have reduced
bloat to the bare minimum, you never need to compact the front end.
If something goes wrong, you simply replace it with a fresh copy.

Front ends are fungible.

Any particular front end file is completely expendable.

--
David W. Fenton http://www.bway.net/~dfenton
dfenton at bway dot net http://www.bway.net/~dfassoc
Nov 13 '05 #8
MGFoster <me@privacy.com > wrote in
news:oP******** ******@newsread 3.news.pas.eart hlink.net:
da********@gmai l.com wrote:
As I indicated, it is a front-end/back-end split database. It
just happens that both the front-end and back-end reside in the
same directory on the server. I see your point that the compact
on close will only affect the front-end. It does appear, though,
that this compaction still is effective, as the frontend tends to
grow in size during the normal process of use. I figure that
this means temporary tables are being generated and then deleted
on the frontend in order to load a form or report. I have no way
of tracking this behaviour down, as I was not the one who
designed the app, and I wouldn't know where to start to look. My
preference is to keep it the way it is, and get the compaction to
work.


I believe you missed the point Rick Brandt was making - each user
should have a copy of the front-end on their PC (or work folder,
if you're using a VPN). It sounds like you have ONE front-end on
a server and ALL users are using that one front-end. This is a
no-no 'cuz it can lead to corruption.


Well, there's one point that suggest this is not the case. If they
have COMPILE ON CLOSE turned on for a shared front end, it would be
failing constantly.

This, of course, could be the cause of the failure to propagate the
name change, because once DB1.MDB is created, the original front end
file can't be deleted, since it's in use.

--
David W. Fenton http://www.bway.net/~dfenton
dfenton at bway dot net http://www.bway.net/~dfassoc
Nov 13 '05 #9
Steve Jorgensen <no****@nospam. nospam> wrote in
news:26******** *************** *********@4ax.c om:
I believe the cause of this is that Access renames the current
copy, then compacts it into a file with the old name, and finally
deletes the renamed original. I can't think of what a work-around
might be for this problem.


The way to avoid it is to not compact from the Access UI.

If you rename the original file, that name change should be
propagated by your file replication system. If you then compact that
file to the OLD name and delete the original (renamed) file, you
don't have problems with propagating the name change through your
replication system.

Of course, it may propagate shortcut changes to a deleted MDB, so it
may not be better.

But my suspicion is that the reason the file replication is failing
is *not* because the name change from DB1.MDB back to the original
file name is not propagating, but because the name change itself is
failing because the front end is shared and can't be deleted in
order to make room for DB1.MDB.

But I'm only speculating.

--
David W. Fenton http://www.bway.net/~dfenton
dfenton at bway dot net http://www.bway.net/~dfassoc
Nov 13 '05 #10

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

Similar topics

4
1986
by: Riley DeWiley | last post by:
I am using Jet 4.0 through OLEDB and C++. My travails with compaction are well known to regular readers of this NG. Many of my problems were solved by disabling record locking. I am now confronted with two remaining mysteries, which I suspect are related: ------------------------------------------------------------- The Mystery of the Zombie Session (a horror story)
1
1722
by: Riley DeWiley | last post by:
There is a way to ask a data source how much space would be freed if compaction were to be done. I saw the reference, but now cannot find it. Anyone know where that web page was? Even Google has not helped. RDeW
6
1602
by: Adrian | last post by:
Hi From within a VB app how do you cause a global memory compaction or free up as per the many memory freeing applications? Can you say via VB to windows to clean-up/ free up memory used by just one application? I have been looking for an example but thus far can't find one!
5
6107
by: mikez | last post by:
Hi, We recently built a very basic file management system for a client in Access 2003 (to use with incoming tif scans). In it we used Microsoft's Document Imaging activex viewer (from Office 2003). The viewer seems to be a bit 'buggy', in that sometimes if you preview a tif image using the activex on a form, then goto another form, and then come back to preview the same image again on the first form, the preview no longer shows up...
6
1803
by: asadikhan | last post by:
Hello, I have a bit of a design issue around this application I am developing, and I just want to run it through some of the brains out here. So I have a table called ErrorCheck which contains fields ErrorID (PK) and ErrorName. There is another table called Client which contains fields ClientID (PK) and ClientName. Then there is a relationship table called ClientErrorCheck which contains foreign keys ErrorID and
1
1300
by: | last post by:
Hi all, I have an interesting issue that I think maybe related to AJAX. Here is my scenario:- I have an aspx page that contains an UpdatePanel with UpdateMode="conditional". There exists 2 usercontrols (ascx) inside this main UpdatePanel called UserControlA & UserControlB. Additionally, there is also a submit button inside this main UpdatePanel called BTNSUBMIT.
0
137
by: Gabriel Genellina | last post by:
En Wed, 14 May 2008 13:51:40 -0300, Ethan Furman <efurman@admailinc.com> escribió: *When* do you see the 30-secs delay? After uploading the files? I see they're transferred using SMTP, but I think you're not talking about the time it takes to send the mail. I'd use the old-fashioned "print" statement to see *what* gets executed and how long it takes each step. --
126
4430
by: jacob navia | last post by:
Buffer overflows are a fact of life, and, more specifically, a fact of C. All is not lost however. In the book "Value Range Analysis of C programs" Axel Simon tries to establish a theoretical framework for analyzing C programs. In contrast to other books where the actual technical difficulties are "abstracted away", this books tries to analyze real C programs taking into account pointers, stack frames, etc.
13
3520
by: SAL | last post by:
Hello, I'm trying to include a popup in the ItemTemplate of a gridview row. The ItemTemplate for the field contains a textbox and when the user clicks in the textbox I want a popup panel to show allowing the user to make a selection from the popup window. I have enabled AJAX extensions and have a working sample outside of a gridview. However, when I click in the textbox of a gridview row, all I see is a really small square instead of the...
0
9666
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
10419
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10201
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
10147
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,...
1
7531
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
6770
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();...
1
4100
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
3709
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
2910
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

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.