Showing posts with label rendering. Show all posts
Showing posts with label rendering. Show all posts

Friday, March 30, 2012

Report wont render

I am having an issue with a particular report not rendering when
displaying in the web browser from reporting services web site. The
report never displays and if you check under site settings the job is
showing that it is in an Action of "Render". Has anyone else ever seen
this? Is there something I should look for in one of the log files to
help me find out what is causing this error?
Thanks ahead of time.sfibich wrote:
> I am having an issue with a particular report not rendering when
> displaying in the web browser from reporting services web site. The
> report never displays and if you check under site settings the job is
> showing that it is in an Action of "Render". Has anyone else ever seen
> this? Is there something I should look for in one of the log files to
> help me find out what is causing this error?
> Thanks ahead of time.
A litte more infomation. I get the following message in the browser:
NOTE: I did not cancel the query.
Reporting Services Error
----
An error has occurred during report processing. (rsProcessingAborted)
Get Online Help
Cannot read the next data row for the data set pfg_dw.
(rsErrorReadingNextDataRow) Get Online Help
Operation cancelled by user.
----
Microsoft Reporting Services|||This looks like an IIS timeout issue. Try increasing the IIS timeout on the
report server: Computer Management - Internet Information Services - Web
Sites - Default Web Site: Right-click properties: Connection timeout.
IIS 6 has a default connection timeout of 120 seconds (while IIS 5 has 900
seconds).
--
This posting is provided "AS IS" with no warranties, and confers no rights.
"sfibich" <sfibich@.pfgc.com> wrote in message
news:OdTAv8p8EHA.1400@.TK2MSFTNGP11.phx.gbl...
> sfibich wrote:
> > I am having an issue with a particular report not rendering when
> > displaying in the web browser from reporting services web site. The
> > report never displays and if you check under site settings the job is
> > showing that it is in an Action of "Render". Has anyone else ever seen
> > this? Is there something I should look for in one of the log files to
> > help me find out what is causing this error?
> >
> > Thanks ahead of time.
> A litte more infomation. I get the following message in the browser:
> NOTE: I did not cancel the query.
> Reporting Services Error
> ----
--
> An error has occurred during report processing. (rsProcessingAborted)
> Get Online Help
> Cannot read the next data row for the data set pfg_dw.
> (rsErrorReadingNextDataRow) Get Online Help
> Operation cancelled by user.
> ----
--
> Microsoft Reporting Services
>sql

Wednesday, March 21, 2012

Report Viewer

Hi
I'm using Visual Studio Beta 2
I have few questions about the ReportViewer WinForm Control.
When rendering a Server Report the Print button appears disabled is this by
design?
Also the Print Preview button is enabled but it does not do anything is this
also by design?
Any help is appreciated!!!
LuigiHi,
I am also facing the same problem. Without the print option the report is of
no use for our client. Please help on urgent basis.
"Luigi Di Santo" wrote:
> Hi
> I'm using Visual Studio Beta 2
> I have few questions about the ReportViewer WinForm Control.
> When rendering a Server Report the Print button appears disabled is this by
> design?
> Also the Print Preview button is enabled but it does not do anything is this
> also by design?
> Any help is appreciated!!!
> Luigi
>
>

Report Timeout problem ;Out of memory exception

I am having a problem with report rendering.
The MSSRS Report runs for around 15 minutes and then the report page times
out giving the error as
"Out of memory exception. Server application unavailable".
When i check the query execution time in query analyser, query returns
results in 10 minutes.
There are about 3 groups in the RDL design.
Please provide any suggestions to overcome this problem.
Thanks in advance.
Thanks and Cheers,
TruptiSounds like your report is just too big. RS renders reports in memory, thus
the 'Out of memory exception'. Try redesigning the report or adding more
memory to your machine/server.
Also, if you get the report to successfully run you can try to pin point
what's taking so long. Look in the ReportServer database; the ExecutionLog
table. It shows what report ran, when, the amount of time for data
retrieval, processing time, and rendering time. It also shows what render
format, render status (fail or success), query row count and byte size of
the rendered file.
--
Adrian M.
MCP
"Trupti" <gettrupti@.hotmail.com> wrote in message
news:e0Tt9bcNFHA.1392@.TK2MSFTNGP10.phx.gbl...
>I am having a problem with report rendering.
> The MSSRS Report runs for around 15 minutes and then the report page
> times out giving the error as
> "Out of memory exception. Server application unavailable".
> When i check the query execution time in query analyser, query returns
> results in 10 minutes.
> There are about 3 groups in the RDL design.
> Please provide any suggestions to overcome this problem.
> Thanks in advance.
> Thanks and Cheers,
> Trupti
>
>

