Solved

Deploying Application on Citrix

Posted on 2006-11-28
12
1,675 Views
Last Modified: 2012-08-13
I have an Access 2003 application with SQL Server 2000 backend that I wish to deploy on Citrix Presentation Server 4.0.  I have already deployed in a testing environment, with no problems.  However, there are many discussion threads here that mention that each user must have a copy of the front end in their profile, or the file will become corrupted.  

Is this applicable for Citrix, or just for Microsoft Terminal Server.  Im not a network admin, but it seems to me, that Citrix should somehow be able to handle this issue internally without the need to make several copies of the file for each user profile manually.

If I am wrong, and the multiple copy is necessary, can someone assist me with the steps for doing this.  I am very green with Citrix.

Thanks
0
Comment
Question by:BillPowell
  • 3
  • 3
  • 3
  • +2
12 Comments
 
LVL 38

Expert Comment

by:Jim P.
ID: 18030039
We have Citrix PS4. We use one DB per application with no problems.  Go for it.
0
 
LVL 8

Assisted Solution

by:Jillyn_D
Jillyn_D earned 100 total points
ID: 18030048
Hi BillPowell,

I have several applications with front-end/back-end that are deployed to multiple users in a Citrix environment.  I give each user a fresh copy of the front-end each time they log in, and place it in their profile on the Citrix box.  However, the other programming group has user connect directly.  They run into more corruption than I do, but not significantly more than they did connecting directly accross a semi-flakey network.

Good luck!
~Jillyn
0
 
LVL 84

Accepted Solution

by:
Scott McDaniel (Microsoft Access MVP - EE MVE ) earned 200 total points
ID: 18030140
Yes, each user should have their own copy of the frontend. Citrix is nothing more than a "network in a box" and has the same requirements as Terminal Server (they both run on the same platform, and Citrix is basically built on top of Terminal Services). Citrix can no more "handle this" than can Server 2000 or 2003.

You don't need to make copies for each user and deploy them manually, if that's what you're concerned with. I normally build a batch file that runs on user login that copies a frontend to the users MyDocuments folder and then runs that copy. This allows me to easily deploy updates as well, since all I have to do is just drop the new copy into the correct folder on the TS box and the update is done.

Here's a sample batch file:

@Echo Off
COPY "C:\PROGRA~1\LRO\WorkOrders.mde" "%USERPROFILE%\WorkOrders.mde"
C:\PROGRA~1\LRO\LRO.lnk

This does nothing more than copy one file to the user's My Doc area, then launches a standard .lnk (shortcut) file to properly start the Access program. You can get much fancier, of course, but I've found this to be as easy as anything else.

It's tough to give advice on where to start; I'd assume that, if you have a Citrix box then someone in your organization will be able to assist you with this. If you're doing this for a client, then I'd suggest enlisting the help of a Citrix Pro (since you concede that your Citrix skills are lacking). Setting up a Citrix box correctly is a daunting task even for experienced admins. Of course, the Citrix site offers a lot of web-based assistance, and the good thing about Citrix is you can hire one of their pros to do it off-site (assuming you allow them Admin perms on the box, that is).
0
 
LVL 38

Assisted Solution

by:Jim P.
Jim P. earned 100 total points
ID: 18030258
We have successfully done published applications of Access DB's from front-ends on Sybase, Oracle and SQL Server to Access only solutions.  We have the one database located in one central location and have both local and citrix users accessing the same mdb without corruption problems.

We had a dodgy network originally, but that was 3-4 years back since we cured that and have not had any corruption issues.
0
 
LVL 34

Assisted Solution

by:jefftwilley
jefftwilley earned 100 total points
ID: 18030557
We use a centralized application (shared) with a backside connection to a shared network server and give only the citrix client itself to the users. They don't ever receive the front end of my application...just a shortcut or virtual version of the front end. thus far, no corruption. 50 plus users.
J
0
 
LVL 11

Author Comment

by:BillPowell
ID: 18030937
This is very interesting.  Differing points of view coming from seasoned Access veterans.  I have always deployed front ends to each users workstation.  I wouldnt have it any other way.
For those who say that having one file on the citrix server shared, would you do the same on a regular network, and if not, why is it any different when your working in a Terminal Services environment?
0
What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

 
LVL 11

Author Comment

by:BillPowell
ID: 18030973
Scott,
We have an inhouse Citrix Administrator, so with a little more explanation, this would not be hard to implement Im sure.
0
 
