Archives for: May 2008

May 21st 2008

PermaLink Wednesday 21:51 am, by Paullo >>>MSGFORM<<<, 326 words, VIEWED 1197 TIMES   English (AU)
Categories: MFCOM VBScript

This post title is "Send Message to active sessions by MFCOM VBScript"

Tommo asked me is it a quick job to use MFCOM to send message to everyone on one server before scheduled reboot. I quickly checked MFCOM language reference, and found one method:
SendMessage.

Findings: when listing sessions, farm-widely, you will get all user sessions, such as ObjFarm.Sessions. But listing sessions by server, as ObjServer.Sessions, it will list the following sessions as well:
Console
ICA-tcp (session id 65536 listening)
RDP-tcp (session id 65537 listening)

So in the following script, I have to use to If/elseif to include only session with active state and with non-empty username.

Code:

<package>
<job id="MFCOM_Send_Message">
<comment>
  File: MFCOM_Send_Message.wsf
  Description: Send Message to users who have active sessions on the server.
  Requirements: WSH 5.5 or higher.
  Created: 20/5/2008
  Author: Paullo
 
  
  SendMessage Parameters:
 
  ServerName
  SessionID
  UserName
  ClientName
  Title
  Message
  MessageStyle 0 = OK Button Only
  Timeout Display time in milliseconds
  WaitingTime Waiting for response time in milliseconds
 
</comment>
<runtime>
    <description>
      Send Message to users.
    </description>
    <example>
      CScript //nologo MFCOM_Send_Message.wsf SERVERNAME
    </example>
</runtime>
<reference object="MetaFrameCOM.MetaFrameFarm"/>
<script language="VBScript">
Dim ArgObj, ServerName, ObjServer, ObjSessions, ObjSession
 
Set ArgObj = WScript.Arguments
ServerName = ArgObj(0)
 
WScript.Echo "Server Name: " & ServerName
 
Set ObjServer = CreateObject("MetaFrameCOM.MetaFrameServer")
ObjServer.Initialize 6, ServerName
 
For Each ObjSession in ObjServer.Sessions
    SessionID = ObjSession.SessionID
    UserName = ObjSession.Username
    ClientName = ObjSession.ClientName
    strTitle = "System Maintenance Reminder"
    strMsg = "Please log off in 5 minutes due to regular system maintenance."
    SessionState = ObjSession.SessionState
 
    ' WScript.echo "SessionID = " & SessionID & "; UserName = " & UserName & "; ClientName = " & ClientName & "; SessionState = " & SessionState & ";"
  
    If UserName = "" Then
        ' When listing sessions for a server, it is listing the listening sessions as well.
    Elseif SessionState <> 1 Then
        ' Only send message to Active Sessions
    Else
        ObjSession.SendMessage ServerName,SessionID, UserName, ClientName, strTitle, strMsg, 0, 120000, 120000
    End If
Next
 
 
</script>
</job>
</package>
Permalink BEFORESend feedbackAFTER
PermaLink Wednesday 21:37 am, by HaRRo >>>MSGFORM<<<, 433 words, VIEWED 198 TIMES   English (AU)
Categories: Presentation Server

This post title is "Java Client - Bug with JRE 1.6.x"

Noobs,

Finally worked out why our External WI’s where prompting authentication information on subsequent loading of the same published application. (Hope that makes sense. Little more info below if you are thinking, WTF)

Background Information:

Due to system setup, the Java client is our only means of connection via the Juniper appliances. So we have setup Web Interface 4.2, JICA 9.5.18x with JRE 1.x.x. (as java client depends on the runtime environment installed on client PC, and we have NO control over what version of JRE customer install on there home PC/netcafe’ so on).

Symptoms:

User’s connects to External WI (default client = Java), authenticates and Published Applications are displayed.

i. User select Published Resource #1
ii. Published Resource #1 loads and pass-through all authentication information.
iii. User logs off Published Resource #1 gracefully
iv. User then loads Published Resource #1 again, this time they are prompted with the Windows Authentication.

When the above prompt is displayed the target server records an “event log” for wsxica. Stating the ticket was invalid.

So, what does the above event log mean?

It is stating that the the same WI ticket is been used for a separate instance of the published resource.

So why?

It seems the newer version of JAVA runtime 1.6.x does not clean up or remove the old URL cache, this is what it should be doing after each published resource is launched.

network: Remove cache entry: http://servername/Citrix/Metaframe/site/launch.ica?NFuse_UID=1&NFuse_Application=Citrix.MPS.App.Oceania.Network+Desktop+-+TIP106