Monday, February 20, 2012

Report rendering in webform

Hi,
Currently I display report in my webform (website) using
Reportviewer.ReportURL method which fetch report from Report Manger through
Http:// port. which takes too much to rendering report.
Is there any method through which I can render report in my webpage through
reprot API or something like that so that it doesn't fetch report through
http port and rendering time should be fast.
Thanks in Advance.Kam,
I am curious as to how you determined that using HTTP-GET causes the slow
performance? Did you look at how long it takes for the database query to be
processed, report to be generated and rendered?
Requesting your reports via HTTP-GET is the fastest way to generate them.
Think of the Report Server (not Report Manager) as a web application. Your
request/response total latency consists of submitting the report request to
the Report Server, querying the database, generating the report, rendering
the report, sending the report payload to the Report Viewer (browser), and
displaying the report in the browser. From this latencies, you should focus
on minimizing the time it takes to query the database and generate the
report.
Here is a tip: use the RS Execution Log to find out how much the Report
Server spends querying, generating and rendering your report.
--
Hope this helps.
---
Teo Lachev, MCSD, MCT
Author: "Microsoft Reporting Services in Action"
http://www.prologika.com
"Kam" <Kam@.discussions.microsoft.com> wrote in message
news:1D7BD329-07EA-45BD-B365-C76390685461@.microsoft.com...
> Hi,
> Currently I display report in my webform (website) using
> Reportviewer.ReportURL method which fetch report from Report Manger
through
> Http:// port. which takes too much to rendering report.
> Is there any method through which I can render report in my webpage
through
> reprot API or something like that so that it doesn't fetch report through
> http port and rendering time should be fast.
> Thanks in Advance.|||How to check R S Exectuion Log ?
"Teo Lachev" wrote:
> Kam,
> I am curious as to how you determined that using HTTP-GET causes the slow
> performance? Did you look at how long it takes for the database query to be
> processed, report to be generated and rendered?
> Requesting your reports via HTTP-GET is the fastest way to generate them.
> Think of the Report Server (not Report Manager) as a web application. Your
> request/response total latency consists of submitting the report request to
> the Report Server, querying the database, generating the report, rendering
> the report, sending the report payload to the Report Viewer (browser), and
> displaying the report in the browser. From this latencies, you should focus
> on minimizing the time it takes to query the database and generate the
> report.
> Here is a tip: use the RS Execution Log to find out how much the Report
> Server spends querying, generating and rendering your report.
> --
> Hope this helps.
> ---
> Teo Lachev, MCSD, MCT
> Author: "Microsoft Reporting Services in Action"
> http://www.prologika.com
>
> "Kam" <Kam@.discussions.microsoft.com> wrote in message
> news:1D7BD329-07EA-45BD-B365-C76390685461@.microsoft.com...
> > Hi,
> > Currently I display report in my webform (website) using
> > Reportviewer.ReportURL method which fetch report from Report Manger
> through
> > Http:// port. which takes too much to rendering report.
> > Is there any method through which I can render report in my webpage
> through
> > reprot API or something like that so that it doesn't fetch report through
> > http port and rendering time should be fast.
> >
> > Thanks in Advance.
>
>|||Here is a code to render a report in a stream sent to an aspnet page.
//Create a Reporting Service Object (you have to add a reference to it in
VS.NET)
localhost.ReportingService s = new localhost.ReportingService ();
//specify the credentials
s.Credentials = new System.Net.NetworkCredential("myuser",
"mypassword","");
try
{
// Render arguments
byte[] result = null;
string reportPath = "/Test/Rlinktest";
string format = "HTML4.0";
string historyID = null;
string devInfo = "";
string showHideToggle = null;
string encoding;
string mimeType;
localhost.Warning[] warnings = null;
localhost.ParameterValue[] reportHistoryParameters = null;
string[] streamIDs = null;
localhost.SessionHeader sh = new localhost.SessionHeader();
s.SessionHeaderValue = sh;
//call the render method of webservice
result = s.Render(reportPath, format, historyID, devInfo, null, null,
showHideToggle, out encoding, out mimeType, out
reportHistoryParameters, out warnings,
out streamIDs);
Response.ClearContent();
Response.ContentType="text/html";
Response.BinaryWrite(result);
Response.Flush();
}
catch (Exception ex)
{
Response.Write(ex.ToString());
}
Cédric
"Kam" <Kam@.discussions.microsoft.com> wrote in message
news:1D7BD329-07EA-45BD-B365-C76390685461@.microsoft.com...
> Hi,
> Currently I display report in my webform (website) using
> Reportviewer.ReportURL method which fetch report from Report Manger
> through
> Http:// port. which takes too much to rendering report.
> Is there any method through which I can render report in my webpage
> through
> reprot API or something like that so that it doesn't fetch report through
> http port and rendering time should be fast.
> Thanks in Advance.|||Kam,
The RS Execution Log is stored in the ExecutionLog table in the RS
ReportServer database. For analyzing its data easier, you need to install
the Execution Log DTS package. Check the Rs documentation for the following
topics:
- Report Server Execution Log
- Querying and Reporting on Report Execution Log Data
--
Hope this helps.
---
Teo Lachev, MCSD, MCT
Author: "Microsoft Reporting Services in Action"
http://www.prologika.com
"Kam" <Kam@.discussions.microsoft.com> wrote in message
news:6BF3E420-9468-43C5-8E48-925B6C806D69@.microsoft.com...
> How to check R S Exectuion Log ?
> "Teo Lachev" wrote:
> > Kam,
> >
> > I am curious as to how you determined that using HTTP-GET causes the
slow
> > performance? Did you look at how long it takes for the database query to
be
> > processed, report to be generated and rendered?
> >
> > Requesting your reports via HTTP-GET is the fastest way to generate
them.
> > Think of the Report Server (not Report Manager) as a web application.
Your
> > request/response total latency consists of submitting the report request
to
> > the Report Server, querying the database, generating the report,
rendering
> > the report, sending the report payload to the Report Viewer (browser),
and
> > displaying the report in the browser. From this latencies, you should
focus
> > on minimizing the time it takes to query the database and generate the
> > report.
> >
> > Here is a tip: use the RS Execution Log to find out how much the Report
> > Server spends querying, generating and rendering your report.
> >
> > --
> > Hope this helps.
> >
> > ---
> > Teo Lachev, MCSD, MCT
> > Author: "Microsoft Reporting Services in Action"
> > http://www.prologika.com
> >
> >
> > "Kam" <Kam@.discussions.microsoft.com> wrote in message
> > news:1D7BD329-07EA-45BD-B365-C76390685461@.microsoft.com...
> > > Hi,
> > > Currently I display report in my webform (website) using
> > > Reportviewer.ReportURL method which fetch report from Report Manger
> > through
> > > Http:// port. which takes too much to rendering report.
> > > Is there any method through which I can render report in my webpage
> > through
> > > reprot API or something like that so that it doesn't fetch report
through
> > > http port and rendering time should be fast.
> > >
> > > Thanks in Advance.
> >
> >
> >

