Multiple BE to a common FE on an Application Server??

R

rick

Some years ago I developed an Access2003 application that was distributed to
a number of sites in town. This app continues to run, however I would like
to take advantage of some computer changes that have taken place since it
was distributed. Namely, we now have a Win2003 Small Business Server and a
Windows2003 Application server within the SBS domain.

I would like to repatriate the BE .mdb's, keeping each intact (site specific
data). I would like to make a change to the FE that in effect asks the User
on the App Server for their Institution Name, check a password, and then
link the appropriate BE tables to their instance of the FE.

Question is - is this doable? I know I can do the User checking and table
linking (I have this code running in another app) but I am not clear as to
the FE instance running on the App Server. If 3 or so Users, each from a
different site, run the .mde do they each get their own private copy of the
..mde?

Thank you for your insight.

Rick
 
A

Albert D. Kallal

No, what you propose will not work.

On the other hand, you can not run MS access in any reliable way with more
than one user in the same front end in the first place.

So, if you correct your setup, then you can ask each individual user to link
to a particular back end, and you should not have any problems at all.

In other words, each user's WorkStation must get a running copy of your
front end (mde).

I explain why you really have to do this for Reasons of reliability in the
following article:

http://www.members.shaw.ca/AlbertKallal/Articles/split/index.htm
 
R

rick

Thank you for your reply, Albert.

I currently have an Access2003 application wherein I place both the FE
(.mde) and the BE (.mdb) in a folder on the server. The server does not have
Access installed. Each authorized user of this app has Access 2003 or 2007
installed on their client. They execute the FE using a shortcut to the
\\servername\folder\app.mde. It is my belief that the .mde is loaded into
their clients and executed under their Access. I just checked the server and
there are 3 users connected to the share yet there is no service or
processes running Access. So, in effect, each User does get a 'running copy'
of the FE on their client. This way I only have to create and maintain one
FE. And it has been running this way for the past 3 years with NO issues.

I agree, if this were the case wherein each was using the same copy of the
code there would be a huge mess and the FE would come screaming to a halt.

I have a policy that all company data, from Users Data Files to databases,
are to be maintained on the Small Business Server which gets backed up every
evening. Being a SBS there can only be 2 RDC connections to the server and
these must be Administrators. This made it necessary to get another server
and the full-blown Win2003 Server to allow non-admin users the ability to
run programs against the databases. I wish to use the same approach as
outlined above but with one twist - multiple BE's, all having an identical
schema, just the data is different. I would place the Access run-time on the
App Server. When the User logs on they get a private workspace where they
will get their own copy of the FE loaded from the SBS then attach to their
BE (through startup code).

Perhaps I should ask this question of someone in the Server users group?

Thanks.

Rick
 
D

David W. Fenton

amely, we now have a Win2003 Small Business Server and a
Windows2003 Application server within the SBS domain.

What's an "Application Server"? Is it a Windows Terminal Server? If
so, you can host your apps on it and let users run your app on it.
 
A

Albert D. Kallal

rick said:
Thank you for your reply, Albert.

I just checked the server and there are 3 users connected to the share yet
there is no service or processes running Access.

A file is a file is a file. You talking about a word file, or a access
database file on the server. there is no process running on the server.

You are simply opening a file. When you open a power-point file sitting on
the server, the server does not know, or care that it is power point,and
PowerPoint is not even installed on the server.
So, in effect, each User does get a 'running copy' of the FE on their
client.

Sure, you simply pulling that file from the server. However, you not telling
me that your pulling word.exe, or ms-access.exe form that server are you?
What is it about the last 20 years of history of how you been deploying
commercial applications that you missed here?
This way I only have to create and maintain one FE. And it has been
running this way for the past 3 years with NO issues.

If you had no issues, then fine. There was a time when some doctors used to
have a cigarette hanging out of their mouth when they were working on open
patients in the operating room. I am sure a lot of these doctors said that
these patients come out just fine, and they had no problems.

However, the problem is sometimes you will have problems. There's not much I
can do if your not experiencing any problems. Perhaps with just two or three
users, then that's fairly light usage, and you can get away with it.

I mean if you don't change your car oil on a regular basis, that car is not
likely going to break tomorrow. However, it still really good advice to
change you oil on a regular basis.

If your setup works fine the way it is, then you can attempt try your
relinking idea, but I would not risk that kind of setup. I guess you can
give it a try and see how well it works, but you'll not see my stamp of
approval on this.
I agree, if this were the case wherein each was using the same copy of the
code there would be a huge mess and the FE would come screaming to a halt.

Actually when you use most windows products, they are written with what is
called re-entrant code in mind. This is why you can launch twenty browsers,
but launching twenty different application takes up so much more memory.
(the reason for this is actually will only one copy of that browser .exe
code is actually in ram...only the working memory for variables is swapped).
word.exe also works this way.

For sure the copy of the code is pulled from the server and loaded into ram.
However, while ms-access.exe is written with re-entrant code in mind, mde
files are not. Certain aspects such as form filters, and any use of a local
tables is going to be problematic with multiple users use the same file.
they are simply not designed with multiple users opening the same code base.
I have a policy that all company data, from Users Data Files to databases,
are to be maintained on the Small Business Server which gets backed up
every evening.

Right, but you are failing to make a distinction between a users data, and
users programs. That front end is a program you running...not data.
Being a SBS there can only be 2 RDC connections to the server and these
must be Administrators.
This made it necessary to get another server and the full-blown Win2003
Server to allow non-admin users the ability to run programs against the
databases. I wish to use the same approach as outlined above but with one
twist - multiple BE's, all having an identical schema, just the data is
different. I would place the Access run-time on the App Server. When the
User logs on they get a private workspace where they will get their own
copy of the FE loaded from the SBS then attach to their BE (through
startup code).

When you run MS access with multiple users on terminal services as above, it
is still recommended that the logged on user gets their own separate copy of
the front end. This is not much different when you have multiple computers
hitting the back end, they will always get their own copy of the front end.

As I mentioned MS access.exe is written as re-entrant code, and thus you can
have one copy of the runtime installed on terminal server, and then have
twenty different users to log into terminal server, and they can all use
that one copy of ms-access. (and you'll not have a problem). However, you
still want to avoid multiple users opening the same front end, and terminal
server does NOT change this recommend approach.

As I said if you have it working fine for a few years with two or three
users in the same front end, then try it on terminal services and see what
kind of stability you get. If you only have 2, or 3 users...then you might
well get away with this approach...
 
R

rick

Yes, David, it is Windows Terminal Server running in File Server and
Application Server modes. When a User logs onto the Small Business Server
using Remote Web Workplace they see an icon saying: Connect to my
Application Server at Work.
 
S

Steve Schapel

Rick,

As mentioned by Albert, you really should have a separate copy of the
frontend Access application on the Terminal Server for each user.
 
D

David W. Fenton

For sure the copy of the code is pulled from the server and loaded
into ram. However, while ms-access.exe is written with re-entrant
code in mind, mde files are not. Certain aspects such as form
filters, and any use of a local tables is going to be problematic
with multiple users use the same file. they are simply not
designed with multiple users opening the same code base.

Actually, Albert, this isn't really the issue with sharing an
MDB/MDE -- a shared EXE file is used read-only, but an MDB/MDE is
written to by Access, and it's that writing that conflicts and
causes problems.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top