Workaround:

1. Disable the Java cache on the client PC.
2. Use older version of JRE 1.5.x (I have not complied a list of compatiably JRE’s yet).

Advanced Diagnostics:

When using the JICA client, it does not store a launch.ica file in the user temp settings like the local client does.

C:\Documents and Settings\%username%\Local Settings\Temp\Temporary Internet Files\Content.IE5\

JICA cache the files on the WI itself;

network: Cache entry found [url: http://servername/Citrix/Metaframe/ICAWEB_common/icajava/JICA-coreN.jar, version: null]
network: Remove cache entry: http://servername/Citrix/Metaframe/site/launch.ica?NFuse_UID=1&NFuse_Application=Citrix.MPS.App.Oceania.Network+Desktop+-+TIP106
network: Cache entry not found [url: http://servername/Citrix/Metaframe/site/launch.ica?NFuse_UID=1&NFuse_Application=Citrix.MPS.App.Oceania.Network+Desktop+-+TIP101, version: null]
network: Connecting http://servername/Citrix/Metaframe/site/launch.ica?NFuse_UID=1&NFuse_Application=Citrix.MPS.App.Oceania.Network+Desktop+-+TIP101 with proxy=DIRECT

As you can see above it is stored on the WI were http://servername is the name of our WI.

Permalink BEFORESend feedbackAFTER

May 16th 2008

PermaLink Friday 16:59 pm, by Paullo >>>MSGFORM<<<, 245 words, VIEWED 1095 TIMES   English (AU)
Categories: Presentation Server Citrix Web Interface

This post title is "A Citrix Farm with no Data Store"

A chat led to our discussion on the role of Data Store. Question:

When user launches Citrix Web Interface, where does the Web Interface server get the application list?

Answer: Citrix Web Interface server gets a list of applications for the user from the server defined in Web Interface site properties.

Good, your answer is correct. Then next:

When Web Interface server is requesting application list, where does the application server get the data? From Data Store or itself (Local Host Cache)?

My instinct was that Citrix server would use IMA to talk to Datastore to get the application list. Tommo thought another possibility was the server would search it Local Host Cache which is a copy of Data Store. The reason is Citrix Servers are functioning if data store is not available.

Testing:
1. Rename MF20.dsn on Citrix server that is listed in Web Interface site properties: Web Interface still works.
2. Stop SQLServer service: Web Interface still works.
3. Running Wireshark during Web Interface logon and listing applications, the Citrix server does not talk to data store during the period Web Interface server displaying the list of applications.

Answer: Citrix application server is self contained, will search farm data from local host cache first. It will update local host cache by polling interval defined in Registry, default is 30 minutes.

Registry Key related to this post:
HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\IMA\
DWORD: DCNChangePollingInterval
Value: 0x1B7740 (default 1,800,000 milliseconds)
(Reference: http://support.citrix.com/article/CTX111914)

Permalink BEFORE3 feedbacksAFTER
PermaLink Friday 16:11 pm, by HaRRo >>>MSGFORM<<<, 363 words, VIEWED 68 TIMES   English (AU)
Categories: EdgeSight

This post title is "Edgesight Reporting Services Bug"

Well, 7 hours has passed and finally got Edgesight reports and custom reports working again. Talk about a mission considering I did not have access to the SQL Dev server where the database is pointing it, it was a nightmare. Here’s what happened.

Created a customer report to filter out external users from the “ICA Latency report for user group” (fortunately enough our external web interface gives client name “R_") so we can filter out remote user’s and only take internal web interface users by using the below command.

and Left(cs.client_name,1) != ‘R’

Okay, so I got my custom report, I decide to upload it via the Edgesight console:

Company Settings -> Server -> Reporting -> Upload Report.

Now at this point I uploaded the report and check to make sure all looked good under:

http://edgesightservername/reports

Navigated to the following directory: Home > Citrix > EdgeSight > 5C0B0458-F8AB-49F5-B99E-20F7F1DEF1FA > Custom_1

Okay, so far so good. BUT I notice the properties where wrong when I uploaded the report.

Example 1.1

Network Volume Peak-Avg for a Process by Day and Site

Data Area: Network
Data Type: Network Volume
Selected Type: Application
Group By: Day
Report Type: Chart
Visibility: Public

So I deleted the report directly from the Reports server folder. Which you can do when you select “show details".

Went back into my Edgesight Console and select “Custom Reports” - OOO SH*T >:XX

Server Error in ‘/Edgesight’ Application.
——————————————————————————–

Object reference not set to an instance of an object.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

WTF, Happen? well I dunno. Edgesight freaked out, maybe cause of a duplicate report name? I am sure I changed it to something else?

After many hours of searching I found the following CTX Article (CTX110998) HERE on a post further down by Paullo, talk about a Noob -LOL :crazy: anyway MANUALLY uploaded all Custom reports again :( I replicated the issue twice and logged call to Citrix.

Permalink BEFORESend feedbackAFTER

May 9th 2008

PermaLink Friday 9:40 pm, by Paullo >>>MSGFORM<<<, 128 words, VIEWED 131 TIMES   English (AU)
Categories: Powershell Presentation Server

This post title is "Find Out DHCP Enabled Servers in Citrix Farm"

Suddenly I have an urge to change all DHCP enabled Citrix server to fixed IP addresses. Don’t laugh, in 2008, people still run server with DHCP on and the server is a Citrix Presentation Server. But we do, as these servers are in VM space and mainly for testing / development purpose.

Script 1: F_GetNetworkConfiguration.ps1

function DisplayNetworkConfiguration ($ServerName)

{
Write-Host $ServerName
Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE –ComputerName $ServerName
}

Script 2: GetCTXNetConf.ps1

. c:\source\scripts\powershell\F_GetNetworkConfiguration.ps1

$objFarm = New-Object -ComObject MetaFrameCOM.MetaFrameFarm
$objFarm.Initialize(1)
Write-Host $objFarm.FarmName

$objServers = $objFarm.Servers

# The following lists each server name and DHCP status
# The first line give more detais, while the second line
# gives only server name and DHCP status.

$objServers | ForEach-Object {DisplayNetworkConfiguration ($_.ServerName)}

$objServers | ForEach-Object {DisplayNetworkConfiguration ($_.ServerName)}|Select-Object -Property DHCPEnabled

Permalink BEFORESend feedbackAFTER

May 7th 2008

PermaLink Wednesday 7:05 pm, by Paullo >>>MSGFORM<<<, 250 words, VIEWED 578 TIMES   English (AU)
Categories: EdgeSight Presentation Server

This post title is "Fix EdgeSight Report Server Problem after SQL Server Upgrade"

Brief Intro:
1. Problem: EdgeSight not working after SQL Server 2005 Upgrade
2. EdgeSight Version: V4.5 SP4(S17)

This week, we have upgraded SQL Server 2000 to 2005. The server is hosting Citrix DataStore, Resource Manager Database, EdgeSight Database, and Reporting Server for EdgeSight.

Nothing was planned to be broken and anything broken is not a surprise.

After the in-place upgrade, DataStore and RM Database works fine without causing any problems yet. Reporting Services not working anymore. Hard search on Google returned the following links which pointing the failure to the upgrade script.

http://www.developmentnow.com/g/115_2007_8_0_0_1012756/Upgrading-to-RS2005.htm
http://www.mydatabasesupport.com/forums/ms-sqlserver/246422-upgrading-rs2005.html

To build a new EdgeSight database is not an option within a day, as people waiting to produce the reports. I finally worked out to separate the Reporting Services to another SQL Server 2005 (which was a new installation on Virtual Server) and fixed the problem:

1. Created local user RSUSER on NEW_DB
2. Configured http://NEW_DB/Reports Site Settings, added RSUSER administrator of Reporting Service according to EdgeSight Report Service Configuration Guide
3. EdgeSight Web Configuration - Server Settings - Reporting Services, change the Report Server URL to http://NEW_DB/ReportServer and updated Report Server Settings. This step has uploaded all reporting templates to NEW_DB.
4. Followed http://support.citrix.com/article/CTX110998 to fix issues when loading some reports.

Yes, we will need to do more: Uninstall and reinstall the Reporting Services when there is an opportunity and move the Reporting Services back. This is beefy 8 core machine.

Permalink BEFOREONLY ONE FEEDBACKAFTER

Ozzy Citrix Noobs

Hi We call us Citrix Noobs, because we are noobs. We are a group of noobs that is heckless and restless. We are not fearing of anything, and we tend to do the best in daily noobing. Join us if you are also noobs, and will keep noobing.

May 2008
Mon Tue Wed Thu Fri Sat Sun
 << < Current> >>
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

Search

XML Feeds

What is RSS?

Who's Online?

  • Guest Users: 1

powered by b2evolution free blog software