Report Rendering (II)

Hi,

I have been using the following code, (thanks to Shyam), to display address fields. This works great when using preview in BIDS, but the address shows on one continious line when the report is redered in Reporting Services.

=First(Fields!Name.Value) & IIf(First(Fields!Address1.Value) <> "", Chr(10) & Chr(13) & First(Fields!Address1.Value), "") &
IIf(First(Fields!Address2.Value) <> "", Chr(10) & Chr(13) & First(Fields!Address2.Value), "") &
IIf(First(Fields!Address3.Value) <> "", Chr(10) & Chr(13) & First(Fields!Address3.Value), "") &
IIf(First(Fields!Town.Value) <> "", Chr(10) & Chr(13) & First(Fields!Town.Value), "") &
IIf(First(Fields!County.Value) <> "", Chr(10) & Chr(13) & First(Fields!County.Value), "") &
IIf(First(Fields!Post_Code.Value) <> "", Chr(10) & Chr(13) & First(Fields!Post_Code.Value),

Any one any ideas?

Thanks

Did you try vbCRLF instead of chr(10) & 13?

http://blogs.infinite-x.net/category/dynamics-crm/reporting/

cheers,

Andrew

Report Render in VS2005 slower than stored proc

I have searched many forums and found some cases of people also reporting slower rendering in RS than in Management Studio / Query Analyzer. However, none of the other solution suggestions seem to make a difference for me.

I'm a VS/VB developer and have got multiple reports built -- all using stored procedures on the backend -- that all take many times longer to run than if executed via Management Studio (SSMS). My simplest proc takes a couple of parameters (no defaults included) and does a simple select against one table with a few joins. Nothing complicated. It runs in 8 secs for 6867 rows via SSMS. Through RS (running locally through Visual Studio 2005 at this point) it takes around 25-28 secs. Yet, when I'm in the report on the DATA tab (not the PREVIEW tab) the run takes the expected 8 secs ?!?!

All reports are behaving this way.

I am not using cursors.

I have no default values on parameters.

I have added the "WITH RECOMPILE" to the proc statement.

I have "SET NOCOUNT ON" as the first line of the proc.

I hate to say this, but I even connected the proc to Crystal Reports to see how it behaved. It ran in the expected 8 secs.

I've seen some mention by someone that perhaps this is a known issue of RS that it reads the proc twice. Any truth to this?

Also a couple posts have traced and demonstrated that the report is generating significantly more data "reads" via RS than through SSMS.

We're a shop that is considering a switch from Crystal to RS, but we do everything through stored procedures. I need to clear up this issue before I can go forward recommending a switch. I'm including a copy of a typical proc below for review... What am I missing? What's the deal here with RS?

IF OBJECT_ID('dbo.rpt_InactiveAccounts') IS NOT NULL

DROP PROCEDURE dbo.rpt_InactiveAccounts

GO

CREATE PROCEDURE dbo.rpt_InactiveAccounts

(@.pRunDate datetime

,@.pSalesperson varchar(5000)

,@.pIncludeOpen char(1)

)

WITH RECOMPILE

AS

SET NOCOUNT ON

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

-- CREATE/SETUP TEMP TABLE FOR USE IN PARSING MULTI-VALUED STRING INPUTS

DECLARE @.NumberPivot TABLE (NumberID INT PRIMARY KEY)

DECLARE @.intLoopCounter INT

SELECT @.intLoopCounter =0

WHILE @.intLoopCounter <=4999 BEGIN

INSERT INTO @.NumberPivot

VALUES (@.intLoopCounter)

SELECT @.intLoopCounter = @.intLoopCounter +1

END

-- CREATE TEMP TABLES TO HOLD PARSED VALUES FROM MULTI-VALUE STRING INPUT PARAMETERS

DECLARE @.SalespersonTable TABLE

(tmpSalesperson varchar(30))

-- PARSE OUT @.pSALESPERSON PARAMETER AND STORE VALUES IN TEMP TABLE

INSERT INTO @.SalespersonTable

SELECT SUBSTRING(',' + @.pSalesperson + ',', NumberID + 1,

CHARINDEX(',', ',' + @.pSalesperson + ',', NumberID + 1) - NumberID -1)

FROM @.NumberPivot

WHERE NumberID <= LEN(',' + @.pSalesperson + ',') - 1

AND SUBSTRING(',' + @.pSalesperson + ',', NumberID, 1) = ','

SELECT DISTINCT

CASE

WHEN s.Name IS NULL THEN '<< OPEN >>'

ELSE s.Name

END As SalespersonName

,c.ClassId

,c.CustId

,c.Name

,c.Addr1

,c.Addr2

,c.Addr3

,c.City

,State

,CASE

WHEN Len(c.Zip) = 9 And CharIndex(' ', c.Zip, 0) = 0 THEN Left(c.Zip, 5) + '-' + Right(c.Zip, 4)

ELSE c.Zip

END As Zip

,ac1.descr As Terms

,ac2.descr As Status

FROM

ACTCustomer c (NOLOCK)

LEFT OUTER JOIN CustSales cs ON c.CustId = cs.CustId

LEFT OUTER JOIN ACTSalesperson s ON cs.SlsId = s.SalesId

INNER JOIN @.SalespersonTable st ON s.Name = st.tmpSalesperson OR (s.Name IS NULL AND @.pIncludeOpen = 'Y')

INNER JOIN ACTCode ac1 ON ac1.Code = c.Terms And ac1.FieldId = 'CustTerms'

INNER JOIN ACTCode ac2 ON ac2.Code = c.Status And ac2.FieldId = 'Status'

WHERE

c.LastInvcDate <= @.pRunDate

And c.ClassId <> 'TR'

ORDER BY

SalespersonName, Name, CustId

Hi Dave,

I don't think that this will solve you performance issue but I have a recommendation for you, since you are passing some comma separated list to your reports as parameter, maybe you should create a user-defined function that will convert you list into a table. This would allow you to reuse this same function in all of you reports.

Sample Here:

Here is an example of a function that would convert comma separated list into a table:

http://blogs.vandamme.com/development/2007/06/parse_comma_sep.html

Then you could modify your SQL statement in the stored procedure tu use this function, something like this should do:

SELECT <Fields>

FROM <Table> a

JOIN <Function> (@.CommaSeparatedList) b ON b.uid = a.id

For the performance issue, did you try to profile and compare your SSMS execution and the Report execution?

HTH,