Link to home
Start Free TrialLog in
Avatar of J.R. Sitman
J.R. SitmanFlag for United States of America

asked on

When 1 Citrix server fails we cannot connect to the other.

We have to new Xenapp 6.5 Citrix servers.  I didn't build them.  The company that did has explained to me that the process that connects the user is a "Round Robin" process.  According to them when a server is down  and a user tries to login they might or might not get connected, they just need to keep trying.  

We had a server go down today and the people that were connected to the server that stayed up were able to continue working.  However, the people that tried to connect were about 90% unsuccessful.  This is obviously unacceptable to the users.

With our previous Citrix 4.5, if a server went down the users could easily connect to the other one.

So my question is "are the Citrix servers configured correctly" and is there a solution.  I have the usersw computers all set up to use Citrix Receiver.

This has happened more than once and I'm very frustrated, because I know little about Citrix and my boss has very little patience.
Avatar of Carl Webster
Carl Webster
Flag of United States of America image

The people who installed these servers do not know what they are talking about.

On both servers, go to c:\program files (x86)\citrix\independent management architecture and send us the contents of mf20.dsn from both servers.
Avatar of J.R. Sitman

ASKER

What can I open it with?
spcala178
[ODBC]
DRIVER=SQL Server
DATABASE=SPCALA_DATASTORE
APP=Citrix IMA
UID=Administrator
SERVER=SPCALA146
Trusted_Connection=Yes

spcala179

[ODBC]
DRIVER=SQL Server
DATABASE=SPCALA_DATASTORE
APP=Citrix IMA
UID=administrator
SERVER=SPCALA146
Trusted_Connection=Yes
Ok, that eliminates the data store as the issue.

Go to the web interface server, click on the site, click on farm settings, click edit and tell us what is there.
I'm not sure if I'm in the correct settings.  If this isn't what you need give me details on exactly where to go.
farm1.png
farm2.png
ASKER CERTIFIED SOLUTION
Avatar of Carl Webster
Carl Webster
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
I'll test today.  Thx
I jjust checked and that ip address is not either of the Citrix servers.  When I get home ill find out what it is
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
To clarify the two Citrix servers should be listed here?
Also should it be spcala178.laspca.corp or just spcala178
If spcala178 resolves to your client then it will do. But spcala178.laspca.corp will take care of most scenarios
please clarify "resolves to your client".  How do I test?
Fqdn is preferred then netbios name and then ip address.
So you're saying if I can ping spcala178.laspca.corp that's what I should use?
ok.  Will these changes require reboot?
Adding/removing nodes from farm should not need a reboot.
thanks for all the help.  Later today I'm going to reboot one of the servers and while its rebooting see if the user computers can get connected.  I'll post later.  Enjoy your holiday.
no reboot required
If I reboot it that will make it unavailable to the users, so I can test and see if they can log on to the other server.  i.e. my original problem.
Reboot the first server in the list and that will test it for you.
ok.  they work until 2:00 pst
you should check the failover-server settngs also.
if one server goes down the PNAgent / receiver should know where to find the config too.
possible this problem solved by the round-robin settings, but i always configure more than one config.xml server.
I reboot spcala178 then tried to connect from a users computer using ctx.spcala.com.  I couldn't.  However, I could using ctx2.spcala.com.  So that is some progress, however, I need the sers to just be able to use ctx.spcala.com and have it find the available servers.  