LVL 34

Expert Comment

by:jefftwilley
ID: 18031054
It's a design choice. In my instance the application deployed on citrix is all transaction based. It is not used for anything more than data entry much like a survey with some import/export and reporting features. for larger applications that require much more processing I deploy a front end app to each desktop with a remote back end catering to that specific location. I also run terminal sessions where I have a central server and a only shortcut to my front end on each user's desktop vs a client. Again, no issues. So I guess it all depends on what you're doing and the capabilities of your network.
0
 
LVL 38

Expert Comment

by:Jim P.
ID: 18031220
I hate "Me too's" but we pretty much do it the same way as Jeff does his.
0
 
LVL 84
ID: 18031356
Install the application's frontend and backend as you normally would, making sure that all the necessary files, libaries, and controls (if needed) are available for All Users. Set the required permissions on the folder hosting the backend (read/write/create/delete for the Remote users group, whatever that may be called on your Citrix installation). Open the frontend and relink to the new backend location on the Citrix box.

If you're using a workgroup file, then build a desktop shortcut that correctly opens your database; if not, you can normally just call it directly, but I prefer to use a shortcut. Let's name the shortcut StartUp.lnk, and set the target to something like this:

"Full path to MSACCESS.exe" "Full path to the database" (add the /wrkgrp "Full path to your workgroup" if using security)

Note that on the Citrix box, the path to msaccess.exe will be the same for everyone, but the path to the database will be different user, so we use the environment variables to point the shortcut to the correct path:

"Full path to MSACCESS.exe" "%USERPROFILE%\UserFrontEnd.mde"

Note that the second part of the shortcut above exactly matches the second part of the COPY line in the batch file below ... that's important.

After building the shortcut, place it somewhere that's available to all users, like the folder hosting the backend file.

Now build a batch file similar to the one described above (we'll call it StartMeUp.bat, apologies to the Stones):

@Echo Off
COPY "C:\PROGRA~1\MyDatabase\MyFrontEnd.mde" "%USERPROFILE%\UserFrontEnd.mde"
C:\PROGRA~1\MyDatabase\StartUp.lnk

If you want this available to all users, place it in the <root>\Documents and Settings\All User\Desktop folder. If you want to deploy it to certain users as needed, then you can do so manually, or you can add your db users to a specific group, and configure a logon script that will copy the shortcut to their %USERPROFILE%\Documents and Settings\Desktop folder. Note that %USERPROFILE% almost always points to the <Root>\Documents and Settings\<User> folder but you might want to verify that first.

So, basically what happens is

1) User logs onto Citrix box
2) User clicks on your StartMeUp.bat file
3) Batch file runs, copying over a new, fresh frontend
4) Batch file then fires the StartUp.lnk file
5) Access opens, and opens your db

So, when you want to deploy a new file, you simply replace the file at C:\PROGRA~1\MyDatabase\MyFrontEnd.mde with a new file, making sure to name it as MyFrontEnd.mde

You can also force your users to only interact with your program by immediately calling the Startup.bat file when they log in ... i'm not sure how Citrix does this, but your admin should be able to advise you how to run a program on startup.

Additional:

You can find out what server/environment variables are available on your specific box by entering "set" (without the quotes) at a command prompt.
0
 
LVL 11

Author Comment

by:BillPowell
ID: 18031897
Does the users desktop shortcut launch your batch file before it attempts to open the database.  Or is launching the batch file something that Citrix initiates at the beginning of each user session.

Also, does each user get their own shortcut, or can that file be safely shared?
0
 
LVL 84
ID: 18038140
Either way ... the user could initiate, or you could configure a logon script that would automatically do so. In TS, we can set the "initial login program" to that batch file ... I'm sure you can do the same with Citrix, but I don't have access to a Citrix box right now.

The shortcut file is shared, there's a paragraph in my earlier post regarding this ...
0

Featured Post

Highfive Gives IT Their Time Back

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

When you are entering numbers in a speadsheet, and don't remember what 6×7 is, you just type “=6*7" instead. It works in every cell! This is not so in Access. To enter the elusive 42 in a text box, you have to find a calculator, and then copy the re…
Overview: This article:       (a) explains one principle method to cross-reference invoice items in Quickbooks®       (b) explores the reasons one might need to cross-reference invoice items       (c) provides a sample process for creating a M…
In Microsoft Access, when working with VBA, learn some techniques for writing readable and easily maintained code.
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…

705 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now