• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2825
  • Last Modified:

Citrix + Crystal Reports

Hi All,

Production:
Citrix -> Fat Client -> embedded crystal report

We're getting complaints that reports in our production environment are taking 10 to 15 minutes to complete regardless of the number of runs.

QA:
RDP -> Fat Client -> Embedded Crystal Report

When we run this in QA (local, on a server, but no citrix) same report with similiar data takes a few seconds.  

Unfortunately being a developer I don't have access to production or inside knowledge about the citrix environment (handled by another team).  


I'm looking for documentation that says this is expected behavior or a list of possible fixes that can be implemented to speed up production.  Has anyone seen anything ilke this before or anything I can provide up the ladder to get this resolved?
0
Kyle Abrahams
Asked:
Kyle Abrahams
  • 5
  • 2
3 Solutions
 
Mohamed OsamaSenior IT ConsultantCommented:
Crystal will use the %TEMP% folder to run the file, Please check with your Citrix admins that the users %TEMP% folder is cleared, I have seen in some Citrix servers Gigabytes upon Gigabytes and tens of thousands of files on the users %TEMP% folders that can significantly slow down things.
0
 
Ido MilletProfessor of MIS at Penn State Erie and Owner, Millet SoftwareCommented:
No, this is not an expected behavior for Citrix deployments.  
My Crystal Reports Viewer application has been running on many Citrix installations and I've never seen this problem.  
Do you see this slow down with all reports?  Always or only during certain times of the day?
0
 
Kyle AbrahamsSenior .Net DeveloperAuthor Commented:
New info is it's one main report.  We're doing deltas between that and a working report to see what's going on.  

Slowness is consistent regardless of time of day or specific parameters used.  

I'm playing telephone through a bunch of different levels but that's what I'm getting back so far.

Please keep the suggestions coming.
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
Ido MilletProfessor of MIS at Penn State Erie and Owner, Millet SoftwareCommented:
The "slow" report has subreports?
0
 
Kyle AbrahamsSenior .Net DeveloperAuthor Commented:
>> Does the "slow" report have any subreports?
 - None.  


I was finally able to see this run in Citrix . . .

Our process is to build the data table outside of crystal . . . and handle crystal the dataset for formatting purposes.

We do this using a background worker so we can report progress as we go.  

It's hanging here:
      worker.ReportProgress(50)

                               rptDocument.SetDataSource(m_DataTable)

                                If worker.CancellationPending Then
                                    e.Cancel = True
                                    Exit Sub
                                End If
    worker.ReportProgress(75)

Time to dive into the actual crystal report.  Note the same process is used for the "working" report.  

Noticeable difference so far is that the "slow" report has a number of formulas (10-20) some of them used some of them not.  Does crystal calculate them all if they aren't being used?  

Will keep reporting as I go, thanks for the suggestions and looking forward to more ideas.
0
 
Kyle AbrahamsSenior .Net DeveloperAuthor Commented:
One other thing:  We can run the program fine on the actual citrix server without issue.  It's only when the presentation framework is working on the client that this becomes an issue.
0
 
Kyle AbrahamsSenior .Net DeveloperAuthor Commented:
So the issue ended up being that the default source was set to our test server.  Even though we were providing the datatable to the report manually it still for some reason was requerying the database.

The solution was to create an XSD (Disconnected DataSet) mimicking the columns that the report needed, and then repointing the report to look at the XSD.  Once this was done the report queries the blank XSD, then gets the data from the data table we are passing to it, and thereby solving the problem.  

I guess this could also be done with SetDataBase Logon, but why it would query the DB if we're already providing it a data table is beyond me.  Thanks very much for the suggestions.
0
 
Kyle AbrahamsSenior .Net DeveloperAuthor Commented:
Found the solution on my own, suggestions were valid though not accurate.
0

Featured Post

[Webinar] Cloud and Mobile-First Strategy

Maybe you’ve fully adopted the cloud since the beginning. Or maybe you started with on-prem resources but are pursuing a “cloud and mobile first” strategy. Getting to that end state has its challenges. Discover how to build out a 100% cloud and mobile IT strategy in this webinar.

  • 5
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now