@dkotte, to clarify you're suggesting I modify config.xml?
@dkotte, below is the content.  Where do I add both servers?

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE PNAgent_Configuration SYSTEM "PNAgent.dtd"[]>
<PNAgent_Configuration xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance">
    <FolderDisplay>
        <StartMenuDisplay>
            <Enabled>true</Enabled>
            <RootFolder root="programs">
            </RootFolder>
        </StartMenuDisplay>
        <DesktopDisplay>
            <Enabled>false</Enabled>
            <Icon>
                <Name>
                </Name>
            </Icon>
        </DesktopDisplay>
        <SystemTrayMenuDisplay>
            <Enabled>true</Enabled>
        </SystemTrayMenuDisplay>
    </FolderDisplay>
    <DesktopIntegration>
        <StartMenu>add</StartMenu>
        <Desktop>add</Desktop>
    </DesktopIntegration>
    <ConfigurationFile>
        <Location modifiable="true" forcedefault="false" replaceServerLocation="true" RedirectNow="false">http://[SERVER_AND_PATH]/config.xml</Location>
        <Refresh>
            <OnApplicationStart>false</OnApplicationStart>
            <OnResourceRequest>false</OnResourceRequest>
            <Poll>
                <Enabled>false</Enabled>
                <Period>8</Period>
            </Poll>
        </Refresh>
    </ConfigurationFile>
    <Request>
        <Enumeration>
            <Location replaceServerLocation="true" modifiable="true" forcedefault="false" RedirectNow="false">http://[SERVER_AND_PATH]/enum.[FILE_FORMAT]</Location>
            <Smartcard_Location replaceServerLocation="true">https://[SERVER_AND_PATH]/smartcard_enum.[FILE_FORMAT]</Smartcard_Location>
            <Integrated_Location replaceServerLocation="true">http://[SERVER_AND_PATH]/integrated_enum.[FILE_FORMAT]</Integrated_Location>
            <Refresh>
                <OnApplicationStart modifiable="false" forcedefault="true">true</OnApplicationStart>
                <OnResourceRequest modifiable="false" forcedefault="true">false</OnResourceRequest>
                <Poll modifiable="false" forcedefault="true">
                    <Enabled>true</Enabled>
                    <Period>6</Period>
                </Poll>
            </Refresh>
        </Enumeration>
        <Resource>
            <Location replaceServerLocation="true" modifiable="true" forcedefault="false" RedirectNow="false">http://[SERVER_AND_PATH]/launch.[FILE_FORMAT]</Location>
            <Smartcard_Location replaceServerLocation="true">https://[SERVER_AND_PATH]/smartcard_launch.[FILE_FORMAT]</Smartcard_Location>
            <Integrated_Location replaceServerLocation="true">http://[SERVER_AND_PATH]/integrated_launch.[FILE_FORMAT]</Integrated_Location>
        </Resource>
        <Reconnect>
            <Location replaceServerLocation="true" modifiable="true" forcedefault="false" RedirectNow="false">http://[SERVER_AND_PATH]/reconnect.[FILE_FORMAT]</Location>
            <Smartcard_Location replaceServerLocation="true">https://[SERVER_AND_PATH]/smartcard_reconnect.[FILE_FORMAT]</Smartcard_Location>
            <Integrated_Location replaceServerLocation="true">http://[SERVER_AND_PATH]/integrated_reconnect.[FILE_FORMAT]</Integrated_Location>
        </Reconnect>
        <Change_Password>
            <Location replaceServerLocation="true" modifiable="true" forcedefault="false" RedirectNow="false">http://[SERVER_AND_PATH]/change_password.[FILE_FORMAT]</Location>
        </Change_Password>
        <MachineControl>
            <Location replaceServerLocation="true">http://[SERVER_AND_PATH]/desktopControl.[FILE_FORMAT]</Location>
            <Smartcard_Location replaceServerLocation="true">https://[SERVER_AND_PATH]/smartcard_desktopControl.[FILE_FORMAT]</Smartcard_Location>
            <Integrated_Location replaceServerLocation="true">http://[SERVER_AND_PATH]/integrated_desktopControl.[FILE_FORMAT]</Integrated_Location>
        </MachineControl>
    </Request>
    <Failover>
    </Failover>
    <Logon>
        <LogonMethod>prompt</LogonMethod>
        <EnableSmartcardPromptAutoLogon>false</EnableSmartcardPromptAutoLogon>
        <EnableSavePassword>false</EnableSavePassword>
        <EnableKerberos>false</EnableKerberos>
        <SupportNDS>false</SupportNDS>
        <NDS_Settings>
            <DefaultTree>
            </DefaultTree>
        </NDS_Settings>
        <CaptureSmartCardPin>false</CaptureSmartCardPin>
    </Logon>
    <ChangePassword>
        <Allow>Never</Allow>
        <Method>Direct-Only</Method>
    </ChangePassword>
    <UserInterface>
        <ServerSettings>true</ServerSettings>
        <FolderDisplaySettings>true</FolderDisplaySettings>
        <RefreshSettings>false</RefreshSettings>
        <ReconnectSettings>true</ReconnectSettings>
    </UserInterface>
    <ReconnectOptions>
        <ReconnectFromLogon>
            <Disconnected>true</Disconnected>
            <Active>true</Active>
        </ReconnectFromLogon>
        <ReconnectFromButton>
            <Disconnected>true</Disconnected>
            <Active>true</Active>
        </ReconnectFromButton>
    </ReconnectOptions>
    <FileCleanup>
        <Logoff>false</Logoff>
        <Exit>false</Exit>
        <RefreshApp directoryDepth="0">true</RefreshApp>
    </FileCleanup>
    <ICA_Options>
        <DisplaySize>
            <Options>
                <Mode>seamless</Mode>
                <Mode>fullscreen</Mode>
                <Dimension>
                    <Width>640</Width>
                    <Height>480</Height>
                </Dimension>
                <Dimension>
                    <Width>800</Width>
                    <Height>600</Height>
                </Dimension>
                <Dimension>
                    <Width>1024</Width>
                    <Height>768</Height>
                </Dimension>
                <Dimension>
                    <Width>1280</Width>
                    <Height>1024</Height>
                </Dimension>
                <Dimension>
                    <Width>1600</Width>
                    <Height>1200</Height>
                </Dimension>
            </Options>
        </DisplaySize>
        <ColorDepth>
            <Options>4</Options>
            <Options>8</Options>
        </ColorDepth>
        <Audio>
            <Options>high</Options>
            <Options>medium</Options>
            <Options>low</Options>
            <Options>off</Options>
        </Audio>
        <TransparentKeyPassthrough>
            <Options>local</Options>
            <Options>remote</Options>
            <Options>fullscreenonly</Options>
        </TransparentKeyPassthrough>
        <SpecialFolderRedirection modifiable="false">
            <Enabled>false</Enabled>
        </SpecialFolderRedirection>
    </ICA_Options>
    <AppAccess>
        [APP_ACCESS_METHODS]
    </AppAccess>
