473,856 Members | 1,601 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Access on Citrix: will global vars come back to haunt me

DFS
An application I wrote has been deployed on Citrix, and the Citrix admin
tells me all users run the same .mde file. There aren't a lot of concurrent
users, but even 2 could be cause for concern.

I think the use of globals is worrisome in this case. Anybody have any
experience with Access on Citrix?

(Al Kallal already griped me out about globals, but if he has anything new
to add I'm all ears).
Thanks
Nov 13 '05 #1
33 3300
It doesn't matter how you try, you can't share VBA
globals between users.

There are several reasons for not using a shared file,
but use of VBA global variables is not one of them.

There are several reasons for not using VBA Globals,
but use of Citrix is not one of them.

(david)

"DFS" <nospam@dfs_.co m> wrote in message news:bn******** *******@fe04.lg a...
An application I wrote has been deployed on Citrix, and the Citrix admin
tells me all users run the same .mde file. There aren't a lot of
concurrent
users, but even 2 could be cause for concern.

I think the use of globals is worrisome in this case. Anybody have any
experience with Access on Citrix?

(Al Kallal already griped me out about globals, but if he has anything new
to add I'm all ears).
Thanks

Nov 13 '05 #2
Nicely put!

On Thu, 27 Oct 2005 19:08:14 +1000, "david epsom dot com dot au"
<david@epsomdot comdotau> wrote:
It doesn't matter how you try, you can't share VBA
globals between users.

There are several reasons for not using a shared file,
but use of VBA global variables is not one of them.

There are several reasons for not using VBA Globals,
but use of Citrix is not one of them.

(david)

"DFS" <nospam@dfs_.co m> wrote in message news:bn******** *******@fe04.lg a...
An application I wrote has been deployed on Citrix, and the Citrix admin
tells me all users run the same .mde file. There aren't a lot of
concurrent
users, but even 2 could be cause for concern.

I think the use of globals is worrisome in this case. Anybody have any
experience with Access on Citrix?

(Al Kallal already griped me out about globals, but if he has anything new
to add I'm all ears).
Thanks


Nov 13 '05 #3
DFS
david epsom dot com dot au wrote:
It doesn't matter how you try, you can't share VBA
globals between users.
Which means Citrix (or Access itself) runs an instance for each user in a
separate memory space. Not really a separate instance for each (that would
be extremely inefficient), probably a pointer to the first instance.

There are several reasons for not using a shared file,
but use of VBA global variables is not one of them.
It's not my decision on using the single .mde.

There are several reasons for not using VBA Globals,
but use of Citrix is not one of them.
Gotcha.

Thanks

(david)

"DFS" <nospam@dfs_.co m> wrote in message
news:bn******** *******@fe04.lg a...
An application I wrote has been deployed on Citrix, and the Citrix
admin tells me all users run the same .mde file. There aren't a lot
of concurrent
users, but even 2 could be cause for concern.

I think the use of globals is worrisome in this case. Anybody have
any experience with Access on Citrix?

(Al Kallal already griped me out about globals, but if he has
anything new to add I'm all ears).
Thanks

Nov 13 '05 #4
From postings in this group and my experience with a number of consultants,
most Terminal sever / Citrix admins have no clue on how to run Access. They
to treat the MDE like an EXE. You will need to convince them that each user
must get a private copy of the MDE front end and share the Access program or
runtime.

"DFS" <nospam@dfs_.co m> wrote in message news:bn******** *******@fe04.lg a...
An application I wrote has been deployed on Citrix, and the Citrix admin
tells me all users run the same .mde file. There aren't a lot of concurrent users, but even 2 could be cause for concern.

I think the use of globals is worrisome in this case. Anybody have any
experience with Access on Citrix?

(Al Kallal already griped me out about globals, but if he has anything new
to add I'm all ears).
Thanks

Nov 13 '05 #5
On Thu, 27 Oct 2005 11:23:27 -0400, "DFS" <nospam@dfs_.co m> wrote:
david epsom dot com dot au wrote:
It doesn't matter how you try, you can't share VBA
globals between users.


Which means Citrix (or Access itself) runs an instance for each user in a
separate memory space. Not really a separate instance for each (that would
be extremely inefficient), probably a pointer to the first instance.


Separate processes with separate data memory space, one copy of the Access EXE
and DLLs in memory.
There are several reasons for not using a shared file,
but use of VBA global variables is not one of them.


It's not my decision on using the single .mde.


I'd make 2 MDEs in the shared location. The first one is a loader that checks
whether the user's unique copy is up-to-date (stored under the user's
documents and settings somewhere), makes a new unique copy if it needs to be
updated, then opens the other MDE using Shell "...msaccess.ex e
""<unique-mde-copy-path"" ".

It may sound like this would greately increase start-up time, but it turns out
to be very fast. Access.exe is only loaded into memory once, so launching a
separate instance is very low overhead.

Nov 13 '05 #6
DFS
Steve Jorgensen wrote:
On Thu, 27 Oct 2005 11:23:27 -0400, "DFS" <nospam@dfs_.co m> wrote:
david epsom dot com dot au wrote:
It doesn't matter how you try, you can't share VBA
globals between users.
Which means Citrix (or Access itself) runs an instance for each user
in a separate memory space. Not really a separate instance for each
(that would be extremely inefficient), probably a pointer to the
first instance.


Separate processes with separate data memory space, one copy of the
Access EXE and DLLs in memory.


Which sounds like my global variables will be 'safe' inside the user
instance, and one user can't overwrite another's. I'll be running some
tests to ensure, but that sounds hopeful.

Since I didn't design the system for use on Citrix, and in past the client
did install a copy for each user, I also now face the issue of using a few
local tables for reporting and querying. I think those local tables in the
..mde will be shared by all users (looking at them, I got lucky and it won't
matter this time - but it could in other systems).

The bottom line: Citrix deployment can impact your Access system design.

There are several reasons for not using a shared file,
but use of VBA global variables is not one of them.


It's not my decision on using the single .mde.


I'd make 2 MDEs in the shared location. The first one is a loader
that checks whether the user's unique copy is up-to-date (stored
under the user's documents and settings somewhere), makes a new
unique copy if it needs to be updated, then opens the other MDE using
Shell "...msaccess.ex e ""<unique-mde-copy-path"" ".


Not quite understanding you. The 'shared location' is on the Citrix Server.
All users run the same .mde. That .mde will always be up to date. The
users run the Access system from inside a web browser.

It may sound like this would greately increase start-up time, but it
turns out to be very fast. Access.exe is only loaded into memory
once, so launching a separate instance is very low overhead.

Nov 13 '05 #7
DFS
paii, Ron wrote:
From postings in this group and my experience with a number of
consultants, most Terminal sever / Citrix admins have no clue on how
to run Access. They to treat the MDE like an EXE. You will need to
convince them that each user must get a private copy of the MDE front
end and share the Access program or runtime.
That's what I thought would be the case as well. But I'm hearing
differently from others here in cdma. I'm hearing it won't matter that all
users run the same .mde.

This client has been sharing a single .mde on Citrix for 6 to 8 months
already, but I'm just now hearing about it.

The users haven't reported any problems, but I'm going to do some tests with
the Citrix admin at the client site, and I'll report back.

"DFS" <nospam@dfs_.co m> wrote in message
news:bn******** *******@fe04.lg a...
An application I wrote has been deployed on Citrix, and the Citrix
admin tells me all users run the same .mde file. There aren't a lot
of concurrent users, but even 2 could be cause for concern.

I think the use of globals is worrisome in this case. Anybody have
any experience with Access on Citrix?

(Al Kallal already griped me out about globals, but if he has
anything new to add I'm all ears).
Thanks

Nov 13 '05 #8

"DFS" <nospam@dfs_.co m> wrote in message
news:3s******** ***********@fe0 5.lga...
paii, Ron wrote:
From postings in this group and my experience with a number of
consultants, most Terminal sever / Citrix admins have no clue on how
to run Access. They to treat the MDE like an EXE. You will need to
convince them that each user must get a private copy of the MDE front
end and share the Access program or runtime.
That's what I thought would be the case as well. But I'm hearing
differently from others here in cdma. I'm hearing it won't matter that

all users run the same .mde.

This client has been sharing a single .mde on Citrix for 6 to 8 months
already, but I'm just now hearing about it.

The users haven't reported any problems, but I'm going to do some tests with the Citrix admin at the client site, and I'll report back.

"DFS" <nospam@dfs_.co m> wrote in message
news:bn******** *******@fe04.lg a...
An application I wrote has been deployed on Citrix, and the Citrix
admin tells me all users run the same .mde file. There aren't a lot
of concurrent users, but even 2 could be cause for concern.

I think the use of globals is worrisome in this case. Anybody have
any experience with Access on Citrix?

(Al Kallal already griped me out about globals, but if he has
anything new to add I'm all ears).
Thanks



You can get away with sharing for a while, but when one of your users
crashes the app and corrupts the MDE, all your users will go down with him.
Also any local temp tables in the MDE are shared by all users, which can
cause them to interfere with each other. Search for Terminal server in this
group, I am sure others can give your more reasons to not share the front
end. Also check the Microsoft site for using Access on terminal server.
Nov 13 '05 #9
"DFS" <nospam@dfs_.co m> wrote in news:Nh******** ********@fe04.l ga:
It's not my decision on using the single .mde.


Then you're bound for a huge number of problems.

Each user *must* have their own copy of the front end. If they don't
it's never going to work reliably.

It's stupid of your admins to put such a restriction on you since
there is absolutely no justification for it at all. The additional
disk space and memory required are trivial by themselves, but even
moreso in comparison to the cost of recovering from the problems
that sharing a front end will cause.

--
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

0
1363
by: Kepes Krisztian | last post by:
Hi ! How to access my module global vars ? Some applications I want to declare global vars (constants). But in the module I cannot access them: DEF_X=120
0
1257
by: Christopher J. Bottaro | last post by:
>From the python programming FAQ, I learned you can do this: Globals.py: gv = 1 A.py: import Globals class A: def __init__(self): print Globals.gv
6
2032
by: flamesrock | last post by:
ok, so to my knowledge, object oriented means splitting something into the simplest number of parts and going from there. But the question is- when is it enough? For example I have the following code: #def put_file(file_id, delete=False): # """ Function to put the file on the FTP Server # """ # print " FTP for this file started"
10
2658
by: Kleenex | last post by:
Reason: I am working on an embedded project which has very limited memory (under 512 bytes, 60 or so of which is stack space), which translates into limited stack space. In order to save on stack space, I tried to only use parameters and stack space for things which are truely temporary. Instead of passing a pointer to a data structure which should always be populated with data, I have the data structure declared as a global variable and...
0
9918
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...
1
10786
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
10389
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...
1
7932
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
7097
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
5762
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...
1
4578
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
4175
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
3202
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.