Access Corruption caused by Citrix Timeout

S

Sherrie

I've got a split database, Access 2000 front end SQL
Server back end, that runs on a CITRIX server. The server
is set up to time-out after 30 minutes of inactivity. The
front end is repeatedly getting corrupted. I'm assuming
because CITRIX is improperly shutting down the database.
Any ideas on why I can do - other than turning off the
timeout - to prevent the database from getting corrupted?
 
A

Albert D. Kallal

Gee, I don't believe that you can let, or even being to think of having a
server go to sleep with applications like access running. I shudder at this
thought!

Now, but time out...do you mean the Citrix session? or do you mean the
server actually goes to sleep?

There is a few things to do:

1) Make sure that each user who logs onto the Citrix gets their own copy of
the front end. That means that each user gets their own copy of that mde
file (you are using a mde file...right???).

You *REALLY* want to avoid more then one user in the same front end. (and,
as mentioned it should be a mde). So, try this suggestion, as you need to do
this anyway (any competent access developer will tell you this...so...be a
competent developer!). Once again, each user that logs on gets THEIR OWN
copy of this front end in there own private folder....and you NEVER allow
more then one user in that same front end.

2) If #1 does not fix your problem, then AFTER you implement #1, then you
can add a inactivity timeout to your application. Say, after 20 minutes you
have the app quit.

However, right now...likely your problem the #1 above. Fix that...and you
likely will NOT have to do number 2.

And, as mentioned...I *really* hope by timeout..you mean the Citrix
session...and not that the actual server is going to sleep...as that can't
be really done!
 
S

Simon Harris

Albert - Im not disagreeing with what you are saying, but how would you give
each user there own copy of the front end in a Citrix envoronment? Just
intrigued.

Simon.
 
A

Albert D. Kallal

Each user can, or has their own my "documents folder", So, you could even
put the front end in that folder. There are also several other folders that
can be attached to each session. In fact, most users get their own home dir
when you add the user anyway. So, anything that belongs to each individual
user should go in their home dir along with all other files that belong to
that one user. This would include their front end.

So, just use the users default home dir. Often, Citrix is used for just
remote use of one application...but often Citrix is also used to create a
complete windows environment with a separate desktop, my documents..email
etc. It really depends on how the admin setup the uses. However, even if a
separate desktop is not saved for each user (not sure if you can share the
same desktop anyway...)..they all can have a their own home dir.

So, not really a difficult problem at all...and is standard fair for any
system admin.

And, of course, since over time, one might make additions, and upgrades,
then Tony's fine "auto" front end updater has also been modified to work
with Terminal Services/Citrix also. So, the issue of updating users with a
new front end is now eliminated, and no lame arguments exist about too much
work to copy a new front end to each user when a new versio comes out.

Tony's auto front end updater is usually used in a network environment to
download a new front end for each user...but his utility also now works in a
TS/Citrix environment also. Check it out at:


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

Right now, the original poster mentioned they are using sql server for the
data store...so they should have a VERY reliable and trouble free
environment. However, but not following standard practices...they are
experiencing troubles..and spending time on something that should not be a
problem.
 
T

Tony Toews

Albert D. Kallal said:
Each user can, or has their own my "documents folder", So, you could even
put the front end in that folder. There are also several other folders that
can be attached to each session. In fact, most users get their own home dir
when you add the user anyway. So, anything that belongs to each individual
user should go in their home dir along with all other files that belong to
that one user. This would include their front end.

So, just use the users default home dir.

Note though that you can use the users default home directory, or
whatever directory you choose, so long as they are on the same LAN as
the backend. If, however, some users are on the WAN, even if at 10
mpbs, you want to put the FE MDB/MDE either on the backend server or
preferably on the Citrix server local to the back end.

To use an example. A client has offices scattered across Canada each
with their own set of Citrix Servers and file servers. Some users in
Ontario use a system running in Alberta. You do not want the users in
Ontario to use their home directory which is in Ontario to store the
Access FE. You will be getting all the performance and corruption
problems we are warning you against.

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
 
S

Sherrie

Thanks for your suggestions. I don't know how our CITRIX
enviroment is setup. I've sent your suggestions to our
Systems Engineer. If it is not feasible to give each user
a separate front end as you have suggested, do you have
some sample code for closing Access after a specific
period of inactivity?

Sherrie
 
L

Larry Linson

I cannot imagine anything (other than, perhaps, inflexible administrators)
which would make it not feasible to give each user a separate front-end.
Tony has an auto-updater at his site, and I have an article on "versioning"
at http://accdevel.tripod.com -- both solutions to the commonly-raised
complaint about it being too much trouble to keep all users up-to-date with
the front end.

Larry Linson
Microsoft Access MVP
 
T

Tony Toews

Sherrie said:
Thanks for your suggestions. I don't know how our CITRIX
enviroment is setup. I've sent your suggestions to our
Systems Engineer. If it is not feasible to give each user
a separate front end as you have suggested,

We strongly, strongly recommend you give each user their own FE.
1) You run a greatly increased chance of corrupting the FE.
2) You will have to kick all the users out to make any updates to it.

As Larry mentions I specifically created the Auto FE Updater utility
so that I could make changes to the FE MDE as often as I wanted and be
quite confident that the next time someone went to run the app that it
would pull in the latest version. For more info on the errors or the
Auto FE Updater utility see the free Auto FE Updater utility at
http://www.granite.ab.ca/access/autofe.htm at my website to keep the
FE on each PC up to date.

In a Terminal Server or Citrix environment the Auto FE Updater now
supports creating a directory named after the user on a server. Given
a choice put the FE on the Citrix server to reduce network traffic and
to avoid having to load objects over the network which can be somewhat
sluggish.
do you have
some sample code for closing Access after a specific
period of inactivity?

HOW TO: Detect User Idle Time or Inactivity in Access 2000 (Q210297)
http://support.microsoft.com/?kbid=210297
ACC: How to Detect User Idle Time or Inactivity (Q128814)
http://support.microsoft.com/?kbid=128814

However we found that the code which runs on the timer event must be
disabled for the programmers. Otherwise weird things start happening
when you're editing code.

Also print preview would sometimes not allow the users to run a menu
item to export the report to Excel or others. So you had to right
click on the Previewed report to get some type of internal focus back
on the report so they could then export it. This was also helped by
extending the timer to five minutes.

The downside to extending the timer to five minutes was if a person
stays in the same form and at the same control for considerable parts
of the day, ie someone doing the same inquiries, the routine didn't
realize that they had actually done something. I'll be putting in
some logic sometime to reset this timer whenever they do something in
the program.

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
 
S

Sherrie

Thanks Tony! It sounds like your auto uploader is a good
tool, but again I'm just not sure if it is feasible for us
to setup a separate fe for each user. I'm, still waiting
to hear back from our systems engineer. In the mean time
I'm going to try out the code for detecting inactivity. I
appreciate your help!
 

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