</PNAgent_Configuration>
What are the names of your XenApp servers?
What is the name of your Web Interface server?

What are ctx, ctx2, spcala178?
The 2 physical servers are spcala178 and 179.  The users access the desktop using ctx.spcala.com.  ctx1.spcala.com takes them directly to spcala178, ctx2.spcala.com goes to spcala179.
I believe the Web interface server is the atachment.  

Going to dinner shortly,I'll post when I can.

Thanks for continuing to help.  It is already working better, but needs to be perfect.  <grin>
xenapp.jpg
I think from your description you are doing this wrong.  Xenapp 6.5 servers are similar to your old 4.5 servers in how they operate.  You would publish the servers desktops and or applications and the web interface and the XML brokers will handle sending users to te correct server.  Users would go to a URL say ctx.domain.com which would redirect to the web interface site.  The user would login to the wi site and be presented with icons for the desktops, apps, content they have rights to launch.  When the use double clicks an icon the user is sent to the least busy server and the app or desktop or content then runs.
based on what I sent you what should the descriptions be.  Remember, I'm not Citrix technical and the company I use is not giving me correct direction.  I really need some help.
Thanks
hopefully you can get back to this today.  Thanks

@dkotte, can you help with the XML?  An example would be appreciated.
configure the server-redundancy within the webinterface configuration.
mark your "XenApp Service-Site" and select "ServerSettings"
there you can find a button named "Backup".
at this list you should place the PNAgent-URL from the other server.

and the same config should be done at the other server with the first at backup-url.
dkotte, from the screen shots he has been sending, he is using a regular WI site, not a Services (PNAgent) site.
Attached is the screen shot from spcala179.  I don't see a "backup" button.  On spcala178, there is nothing in this box.
Xenapp.jpg
OK, I think I see what you are doing now and apologies to dkotte for not seeing you are also using a Services site.

It looks like each site goes to one specific XenApp 6.5 server.  Do both servers have the same apps installed on them?

Do you want users using both sites?

What IP address are SPCALA178 and 179?

Which server is Web Interface installed on?
The servers have only Desktop, no other apps and yes both are the same.

Yes I want users to use both sites
Internal ip of 178 is 172.16.1.21, external is 65.60.113.53
Internal of 179 is 172.16.1.32, external is 65.60.113.54

I'm 99% sure Web interface is installed on both,
YUCK, whoever installed and configured this setup for you should be fired.

Web Interface should be its own server and NOT installed on the XenApp servers.  THen you have ONE public IP going to the WI server and the WI server would have the 2 sites configured.  For each site you would list both 178 and 179 as the XML Brokers and select to use load balancing.

To secure the traffic to the Web Interface server, you would use the FREE Citrix Secure Gateway software installed on the same server as Web Interface.  The only cost would then be an inexpensive SSL cert (NOT a self-signed one).

It would then look like this:

Internet -> CSG/WI Server -> XenApp 6.5 servers

XenApp would load balance the users automatically between the two servers.
I'm not positive that Web Interface is on both or even one.  I just think the installer asked me if I wanted it on both.  How can I find out where it is to be sure?
Add/remove programs in Control Panel or whatever it is called in 2008 R2.

From the screen shots you have sent, it appears that spcala178 has the regular web interface site and spcala179 has the xenapp services site.
Citrix Web Interface is definitely on both.
YUCK, is there any way you can put WI on a separate server?
I have another Citrix service Technician that I used to use, but switched because he left  the company I'm using now.  I'm going to contact him.  I have other servers, but I'm not qualified to make any Citrix changes.  
I need to give the company I'm using now a chance to fix this.  I'm trying to figure out how to tell them all that you've both adviced me, without pissing them off.  I don't want to get into a conflick between what they did and what you're suggesting.

One thing that has helped is putting both servers in failover.  I tested this morning by unplugging them one at a time and then trying to connect from our remote sites.  It wasn't perfect, but was much better.

Question, the order of the servers for failover should be reversed on each server correct?  spcala178 should have the order of 179, then 178 and spcala179 should have 178, then 179?
The way things are configured in your environment, what you say makes sense for the order of servers.
thanks.  What about making changes to the XML file dkotte suggested?  Is he no longer monitoring this?
how CarlWebster wrote: ..."from the screen shots he has been sending, he is using a regular WI site, not a Services (PNAgent) site"
This settings are for the PNAgent only.
i was unmindful.
ok.  thanks.  I'll post later.  Going to contact my Citrix Tech.
From what I'm learning, the Citrix Web interface is a key factor on accessing Citrix.  So if it is installed on the Citrix server, that defeats the purpose, correct?
In my opinion, yes, it defeats the purpose.
Thanks
Thanks for all the help